Author: nbd
Date: 2014-12-22 21:47:10 +0100 (Mon, 22 Dec 2014)
New Revision: 43768

Modified:
   trunk/target/linux/oxnas/files/drivers/ata/sata_oxnas.c
Log:
oxnas: sata_oxnas: make irq handler more readable

safed one level of indention by using 'continue' instead of a
lengthy if-clause.

Signed-off-by: Daniel Golle <[email protected]>
v2: use logic-AND instead of '?' operator when checking for hw bug 6320

Modified: trunk/target/linux/oxnas/files/drivers/ata/sata_oxnas.c
===================================================================
--- trunk/target/linux/oxnas/files/drivers/ata/sata_oxnas.c     2014-12-22 
20:47:01 UTC (rev 43767)
+++ trunk/target/linux/oxnas/files/drivers/ata/sata_oxnas.c     2014-12-22 
20:47:10 UTC (rev 43768)
@@ -2041,7 +2041,7 @@
  *
  * @param port SATA port to check and if necessary, correct.
  */
-static int sata_oxnas_bug_6320_workaround(struct ata_port *ap)
+static int sata_oxnas_bug_6320_detect(struct ata_port *ap)
 {
        struct sata_oxnas_port_priv *pd = ap->private_data;
        void __iomem *core_base = pd->core_base;
@@ -2175,17 +2175,18 @@
                        /* check the raw end of command interrupt to see if the
                         * port is done */
                        mask = (COREINT_END << port_no);
-                       if (int_status & mask) {
-                               /* this port had an interrupt, clear it */
-                               iowrite32(mask, core_base + CORE_INT_CLEAR);
-                               bug_present =
-                                       (hd->current_ucode == UNKNOWN_MODE) ?
-                                       sata_oxnas_bug_6320_workaround(
-                                               ah->ports[port_no]):0;
-                               sata_oxnas_port_irq(ah->ports[port_no],
-                                                       bug_present);
-                               ret = IRQ_HANDLED;
-                       }
+                       if (!(int_status & mask))
+                               continue;
+
+                       /* this port had an interrupt, clear it */
+                       iowrite32(mask, core_base + CORE_INT_CLEAR);
+                       /* check for bug 6320 only if no microcode was loaded */
+                       bug_present = (hd->current_ucode == UNKNOWN_MODE) &&
+                               sata_oxnas_bug_6320_detect(ah->ports[port_no]);
+
+                       sata_oxnas_port_irq(ah->ports[port_no],
+                                               bug_present);
+                       ret = IRQ_HANDLED;
                }
        }
 
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to