* [PATCH v2] wilc1000: Convert module-global "isinit" to device-specific variable
@ 2021-08-28 15:19 David Mosberger-Tang
2021-08-29 8:33 ` Kalle Valo
0 siblings, 1 reply; 2+ messages in thread
From: David Mosberger-Tang @ 2021-08-28 15:19 UTC (permalink / raw)
To: linux-wireless; +Cc: Ajay Singh, Claudiu Beznea, David Mosberger-Tang
Move static "isinit" variable to wilc_spi structure to allow multiple
WILC1000 devices per machine.
Signed-off-by: David Mosberger-Tang <davidm@egauge.net>
---
drivers/net/wireless/microchip/wilc1000/spi.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/net/wireless/microchip/wilc1000/spi.c b/drivers/net/wireless/microchip/wilc1000/spi.c
index 8b180c29d682..dd481dc0b5ce 100644
--- a/drivers/net/wireless/microchip/wilc1000/spi.c
+++ b/drivers/net/wireless/microchip/wilc1000/spi.c
@@ -39,6 +39,7 @@ MODULE_PARM_DESC(enable_crc16,
#define WILC_SPI_RSP_HDR_EXTRA_DATA 8
struct wilc_spi {
+ bool isinit; /* true if SPI protocol has been configured */
bool probing_crc; /* true if we're probing chip's CRC config */
bool crc7_enabled; /* true if crc7 is currently enabled */
bool crc16_enabled; /* true if crc16 is currently enabled */
@@ -908,15 +909,15 @@ static int wilc_spi_init(struct wilc *wilc, bool resume)
struct wilc_spi *spi_priv = wilc->bus_data;
u32 reg;
u32 chipid;
- static int isinit;
int ret, i;
- if (isinit) {
+ if (spi_priv->isinit) {
+ /* Confirm we can read chipid register without error: */
ret = wilc_spi_read_reg(wilc, WILC_CHIPID, &chipid);
- if (ret)
- dev_err(&spi->dev, "Fail cmd read chip id...\n");
+ if (ret == 0)
+ return 0;
- return ret;
+ dev_err(&spi->dev, "Fail cmd read chip id...\n");
}
/*
@@ -974,7 +975,7 @@ static int wilc_spi_init(struct wilc *wilc, bool resume)
spi_priv->probing_crc = false;
/*
- * make sure can read back chip id correctly
+ * make sure can read chip id without protocol error
*/
ret = wilc_spi_read_reg(wilc, WILC_CHIPID, &chipid);
if (ret) {
@@ -982,7 +983,7 @@ static int wilc_spi_init(struct wilc *wilc, bool resume)
return ret;
}
- isinit = 1;
+ spi_priv->isinit = true;
return 0;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2] wilc1000: Convert module-global "isinit" to device-specific variable
2021-08-28 15:19 [PATCH v2] wilc1000: Convert module-global "isinit" to device-specific variable David Mosberger-Tang
@ 2021-08-29 8:33 ` Kalle Valo
0 siblings, 0 replies; 2+ messages in thread
From: Kalle Valo @ 2021-08-29 8:33 UTC (permalink / raw)
To: David Mosberger-Tang
Cc: linux-wireless, Ajay Singh, Claudiu Beznea, David Mosberger-Tang
David Mosberger-Tang <davidm@egauge.net> wrote:
> Move static "isinit" variable to wilc_spi structure to allow multiple
> WILC1000 devices per machine.
>
> Signed-off-by: David Mosberger-Tang <davidm@egauge.net>
Patch applied to wireless-drivers-next.git, thanks.
50cbbfd41e9f wilc1000: Convert module-global "isinit" to device-specific variable
--
https://patchwork.kernel.org/project/linux-wireless/patch/20210828151346.3012697-1-davidm@egauge.net/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-08-29 8:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-28 15:19 [PATCH v2] wilc1000: Convert module-global "isinit" to device-specific variable David Mosberger-Tang
2021-08-29 8:33 ` Kalle Valo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).