Re: [PATCH] sh: Avoid using IRQ0 on SH3 and SH4

Sergey Shtylyov <[email protected]>
Newsgroups gmane.linux.ports.sh.devel,gmane.linux.kernel
Organization Open Mobile Platform
Message-ID <[email protected]>
On 7/8/23 11:35 PM, Sergey Shtylyov wrote:
[...]

>>> On Thu, Jun 01, 2023 at 11:22:17PM +0300, Sergey Shtylyov wrote:
>>>> IRQ0 is no longer returned by platform_get_irq() and its ilk -- they now
>>>> return -EINVAL instead.  However, the kernel code supporting SH3/4-based
>>>> SoCs still maps the IRQ #s starting at 0 -- modify that code to start the
>>>> IRQ #s from 16 instead.
>>>>
>>>> The patch should mostly affect the AP-SH4A-3A/AP-SH4AD-0A boards as they
>>>> indeed are using IRQ0 for the SMSC911x compatible Ethernet chip.
>>>>
>>>
>>> Unfortunately it also affects all sh4 emulations in qemu, and results in
>>> boot stalls with those. There isn't a relevant log to attach because there
>>> is no error message - booting just stalls until the emulation is aborted.
>>>
>>> Reverting this patch fixes the problem.
>>>
>>> Bisect log is attached for reference. Note that bisect requires applying
>>> commit 7497840d462c ("sh: Provide unxlate_dev_mem_ptr() in asm/io.h"),
>>> which is also the reason why the problem was not observed earlier since
>>> it was hiding behind a build failure.
>>
>> Interesting. My naive understanding was that IRQ0 is no longer usable in the
>> kernel as Sergey claimed. Was that not correct?
> 
>     According to Linus, using IRQ0 should only be allowed in the arch/ code
> (usually the i8253 driver). As for the platform devices, this have been finally
> enforced by this patch.

   Sorry, I meant *that* patch:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ce753ad1549cbe9ccaea4c06a1f5fa47432c8289

>> Adrian

MBR, Sergey
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.