[PATCH v2 7/9] staging: ks7010: factor out check for firmware running into ks7010_is_firmware_running
Sergio Paracuellos
sergio.paracuellos at gmail.com
Tue Apr 3 10:40:23 UTC 2018
This commit extracts process to check if firmware is running
into a new inline function called ks7010_is_firmware_running.
Signed-off-by: Sergio Paracuellos <sergio.paracuellos at gmail.com>
---
drivers/staging/ks7010/ks7010_sdio.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/drivers/staging/ks7010/ks7010_sdio.c b/drivers/staging/ks7010/ks7010_sdio.c
index 5b6c7a7..11d5be1 100644
--- a/drivers/staging/ks7010/ks7010_sdio.c
+++ b/drivers/staging/ks7010/ks7010_sdio.c
@@ -639,12 +639,20 @@ static int ks7010_sdio_data_compare(struct ks_wlan_private *priv, u32 address,
return ret;
}
+static inline bool ks7010_is_firmware_running(struct ks_wlan_private *priv,
+ int *ret)
+{
+ unsigned char byte;
+
+ *ret = ks7010_sdio_readb(priv, GCR_A, &byte);
+ return (byte == GCR_A_RUN);
+}
+
static int ks7010_upload_firmware(struct ks_sdio_card *card)
{
struct ks_wlan_private *priv = card->priv;
unsigned int size, offset, n = 0;
unsigned char *rom_buf;
- unsigned char byte = 0;
int ret;
unsigned int length;
const struct firmware *fw_entry = NULL;
@@ -655,9 +663,7 @@ static int ks7010_upload_firmware(struct ks_sdio_card *card)
sdio_claim_host(card->func);
- /* Firmware running ? */
- ret = ks7010_sdio_readb(priv, GCR_A, &byte);
- if (byte == GCR_A_RUN) {
+ if (ks7010_is_firmware_running(priv, &ret)) {
netdev_dbg(priv->net_dev, "MAC firmware running ...\n");
goto release_host_and_free;
}
@@ -706,11 +712,7 @@ static int ks7010_upload_firmware(struct ks_sdio_card *card)
/* Firmware running check */
for (n = 0; n < 50; ++n) {
mdelay(10); /* wait_ms(10); */
- ret = ks7010_sdio_readb(priv, GCR_A, &byte);
- if (ret)
- goto release_firmware;
-
- if (byte == GCR_A_RUN)
+ if (ks7010_is_firmware_running(priv, &ret))
break;
}
if ((50) <= n) {
@@ -719,8 +721,6 @@ static int ks7010_upload_firmware(struct ks_sdio_card *card)
goto release_firmware;
}
- ret = 0;
-
release_firmware:
release_firmware(fw_entry);
release_host_and_free:
--
2.7.4
More information about the devel
mailing list