diff --git a/debian/changelog b/debian/changelog index fa1def971..84559264d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,7 @@ linux-2.6 (2.6.32-9) UNRELEASED; urgency=low * [sparc] sunxvr500: Support Intergraph graphics chips again (Closes: #508108) * sfc: Apply fixes from 2.6.33 + * ath9k: Add support for AR2427 [ maximilian attems] * Postinst don't refercence k-p related manpage. (closes: #542208) diff --git a/debian/patches/features/all/ath9k-add-support-for-802.11n-bonded-out-AR2427.patch b/debian/patches/features/all/ath9k-add-support-for-802.11n-bonded-out-AR2427.patch new file mode 100644 index 000000000..c22a7e4dd --- /dev/null +++ b/debian/patches/features/all/ath9k-add-support-for-802.11n-bonded-out-AR2427.patch @@ -0,0 +1,100 @@ +From 5ffaf8a361b4c9025963959a744f21d8173c7669 Mon Sep 17 00:00:00 2001 +From: Luis R. Rodriguez +Date: Tue, 2 Feb 2010 11:58:33 -0500 +Subject: [PATCH] ath9k: add support for 802.11n bonded out AR2427 + +Some single chip family devices are sold in the market with +802.11n bonded out, these have no hardware capability for +802.11n but ath9k can still support them. These are called +AR2427. + +Cc: stable@kernel.org +[bwh: backported to 2.6.32] +Reported-by: Rolf Leggewie +Tested-by: Bernhard Reiter +Signed-off-by: Luis R. Rodriguez +Signed-off-by: John W. Linville +--- + drivers/net/wireless/ath/ath9k/hw.c | 7 ++++++- + drivers/net/wireless/ath/ath9k/hw.h | 1 + + drivers/net/wireless/ath/ath9k/init.c | 4 +++- + drivers/net/wireless/ath/ath9k/pci.c | 1 + + 4 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c +index 0b1dd10..0b1b88f 100644 +--- a/drivers/net/wireless/ath/ath9k/hw.c ++++ b/drivers/net/wireless/ath/ath9k/hw.c +@@ -398,7 +398,6 @@ static void ath9k_hw_init_config(struct ath_hw *ah) + ah->config.pcie_clock_req = 0; + ah->config.pcie_waen = 0; + ah->config.analog_shiftreg = 1; +- ah->config.ht_enable = 1; + ah->config.ofdm_trig_low = 200; + ah->config.ofdm_trig_high = 500; + ah->config.cck_trig_high = 200; +@@ -412,6 +411,11 @@ static void ath9k_hw_init_config(struct ath_hw *ah) + ah->config.spurchans[i][1] = AR_NO_SPUR; + } + ++ if (ah->hw_version.devid != AR2427_DEVID_PCIE) ++ ah->config.ht_enable = 1; ++ else ++ ah->config.ht_enable = 0; ++ + ah->config.intr_mitigation = true; + + /* +@@ -618,5 +622,6 @@ static bool ath9k_hw_devid_supported(u16 devid) + case AR5416_DEVID_AR9287_PCI: + case AR5416_DEVID_AR9287_PCIE: ++ case AR2427_DEVID_PCIE: + return true; + default: + break; +diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h +index ab1f198..dbbf7ca 100644 +--- a/drivers/net/wireless/ath/ath9k/hw.h ++++ b/drivers/net/wireless/ath/ath9k/hw.h +@@ -37,6 +37,7 @@ + #define AR9280_DEVID_PCI 0x0029 + #define AR9280_DEVID_PCIE 0x002a + #define AR9285_DEVID_PCIE 0x002b ++#define AR2427_DEVID_PCIE 0x002c + #define AR5416_AR9100_DEVID 0x000b + #define AR_SUBVENDOR_ID_NOG 0x0e11 + #define AR_SUBVENDOR_ID_NEW_A 0x7065 +diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c +index c3066b5..4b5e548 100644 +--- a/drivers/net/wireless/ath/ath9k/main.c ++++ b/drivers/net/wireless/ath/ath9k/main.c +@@ -1541,11 +1541,13 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw) + hw->flags = IEEE80211_HW_RX_INCLUDES_FCS | + IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING | + IEEE80211_HW_SIGNAL_DBM | +- IEEE80211_HW_AMPDU_AGGREGATION | + IEEE80211_HW_SUPPORTS_PS | + IEEE80211_HW_PS_NULLFUNC_STACK | + IEEE80211_HW_SPECTRUM_MGMT; + ++ if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) ++ hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION; ++ + if (AR_SREV_9160_10_OR_LATER(sc->sc_ah) || modparam_nohwcrypt) + hw->flags |= IEEE80211_HW_MFP_CAPABLE; + +diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c +index f2afcbe..f318b3b 100644 +--- a/drivers/net/wireless/ath/ath9k/pci.c ++++ b/drivers/net/wireless/ath/ath9k/pci.c +@@ -25,6 +25,7 @@ static struct pci_device_id ath_pci_id_table[] __devinitdata = { + { PCI_VDEVICE(ATHEROS, 0x0029) }, /* PCI */ + { PCI_VDEVICE(ATHEROS, 0x002A) }, /* PCI-E */ + { PCI_VDEVICE(ATHEROS, 0x002B) }, /* PCI-E */ ++ { PCI_VDEVICE(ATHEROS, 0x002C) }, /* PCI-E 802.11n bonded out */ + { PCI_VDEVICE(ATHEROS, 0x002D) }, /* PCI */ + { PCI_VDEVICE(ATHEROS, 0x002E) }, /* PCI-E */ + { 0 } +-- +1.6.6.2 + diff --git a/debian/patches/series/9 b/debian/patches/series/9 index d17b76c6e..e7857ed87 100644 --- a/debian/patches/series/9 +++ b/debian/patches/series/9 @@ -17,3 +17,4 @@ + bugfix/all/sfc-Fix-SFE4002-initialisation.patch + bugfix/all/sfc-Fix-sign-of-efx_mcdi_poll_reboot-error-in-efx_mcdi_poll.patch + bugfix/all/sfc-SFE4002-SFN4112F-Widen-temperature-voltage-tolerances.patch ++ features/all/ath9k-add-support-for-802.11n-bonded-out-AR2427.patch