From 37777148f6f5bd2c3cd2f3f46a5bf714177a1faf Mon Sep 17 00:00:00 2001 From: Stefan Richter Date: Sat, 22 Dec 2007 22:14:52 +0100 Subject: [PATCH] --- yaml --- r: 80943 b: refs/heads/master c: bb9f2206b60ace29e49a057fbd9be86d79d86200 h: refs/heads/master i: 80941: 812851e766af4d204df3e65492050ea03a4ee355 80939: 1d1485cea759d6480b0aeefab1293e2124d9f00c 80935: 10728bf13fc3afcae76d63a3feb93bcfdac2ad97 80927: 6e9969f0d0829992daf11172c9a6e72ac939b524 v: v3 --- [refs] | 2 +- trunk/drivers/firewire/fw-ohci.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 69938e1a2406..52819782e7a8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 478b233eda81bfe41307512b8336fd688c6553e0 +refs/heads/master: bb9f2206b60ace29e49a057fbd9be86d79d86200 diff --git a/trunk/drivers/firewire/fw-ohci.c b/trunk/drivers/firewire/fw-ohci.c index a9f2d07e7c65..74d5d945f200 100644 --- a/trunk/drivers/firewire/fw-ohci.c +++ b/trunk/drivers/firewire/fw-ohci.c @@ -1079,6 +1079,13 @@ static irqreturn_t irq_handler(int irq, void *data) if (unlikely(event & OHCI1394_postedWriteErr)) fw_error("PCI posted write error\n"); + if (unlikely(event & OHCI1394_cycleTooLong)) { + if (printk_ratelimit()) + fw_notify("isochronous cycle too long\n"); + reg_write(ohci, OHCI1394_LinkControlSet, + OHCI1394_LinkControl_cycleMaster); + } + if (event & OHCI1394_cycle64Seconds) { cycle_time = reg_read(ohci, OHCI1394_IsochronousCycleTimer); if ((cycle_time & 0x80000000) == 0) @@ -1152,8 +1159,8 @@ static int ohci_enable(struct fw_card *card, u32 *config_rom, size_t length) OHCI1394_RQPkt | OHCI1394_RSPkt | OHCI1394_reqTxComplete | OHCI1394_respTxComplete | OHCI1394_isochRx | OHCI1394_isochTx | - OHCI1394_postedWriteErr | OHCI1394_cycle64Seconds | - OHCI1394_masterIntEnable); + OHCI1394_postedWriteErr | OHCI1394_cycleTooLong | + OHCI1394_cycle64Seconds | OHCI1394_masterIntEnable); /* Activate link_on bit and contender bit in our self ID packets.*/ if (ohci_update_phy_reg(card, 4, 0,