diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-30 11:59:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-30 11:59:57 -0400 |
commit | 40caf5ea5a7d47f8a33e26b63ca81dea4b5109d2 (patch) | |
tree | 3f879353d5cb69d2dee707108e4aaeae075f5a0c /drivers/ieee1394/ohci1394.c | |
parent | d6454706c382ab74e2ecad7803c434cc6bd30343 (diff) | |
parent | bcfd09ee48f77a4fe903dbc3757e7af931998ce1 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (56 commits)
ieee1394: remove garbage from Kconfig
ieee1394: more help in Kconfig
ieee1394: ohci1394: Fix mistake in printk message.
ieee1394: ohci1394: remove unnecessary rcvPhyPkt bit flipping in LinkControl register
ieee1394: ohci1394: fix cosmetic problem in error logging
ieee1394: eth1394: send async streams at S100 on 1394b buses
ieee1394: eth1394: fix error path in module_init
ieee1394: eth1394: correct return codes in hard_start_xmit
ieee1394: eth1394: hard_start_xmit is called in atomic context
ieee1394: eth1394: some conditions are unlikely
ieee1394: eth1394: clean up fragment_overlap
ieee1394: eth1394: don't use alloc_etherdev
ieee1394: eth1394: omit useless set_mac_address callback
ieee1394: eth1394: CONFIG_INET is always defined
ieee1394: eth1394: allow MTU bigger than 1500
ieee1394: unexport highlevel_host_reset
ieee1394: eth1394: contain host reset
ieee1394: eth1394: shorter error messages
ieee1394: eth1394: correct a memset argument
ieee1394: eth1394: refactor .probe and .update
...
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; |