Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 06729387 authored by Stanislav Yakovlev's avatar Stanislav Yakovlev Committed by John W. Linville
Browse files

net/wireless: ipw2200: introduce ipw_set_geo function



Move regulatory domain initialization code to a separate function.

Signed-off-by: default avatarStanislav Yakovlev <stas.yakovlev@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 2884561a
Loading
Loading
Loading
Loading
+23 −14
Original line number Original line Diff line number Diff line
@@ -11269,10 +11269,31 @@ static const struct libipw_geo ipw_geos[] = {
	 }
	 }
};
};


static void ipw_set_geo(struct ipw_priv *priv)
{
	int j;

	for (j = 0; j < ARRAY_SIZE(ipw_geos); j++) {
		if (!memcmp(&priv->eeprom[EEPROM_COUNTRY_CODE],
			    ipw_geos[j].name, 3))
			break;
	}

	if (j == ARRAY_SIZE(ipw_geos)) {
		IPW_WARNING("SKU [%c%c%c] not recognized.\n",
			    priv->eeprom[EEPROM_COUNTRY_CODE + 0],
			    priv->eeprom[EEPROM_COUNTRY_CODE + 1],
			    priv->eeprom[EEPROM_COUNTRY_CODE + 2]);
		j = 0;
	}

	libipw_set_geo(priv->ieee, &ipw_geos[j]);
}

#define MAX_HW_RESTARTS 5
#define MAX_HW_RESTARTS 5
static int ipw_up(struct ipw_priv *priv)
static int ipw_up(struct ipw_priv *priv)
{
{
	int rc, i, j;
	int rc, i;


	/* Age scan list entries found before suspend */
	/* Age scan list entries found before suspend */
	if (priv->suspend_time) {
	if (priv->suspend_time) {
@@ -11310,19 +11331,7 @@ static int ipw_up(struct ipw_priv *priv)
		memcpy(priv->net_dev->dev_addr, priv->mac_addr, ETH_ALEN);
		memcpy(priv->net_dev->dev_addr, priv->mac_addr, ETH_ALEN);
		memcpy(priv->net_dev->perm_addr, priv->mac_addr, ETH_ALEN);
		memcpy(priv->net_dev->perm_addr, priv->mac_addr, ETH_ALEN);


		for (j = 0; j < ARRAY_SIZE(ipw_geos); j++) {
		ipw_set_geo(priv);
			if (!memcmp(&priv->eeprom[EEPROM_COUNTRY_CODE],
				    ipw_geos[j].name, 3))
				break;
		}
		if (j == ARRAY_SIZE(ipw_geos)) {
			IPW_WARNING("SKU [%c%c%c] not recognized.\n",
				    priv->eeprom[EEPROM_COUNTRY_CODE + 0],
				    priv->eeprom[EEPROM_COUNTRY_CODE + 1],
				    priv->eeprom[EEPROM_COUNTRY_CODE + 2]);
			j = 0;
		}
		libipw_set_geo(priv->ieee, &ipw_geos[j]);


		if (priv->status & STATUS_RF_KILL_SW) {
		if (priv->status & STATUS_RF_KILL_SW) {
			IPW_WARNING("Radio disabled by module parameter.\n");
			IPW_WARNING("Radio disabled by module parameter.\n");