net/wireless: ipw2200: introduce ipw_set_geo function
authorStanislav Yakovlev <stas.yakovlev@gmail.com>
Tue, 20 Nov 2012 23:54:20 +0000 (23:54 +0000)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 21 Nov 2012 19:16:02 +0000 (14:16 -0500)
Move regulatory domain initialization code to a separate function.

Signed-off-by: Stanislav Yakovlev <stas.yakovlev@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ipw2x00/ipw2200.c

index fea96b5..482f505 100644 (file)
@@ -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
 static int ipw_up(struct ipw_priv *priv)
 {
-       int rc, i, j;
+       int rc, i;
 
        /* Age scan list entries found before suspend */
        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->perm_addr, priv->mac_addr, ETH_ALEN);
 
-               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]);
+               ipw_set_geo(priv);
 
                if (priv->status & STATUS_RF_KILL_SW) {
                        IPW_WARNING("Radio disabled by module parameter.\n");