Problem with "driver core: platform: Add an error message to platform_get_irq*()" commit

From: Hans de Goede
Date: Thu Oct 03 2019 - 16:20:34 EST


Hi all,

I've been debugging a new error printed with 5.4-rc1:

[ 25.570893] dwc3 dwc3.0.auto: IRQ peripheral not found

This is caused by the "driver core: platform: Add an error message to platform_get_irq*()"
commit.

The dwc3 driver first tries to get the IRQ by 2 different names before falling
back to the IRQ at index 0:

irq = platform_get_irq_byname(dwc3_pdev, "peripheral");
if (irq > 0)
goto out;

if (irq == -EPROBE_DEFER)
goto out;

irq = platform_get_irq_byname(dwc3_pdev, "dwc_usb3");
if (irq > 0)
goto out;

if (irq == -EPROBE_DEFER)
goto out;

irq = platform_get_irq(dwc3_pdev, 0);

Together with the mentioned commit, this is causing this new (harmless)
error message. We also have had a bug report for this:

https://bugzilla.kernel.org/show_bug.cgi?id=205037

Which I will close after this mail since the error is harmless,
still it is sorta scary looking and we should probable silence it.

The best solution I can come up with is adding a new
platform_get_irq_byname_optional mirroring platform_get_irq_optional
and using that in drivers such as the dwc3 driver.

Does anyone have a better suggestion?

Regards,

Hans