Add ability to set MAC addresses for the uccp420 driver
Change-Id: I8aed07e39d88e86e0712aee0cfe9e0b8ba59ff73
diff --git a/drivers/net/wireless/uccp420wlan/src/80211_if.c b/drivers/net/wireless/uccp420wlan/src/80211_if.c
index b9b2fbe..2c42d35 100644
--- a/drivers/net/wireless/uccp420wlan/src/80211_if.c
+++ b/drivers/net/wireless/uccp420wlan/src/80211_if.c
@@ -2584,6 +2584,15 @@
seq_printf(m, "num_vifs = %d\n",
wifi->params.num_vifs);
+ seq_puts(m, "vif_macs =");
+ for (i = 0; i < wifi->params.num_vifs; i++) {
+ seq_printf(m, " %02x:%02x:%02x:%02x:%02x:%02x",
+ vif_macs[i][0], vif_macs[i][1], vif_macs[i][2],
+ vif_macs[i][3], vif_macs[i][4], vif_macs[i][5]
+ );
+ }
+ seq_puts(m, "\n");
+
seq_printf(m, "chnl_bw = %d\n",
wifi->params.chnl_bw);
@@ -3449,6 +3458,21 @@
pr_err("Re-initializing UMAC ..\n");
} else
pr_err("Invalid parameter value.\n");
+ } else if (param_get_match(buf, "vif_macs=")) {
+ char *macdata = strstr(buf, "=") + 1;
+ int dataok = 1;
+ int i;
+ for (i = 0; i < wifi->params.num_vifs; i++, macdata += ETH_ALEN*2) {
+ if (conv_str_to_byte(vif_macs[i], macdata, ETH_ALEN) != 0) {
+ dataok = 0;
+ break;
+ }
+ }
+ if (dataok) {
+ uccp420wlan_reinit();
+ pr_err("Re-initializing UMAC ..\n");
+ } else
+ pr_err("Invalid parameter value.\n");
} else if (param_get_val(buf, "prod_mode_chnl_bw_40_mhz=", &val)) {
do {