[PATCH v3 1/3] libahci: Implement the capability to override the generic ahci interrupt handler.

Tejun Heo tj at kernel.org
Fri Feb 5 08:41:22 PST 2016


Hello,

On Fri, Feb 05, 2016 at 02:50:24AM +0530, suman Tripathi wrote:
...
> @@ -2504,15 +2505,28 @@ int ahci_host_activate(struct ata_host *host, struct scsi_host_template *sht)
>  	struct ahci_host_priv *hpriv = host->private_data;
>  	int irq = hpriv->irq;
>  	int rc;
> +	irqreturn_t (*ahci_irq_handler)(int irq, void *dev_instance);
> 
> +	ahci_irq_handler = hpriv->ahci_irq_intr;
> +
> +	if (hpriv->flags & (AHCI_HFLAG_MULTI_MSI | AHCI_HFLAG_MULTI_MSIX)) {
> +		if (!ahci_irq_handler)
> +			rc = ahci_host_activate_multi_irqs(host, sht);
> +		else
> +			dev_warn(host->dev, "both AHCI_HFLAG_MULTI_MSI flag set \
> +				 and custom irq handler implemented\n");
> +
> +	} else {
> +		if (!ahci_irq_handler) {
> +			ahci_irq_handler = (hpriv->flags & AHCI_HFLAG_EDGE_IRQ ?
> +			 		    ahci_single_edge_irq_intr :
> +					    ahci_single_level_irq_intr);
> +		}
> +	}

I wrote this before but can't we do this in save_initial_config the
same way ->start_engine override is handled?

-- 
tejun



More information about the linux-arm-kernel mailing list