Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 315609
b: refs/heads/master
c: 20d2ebe
h: refs/heads/master
i:
  315607: 9d13a1f
v: v3
  • Loading branch information
Daniel Drake authored and John W. Linville committed Jul 17, 2012
1 parent de7f6fe commit cb765ff
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 15 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: 08a4a1ab0725d89ca1df80f2ebe8443da82cd34f
refs/heads/master: 20d2ebe512b9ad0f8fdd867a02d7a309344e8a6a
6 changes: 4 additions & 2 deletions trunk/drivers/net/wireless/libertas/cfg.c
Original file line number Diff line number Diff line change
Expand Up @@ -2180,13 +2180,15 @@ int lbs_reg_notifier(struct wiphy *wiphy,
struct regulatory_request *request)
{
struct lbs_private *priv = wiphy_priv(wiphy);
int ret;
int ret = 0;

lbs_deb_enter_args(LBS_DEB_CFG80211, "cfg80211 regulatory domain "
"callback for domain %c%c\n", request->alpha2[0],
request->alpha2[1]);

ret = lbs_set_11d_domain_info(priv, request, wiphy->bands);
memcpy(priv->country_code, request->alpha2, sizeof(request->alpha2));
if (lbs_iface_active(priv))
ret = lbs_set_11d_domain_info(priv);

lbs_deb_leave(LBS_DEB_CFG80211);
return ret;
Expand Down
19 changes: 10 additions & 9 deletions trunk/drivers/net/wireless/libertas/cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -733,15 +733,13 @@ int lbs_get_rssi(struct lbs_private *priv, s8 *rssi, s8 *nf)
* to the firmware
*
* @priv: pointer to &struct lbs_private
* @request: cfg80211 regulatory request structure
* @bands: the device's supported bands and channels
*
* returns: 0 on success, error code on failure
*/
int lbs_set_11d_domain_info(struct lbs_private *priv,
struct regulatory_request *request,
struct ieee80211_supported_band **bands)
int lbs_set_11d_domain_info(struct lbs_private *priv)
{
struct wiphy *wiphy = priv->wdev->wiphy;
struct ieee80211_supported_band **bands = wiphy->bands;
struct cmd_ds_802_11d_domain_info cmd;
struct mrvl_ie_domain_param_set *domain = &cmd.domain;
struct ieee80211_country_ie_triplet *t;
Expand All @@ -752,21 +750,23 @@ int lbs_set_11d_domain_info(struct lbs_private *priv,
u8 first_channel = 0, next_chan = 0, max_pwr = 0;
u8 i, flag = 0;
size_t triplet_size;
int ret;
int ret = 0;

lbs_deb_enter(LBS_DEB_11D);
if (!priv->country_code[0])
goto out;

memset(&cmd, 0, sizeof(cmd));
cmd.action = cpu_to_le16(CMD_ACT_SET);

lbs_deb_11d("Setting country code '%c%c'\n",
request->alpha2[0], request->alpha2[1]);
priv->country_code[0], priv->country_code[1]);

domain->header.type = cpu_to_le16(TLV_TYPE_DOMAIN);

/* Set country code */
domain->country_code[0] = request->alpha2[0];
domain->country_code[1] = request->alpha2[1];
domain->country_code[0] = priv->country_code[0];
domain->country_code[1] = priv->country_code[1];
domain->country_code[2] = ' ';

/* Now set up the channel triplets; firmware is somewhat picky here
Expand Down Expand Up @@ -848,6 +848,7 @@ int lbs_set_11d_domain_info(struct lbs_private *priv,

ret = lbs_cmd_with_response(priv, CMD_802_11D_DOMAIN_INFO, &cmd);

out:
lbs_deb_leave_args(LBS_DEB_11D, "ret %d", ret);
return ret;
}
Expand Down
4 changes: 1 addition & 3 deletions trunk/drivers/net/wireless/libertas/cmd.h
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,7 @@ int lbs_set_monitor_mode(struct lbs_private *priv, int enable);

int lbs_get_rssi(struct lbs_private *priv, s8 *snr, s8 *nf);

int lbs_set_11d_domain_info(struct lbs_private *priv,
struct regulatory_request *request,
struct ieee80211_supported_band **bands);
int lbs_set_11d_domain_info(struct lbs_private *priv);

int lbs_get_reg(struct lbs_private *priv, u16 reg, u16 offset, u32 *value);

Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/wireless/libertas/dev.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ struct lbs_private {
bool wiphy_registered;
struct cfg80211_scan_request *scan_req;
u8 assoc_bss[ETH_ALEN];
u8 country_code[IEEE80211_COUNTRY_STRING_LEN];
u8 disassoc_reason;

/* Mesh */
Expand Down
6 changes: 6 additions & 0 deletions trunk/drivers/net/wireless/libertas/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,12 @@ int lbs_start_iface(struct lbs_private *priv)
goto err;
}

ret = lbs_set_11d_domain_info(priv);
if (ret) {
lbs_deb_net("set 11d domain info failed\n");
goto err;
}

lbs_update_channel(priv);

priv->iface_running = true;
Expand Down

0 comments on commit cb765ff

Please sign in to comment.