OSDN Git Service

ath9k_hw: add LDPC support for AR9003
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Thu, 15 Apr 2010 21:39:38 +0000 (17:39 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 16 Apr 2010 19:43:48 +0000 (15:43 -0400)
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ar9003_mac.c
drivers/net/wireless/ath/ath9k/hw.c
drivers/net/wireless/ath/ath9k/hw.h
drivers/net/wireless/ath/ath9k/mac.h

index 582c880..7d111fb 100644 (file)
@@ -330,7 +330,8 @@ static void ar9003_hw_set11n_txdesc(struct ath_hw *ah, void *ds,
                | (flags & ATH9K_TXDESC_EXT_ONLY ? AR_ExtOnly : 0)
                | (flags & ATH9K_TXDESC_EXT_AND_CTL ? AR_ExtAndCtl : 0);
 
-       ads->ctl17 = SM(keyType, AR_EncrType);
+       ads->ctl17 = SM(keyType, AR_EncrType) |
+                    (flags & ATH9K_TXDESC_LDPC ? AR_LDPC : 0);
        ads->ctl18 = 0;
        ads->ctl19 = AR_Not_Sounding;
 
index 55f79f5..e07dd1c 100644 (file)
@@ -2088,7 +2088,7 @@ int ath9k_hw_fill_cap_info(struct ath_hw *ah)
        }
 
        if (AR_SREV_9300_20_OR_LATER(ah)) {
-               pCap->hw_caps |= ATH9K_HW_CAP_EDMA;
+               pCap->hw_caps |= ATH9K_HW_CAP_EDMA | ATH9K_HW_CAP_LDPC;
                pCap->rx_hp_qdepth = ATH9K_HW_RX_HP_QDEPTH;
                pCap->rx_lp_qdepth = ATH9K_HW_RX_LP_QDEPTH;
                pCap->rx_status_len = sizeof(struct ar9003_rxs);
index 9d3796a..7ce5420 100644 (file)
@@ -179,6 +179,7 @@ enum ath9k_hw_caps {
        ATH9K_HW_CAP_4KB_SPLITTRANS             = BIT(16),
        ATH9K_HW_CAP_EDMA                       = BIT(17),
        ATH9K_HW_CAP_RAC_SUPPORTED              = BIT(18),
+       ATH9K_HW_CAP_LDPC                       = BIT(19),
 };
 
 enum ath9k_capability_type {
index b591dc2..346d84a 100644 (file)
@@ -264,6 +264,7 @@ struct ath_desc {
 #define ATH9K_TXDESC_VMF               0x0100
 #define ATH9K_TXDESC_FRAG_IS_ON        0x0200
 #define ATH9K_TXDESC_LOWRXCHAIN                0x0400
+#define ATH9K_TXDESC_LDPC              0x00010000
 
 #define ATH9K_RXDESC_INTREQ            0x0020
 
@@ -413,6 +414,7 @@ struct ar5416_desc {
 #define AR_EncrType         0x0c000000
 #define AR_EncrType_S       26
 #define AR_TxCtlRsvd61      0xf0000000
+#define AR_LDPC             0x80000000
 
 #define AR_2040_0           0x00000001
 #define AR_GI0              0x00000002