aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath6kl
diff options
context:
space:
mode:
authorMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>2012-09-27 08:49:52 -0400
committerKalle Valo <kvalo@qca.qualcomm.com>2012-10-24 04:49:57 -0400
commit171fe76877d3d8071a901e64eb63eeee6c7760a2 (patch)
tree3a76fe85cc2e72d0a58fb120e5824d550a3f2205 /drivers/net/wireless/ath/ath6kl
parent7ac25eacc6766617edaac69d928f431a9983ccf2 (diff)
ath6kl: Fix mapping uplink endpoint for AR6004
AR6004(UB134) firmware supports only LP Endpoint, So map all Access Categories to Low Priority endpoints. This fixes a WPA2 connection issue as the uplink(tx) endpoint is appropriately mapped in sync with the firmware. Tested-by: Ben Gray <ben.r.gray@gmail.com> Reported-by: Ben Gray <ben.r.gray@gmail.com> Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl')
-rw-r--r--drivers/net/wireless/ath/ath6kl/core.h1
-rw-r--r--drivers/net/wireless/ath/ath6kl/init.c5
-rw-r--r--drivers/net/wireless/ath/ath6kl/usb.c12
3 files changed, 14 insertions, 4 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/core.h b/drivers/net/wireless/ath/ath6kl/core.h
index 95fc9b37e6a..1778bd3c732 100644
--- a/drivers/net/wireless/ath/ath6kl/core.h
+++ b/drivers/net/wireless/ath/ath6kl/core.h
@@ -151,6 +151,7 @@ struct ath6kl_fw_ie {
151enum ath6kl_hw_flags { 151enum ath6kl_hw_flags {
152 ATH6KL_HW_64BIT_RATES = BIT(0), 152 ATH6KL_HW_64BIT_RATES = BIT(0),
153 ATH6KL_HW_AP_INACTIVITY_MINS = BIT(1), 153 ATH6KL_HW_AP_INACTIVITY_MINS = BIT(1),
154 ATH6KL_HW_MAP_LP_ENDPOINT = BIT(2),
154}; 155};
155 156
156#define ATH6KL_FW_API2_FILE "fw-2.bin" 157#define ATH6KL_FW_API2_FILE "fw-2.bin"
diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c
index 7ffb8533986..bb6aeea1c87 100644
--- a/drivers/net/wireless/ath/ath6kl/init.c
+++ b/drivers/net/wireless/ath/ath6kl/init.c
@@ -155,7 +155,8 @@ static const struct ath6kl_hw hw_list[] = {
155 .refclk_hz = 40000000, 155 .refclk_hz = 40000000,
156 .uarttx_pin = 11, 156 .uarttx_pin = 11,
157 .flags = ATH6KL_HW_64BIT_RATES | 157 .flags = ATH6KL_HW_64BIT_RATES |
158 ATH6KL_HW_AP_INACTIVITY_MINS, 158 ATH6KL_HW_AP_INACTIVITY_MINS |
159 ATH6KL_HW_MAP_LP_ENDPOINT,
159 160
160 .fw = { 161 .fw = {
161 .dir = AR6004_HW_1_3_FW_DIR, 162 .dir = AR6004_HW_1_3_FW_DIR,
@@ -360,7 +361,7 @@ static int ath6kl_init_service_ep(struct ath6kl *ar)
360 if (ath6kl_connectservice(ar, &connect, "WMI DATA BK")) 361 if (ath6kl_connectservice(ar, &connect, "WMI DATA BK"))
361 return -EIO; 362 return -EIO;
362 363
363 /* connect to Video service, map this to to HI PRI */ 364 /* connect to Video service, map this to HI PRI */
364 connect.svc_id = WMI_DATA_VI_SVC; 365 connect.svc_id = WMI_DATA_VI_SVC;
365 if (ath6kl_connectservice(ar, &connect, "WMI DATA VI")) 366 if (ath6kl_connectservice(ar, &connect, "WMI DATA VI"))
366 return -EIO; 367 return -EIO;
diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c
index 2014fac4274..62bcc0d5bc2 100644
--- a/drivers/net/wireless/ath/ath6kl/usb.c
+++ b/drivers/net/wireless/ath/ath6kl/usb.c
@@ -805,7 +805,11 @@ static int ath6kl_usb_map_service_pipe(struct ath6kl *ar, u16 svc_id,
805 *dl_pipe = ATH6KL_USB_PIPE_RX_DATA; 805 *dl_pipe = ATH6KL_USB_PIPE_RX_DATA;
806 break; 806 break;
807 case WMI_DATA_VI_SVC: 807 case WMI_DATA_VI_SVC:
808 *ul_pipe = ATH6KL_USB_PIPE_TX_DATA_MP; 808
809 if (ar->hw.flags & ATH6KL_HW_MAP_LP_ENDPOINT)
810 *ul_pipe = ATH6KL_USB_PIPE_TX_DATA_LP;
811 else
812 *ul_pipe = ATH6KL_USB_PIPE_TX_DATA_MP;
809 /* 813 /*
810 * Disable rxdata2 directly, it will be enabled 814 * Disable rxdata2 directly, it will be enabled
811 * if FW enable rxdata2 815 * if FW enable rxdata2
@@ -813,7 +817,11 @@ static int ath6kl_usb_map_service_pipe(struct ath6kl *ar, u16 svc_id,
813 *dl_pipe = ATH6KL_USB_PIPE_RX_DATA; 817 *dl_pipe = ATH6KL_USB_PIPE_RX_DATA;
814 break; 818 break;
815 case WMI_DATA_VO_SVC: 819 case WMI_DATA_VO_SVC:
816 *ul_pipe = ATH6KL_USB_PIPE_TX_DATA_HP; 820
821 if (ar->hw.flags & ATH6KL_HW_MAP_LP_ENDPOINT)
822 *ul_pipe = ATH6KL_USB_PIPE_TX_DATA_LP;
823 else
824 *ul_pipe = ATH6KL_USB_PIPE_TX_DATA_MP;
817 /* 825 /*
818 * Disable rxdata2 directly, it will be enabled 826 * Disable rxdata2 directly, it will be enabled
819 * if FW enable rxdata2 827 * if FW enable rxdata2