提交 4d2cd7b0 编写于 作者: D David Mosberger-Tang 提交者: Kalle Valo

wilc1000: Convert static "chipid" variable to device-local variable

Move "chipid" variable into the per-driver structure so the code
doesn't break if more than one wilc1000 module is present.
Signed-off-by: NDavid Mosberger-Tang <davidm@egauge.net>
Signed-off-by: NKalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20211221210538.4011227-1-davidm@egauge.net
上级 5f48d7bb
...@@ -212,6 +212,7 @@ struct wilc { ...@@ -212,6 +212,7 @@ struct wilc {
s8 mac_status; s8 mac_status;
struct clk *rtc_clk; struct clk *rtc_clk;
bool initialized; bool initialized;
u32 chipid;
bool power_save_mode; bool power_save_mode;
int dev_irq_num; int dev_irq_num;
int close; int close;
......
...@@ -1443,31 +1443,30 @@ static int init_chip(struct net_device *dev) ...@@ -1443,31 +1443,30 @@ static int init_chip(struct net_device *dev)
u32 wilc_get_chipid(struct wilc *wilc, bool update) u32 wilc_get_chipid(struct wilc *wilc, bool update)
{ {
static u32 chipid; u32 chipid = 0;
u32 tempchipid = 0;
u32 rfrevid = 0; u32 rfrevid = 0;
if (chipid == 0 || update) { if (wilc->chipid == 0 || update) {
wilc->hif_func->hif_read_reg(wilc, WILC_CHIPID, &tempchipid); wilc->hif_func->hif_read_reg(wilc, WILC_CHIPID, &chipid);
wilc->hif_func->hif_read_reg(wilc, WILC_RF_REVISION_ID, wilc->hif_func->hif_read_reg(wilc, WILC_RF_REVISION_ID,
&rfrevid); &rfrevid);
if (!is_wilc1000(tempchipid)) { if (!is_wilc1000(chipid)) {
chipid = 0; wilc->chipid = 0;
return chipid; return wilc->chipid;
} }
if (tempchipid == WILC_1000_BASE_ID_2A) { /* 0x1002A0 */ if (chipid == WILC_1000_BASE_ID_2A) { /* 0x1002A0 */
if (rfrevid != 0x1) if (rfrevid != 0x1)
tempchipid = WILC_1000_BASE_ID_2A_REV1; chipid = WILC_1000_BASE_ID_2A_REV1;
} else if (tempchipid == WILC_1000_BASE_ID_2B) { /* 0x1002B0 */ } else if (chipid == WILC_1000_BASE_ID_2B) { /* 0x1002B0 */
if (rfrevid == 0x4) if (rfrevid == 0x4)
tempchipid = WILC_1000_BASE_ID_2B_REV1; chipid = WILC_1000_BASE_ID_2B_REV1;
else if (rfrevid != 0x3) else if (rfrevid != 0x3)
tempchipid = WILC_1000_BASE_ID_2B_REV2; chipid = WILC_1000_BASE_ID_2B_REV2;
} }
chipid = tempchipid; wilc->chipid = chipid;
} }
return chipid; return wilc->chipid;
} }
int wilc_wlan_init(struct net_device *dev) int wilc_wlan_init(struct net_device *dev)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册