Hi, If possible, please test this patch starting from a cold boot. It is a variation of something we tried earlier, but enough different to try it.
Thanks, Larry
In exploring the cause of DMA errors for BCM4312 devices on Atom processors, other drivers that work write to PCI configuration register 0x40. The code fragment below was found in the open-code portion of the Broadcom hybrid wl driver. It is also used in the ipw2100 and ath9k drivers. In the latter case, it had been removed and later restored to prevent fatal interrupt errors. Signed-off-by: Larry Finger <[email protected]> --- Index: wireless-testing/drivers/net/wireless/b43/main.c =================================================================== --- wireless-testing.orig/drivers/net/wireless/b43/main.c +++ wireless-testing/drivers/net/wireless/b43/main.c @@ -4292,6 +4292,15 @@ static int b43_wireless_core_init(struct setup_struct_wldev_for_init(dev); phy->ops->prepare_structs(dev); + /* We disable the RETRY_TIMEOUT register (0x41) to keep + * PCI Tx retries from interfering with C3 CPU state + * This code fragment found in the Broadcom hybrid wl driver + */ + pci_read_config_dword(bus->host_pci, 0x40, &tmp); + if ((tmp & 0x0000ff00) != 0) + pci_write_config_dword(bus->host_pci, 0x40, tmp & + ~(0x0000ff00)); + /* Enable IRQ routing to this device. */ ssb_pcicore_dev_irqvecs_enable(&bus->pcicore, dev->dev);
_______________________________________________ Bcm43xx-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
