diff options
Diffstat (limited to 'drivers/ieee1394/ohci1394.c')
-rw-r--r-- | drivers/ieee1394/ohci1394.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/ieee1394/ohci1394.c b/drivers/ieee1394/ohci1394.c index 06fac0d21264..5dadfd296f79 100644 --- a/drivers/ieee1394/ohci1394.c +++ b/drivers/ieee1394/ohci1394.c | |||
@@ -507,9 +507,8 @@ static void ohci_initialize(struct ti_ohci *ohci) | |||
507 | /* Set up self-id dma buffer */ | 507 | /* Set up self-id dma buffer */ |
508 | reg_write(ohci, OHCI1394_SelfIDBuffer, ohci->selfid_buf_bus); | 508 | reg_write(ohci, OHCI1394_SelfIDBuffer, ohci->selfid_buf_bus); |
509 | 509 | ||
510 | /* enable self-id and phys */ | 510 | /* enable self-id */ |
511 | reg_write(ohci, OHCI1394_LinkControlSet, OHCI1394_LinkControl_RcvSelfID | | 511 | reg_write(ohci, OHCI1394_LinkControlSet, OHCI1394_LinkControl_RcvSelfID); |
512 | OHCI1394_LinkControl_RcvPhyPkt); | ||
513 | 512 | ||
514 | /* Set the Config ROM mapping register */ | 513 | /* Set the Config ROM mapping register */ |
515 | reg_write(ohci, OHCI1394_ConfigROMmap, ohci->csr_config_rom_bus); | 514 | reg_write(ohci, OHCI1394_ConfigROMmap, ohci->csr_config_rom_bus); |
@@ -518,9 +517,6 @@ static void ohci_initialize(struct ti_ohci *ohci) | |||
518 | ohci->max_packet_size = | 517 | ohci->max_packet_size = |
519 | 1<<(((reg_read(ohci, OHCI1394_BusOptions)>>12)&0xf)+1); | 518 | 1<<(((reg_read(ohci, OHCI1394_BusOptions)>>12)&0xf)+1); |
520 | 519 | ||
521 | /* Don't accept phy packets into AR request context */ | ||
522 | reg_write(ohci, OHCI1394_LinkControlClear, 0x00000400); | ||
523 | |||
524 | /* Clear the interrupt mask */ | 520 | /* Clear the interrupt mask */ |
525 | reg_write(ohci, OHCI1394_IsoRecvIntMaskClear, 0xffffffff); | 521 | reg_write(ohci, OHCI1394_IsoRecvIntMaskClear, 0xffffffff); |
526 | reg_write(ohci, OHCI1394_IsoRecvIntEventClear, 0xffffffff); | 522 | reg_write(ohci, OHCI1394_IsoRecvIntEventClear, 0xffffffff); |
@@ -617,7 +613,7 @@ static void ohci_initialize(struct ti_ohci *ohci) | |||
617 | #endif | 613 | #endif |
618 | 614 | ||
619 | PRINT(KERN_DEBUG, "Serial EEPROM has suspicious values, " | 615 | PRINT(KERN_DEBUG, "Serial EEPROM has suspicious values, " |
620 | "attempting to setting max_packet_size to 512 bytes"); | 616 | "attempting to set max_packet_size to 512 bytes"); |
621 | reg_write(ohci, OHCI1394_BusOptions, | 617 | reg_write(ohci, OHCI1394_BusOptions, |
622 | (reg_read(ohci, OHCI1394_BusOptions) & 0xf007) | 0x8002); | 618 | (reg_read(ohci, OHCI1394_BusOptions) & 0xf007) | 0x8002); |
623 | ohci->max_packet_size = 512; | 619 | ohci->max_packet_size = 512; |
@@ -2377,6 +2373,7 @@ static irqreturn_t ohci_irq_handler(int irq, void *dev_id) | |||
2377 | if (event & OHCI1394_postedWriteErr) { | 2373 | if (event & OHCI1394_postedWriteErr) { |
2378 | PRINT(KERN_ERR, "physical posted write error"); | 2374 | PRINT(KERN_ERR, "physical posted write error"); |
2379 | /* no recovery strategy yet, had to involve protocol drivers */ | 2375 | /* no recovery strategy yet, had to involve protocol drivers */ |
2376 | event &= ~OHCI1394_postedWriteErr; | ||
2380 | } | 2377 | } |
2381 | if (event & OHCI1394_cycleTooLong) { | 2378 | if (event & OHCI1394_cycleTooLong) { |
2382 | if(printk_ratelimit()) | 2379 | if(printk_ratelimit()) |
@@ -3658,6 +3655,7 @@ static struct pci_driver ohci1394_pci_driver = { | |||
3658 | /* essentially the only purpose of this code is to allow another | 3655 | /* essentially the only purpose of this code is to allow another |
3659 | module to hook into ohci's interrupt handler */ | 3656 | module to hook into ohci's interrupt handler */ |
3660 | 3657 | ||
3658 | /* returns zero if successful, one if DMA context is locked up */ | ||
3661 | int ohci1394_stop_context(struct ti_ohci *ohci, int reg, char *msg) | 3659 | int ohci1394_stop_context(struct ti_ohci *ohci, int reg, char *msg) |
3662 | { | 3660 | { |
3663 | int i=0; | 3661 | int i=0; |