[PATCH v2 3/9] ata: ahci: custom irq init for host init

Sven Auhagen sven.auhagen at voleatech.de
Mon Nov 9 12:25:49 EST 2020


On Mon, Nov 09, 2020 at 03:00:58PM +0100, Hans de Goede wrote:
> Hi,
> 
> On 11/4/20 4:52 PM, sven.auhagen at voleatech.de wrote:
> > From: Sven Auhagen <sven.auhagen at voleatech.de>
> > 
> > Disable the platform irq init in ahci init platform host
> > if it was initiated by a custom function.
> > To check for it I am using the AHCI_HFLAG_MULTI_MSI flag.
> > 
> > Suggested-by: Hans de Goede <hdegoede at redhat.com>
> > Signed-off-by: Sven Auhagen <sven.auhagen at voleatech.de>
> 
> The code is fine here. But I'm not entirely happy with
> the commit message how about:
> 
> """
> ata: libahci_platform: Do not try to get an IRQ when AHCI_HFLAG_MULTI_MSI is set
> 
> When the ahci-host AHCI_HFLAG_MULTI_MSI flag is set then the driver must provide
> a get_irq_vector callback and take care of getting the IRQs itself. So in this
> case ahci_platform_init_host() should not try to get an IRQ itself.
> """
> 
> With the commit message updated to the above (or something similar) you
> may add my:
> 
> Reviewed-by: Hans de Goede <hdegoede at redhat.com>
> 
> I've also just given you my Reviewed-by for patch 4 and 5, and the
> result already has a Reviewed-by.
> 
> So if you can sendout a v3 of this series with the commit message for
> this patch fixed, then it is ready for merging from my pov.

Thank you, I will change the commit message and send a v3.

Best
Sven

> 
> Regards,
> 
> Hans
> 
> 
> > ---
> >  drivers/ata/libahci_platform.c | 16 +++++++++-------
> >  1 file changed, 9 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/ata/libahci_platform.c b/drivers/ata/libahci_platform.c
> > index de638dafce21..f6f2a111d226 100644
> > --- a/drivers/ata/libahci_platform.c
> > +++ b/drivers/ata/libahci_platform.c
> > @@ -581,14 +581,16 @@ int ahci_platform_init_host(struct platform_device *pdev,
> >  	struct ata_host *host;
> >  	int i, irq, n_ports, rc;
> >  
> > -	irq = platform_get_irq(pdev, 0);
> > -	if (irq <= 0) {
> > -		if (irq != -EPROBE_DEFER)
> > -			dev_err(dev, "no irq\n");
> > -		return irq;
> > -	}
> > +	if (!(hpriv->flags & AHCI_HFLAG_MULTI_MSI)) {
> > +		irq = platform_get_irq(pdev, 0);
> > +		if (irq <= 0) {
> > +			if (irq != -EPROBE_DEFER)
> > +				dev_err(dev, "no irq\n");
> > +			return irq;
> > +		}
> >  
> > -	hpriv->irq = irq;
> > +		hpriv->irq = irq;
> > +	}
> >  
> >  	/* prepare host */
> >  	pi.private_data = (void *)(unsigned long)hpriv->flags;
> > 
> 



More information about the linux-arm-kernel mailing list