[PATCH v4 1/2] libahci: Add support to handle HOST_IRQ_STAT as edge trigger latch.
Tejun Heo
tj at kernel.org
Tue May 5 10:04:40 PDT 2015
Hello, Suman.
Looks pretty. Some nitpicks.
On Tue, May 05, 2015 at 08:43:41PM +0530, Suman Tripathi wrote:
> 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.
> +static irqreturn_t ahci_level_trig_intr(int irq, void *dev_instance)
ahci_single_level_irq_intr()
> +{
...
> @@ -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.
> + 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()
And let's please separate refactoring of intr routine and addition of
edge irq handling into two patches.
Thanks.
--
tejun
More information about the linux-arm-kernel
mailing list