Esempio n. 1
0
int lbs_start_iface(struct lbs_private *priv)
{
	struct cmd_ds_802_11_mac_address cmd;
	int ret;

	if (priv->power_restore) {
		ret = priv->power_restore(priv);
		if (ret)
			return ret;
	}

	cmd.hdr.size = cpu_to_le16(sizeof(cmd));
	cmd.action = cpu_to_le16(CMD_ACT_SET);
	memcpy(cmd.macadd, priv->current_addr, ETH_ALEN);

	ret = lbs_cmd_with_response(priv, CMD_802_11_MAC_ADDRESS, &cmd);
	if (ret) {
		lbs_deb_net("set MAC address failed\n");
		goto err;
	}

	lbs_update_channel(priv);

	priv->iface_running = true;
	return 0;

err:
	if (priv->power_save)
		priv->power_save(priv);
	return ret;
}
Esempio n. 2
0
int lbs_start_card(struct lbs_private *priv)
{
	int ret = -1;
	 lbs_deb_enter("enter lbs_start_card\n");
	ret = lbs_setup_firmware(priv);//读取和设置相关的固件参数
	if (ret)
		goto done;
	lbs_init_11d(priv);//不是能802.11d
	lbs_update_channel(priv);//获取当前信道编号记录在priv->curbssparams.channel中
done:
	lbs_pr_info("Marvell WLAN 802.11 adapter\n");
	lbs_deb_leave_args("leave lbs_start_card(ret=%d)\n", ret);

	return ret;
}