Loading drivers/net/wireless/b43/rfkill.c +19 −1 Original line number Diff line number Diff line Loading @@ -43,6 +43,23 @@ static bool b43_is_hw_radio_enabled(struct b43_wldev *dev) return 0; } /* Update the rfkill state */ static void b43_rfkill_update_state(struct b43_wldev *dev) { struct b43_rfkill *rfk = &(dev->wl->rfkill); if (!dev->radio_hw_enable) { rfk->rfkill->state = RFKILL_STATE_HARD_BLOCKED; return; } if (!dev->phy.radio_on) rfk->rfkill->state = RFKILL_STATE_SOFT_BLOCKED; else rfk->rfkill->state = RFKILL_STATE_UNBLOCKED; } /* The poll callback for the hardware button. */ static void b43_rfkill_poll(struct input_polled_dev *poll_dev) { Loading @@ -60,6 +77,7 @@ static void b43_rfkill_poll(struct input_polled_dev *poll_dev) if (unlikely(enabled != dev->radio_hw_enable)) { dev->radio_hw_enable = enabled; report_change = 1; b43_rfkill_update_state(dev); b43info(wl, "Radio hardware status changed to %s\n", enabled ? "ENABLED" : "DISABLED"); } Loading Loading @@ -135,7 +153,7 @@ void b43_rfkill_init(struct b43_wldev *dev) snprintf(rfk->name, sizeof(rfk->name), "b43-%s", wiphy_name(wl->hw->wiphy)); rfk->rfkill->name = rfk->name; rfk->rfkill->state = RFKILL_STATE_ON; rfk->rfkill->state = RFKILL_STATE_UNBLOCKED; rfk->rfkill->data = dev; rfk->rfkill->toggle_radio = b43_rfkill_soft_toggle; rfk->rfkill->user_claim_unsupported = 1; Loading drivers/net/wireless/b43legacy/rfkill.c +19 −1 Original line number Diff line number Diff line Loading @@ -44,6 +44,23 @@ static bool b43legacy_is_hw_radio_enabled(struct b43legacy_wldev *dev) return 0; } /* Update the rfkill state */ static void b43legacy_rfkill_update_state(struct b43legacy_wldev *dev) { struct b43legacy_rfkill *rfk = &(dev->wl->rfkill); if (!dev->radio_hw_enable) { rfk->rfkill->state = RFKILL_STATE_HARD_BLOCKED; return; } if (!dev->phy.radio_on) rfk->rfkill->state = RFKILL_STATE_SOFT_BLOCKED; else rfk->rfkill->state = RFKILL_STATE_UNBLOCKED; } /* The poll callback for the hardware button. */ static void b43legacy_rfkill_poll(struct input_polled_dev *poll_dev) { Loading @@ -61,6 +78,7 @@ static void b43legacy_rfkill_poll(struct input_polled_dev *poll_dev) if (unlikely(enabled != dev->radio_hw_enable)) { dev->radio_hw_enable = enabled; report_change = 1; b43legacy_rfkill_update_state(dev); b43legacyinfo(wl, "Radio hardware status changed to %s\n", enabled ? "ENABLED" : "DISABLED"); } Loading Loading @@ -139,7 +157,7 @@ void b43legacy_rfkill_init(struct b43legacy_wldev *dev) snprintf(rfk->name, sizeof(rfk->name), "b43legacy-%s", wiphy_name(wl->hw->wiphy)); rfk->rfkill->name = rfk->name; rfk->rfkill->state = RFKILL_STATE_ON; rfk->rfkill->state = RFKILL_STATE_UNBLOCKED; rfk->rfkill->data = dev; rfk->rfkill->toggle_radio = b43legacy_rfkill_soft_toggle; rfk->rfkill->user_claim_unsupported = 1; Loading drivers/net/wireless/hostap/hostap_80211_rx.c +21 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,9 @@ int prism2_rx_80211(struct net_device *dev, struct sk_buff *skb, prism_header = 2; phdrlen = sizeof(struct linux_wlan_ng_cap_hdr); } } else if (dev->type == ARPHRD_IEEE80211_RADIOTAP) { prism_header = 3; phdrlen = sizeof(struct hostap_radiotap_rx); } else { prism_header = 0; phdrlen = 0; Loading Loading @@ -165,6 +168,24 @@ hdr->f.status = s; hdr->f.len = l; hdr->f.data = d hdr->ssi_noise = htonl(rx_stats->noise); hdr->preamble = htonl(0); /* unknown */ hdr->encoding = htonl(1); /* cck */ } else if (prism_header == 3) { struct hostap_radiotap_rx *hdr; hdr = (struct hostap_radiotap_rx *)skb_push(skb, phdrlen); memset(hdr, 0, phdrlen); hdr->hdr.it_len = cpu_to_le16(phdrlen); hdr->hdr.it_present = cpu_to_le32((1 << IEEE80211_RADIOTAP_TSFT) | (1 << IEEE80211_RADIOTAP_CHANNEL) | (1 << IEEE80211_RADIOTAP_RATE) | (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | (1 << IEEE80211_RADIOTAP_DBM_ANTNOISE)); hdr->tsft = cpu_to_le64(rx_stats->mac_time); hdr->chan_freq = cpu_to_le16(freq_list[local->channel - 1]); hdr->chan_flags = cpu_to_le16(IEEE80211_CHAN_CCK | IEEE80211_CHAN_2GHZ); hdr->rate = rx_stats->rate / 5; hdr->dbm_antsignal = rx_stats->signal; hdr->dbm_antnoise = rx_stats->noise; } ret = skb->len - phdrlen; Loading drivers/net/wireless/hostap/hostap_hw.c +1 −0 Original line number Diff line number Diff line Loading @@ -3204,6 +3204,7 @@ prism2_init_local_data(struct prism2_helper_functions *funcs, int card_idx, local->auth_algs = PRISM2_AUTH_OPEN | PRISM2_AUTH_SHARED_KEY; local->sram_type = -1; local->scan_channel_mask = 0xffff; local->monitor_type = PRISM2_MONITOR_RADIOTAP; /* Initialize task queue structures */ INIT_WORK(&local->reset_queue, handle_reset_queue); Loading drivers/net/wireless/hostap/hostap_ioctl.c +4 −1 Original line number Diff line number Diff line Loading @@ -897,6 +897,8 @@ static void hostap_monitor_set_type(local_info_t *local) if (local->monitor_type == PRISM2_MONITOR_PRISM || local->monitor_type == PRISM2_MONITOR_CAPHDR) { dev->type = ARPHRD_IEEE80211_PRISM; } else if (local->monitor_type == PRISM2_MONITOR_RADIOTAP) { dev->type = ARPHRD_IEEE80211_RADIOTAP; } else { dev->type = ARPHRD_IEEE80211; } Loading Loading @@ -2520,7 +2522,8 @@ static int prism2_ioctl_priv_prism2_param(struct net_device *dev, case PRISM2_PARAM_MONITOR_TYPE: if (value != PRISM2_MONITOR_80211 && value != PRISM2_MONITOR_CAPHDR && value != PRISM2_MONITOR_PRISM) { value != PRISM2_MONITOR_PRISM && value != PRISM2_MONITOR_RADIOTAP) { ret = -EINVAL; break; } Loading Loading
drivers/net/wireless/b43/rfkill.c +19 −1 Original line number Diff line number Diff line Loading @@ -43,6 +43,23 @@ static bool b43_is_hw_radio_enabled(struct b43_wldev *dev) return 0; } /* Update the rfkill state */ static void b43_rfkill_update_state(struct b43_wldev *dev) { struct b43_rfkill *rfk = &(dev->wl->rfkill); if (!dev->radio_hw_enable) { rfk->rfkill->state = RFKILL_STATE_HARD_BLOCKED; return; } if (!dev->phy.radio_on) rfk->rfkill->state = RFKILL_STATE_SOFT_BLOCKED; else rfk->rfkill->state = RFKILL_STATE_UNBLOCKED; } /* The poll callback for the hardware button. */ static void b43_rfkill_poll(struct input_polled_dev *poll_dev) { Loading @@ -60,6 +77,7 @@ static void b43_rfkill_poll(struct input_polled_dev *poll_dev) if (unlikely(enabled != dev->radio_hw_enable)) { dev->radio_hw_enable = enabled; report_change = 1; b43_rfkill_update_state(dev); b43info(wl, "Radio hardware status changed to %s\n", enabled ? "ENABLED" : "DISABLED"); } Loading Loading @@ -135,7 +153,7 @@ void b43_rfkill_init(struct b43_wldev *dev) snprintf(rfk->name, sizeof(rfk->name), "b43-%s", wiphy_name(wl->hw->wiphy)); rfk->rfkill->name = rfk->name; rfk->rfkill->state = RFKILL_STATE_ON; rfk->rfkill->state = RFKILL_STATE_UNBLOCKED; rfk->rfkill->data = dev; rfk->rfkill->toggle_radio = b43_rfkill_soft_toggle; rfk->rfkill->user_claim_unsupported = 1; Loading
drivers/net/wireless/b43legacy/rfkill.c +19 −1 Original line number Diff line number Diff line Loading @@ -44,6 +44,23 @@ static bool b43legacy_is_hw_radio_enabled(struct b43legacy_wldev *dev) return 0; } /* Update the rfkill state */ static void b43legacy_rfkill_update_state(struct b43legacy_wldev *dev) { struct b43legacy_rfkill *rfk = &(dev->wl->rfkill); if (!dev->radio_hw_enable) { rfk->rfkill->state = RFKILL_STATE_HARD_BLOCKED; return; } if (!dev->phy.radio_on) rfk->rfkill->state = RFKILL_STATE_SOFT_BLOCKED; else rfk->rfkill->state = RFKILL_STATE_UNBLOCKED; } /* The poll callback for the hardware button. */ static void b43legacy_rfkill_poll(struct input_polled_dev *poll_dev) { Loading @@ -61,6 +78,7 @@ static void b43legacy_rfkill_poll(struct input_polled_dev *poll_dev) if (unlikely(enabled != dev->radio_hw_enable)) { dev->radio_hw_enable = enabled; report_change = 1; b43legacy_rfkill_update_state(dev); b43legacyinfo(wl, "Radio hardware status changed to %s\n", enabled ? "ENABLED" : "DISABLED"); } Loading Loading @@ -139,7 +157,7 @@ void b43legacy_rfkill_init(struct b43legacy_wldev *dev) snprintf(rfk->name, sizeof(rfk->name), "b43legacy-%s", wiphy_name(wl->hw->wiphy)); rfk->rfkill->name = rfk->name; rfk->rfkill->state = RFKILL_STATE_ON; rfk->rfkill->state = RFKILL_STATE_UNBLOCKED; rfk->rfkill->data = dev; rfk->rfkill->toggle_radio = b43legacy_rfkill_soft_toggle; rfk->rfkill->user_claim_unsupported = 1; Loading
drivers/net/wireless/hostap/hostap_80211_rx.c +21 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,9 @@ int prism2_rx_80211(struct net_device *dev, struct sk_buff *skb, prism_header = 2; phdrlen = sizeof(struct linux_wlan_ng_cap_hdr); } } else if (dev->type == ARPHRD_IEEE80211_RADIOTAP) { prism_header = 3; phdrlen = sizeof(struct hostap_radiotap_rx); } else { prism_header = 0; phdrlen = 0; Loading Loading @@ -165,6 +168,24 @@ hdr->f.status = s; hdr->f.len = l; hdr->f.data = d hdr->ssi_noise = htonl(rx_stats->noise); hdr->preamble = htonl(0); /* unknown */ hdr->encoding = htonl(1); /* cck */ } else if (prism_header == 3) { struct hostap_radiotap_rx *hdr; hdr = (struct hostap_radiotap_rx *)skb_push(skb, phdrlen); memset(hdr, 0, phdrlen); hdr->hdr.it_len = cpu_to_le16(phdrlen); hdr->hdr.it_present = cpu_to_le32((1 << IEEE80211_RADIOTAP_TSFT) | (1 << IEEE80211_RADIOTAP_CHANNEL) | (1 << IEEE80211_RADIOTAP_RATE) | (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | (1 << IEEE80211_RADIOTAP_DBM_ANTNOISE)); hdr->tsft = cpu_to_le64(rx_stats->mac_time); hdr->chan_freq = cpu_to_le16(freq_list[local->channel - 1]); hdr->chan_flags = cpu_to_le16(IEEE80211_CHAN_CCK | IEEE80211_CHAN_2GHZ); hdr->rate = rx_stats->rate / 5; hdr->dbm_antsignal = rx_stats->signal; hdr->dbm_antnoise = rx_stats->noise; } ret = skb->len - phdrlen; Loading
drivers/net/wireless/hostap/hostap_hw.c +1 −0 Original line number Diff line number Diff line Loading @@ -3204,6 +3204,7 @@ prism2_init_local_data(struct prism2_helper_functions *funcs, int card_idx, local->auth_algs = PRISM2_AUTH_OPEN | PRISM2_AUTH_SHARED_KEY; local->sram_type = -1; local->scan_channel_mask = 0xffff; local->monitor_type = PRISM2_MONITOR_RADIOTAP; /* Initialize task queue structures */ INIT_WORK(&local->reset_queue, handle_reset_queue); Loading
drivers/net/wireless/hostap/hostap_ioctl.c +4 −1 Original line number Diff line number Diff line Loading @@ -897,6 +897,8 @@ static void hostap_monitor_set_type(local_info_t *local) if (local->monitor_type == PRISM2_MONITOR_PRISM || local->monitor_type == PRISM2_MONITOR_CAPHDR) { dev->type = ARPHRD_IEEE80211_PRISM; } else if (local->monitor_type == PRISM2_MONITOR_RADIOTAP) { dev->type = ARPHRD_IEEE80211_RADIOTAP; } else { dev->type = ARPHRD_IEEE80211; } Loading Loading @@ -2520,7 +2522,8 @@ static int prism2_ioctl_priv_prism2_param(struct net_device *dev, case PRISM2_PARAM_MONITOR_TYPE: if (value != PRISM2_MONITOR_80211 && value != PRISM2_MONITOR_CAPHDR && value != PRISM2_MONITOR_PRISM) { value != PRISM2_MONITOR_PRISM && value != PRISM2_MONITOR_RADIOTAP) { ret = -EINVAL; break; } Loading