rsi: Update peer notify command frame
TX command frame peer notify is updated to use common descriptor structure. MPDU density value added to the frame. Signed-off-by: Prameela Rani Garnepudi <prameela.j04cs@gmail.com> Signed-off-by: Amitkumar Karwar <amit.karwar@redpinesignals.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
dff80fc5fe
commit
59e006dc77
|
@ -460,10 +460,11 @@ static int rsi_hal_send_sta_notify_frame(struct rsi_common *common,
|
||||||
struct rsi_peer_notify *peer_notify;
|
struct rsi_peer_notify *peer_notify;
|
||||||
u16 vap_id = 0;
|
u16 vap_id = 0;
|
||||||
int status;
|
int status;
|
||||||
|
u16 frame_len = sizeof(struct rsi_peer_notify);
|
||||||
|
|
||||||
rsi_dbg(MGMT_TX_ZONE, "%s: Sending sta notify frame\n", __func__);
|
rsi_dbg(MGMT_TX_ZONE, "%s: Sending sta notify frame\n", __func__);
|
||||||
|
|
||||||
skb = dev_alloc_skb(sizeof(struct rsi_peer_notify));
|
skb = dev_alloc_skb(frame_len);
|
||||||
|
|
||||||
if (!skb) {
|
if (!skb) {
|
||||||
rsi_dbg(ERR_ZONE, "%s: Failed in allocation of skb\n",
|
rsi_dbg(ERR_ZONE, "%s: Failed in allocation of skb\n",
|
||||||
|
@ -471,7 +472,7 @@ static int rsi_hal_send_sta_notify_frame(struct rsi_common *common,
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(skb->data, 0, sizeof(struct rsi_peer_notify));
|
memset(skb->data, 0, frame_len);
|
||||||
peer_notify = (struct rsi_peer_notify *)skb->data;
|
peer_notify = (struct rsi_peer_notify *)skb->data;
|
||||||
|
|
||||||
peer_notify->command = cpu_to_le16(opmode << 1);
|
peer_notify->command = cpu_to_le16(opmode << 1);
|
||||||
|
@ -489,16 +490,16 @@ static int rsi_hal_send_sta_notify_frame(struct rsi_common *common,
|
||||||
|
|
||||||
peer_notify->command |= cpu_to_le16((aid & 0xfff) << 4);
|
peer_notify->command |= cpu_to_le16((aid & 0xfff) << 4);
|
||||||
ether_addr_copy(peer_notify->mac_addr, bssid);
|
ether_addr_copy(peer_notify->mac_addr, bssid);
|
||||||
|
peer_notify->mpdu_density = cpu_to_le16(RSI_MPDU_DENSITY);
|
||||||
peer_notify->sta_flags = cpu_to_le32((qos_enable) ? 1 : 0);
|
peer_notify->sta_flags = cpu_to_le32((qos_enable) ? 1 : 0);
|
||||||
|
|
||||||
peer_notify->desc_word[0] =
|
rsi_set_len_qno(&peer_notify->desc.desc_dword0.len_qno,
|
||||||
cpu_to_le16((sizeof(struct rsi_peer_notify) - FRAME_DESC_SZ) |
|
(frame_len - FRAME_DESC_SZ),
|
||||||
(RSI_WIFI_MGMT_Q << 12));
|
RSI_WIFI_MGMT_Q);
|
||||||
peer_notify->desc_word[1] = cpu_to_le16(PEER_NOTIFY);
|
peer_notify->desc.desc_dword0.frame_type = PEER_NOTIFY;
|
||||||
peer_notify->desc_word[7] |= cpu_to_le16(vap_id << 8);
|
peer_notify->desc.desc_dword3.sta_id = vap_id;
|
||||||
|
|
||||||
skb_put(skb, sizeof(struct rsi_peer_notify));
|
skb_put(skb, frame_len);
|
||||||
|
|
||||||
status = rsi_send_internal_mgmt_frame(common, skb);
|
status = rsi_send_internal_mgmt_frame(common, skb);
|
||||||
|
|
||||||
|
|
|
@ -165,6 +165,8 @@
|
||||||
#define ALLOW_CONN_PEER_MGMT_WHILE_BUF_FULL BIT(5)
|
#define ALLOW_CONN_PEER_MGMT_WHILE_BUF_FULL BIT(5)
|
||||||
#define DISALLOW_BROADCAST_DATA BIT(6)
|
#define DISALLOW_BROADCAST_DATA BIT(6)
|
||||||
|
|
||||||
|
#define RSI_MPDU_DENSITY 0x8
|
||||||
|
|
||||||
enum opmode {
|
enum opmode {
|
||||||
STA_OPMODE = 1,
|
STA_OPMODE = 1,
|
||||||
AP_OPMODE = 2
|
AP_OPMODE = 2
|
||||||
|
@ -270,7 +272,7 @@ struct rsi_boot_params {
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
struct rsi_peer_notify {
|
struct rsi_peer_notify {
|
||||||
__le16 desc_word[8];
|
struct rsi_cmd_desc desc;
|
||||||
u8 mac_addr[6];
|
u8 mac_addr[6];
|
||||||
__le16 command;
|
__le16 command;
|
||||||
__le16 mpdu_density;
|
__le16 mpdu_density;
|
||||||
|
|
Loading…
Reference in New Issue