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: David Mosberger-Tang <davidm@egauge.net>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20211221210538.4011227-1-davidm@egauge.net
This commit is contained in:
David Mosberger-Tang 2021-12-21 21:05:41 +00:00 committed by Kalle Valo
parent 5f48d7bbec
commit 4d2cd7b06c
2 changed files with 14 additions and 14 deletions

View File

@ -212,6 +212,7 @@ struct wilc {
s8 mac_status;
struct clk *rtc_clk;
bool initialized;
u32 chipid;
bool power_save_mode;
int dev_irq_num;
int close;

View File

@ -1443,31 +1443,30 @@ release:
u32 wilc_get_chipid(struct wilc *wilc, bool update)
{
static u32 chipid;
u32 tempchipid = 0;
u32 chipid = 0;
u32 rfrevid = 0;
if (chipid == 0 || update) {
wilc->hif_func->hif_read_reg(wilc, WILC_CHIPID, &tempchipid);
if (wilc->chipid == 0 || update) {
wilc->hif_func->hif_read_reg(wilc, WILC_CHIPID, &chipid);
wilc->hif_func->hif_read_reg(wilc, WILC_RF_REVISION_ID,
&rfrevid);
if (!is_wilc1000(tempchipid)) {
chipid = 0;
return chipid;
if (!is_wilc1000(chipid)) {
wilc->chipid = 0;
return wilc->chipid;
}
if (tempchipid == WILC_1000_BASE_ID_2A) { /* 0x1002A0 */
if (chipid == WILC_1000_BASE_ID_2A) { /* 0x1002A0 */
if (rfrevid != 0x1)
tempchipid = WILC_1000_BASE_ID_2A_REV1;
} else if (tempchipid == WILC_1000_BASE_ID_2B) { /* 0x1002B0 */
chipid = WILC_1000_BASE_ID_2A_REV1;
} else if (chipid == WILC_1000_BASE_ID_2B) { /* 0x1002B0 */
if (rfrevid == 0x4)
tempchipid = WILC_1000_BASE_ID_2B_REV1;
chipid = WILC_1000_BASE_ID_2B_REV1;
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)