Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 266612
b: refs/heads/master
c: 82e14f5
h: refs/heads/master
v: v3
  • Loading branch information
Jouni Malinen authored and Kalle Valo committed Sep 22, 2011
1 parent fc39e44 commit 338312c
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 51 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 457fb0415a887b6389854b850e9815cf0ec44178
refs/heads/master: 82e14f56f7408cb13c47eef9fd6922f22e88109a
37 changes: 9 additions & 28 deletions trunk/drivers/net/wireless/ath/ath6kl/wmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -381,25 +381,6 @@ int ath6kl_wmi_dot3_2_dix(struct sk_buff *skb)
return 0;
}

static void ath6kl_wmi_convert_bssinfo_hdr2_to_hdr(struct sk_buff *skb,
u8 *datap)
{
struct wmi_bss_info_hdr2 bih2;
struct wmi_bss_info_hdr *bih;

memcpy(&bih2, datap, sizeof(struct wmi_bss_info_hdr2));

skb_push(skb, 4);
bih = (struct wmi_bss_info_hdr *) skb->data;

bih->ch = bih2.ch;
bih->frame_type = bih2.frame_type;
bih->snr = bih2.snr;
bih->rssi = a_cpu_to_sle16(bih2.snr - 95);
bih->ie_mask = cpu_to_le32(le16_to_cpu(bih2.ie_mask));
memcpy(bih->bssid, bih2.bssid, ETH_ALEN);
}

static int ath6kl_wmi_tx_complete_event_rx(u8 *datap, int len)
{
struct tx_complete_msg_v1 *msg_v1;
Expand Down Expand Up @@ -912,24 +893,24 @@ static int ath6kl_wmi_tkip_micerr_event_rx(struct wmi *wmi, u8 *datap, int len)

static int ath6kl_wmi_bssinfo_event_rx(struct wmi *wmi, u8 *datap, int len)
{
struct wmi_bss_info_hdr *bih;
struct wmi_bss_info_hdr2 *bih;
u8 *buf;
struct ieee80211_channel *channel;
struct ath6kl *ar = wmi->parent_dev;
struct ieee80211_mgmt *mgmt;
struct cfg80211_bss *bss;

if (len <= sizeof(struct wmi_bss_info_hdr))
if (len <= sizeof(struct wmi_bss_info_hdr2))
return -EINVAL;

bih = (struct wmi_bss_info_hdr *) datap;
buf = datap + sizeof(struct wmi_bss_info_hdr);
len -= sizeof(struct wmi_bss_info_hdr);
bih = (struct wmi_bss_info_hdr2 *) datap;
buf = datap + sizeof(struct wmi_bss_info_hdr2);
len -= sizeof(struct wmi_bss_info_hdr2);

ath6kl_dbg(ATH6KL_DBG_WMI,
"bss info evt - ch %u, snr %d, rssi %d, bssid \"%pM\" "
"frame_type=%d\n",
bih->ch, bih->snr, a_sle16_to_cpu(bih->rssi), bih->bssid,
bih->ch, bih->snr, bih->snr - 95, bih->bssid,
bih->frame_type);

if (bih->frame_type != BEACON_FTYPE &&
Expand Down Expand Up @@ -973,7 +954,8 @@ static int ath6kl_wmi_bssinfo_event_rx(struct wmi *wmi, u8 *datap, int len)
memcpy(&mgmt->u.beacon, buf, len);

bss = cfg80211_inform_bss_frame(ar->wdev->wiphy, channel, mgmt,
24 + len, bih->snr * 100, GFP_ATOMIC);
24 + len, (bih->snr - 95) * 100,
GFP_ATOMIC);
kfree(mgmt);
if (bss == NULL)
return -ENOMEM;
Expand Down Expand Up @@ -2859,8 +2841,7 @@ int ath6kl_wmi_control_rx(struct wmi *wmi, struct sk_buff *skb)
break;
case WMI_BSSINFO_EVENTID:
ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_BSSINFO_EVENTID\n");
ath6kl_wmi_convert_bssinfo_hdr2_to_hdr(skb, datap);
ret = ath6kl_wmi_bssinfo_event_rx(wmi, skb->data, skb->len);
ret = ath6kl_wmi_bssinfo_event_rx(wmi, datap, len);
break;
case WMI_REGDOMAIN_EVENTID:
ath6kl_dbg(ATH6KL_DBG_WMI, "WMI_REGDOMAIN_EVENTID\n");
Expand Down
25 changes: 3 additions & 22 deletions trunk/drivers/net/wireless/ath/ath6kl/wmi.h
Original file line number Diff line number Diff line change
Expand Up @@ -1393,33 +1393,14 @@ struct roam_ctrl_cmd {
u8 roam_ctrl;
} __packed;

struct wmi_bss_info_hdr {
__le16 ch;

/* see, enum wmi_bi_ftype */
u8 frame_type;

u8 snr;
a_sle16 rssi;
u8 bssid[ETH_ALEN];
__le32 ie_mask;
} __packed;

/*
* BSS INFO HDR version 2.0
* With 6 bytes HTC header and 6 bytes of WMI header
* WMI_BSS_INFO_HDR cannot be accommodated in the removed 802.11 management
* header space.
* - Reduce the ie_mask to 2 bytes as only two bit flags are used
* - Remove rssi and compute it on the host. rssi = snr - 95
*/
/* BSS INFO HDR version 2.0 */
struct wmi_bss_info_hdr2 {
__le16 ch;
__le16 ch; /* frequency in MHz */

/* see, enum wmi_bi_ftype */
u8 frame_type;

u8 snr;
u8 snr; /* note: rssi = snr - 95 dBm */
u8 bssid[ETH_ALEN];
__le16 ie_mask;
} __packed;
Expand Down

0 comments on commit 338312c

Please sign in to comment.