lkml.org 
[lkml]   [2023]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH] sh: Avoid using IRQ0 on SH3 and SH4
From
On 7/7/23 08:19, John Paul Adrian Glaubitz wrote:
> Hi Guenter!
>
>> On Jul 7, 2023, at 4:35 PM, Guenter Roeck <linux@roeck-us.net> wrote:
>>
>> On 7/7/23 02:53, John Paul Adrian Glaubitz wrote:
>>> Hi Geert!
>>> On Fri, 2023-07-07 at 10:48 +0200, Geert Uytterhoeven wrote:
>>>>> I can reproduce the issue with rts7751r2dplus_defconfig, but I may
>>>>> not be able to look into it today...
>>>>
>>>> Disabling CONFIG_USB_OHCI_HCD fixes the hang.
>>> I picked rts7751r2dplus_defconfig, disabled CONFIG_USB_OHCI_HCD but it still
>>> hangs for me. Are you sure it's CONFIG_USB_OHCI_HCD and not something else?
>>
>> It seems to be related. With this patch reverted, ohci_irq() gets a single
>> interrupt, and boot continues. With this patch in place, ohci_irq() does
>> not get any interrupts, and boot hangs with qemu at 100% CPU. I confirmed
>> this by disabling CONFIG_MFD_SM501. After that, the hang is no longer seen.
>> Of course, that also means that OHCI and other emulated sm501 functionality
>> no longer works.
>>
>> My suspicion is that something goes wrong with interrupt routing to
>> SM501 and with it to ohci_irq(), but that is just a wild guess.
>
> Looking at drivers/mfd/sm501.c, sm501_plat_probe() is explicitly requesting IRQ 0 which is no longer supported on SH:
>
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/mfd/sm501.c <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/mfd/sm501.c>
>
> So, we need to shift this by 16, I guess.
>

It isn't interrupt 0, it is interrupt _index_ 0. See platform_get_irq_optional()
which calls platform_get_resource(dev, IORESOURCE_IRQ, num). There are lots
of calls to platform_get_irq() with index 0 in the kernel.

Guenter

\
 
 \ /
  Last update: 2023-07-07 17:31    [W:0.044 / U:25.612 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site