201-ath5k-WAR-for-AR71xx-PCI-bug.patch 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. --- a/drivers/net/wireless/ath/ath5k/initvals.c
  2. +++ b/drivers/net/wireless/ath/ath5k/initvals.c
  3. @@ -62,8 +62,14 @@ static const struct ath5k_ini ar5210_ini
  4. { AR5K_IMR, 0 },
  5. { AR5K_IER, AR5K_IER_DISABLE },
  6. { AR5K_BSR, 0, AR5K_INI_READ },
  7. +#if !defined(CONFIG_ATHEROS_AR71XX) && !defined(CONFIG_ATH79)
  8. { AR5K_TXCFG, AR5K_DMASIZE_128B },
  9. { AR5K_RXCFG, AR5K_DMASIZE_128B },
  10. +#else
  11. + /* WAR for AR71xx PCI bug */
  12. + { AR5K_TXCFG, AR5K_DMASIZE_128B },
  13. + { AR5K_RXCFG, AR5K_DMASIZE_4B },
  14. +#endif
  15. { AR5K_CFG, AR5K_INIT_CFG },
  16. { AR5K_TOPS, 8 },
  17. { AR5K_RXNOFRM, 8 },
  18. --- a/drivers/net/wireless/ath/ath5k/dma.c
  19. +++ b/drivers/net/wireless/ath/ath5k/dma.c
  20. @@ -869,10 +869,18 @@ ath5k_hw_dma_init(struct ath5k_hw *ah)
  21. * guess we can tweak it and see how it goes ;-)
  22. */
  23. if (ah->ah_version != AR5K_AR5210) {
  24. +#if !defined(CONFIG_ATHEROS_AR71XX) && !defined(CONFIG_ATH79)
  25. AR5K_REG_WRITE_BITS(ah, AR5K_TXCFG,
  26. AR5K_TXCFG_SDMAMR, AR5K_DMASIZE_128B);
  27. AR5K_REG_WRITE_BITS(ah, AR5K_RXCFG,
  28. AR5K_RXCFG_SDMAMW, AR5K_DMASIZE_128B);
  29. +#else
  30. + /* WAR for AR71xx PCI bug */
  31. + AR5K_REG_WRITE_BITS(ah, AR5K_TXCFG,
  32. + AR5K_TXCFG_SDMAMR, AR5K_DMASIZE_128B);
  33. + AR5K_REG_WRITE_BITS(ah, AR5K_RXCFG,
  34. + AR5K_RXCFG_SDMAMW, AR5K_DMASIZE_4B);
  35. +#endif
  36. }
  37. /* Pre-enable interrupts on 5211/5212*/