]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
net: dsa: bcm_sf2: factor interrupt disabling in a function
authorFlorian Fainelli <f.fainelli@gmail.com>
Wed, 21 Jan 2015 00:42:00 +0000 (16:42 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 26 Jan 2015 00:02:13 +0000 (16:02 -0800)
Factor the interrupt disabling in a function: bcm_sf2_intr_disable()
since we are doing the same thing in the setup and suspend paths.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/bcm_sf2.c

index feb29c4526f7eea698ef8568b784daafe467980d..09f6b3cc1f66de916a41cba22718178a5ad34f71 100644 (file)
@@ -400,6 +400,16 @@ static int bcm_sf2_sw_rst(struct bcm_sf2_priv *priv)
        return 0;
 }
 
+static void bcm_sf2_intr_disable(struct bcm_sf2_priv *priv)
+{
+       intrl2_0_writel(priv, 0xffffffff, INTRL2_CPU_MASK_SET);
+       intrl2_0_writel(priv, 0xffffffff, INTRL2_CPU_CLEAR);
+       intrl2_0_writel(priv, 0, INTRL2_CPU_MASK_CLEAR);
+       intrl2_1_writel(priv, 0xffffffff, INTRL2_CPU_MASK_SET);
+       intrl2_1_writel(priv, 0xffffffff, INTRL2_CPU_CLEAR);
+       intrl2_1_writel(priv, 0, INTRL2_CPU_MASK_CLEAR);
+}
+
 static int bcm_sf2_sw_setup(struct dsa_switch *ds)
 {
        const char *reg_names[BCM_SF2_REGS_NUM] = BCM_SF2_REGS_NAME;
@@ -440,12 +450,7 @@ static int bcm_sf2_sw_setup(struct dsa_switch *ds)
        }
 
        /* Disable all interrupts and request them */
-       intrl2_0_writel(priv, 0xffffffff, INTRL2_CPU_MASK_SET);
-       intrl2_0_writel(priv, 0xffffffff, INTRL2_CPU_CLEAR);
-       intrl2_0_writel(priv, 0, INTRL2_CPU_MASK_CLEAR);
-       intrl2_1_writel(priv, 0xffffffff, INTRL2_CPU_MASK_SET);
-       intrl2_1_writel(priv, 0xffffffff, INTRL2_CPU_CLEAR);
-       intrl2_1_writel(priv, 0, INTRL2_CPU_MASK_CLEAR);
+       bcm_sf2_intr_disable(priv);
 
        ret = request_irq(priv->irq0, bcm_sf2_switch_0_isr, 0,
                          "switch_0", priv);
@@ -747,12 +752,7 @@ static int bcm_sf2_sw_suspend(struct dsa_switch *ds)
        struct bcm_sf2_priv *priv = ds_to_priv(ds);
        unsigned int port;
 
-       intrl2_0_writel(priv, 0xffffffff, INTRL2_CPU_MASK_SET);
-       intrl2_0_writel(priv, 0xffffffff, INTRL2_CPU_CLEAR);
-       intrl2_0_writel(priv, 0, INTRL2_CPU_MASK_CLEAR);
-       intrl2_1_writel(priv, 0xffffffff, INTRL2_CPU_MASK_SET);
-       intrl2_1_writel(priv, 0xffffffff, INTRL2_CPU_CLEAR);
-       intrl2_1_writel(priv, 0, INTRL2_CPU_MASK_CLEAR);
+       bcm_sf2_intr_disable(priv);
 
        /* Disable all ports physically present including the IMP
         * port, the other ones have already been disabled during