wilc1000: Convert module-global "isinit" to device-specific variable
Move static "isinit" variable to wilc_spi structure to allow multiple WILC1000 devices per machine. Signed-off-by: David Mosberger-Tang <davidm@egauge.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20210828151346.3012697-1-davidm@egauge.net
This commit is contained in:
committed by
Kalle Valo
parent
4b51de063d
commit
50cbbfd41e
@@ -39,6 +39,7 @@ MODULE_PARM_DESC(enable_crc16,
|
|||||||
#define WILC_SPI_RSP_HDR_EXTRA_DATA 8
|
#define WILC_SPI_RSP_HDR_EXTRA_DATA 8
|
||||||
|
|
||||||
struct wilc_spi {
|
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 probing_crc; /* true if we're probing chip's CRC config */
|
||||||
bool crc7_enabled; /* true if crc7 is currently enabled */
|
bool crc7_enabled; /* true if crc7 is currently enabled */
|
||||||
bool crc16_enabled; /* true if crc16 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;
|
struct wilc_spi *spi_priv = wilc->bus_data;
|
||||||
u32 reg;
|
u32 reg;
|
||||||
u32 chipid;
|
u32 chipid;
|
||||||
static int isinit;
|
|
||||||
int ret, i;
|
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);
|
ret = wilc_spi_read_reg(wilc, WILC_CHIPID, &chipid);
|
||||||
if (ret)
|
if (ret == 0)
|
||||||
dev_err(&spi->dev, "Fail cmd read chip id...\n");
|
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;
|
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);
|
ret = wilc_spi_read_reg(wilc, WILC_CHIPID, &chipid);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
@@ -982,7 +983,7 @@ static int wilc_spi_init(struct wilc *wilc, bool resume)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
isinit = 1;
|
spi_priv->isinit = true;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user