Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 158829
b: refs/heads/master
c: 257862f
h: refs/heads/master
i:
  158827: c52c163
v: v3
  • Loading branch information
Zhu Yi authored and John W. Linville committed Jul 10, 2009
1 parent 41ce51a commit 741a4b8
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 33 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: 3549716484a95fd16f7fcf8b68699bd4c803b382
refs/heads/master: 257862f3faef397f1a677ae6a5a1828fa00a97b1
24 changes: 24 additions & 0 deletions trunk/drivers/net/wireless/iwmc3200wifi/cfg80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -500,6 +500,28 @@ static int iwm_cfg80211_leave_ibss(struct wiphy *wiphy, struct net_device *dev)
return 0;
}

static int iwm_cfg80211_set_txpower(struct wiphy *wiphy,
enum tx_power_setting type, int dbm)
{
switch (type) {
case TX_POWER_AUTOMATIC:
return 0;
default:
return -EOPNOTSUPP;
}

return 0;
}

static int iwm_cfg80211_get_txpower(struct wiphy *wiphy, int *dbm)
{
struct iwm_priv *iwm = wiphy_to_iwm(wiphy);

*dbm = iwm->txpower;

return 0;
}

static struct cfg80211_ops iwm_cfg80211_ops = {
.change_virtual_intf = iwm_cfg80211_change_iface,
.add_key = iwm_cfg80211_add_key,
Expand All @@ -510,6 +532,8 @@ static struct cfg80211_ops iwm_cfg80211_ops = {
.set_wiphy_params = iwm_cfg80211_set_wiphy_params,
.join_ibss = iwm_cfg80211_join_ibss,
.leave_ibss = iwm_cfg80211_leave_ibss,
.set_tx_power = iwm_cfg80211_set_txpower,
.get_tx_power = iwm_cfg80211_get_txpower,
};

struct wireless_dev *iwm_wdev_alloc(int sizeof_bus, struct device *dev)
Expand Down
7 changes: 1 addition & 6 deletions trunk/drivers/net/wireless/iwmc3200wifi/iwm.h
Original file line number Diff line number Diff line change
Expand Up @@ -184,10 +184,6 @@ struct iwm_key {
#define IWM_STATUS_ASSOCIATING 3
#define IWM_STATUS_ASSOCIATED 4

#define IWM_RADIO_RFKILL_OFF 0
#define IWM_RADIO_RFKILL_HW 1
#define IWM_RADIO_RFKILL_SW 2

struct iwm_tx_queue {
int id;
struct sk_buff_head queue;
Expand Down Expand Up @@ -221,7 +217,6 @@ struct iwm_priv {
struct iwm_conf conf;

unsigned long status;
unsigned long radio;

struct list_head pending_notif;
wait_queue_head_t notif_queue;
Expand All @@ -240,6 +235,7 @@ struct iwm_priv {
u8 bssid[ETH_ALEN];
u8 channel;
u16 rate;
u32 txpower;

struct iwm_sta_info sta_table[IWM_STA_TABLE_NUM];
struct list_head bss_list;
Expand Down Expand Up @@ -290,7 +286,6 @@ struct iwm_priv {
struct timer_list watchdog;
struct work_struct reset_worker;
struct mutex mutex;
struct rfkill *rfkill;

char private[0] __attribute__((__aligned__(NETDEV_ALIGN)));
};
Expand Down
12 changes: 2 additions & 10 deletions trunk/drivers/net/wireless/iwmc3200wifi/netdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,23 +55,15 @@
static int iwm_open(struct net_device *ndev)
{
struct iwm_priv *iwm = ndev_to_iwm(ndev);
int ret = 0;

if (!test_bit(IWM_RADIO_RFKILL_SW, &iwm->radio))
ret = iwm_up(iwm);

return ret;
return iwm_up(iwm);
}

static int iwm_stop(struct net_device *ndev)
{
struct iwm_priv *iwm = ndev_to_iwm(ndev);
int ret = 0;

if (!test_bit(IWM_RADIO_RFKILL_SW, &iwm->radio))
ret = iwm_down(iwm);

return ret;
return iwm_down(iwm);
}

/*
Expand Down
18 changes: 9 additions & 9 deletions trunk/drivers/net/wireless/iwmc3200wifi/rx.c
Original file line number Diff line number Diff line change
Expand Up @@ -143,17 +143,18 @@ static int iwm_ntf_init_complete(struct iwm_priv *iwm, u8 *buf,
unsigned long buf_size,
struct iwm_wifi_cmd *cmd)
{
struct wiphy *wiphy = iwm_to_wiphy(iwm);
struct iwm_umac_notif_init_complete *init_complete =
(struct iwm_umac_notif_init_complete *)(buf);
u16 status = le16_to_cpu(init_complete->status);
bool blocked = (status == UMAC_NTFY_INIT_COMPLETE_STATUS_ERR);

if (status == UMAC_NTFY_INIT_COMPLETE_STATUS_ERR) {
if (blocked)
IWM_DBG_NTF(iwm, DBG, "Hardware rf kill is on (radio off)\n");
set_bit(IWM_RADIO_RFKILL_HW, &iwm->radio);
} else {
else
IWM_DBG_NTF(iwm, DBG, "Hardware rf kill is off (radio on)\n");
clear_bit(IWM_RADIO_RFKILL_HW, &iwm->radio);
}

wiphy_rfkill_set_hw_state(wiphy, blocked);

return 0;
}
Expand Down Expand Up @@ -875,6 +876,7 @@ static int iwm_ntf_statistics(struct iwm_priv *iwm, u8 *buf,
/* UMAC passes rate info multiplies by 2 */
iwm->rate = max_rate >> 1;
}
iwm->txpower = le32_to_cpu(stats->tx_power);

wstats->status = 0;

Expand Down Expand Up @@ -1015,6 +1017,7 @@ static int iwm_ntf_wifi_if_wrapper(struct iwm_priv *iwm, u8 *buf,
static int iwm_ntf_card_state(struct iwm_priv *iwm, u8 *buf,
unsigned long buf_size, struct iwm_wifi_cmd *cmd)
{
struct wiphy *wiphy = iwm_to_wiphy(iwm);
struct iwm_lmac_card_state *state = (struct iwm_lmac_card_state *)
(buf + sizeof(struct iwm_umac_wifi_in_hdr));
u32 flags = le32_to_cpu(state->flags);
Expand All @@ -1023,10 +1026,7 @@ static int iwm_ntf_card_state(struct iwm_priv *iwm, u8 *buf,
flags & IWM_CARD_STATE_HW_DISABLED ? "ON" : "OFF",
flags & IWM_CARD_STATE_CTKILL_DISABLED ? "ON" : "OFF");

if (flags & IWM_CARD_STATE_HW_DISABLED)
set_bit(IWM_RADIO_RFKILL_HW, &iwm->radio);
else
clear_bit(IWM_RADIO_RFKILL_HW, &iwm->radio);
wiphy_rfkill_set_hw_state(wiphy, flags & IWM_CARD_STATE_HW_DISABLED);

return 0;
}
Expand Down
6 changes: 1 addition & 5 deletions trunk/drivers/net/wireless/iwmc3200wifi/sdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -506,11 +506,7 @@ static struct sdio_driver iwm_sdio_driver = {

static int __init iwm_sdio_init_module(void)
{
int ret;

ret = sdio_register_driver(&iwm_sdio_driver);

return ret;
return sdio_register_driver(&iwm_sdio_driver);
}

static void __exit iwm_sdio_exit_module(void)
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/net/wireless/iwmc3200wifi/wext.c
Original file line number Diff line number Diff line change
Expand Up @@ -452,8 +452,8 @@ static const iw_handler iwm_handlers[] =
(iw_handler) cfg80211_wext_giwrts, /* SIOCGIWRTS */
(iw_handler) cfg80211_wext_siwfrag, /* SIOCSIWFRAG */
(iw_handler) cfg80211_wext_giwfrag, /* SIOCGIWFRAG */
(iw_handler) NULL, /* SIOCSIWTXPOW */
(iw_handler) NULL, /* SIOCGIWTXPOW */
(iw_handler) cfg80211_wext_siwtxpower, /* SIOCSIWTXPOW */
(iw_handler) cfg80211_wext_giwtxpower, /* SIOCGIWTXPOW */
(iw_handler) NULL, /* SIOCSIWRETRY */
(iw_handler) NULL, /* SIOCGIWRETRY */
(iw_handler) cfg80211_wext_siwencode, /* SIOCSIWENCODE */
Expand Down

0 comments on commit 741a4b8

Please sign in to comment.