Commit be55649e authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://kernel.bkbits.net/davem/tg3-2.6

into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents 171755ff cb6298ed
...@@ -3635,9 +3635,25 @@ static int tg3_chip_reset(struct tg3 *tp) ...@@ -3635,9 +3635,25 @@ static int tg3_chip_reset(struct tg3 *tp)
/* restore 5701 hardware bug workaround flag */ /* restore 5701 hardware bug workaround flag */
tp->tg3_flags = flags_save; tp->tg3_flags = flags_save;
/* Unfortunately, we have to delay before the PCI read back.
* Some 575X chips even will not respond to a PCI cfg access
* when the reset command is given to the chip.
*
* How do these hardware designers expect things to work
* properly if the PCI write is posted for a long period
* of time? It is always necessary to have some method by
* which a register read back can occur to push the write
* out which does the reset.
*
* For most tg3 variants the trick below was working.
* Ho hum...
*/
udelay(120);
/* Flush PCI posted writes. The normal MMIO registers /* Flush PCI posted writes. The normal MMIO registers
* are inaccessible at this time so this is the only * are inaccessible at this time so this is the only
* way to make this reliably. I tried to use indirect * way to make this reliably (actually, this is no longer
* the case, see above). I tried to use indirect
* register read/write but this upset some 5701 variants. * register read/write but this upset some 5701 variants.
*/ */
pci_read_config_dword(tp->pdev, PCI_COMMAND, &val); pci_read_config_dword(tp->pdev, PCI_COMMAND, &val);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment