aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNaveen Singh <nsingh@atheros.com>2011-04-21 16:30:38 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-04-25 19:24:24 -0400
commit26e58b517487c30f8a7251a3ec76ec569588cc89 (patch)
tree1ca20da9a19b5a39aa89fa3a936b93bb4c52d3bd
parentf3379c3966d80dba99f4d94f1e85f9af3ccaba3a (diff)
ath6kl: add the device ID on the data command packet
The firmware expects the device ID to be added on the data and command packets sent to firmware for AR6003 v2.1.1. Signed-off-by: Naveen Singh <nsingh@atheros.com> Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/ath6kl/include/common/wmi.h23
-rw-r--r--drivers/staging/ath6kl/wmi/wmi.c4
2 files changed, 25 insertions, 2 deletions
diff --git a/drivers/staging/ath6kl/include/common/wmi.h b/drivers/staging/ath6kl/include/common/wmi.h
index 46c641070078..24636e6b9643 100644
--- a/drivers/staging/ath6kl/include/common/wmi.h
+++ b/drivers/staging/ath6kl/include/common/wmi.h
@@ -155,6 +155,16 @@ typedef enum {
155#define WMI_DATA_HDR_GET_META(h) (((h)->info2 >> WMI_DATA_HDR_META_SHIFT) & WMI_DATA_HDR_META_MASK) 155#define WMI_DATA_HDR_GET_META(h) (((h)->info2 >> WMI_DATA_HDR_META_SHIFT) & WMI_DATA_HDR_META_MASK)
156#define WMI_DATA_HDR_SET_META(h, _v) ((h)->info2 = ((h)->info2 & ~(WMI_DATA_HDR_META_MASK << WMI_DATA_HDR_META_SHIFT)) | ((_v) << WMI_DATA_HDR_META_SHIFT)) 156#define WMI_DATA_HDR_SET_META(h, _v) ((h)->info2 = ((h)->info2 & ~(WMI_DATA_HDR_META_MASK << WMI_DATA_HDR_META_SHIFT)) | ((_v) << WMI_DATA_HDR_META_SHIFT))
157 157
158/* Macros for operating on WMI_DATA_HDR (info3) field */
159#define WMI_DATA_HDR_DEVID_MASK 0xF
160#define WMI_DATA_HDR_DEVID_SHIFT 0
161#define GET_DEVID(_v) ((_v) & WMI_DATA_HDR_DEVID_MASK)
162
163#define WMI_DATA_HDR_GET_DEVID(h) \
164 (((h)->info3 >> WMI_DATA_HDR_DEVID_SHIFT) & WMI_DATA_HDR_DEVID_MASK)
165#define WMI_DATA_HDR_SET_DEVID(h, _v) \
166 ((h)->info3 = ((h)->info3 & ~(WMI_DATA_HDR_DEVID_MASK << WMI_DATA_HDR_DEVID_SHIFT)) | (GET_DEVID(_v) << WMI_DATA_HDR_DEVID_SHIFT))
167
158typedef PREPACK struct { 168typedef PREPACK struct {
159 s8 rssi; 169 s8 rssi;
160 u8 info; /* usage of 'info' field(8-bit): 170 u8 info; /* usage of 'info' field(8-bit):
@@ -171,7 +181,7 @@ typedef PREPACK struct {
171 * b12 - A-MSDU? 181 * b12 - A-MSDU?
172 * b15:b13 - META_DATA_VERSION 0 - 7 182 * b15:b13 - META_DATA_VERSION 0 - 7
173 */ 183 */
174 u16 reserved; 184 u16 info3;
175} POSTPACK WMI_DATA_HDR; 185} POSTPACK WMI_DATA_HDR;
176 186
177/* 187/*
@@ -255,6 +265,17 @@ typedef PREPACK struct {
255 265
256 266
257#define WMI_GET_DEVICE_ID(info1) ((info1) & 0xF) 267#define WMI_GET_DEVICE_ID(info1) ((info1) & 0xF)
268/* Macros for operating on WMI_CMD_HDR (info1) field */
269#define WMI_CMD_HDR_DEVID_MASK 0xF
270#define WMI_CMD_HDR_DEVID_SHIFT 0
271#define GET_CMD_DEVID(_v) ((_v) & WMI_CMD_HDR_DEVID_MASK)
272
273#define WMI_CMD_HDR_GET_DEVID(h) \
274 (((h)->info1 >> WMI_CMD_HDR_DEVID_SHIFT) & WMI_CMD_HDR_DEVID_MASK)
275#define WMI_CMD_HDR_SET_DEVID(h, _v) \
276 ((h)->info1 = ((h)->info1 & \
277 ~(WMI_CMD_HDR_DEVID_MASK << WMI_CMD_HDR_DEVID_SHIFT)) | \
278 (GET_CMD_DEVID(_v) << WMI_CMD_HDR_DEVID_SHIFT))
258 279
259/* 280/*
260 * Control Path 281 * Control Path
diff --git a/drivers/staging/ath6kl/wmi/wmi.c b/drivers/staging/ath6kl/wmi/wmi.c
index 7033fc148bd8..c3a1cc5fe7be 100644
--- a/drivers/staging/ath6kl/wmi/wmi.c
+++ b/drivers/staging/ath6kl/wmi/wmi.c
@@ -509,7 +509,8 @@ wmi_data_hdr_add(struct wmi_t *wmip, void *osbuf, u8 msgType, bool bMoreData,
509 } 509 }
510 510
511 WMI_DATA_HDR_SET_META(dtHdr, metaVersion); 511 WMI_DATA_HDR_SET_META(dtHdr, metaVersion);
512 //dtHdr->rssi = 0; 512
513 dtHdr->info3 = 0;
513 514
514 return (0); 515 return (0);
515} 516}
@@ -2986,6 +2987,7 @@ wmi_dataSync_send(struct wmi_t *wmip, void *osbuf, HTC_ENDPOINT_ID eid)
2986 dtHdr->info = 2987 dtHdr->info =
2987 (SYNC_MSGTYPE & WMI_DATA_HDR_MSG_TYPE_MASK) << WMI_DATA_HDR_MSG_TYPE_SHIFT; 2988 (SYNC_MSGTYPE & WMI_DATA_HDR_MSG_TYPE_MASK) << WMI_DATA_HDR_MSG_TYPE_SHIFT;
2988 2989
2990 dtHdr->info3 = 0;
2989 A_DPRINTF(DBG_WMI, (DBGFMT "Enter - eid %d\n", DBGARG, eid)); 2991 A_DPRINTF(DBG_WMI, (DBGFMT "Enter - eid %d\n", DBGARG, eid));
2990 2992
2991 return (A_WMI_CONTROL_TX(wmip->wmi_devt, osbuf, eid)); 2993 return (A_WMI_CONTROL_TX(wmip->wmi_devt, osbuf, eid));