2021-12-16 03:26:34

by David Mosberger-Tang

[permalink] [raw]
Subject: [PATCH] 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 <[email protected]>
---
.../net/wireless/microchip/wilc1000/netdev.h | 1 +
.../net/wireless/microchip/wilc1000/wlan.c | 27 +++++++++----------
2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/net/wireless/microchip/wilc1000/netdev.h b/drivers/net/wireless/microchip/wilc1000/netdev.h
index b9a88b3e322f..41a92a1368ab 100644
--- a/drivers/net/wireless/microchip/wilc1000/netdev.h
+++ b/drivers/net/wireless/microchip/wilc1000/netdev.h
@@ -212,6 +212,7 @@ struct wilc {
s8 mac_status;
struct clk *rtc_clk;
bool initialized;
+ u32 chipid;
int dev_irq_num;
int close;
u8 vif_num;
diff --git a/drivers/net/wireless/microchip/wilc1000/wlan.c b/drivers/net/wireless/microchip/wilc1000/wlan.c
index 1aa4236a2fe4..c8e103500235 100644
--- a/drivers/net/wireless/microchip/wilc1000/wlan.c
+++ b/drivers/net/wireless/microchip/wilc1000/wlan.c
@@ -1443,31 +1443,30 @@ static int init_chip(struct net_device *dev)

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)
--
2.25.1



2021-12-21 18:12:17

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] wilc1000: Convert static "chipid" variable to device-local variable

David Mosberger-Tang <[email protected]> wrote:

> 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 <[email protected]>

Failed to apply, please rebase on top of wireless-drivers-next.

Recorded preimage for 'drivers/net/wireless/microchip/wilc1000/netdev.h'
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch' to see the failed patch
Applying: wilc1000: Convert static "chipid" variable to device-local variable
Using index info to reconstruct a base tree...
M drivers/net/wireless/microchip/wilc1000/netdev.h
M drivers/net/wireless/microchip/wilc1000/wlan.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/net/wireless/microchip/wilc1000/wlan.c
Auto-merging drivers/net/wireless/microchip/wilc1000/netdev.h
CONFLICT (content): Merge conflict in drivers/net/wireless/microchip/wilc1000/netdev.h
Patch failed at 0001 wilc1000: Convert static "chipid" variable to device-local variable

Patch set to Changes Requested.

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches