On 1 June 2011 13:44, Roland Vossen <rvossen@xxxxxxxxxxxx> wrote: > --- a/drivers/staging/brcm80211/include/bcmutils.h > +++ b/drivers/staging/brcm80211/include/bcmutils.h > @@ -366,6 +366,17 @@ extern void bcm_prpkt(const char *msg, struct sk_buff *p0); >    Â} while (0) > Â#endif             /* __BIG_ENDIAN */ > > +#ifdef __mips__ > +/* > + * bcm4716 (which includes 4717 & 4718), plus 4706 on PCIe can reorder > + * transactions. As a fix, a read after write is performed on certain places > + * in the code. Older chips and the newer 5357 family don't require this fix. > + */ Checking for CONFIG_BCM47XX instead of __mips__ would be a bit cleaner and less broad. Although the bcm47x6s are not supported by BCM47XX yet, when the support gets added they will be caught by this without affecting other mips platforms. Perhaps a clean solution would be to introduce a quirk option/value in the pci_bus or pci_dev the driver can use to decide at runtime whether it needs this workaround or not. This would also allow other drivers to check for it if they are also affected by it (even if the probability of this is rather low - at least I haven't seen a bcm47x6 yet with anything other than a broadcom wifi connected to its pcie ;-). Jonas _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel