[PATCH v4 1/2] libahci: Add support to handle HOST_IRQ_STAT as edge trigger latch.
From: Suman Tripathi <hidden>
Date: 2015-05-05 17:48:11
Also in:
linux-devicetree, linux-ide, linux-scsi
Hi Tejun, On Tue, May 5, 2015 at 10:34 PM, Tejun Heo [off-list ref] wrote:
Hello, Suman. Looks pretty. Some nitpicks. On Tue, May 05, 2015 at 08:43:41PM +0530, Suman Tripathi wrote:quoted
diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h index 71262e0..2df2237 100644 --- a/drivers/ata/ahci.h +++ b/drivers/ata/ahci.h@@ -238,6 +238,8 @@ enum { AHCI_HFLAG_MULTI_MSI = (1 << 16), /* multiple PCI MSIs */ AHCI_HFLAG_NO_DEVSLP = (1 << 17), /* no device sleep */ AHCI_HFLAG_NO_FBS = (1 << 18), /* no FBS */ + AHCI_HFLAG_EDGE_TRIG_IRQ = (1 << 19), /* HOST_IRQ_STAT behaves as + Edge Triggered */Let's just name it ahci_HFLAG_EDGE_IRQ.
Sure
quoted
+static irqreturn_t ahci_level_trig_intr(int irq, void *dev_instance)ahci_single_level_irq_intr()quoted
+{...quoted
@@ -1877,13 +1885,51 @@ static irqreturn_t ahci_single_irq_intr(int irq, void *dev_instance) * Also, use the unmasked value to clear interrupt as spurious * pending event on a dummy port might cause screaming IRQ. */ +Extra newline which wasn't there before.
sorry . Happened mistakenly
quoted
+ writel(irq_stat, mmio + HOST_IRQ_STAT); + + spin_unlock(&host->lock); + + VPRINTK("EXIT\n"); + + return IRQ_RETVAL(rc); +} + +static irqreturn_t ahci_edge_trig_intr(int irq, void *dev_instance)ahci_single_edge_irq_intr()
Sure.
And let's please separate refactoring of intr routine and addition of edge irq handling into two patches.
Okay
Thanks. -- tejun
-- Thanks, with regards, Suman Tripathi