| From 79e57dd113d307a6c74773b8aaecf5442068988a Mon Sep 17 00:00:00 2001 |
| From: "Vittorio Gambaletta (VittGam)" <linux-wireless@vittgam.net> |
| Date: Wed, 9 Nov 2016 03:40:56 +0200 |
| Subject: ath9k: Really fix LED polarity for some Mini PCI AR9220 MB92 cards. |
| |
| From: Vittorio Gambaletta (VittGam) <linux-wireless@vittgam.net> |
| |
| commit 79e57dd113d307a6c74773b8aaecf5442068988a upstream. |
| |
| The active_high LED of my Wistron DNMA-92 is still being recognized as |
| active_low on 4.7.6 mainline. When I was preparing my former commit |
| 0f9edcdd88a9 ("ath9k: Fix LED polarity for some Mini PCI AR9220 MB92 |
| cards.") to fix that I must have somehow messed up with testing, because |
| I tested the final version of that patch before sending it, and it was |
| apparently working; but now it is not working on 4.7.6 mainline. |
| |
| I initially added the PCI_DEVICE_SUB section for 0x0029/0x2096 above the |
| PCI_VDEVICE section for 0x0029; but then I moved the former below the |
| latter after seeing how 0x002A sections were sorted in the file. |
| |
| This turned out to be wrong: if a generic PCI_VDEVICE entry (that has |
| both subvendor and subdevice IDs set to PCI_ANY_ID) is put before a more |
| specific one (PCI_DEVICE_SUB), then the generic PCI_VDEVICE entry will |
| match first and will be used. |
| |
| With this patch, 0x0029/0x2096 has finally got active_high LED on 4.7.6. |
| |
| While I'm at it, let's fix 0x002A too by also moving its generic definition |
| below its specific ones. |
| |
| Fixes: 0f9edcdd88a9 ("ath9k: Fix LED polarity for some Mini PCI AR9220 MB92 cards.") |
| Signed-off-by: Vittorio Gambaletta <linuxbugs@vittgam.net> |
| [kvalo@qca.qualcomm.com: improve the commit log based on email discussions] |
| Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/wireless/ath/ath9k/pci.c | 7 +++++-- |
| 1 file changed, 5 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/net/wireless/ath/ath9k/pci.c |
| +++ b/drivers/net/wireless/ath/ath9k/pci.c |
| @@ -26,7 +26,6 @@ static const struct pci_device_id ath_pc |
| { PCI_VDEVICE(ATHEROS, 0x0023) }, /* PCI */ |
| { PCI_VDEVICE(ATHEROS, 0x0024) }, /* PCI-E */ |
| { PCI_VDEVICE(ATHEROS, 0x0027) }, /* PCI */ |
| - { PCI_VDEVICE(ATHEROS, 0x0029) }, /* PCI */ |
| |
| #ifdef CONFIG_ATH9K_PCOEM |
| /* Mini PCI AR9220 MB92 cards: Compex WLM200NX, Wistron DNMA-92 */ |
| @@ -37,7 +36,7 @@ static const struct pci_device_id ath_pc |
| .driver_data = ATH9K_PCI_LED_ACT_HI }, |
| #endif |
| |
| - { PCI_VDEVICE(ATHEROS, 0x002A) }, /* PCI-E */ |
| + { PCI_VDEVICE(ATHEROS, 0x0029) }, /* PCI */ |
| |
| #ifdef CONFIG_ATH9K_PCOEM |
| { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, |
| @@ -85,7 +84,11 @@ static const struct pci_device_id ath_pc |
| 0x10CF, /* Fujitsu */ |
| 0x1536), |
| .driver_data = ATH9K_PCI_D3_L1_WAR }, |
| +#endif |
| |
| + { PCI_VDEVICE(ATHEROS, 0x002A) }, /* PCI-E */ |
| + |
| +#ifdef CONFIG_ATH9K_PCOEM |
| /* AR9285 card for Asus */ |
| { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, |
| 0x002B, |