On Mon, Nov 29, 2021 at 09:01:16PM +0200, Andy Shevchenko wrote:
On Mon, Nov 29, 2021 at 05:11:52PM +0000, Mark Brown wrote:
Zero is (or was, people were working on changing it partly due to confusion and partly due to moving to newer infrastructure which doesn't use it) a valid IRQ on some architectures. x86 wasn't one of those though, at least AFAIR.
I guess it's about x86, but the API returns Linux virtual IRQ and 0 shouldn't be among them (hardware IRQ != Linux virtual IRQ). Legacy x86 used 1:1 mapping for ISA IRQs (lower 16) among which the Timer IRQ is 0. I believe that timer code does not use any of those APIs (it most likely and IIRC has it hardcoded).
Right, the virtual IRQs are the newer stuff. 32 bit arm was another platform that had 0 as a valid IRQ for similar reasons, I don't know if any of the platforms are still affected though and I'm going to go out on a limb and say they're not using platform_irq_get_optional().