II. Does this help b43 DMA errors?
Thanks for testing the other patch. To try to test the differences, I also dumped the PCI configuration writes and found one that wl does. Please see if this one helps. Larry Index: wireless-testing/drivers/ssb/driver_pcicore.c === --- wireless-testing.orig/drivers/ssb/driver_pcicore.c +++ wireless-testing/drivers/ssb/driver_pcicore.c @@ -325,6 +325,8 @@ static void ssb_pcicore_fixup_pcibridge( ssb_printk(KERN_INFO PCI: Fixing latency timer of device %s to %u\n, pci_name(dev), lat); pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat); + + pci_write_config_dword(dev, 0x40, 0x6030001); } DECLARE_PCI_FIXUP_EARLY(PCI_ANY_ID, PCI_ANY_ID, ssb_pcicore_fixup_pcibridge); ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
Re: II. Does this help b43 DMA errors?
On Saturday 28 November 2009 18:12:20 Larry Finger wrote: Thanks for testing the other patch. To try to test the differences, I also dumped the PCI configuration writes and found one that wl does. Please see if this one helps. Larry Index: wireless-testing/drivers/ssb/driver_pcicore.c === --- wireless-testing.orig/drivers/ssb/driver_pcicore.c +++ wireless-testing/drivers/ssb/driver_pcicore.c @@ -325,6 +325,8 @@ static void ssb_pcicore_fixup_pcibridge( ssb_printk(KERN_INFO PCI: Fixing latency timer of device %s to %u\n, pci_name(dev), lat); pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat); + + pci_write_config_dword(dev, 0x40, 0x6030001); } DECLARE_PCI_FIXUP_EARLY(PCI_ANY_ID, PCI_ANY_ID, ssb_pcicore_fixup_pcibridge); Uhm, this code is for embedded MIPS, only. -- Greetings, Michael. ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
Re: II. Does this help b43 DMA errors?
On 11/28/2009 11:31 AM, Michael Buesch wrote: On Saturday 28 November 2009 18:12:20 Larry Finger wrote: Thanks for testing the other patch. To try to test the differences, I also dumped the PCI configuration writes and found one that wl does. Please see if this one helps. Larry Index: wireless-testing/drivers/ssb/driver_pcicore.c === --- wireless-testing.orig/drivers/ssb/driver_pcicore.c +++ wireless-testing/drivers/ssb/driver_pcicore.c @@ -325,6 +325,8 @@ static void ssb_pcicore_fixup_pcibridge( ssb_printk(KERN_INFO PCI: Fixing latency timer of device %s to %u\n, pci_name(dev), lat); pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat); + +pci_write_config_dword(dev, 0x40, 0x6030001); } DECLARE_PCI_FIXUP_EARLY(PCI_ANY_ID, PCI_ANY_ID, ssb_pcicore_fixup_pcibridge); Uhm, this code is for embedded MIPS, only. On my x86_64 system, I get the Fixing latency ... message printed out just before the code writes 0x40 to PCI-E configuration register 0x0d (PCI_LATENCY_TIMER). The wl driver does that same write on my machine. Do you have any knowledge as to why this number is increased from the default of 32? Larry ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
Re: II. Does this help b43 DMA errors?
On 28/11/09 17:12, Larry Finger wrote: Thanks for testing the other patch. To try to test the differences, I also dumped the PCI configuration writes and found one that wl does. Please see if this one helps. Larry Index: wireless-testing/drivers/ssb/driver_pcicore.c === --- wireless-testing.orig/drivers/ssb/driver_pcicore.c +++ wireless-testing/drivers/ssb/driver_pcicore.c @@ -325,6 +325,8 @@ static void ssb_pcicore_fixup_pcibridge( ssb_printk(KERN_INFO PCI: Fixing latency timer of device %s to %u\n, pci_name(dev), lat); pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat); + + pci_write_config_dword(dev, 0x40, 0x6030001); } DECLARE_PCI_FIXUP_EARLY(PCI_ANY_ID, PCI_ANY_ID, ssb_pcicore_fixup_pcibridge); Sorry, this one also doesn't help. Thanks for trying, Andy ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
Re: II. Does this help b43 DMA errors?
On Saturday 28 November 2009 19:03:30 Larry Finger wrote: On my x86_64 system, I get the Fixing latency ... message printed out just before the code writes 0x40 to PCI-E configuration register 0x0d (PCI_LATENCY_TIMER). The wl driver does that same write on my machine. Do you have any knowledge as to why this number is increased from the default of 32? The code should not even be compiled on that system. If the code is really executed, that's a serious breakage. The code is ifdefed unter CONFIG_SSB_PCICORE_HOSTMODE. This config option must not be enabled on anything but MIPS. I think, however, enabling CONFIG_SSB_PCICORE_HOSTMODE should lead to compile failures on anything but MIPS. (And the code writes 0xA8, not 0x40.) -- Greetings, Michael. ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
Re: II. Does this help b43 DMA errors?
On 11/28/2009 01:59 PM, Michael Buesch wrote: The code should not even be compiled on that system. If the code is really executed, that's a serious breakage. The code is ifdefed unter CONFIG_SSB_PCICORE_HOSTMODE. This config option must not be enabled on anything but MIPS. I think, however, enabling CONFIG_SSB_PCICORE_HOSTMODE should lead to compile failures on anything but MIPS. I found where my system is changing the latency in arch/x86/pci/i386.c. Sorry for the noise. Larry ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
III. Does this help b43 DMA errors?
Sorry about the problem with the previous try. This one does write the PCI configuration the same as wl does. Please see if this one helps. Larry Index: wireless-testing/drivers/ssb/pci.c === --- wireless-testing.orig/drivers/ssb/pci.c +++ wireless-testing/drivers/ssb/pci.c @@ -567,6 +567,8 @@ static int sprom_extract(struct ssb_bus const u16 *in, u16 size) { pci_write_config_dword(bus-host_pci, 0x40, 0x6030001); + printk(KERN_DEBUG ssb: Set PCI Configuration word 0x40 to + 0x6030001\n); memset(out, 0, sizeof(*out)); ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
Re: III. Does this help b43 DMA errors?
??? This only adds a printk... On Sun, Nov 29, 2009 at 12:43 AM, Larry Finger larry.fin...@lwfinger.net wrote: Sorry about the problem with the previous try. This one does write the PCI configuration the same as wl does. Please see if this one helps. Larry Index: wireless-testing/drivers/ssb/pci.c === --- wireless-testing.orig/drivers/ssb/pci.c +++ wireless-testing/drivers/ssb/pci.c @@ -567,6 +567,8 @@ static int sprom_extract(struct ssb_bus const u16 *in, u16 size) { pci_write_config_dword(bus-host_pci, 0x40, 0x6030001); + printk(KERN_DEBUG ssb: Set PCI Configuration word 0x40 to + 0x6030001\n); memset(out, 0, sizeof(*out)); ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev -- Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-) ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
Re: III. Does this help b43 DMA errors?
2009/11/29 Larry Finger larry.fin...@lwfinger.net: Sorry about the problem with the previous try. This one does write the PCI configuration the same as wl does. Please see if this one helps. Larry Index: wireless-testing/drivers/ssb/pci.c === --- wireless-testing.orig/drivers/ssb/pci.c +++ wireless-testing/drivers/ssb/pci.c @@ -567,6 +567,8 @@ static int sprom_extract(struct ssb_bus const u16 *in, u16 size) { pci_write_config_dword(bus-host_pci, 0x40, 0x6030001); + printk(KERN_DEBUG ssb: Set PCI Configuration word 0x40 to + 0x6030001\n); memset(out, 0, sizeof(*out)); I keep staring at this... And I think you attached patch to locally patched tree. -- Rafał ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
Re: III. Does this help b43 DMA errors?
On Sunday 29 November 2009 00:43:29 Larry Finger wrote: Sorry about the problem with the previous try. This one does write the PCI configuration the same as wl does. Please see if this one helps. Index: wireless-testing/drivers/ssb/pci.c === --- wireless-testing.orig/drivers/ssb/pci.c +++ wireless-testing/drivers/ssb/pci.c @@ -567,6 +567,8 @@ static int sprom_extract(struct ssb_bus const u16 *in, u16 size) { pci_write_config_dword(bus-host_pci, 0x40, 0x6030001); + printk(KERN_DEBUG ssb: Set PCI Configuration word 0x40 to + 0x6030001\n); memset(out, 0, sizeof(*out)); /me scratches head quilt refresh? ;) -- Greetings, Michael. ___ Bcm43xx-dev mailing list Bcm43xx-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/bcm43xx-dev