staging: ks7010: factor out irq enable process to ks7010_sdio_init_irqs
authorSergio Paracuellos <sergio.paracuellos@gmail.com>
Tue, 3 Apr 2018 15:12:55 +0000 (17:12 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 23 Apr 2018 12:22:07 +0000 (14:22 +0200)
This commit extracts sdio irq enable process to a new function
ks7010_sdio_init_irqs to improve readability.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/ks7010/ks7010_sdio.c

index 48c7cc83d4a30e9d50d363c317994958e9b4cc7a..6ba8109fa120d693f6a59a3ee1f2d52c7203dc14 100644 (file)
@@ -802,13 +802,38 @@ static void ks7010_init_defaults(struct ks_wlan_private *priv)
        priv->reg.rate_set.size = 12;
 }
 
+static void ks7010_sdio_init_irqs(struct sdio_func *func,
+                                 struct ks_wlan_private *priv)
+{
+       unsigned char byte;
+       int ret;
+
+       /*
+        * interrupt setting
+        * clear Interrupt status write
+        * (ARMtoSD_InterruptPending FN1:00_0024)
+        */
+       sdio_claim_host(func);
+       ret = ks7010_sdio_writeb(priv, INT_PENDING, 0xff);
+       sdio_release_host(func);
+       if (ret)
+               netdev_err(priv->net_dev, " error : INT_PENDING\n");
+
+       /* enable ks7010sdio interrupt */
+       byte = (INT_GCR_B | INT_READ_STATUS | INT_WRITE_STATUS);
+       sdio_claim_host(func);
+       ret = ks7010_sdio_writeb(priv, INT_ENABLE, byte);
+       sdio_release_host(func);
+       if (ret)
+               netdev_err(priv->net_dev, " err : INT_ENABLE\n");
+}
+
 static int ks7010_sdio_probe(struct sdio_func *func,
                             const struct sdio_device_id *device)
 {
        struct ks_wlan_private *priv;
        struct ks_sdio_card *card;
        struct net_device *netdev;
-       unsigned char byte;
        int ret;
 
        priv = NULL;
@@ -898,21 +923,7 @@ static int ks7010_sdio_probe(struct sdio_func *func,
                goto err_free_netdev;
        }
 
-       /* interrupt setting */
-       /* clear Interrupt status write (ARMtoSD_InterruptPending FN1:00_0024) */
-       sdio_claim_host(func);
-       ret = ks7010_sdio_writeb(priv, INT_PENDING, 0xff);
-       sdio_release_host(func);
-       if (ret)
-               netdev_err(priv->net_dev, " error : INT_PENDING\n");
-
-       /* enable ks7010sdio interrupt */
-       byte = (INT_GCR_B | INT_READ_STATUS | INT_WRITE_STATUS);
-       sdio_claim_host(func);
-       ret = ks7010_sdio_writeb(priv, INT_ENABLE, byte);
-       sdio_release_host(func);
-       if (ret)
-               netdev_err(priv->net_dev, " err : INT_ENABLE\n");
+       ks7010_sdio_init_irqs(func, priv);
 
        priv->dev_state = DEVICE_STATE_BOOT;