rsi: update set_antenna command frame
TX command frame set_antenna is modified to use common descriptor structure. Also it's subframe type is set. Signed-off-by: Pavani Muthyala <pavani.muthyala@redpinesignals.com> Signed-off-by: Amitkumar Karwar <amit.karwar@redpinesignals.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
edba3532c6
commit
588349a1fe
|
@ -1407,7 +1407,7 @@ int rsi_send_rx_filter_frame(struct rsi_common *common, u16 rx_filter_word)
|
||||||
*/
|
*/
|
||||||
int rsi_set_antenna(struct rsi_common *common, u8 antenna)
|
int rsi_set_antenna(struct rsi_common *common, u8 antenna)
|
||||||
{
|
{
|
||||||
struct rsi_mac_frame *cmd_frame;
|
struct rsi_ant_sel_frame *ant_sel_frame;
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
|
|
||||||
skb = dev_alloc_skb(FRAME_DESC_SZ);
|
skb = dev_alloc_skb(FRAME_DESC_SZ);
|
||||||
|
@ -1418,12 +1418,13 @@ int rsi_set_antenna(struct rsi_common *common, u8 antenna)
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(skb->data, 0, FRAME_DESC_SZ);
|
memset(skb->data, 0, FRAME_DESC_SZ);
|
||||||
cmd_frame = (struct rsi_mac_frame *)skb->data;
|
|
||||||
|
|
||||||
cmd_frame->desc_word[1] = cpu_to_le16(ANT_SEL_FRAME);
|
|
||||||
cmd_frame->desc_word[3] = cpu_to_le16(antenna & 0x00ff);
|
|
||||||
cmd_frame->desc_word[0] = cpu_to_le16(RSI_WIFI_MGMT_Q << 12);
|
|
||||||
|
|
||||||
|
ant_sel_frame = (struct rsi_ant_sel_frame *)skb->data;
|
||||||
|
ant_sel_frame->desc_dword0.frame_type = ANT_SEL_FRAME;
|
||||||
|
ant_sel_frame->sub_frame_type = ANTENNA_SEL_TYPE;
|
||||||
|
ant_sel_frame->ant_value = cpu_to_le16(antenna & ANTENNA_MASK_VALUE);
|
||||||
|
rsi_set_len_qno(&ant_sel_frame->desc_dword0.len_qno,
|
||||||
|
0, RSI_WIFI_MGMT_Q);
|
||||||
skb_put(skb, FRAME_DESC_SZ);
|
skb_put(skb, FRAME_DESC_SZ);
|
||||||
|
|
||||||
return rsi_send_internal_mgmt_frame(common, skb);
|
return rsi_send_internal_mgmt_frame(common, skb);
|
||||||
|
|
|
@ -155,6 +155,8 @@
|
||||||
|
|
||||||
#define ANTENNA_SEL_INT 0x02 /* RF_OUT_2 / Integerated */
|
#define ANTENNA_SEL_INT 0x02 /* RF_OUT_2 / Integerated */
|
||||||
#define ANTENNA_SEL_UFL 0x03 /* RF_OUT_1 / U.FL */
|
#define ANTENNA_SEL_UFL 0x03 /* RF_OUT_1 / U.FL */
|
||||||
|
#define ANTENNA_MASK_VALUE 0x00ff
|
||||||
|
#define ANTENNA_SEL_TYPE 1
|
||||||
|
|
||||||
/* Rx filter word definitions */
|
/* Rx filter word definitions */
|
||||||
#define PROMISCOUS_MODE BIT(0)
|
#define PROMISCOUS_MODE BIT(0)
|
||||||
|
@ -348,6 +350,15 @@ struct rsi_vap_caps {
|
||||||
__le16 beacon_miss_threshold;
|
__le16 beacon_miss_threshold;
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
|
struct rsi_ant_sel_frame {
|
||||||
|
struct rsi_cmd_desc_dword0 desc_dword0;
|
||||||
|
u8 reserved;
|
||||||
|
u8 sub_frame_type;
|
||||||
|
__le16 ant_value;
|
||||||
|
__le32 reserved1;
|
||||||
|
__le32 reserved2;
|
||||||
|
} __packed;
|
||||||
|
|
||||||
/* Key descriptor flags */
|
/* Key descriptor flags */
|
||||||
#define RSI_KEY_TYPE_BROADCAST BIT(1)
|
#define RSI_KEY_TYPE_BROADCAST BIT(1)
|
||||||
#define RSI_WEP_KEY BIT(2)
|
#define RSI_WEP_KEY BIT(2)
|
||||||
|
|
Loading…
Reference in New Issue