On Fri, 12 Nov 2021 14:15:18 +0000, Christian Zigotzky <chzigotzky@xxxxxxxxxxx> wrote: > > On 12 November 2021 at 02:41 pm, Marc Zyngier wrote: > > On Fri, 12 Nov 2021 09:40:30 +0000, > > Christian Zigotzky <chzigotzky@xxxxxxxxxxx> wrote: > >> On 11 November 2021 at 06:39 pm, Marc Zyngier wrote: > >>> On Wed, 10 Nov 2021 18:07:24 +0000, > >>> Christian Zigotzky <chzigotzky@xxxxxxxxxxx> wrote: > >>>> On 09 November 2021 at 03:45 pm, Christian Zigotzky wrote: > >>>>> Hello, > >>>>> > >>>>> The Nemo board [1] doesn't recognize any ATA disks with the > >>>> pci-v5.16 updates [2]. > >>>>> Error messages: > >>>>> > >>>>> ata4.00: gc timeout cmd 0xec > >>>>> ata4.00: failed to IDENTIFY (I/O error, error_mask=0x4) > >>>>> ata1.00: gc timeout cmd 0xec > >>>>> ata1.00: failed to IDENTIFY (I/O error, error_mask=0x4) > >>>>> ata3.00: gc timeout cmd 0xec > >>>>> ata3.00: failed to IDENTIFY (I/O error, error_mask=0x4) > >>>>> > >>>>> I was able to revert the new pci-v5.16 updates [2]. After a new > >>>> compiling, the kernel recognize all ATA disks correctly. > >>>>> Could you please check the pci-v5.16 updates [2]? > >>>>> > >>>>> Please find attached the kernel config. > >>>>> > >>>>> Thanks, > >>>>> Christian > >>>>> > >>>>> [1] https://en.wikipedia.org/wiki/AmigaOne_X1000 > >>>>> [2] > >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0c5c62ddf88c34bc83b66e4ac9beb2bb0e1887d4 > >>>> > >>>> Hi All, > >>>> > >>>> Many thanks for your nice responses. > >>>> > >>>> I bisected today [1]. 0412841812265734c306ba5ef8088bcb64d5d3bd > >>>> (of/irq: Allow matching of an interrupt-map local to an interrupt > >>>> controller) [2] is the first bad commit. > >>> Can you please give the following hack a go and post the result > >>> (including the full dmesg)? > >>> > >>> Thanks, > >>> > >>> M. > >>> diff --git a/drivers/of/irq.c b/drivers/of/irq.c > >>> index 32be5a03951f..8cf0cc9b7caf 100644 > >>> --- a/drivers/of/irq.c > >>> +++ b/drivers/of/irq.c > >>> @@ -156,14 +156,15 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq) > >>> /* Now start the actual "proper" walk of the interrupt tree */ > >>> while (ipar != NULL) { > >>> + bool intc = of_property_read_bool(ipar, "interrupt-controller"); > >>> + > >>> /* > >>> * Now check if cursor is an interrupt-controller and > >>> * if it is then we are done, unless there is an > >>> * interrupt-map which takes precedence. > >>> */ > >>> imap = of_get_property(ipar, "interrupt-map", &imaplen); > >>> - if (imap == NULL && > >>> - of_property_read_bool(ipar, "interrupt-controller")) { > >>> + if (imap == NULL && intc) { > >>> pr_debug(" -> got it !\n"); > >>> return 0; > >>> } > >>> @@ -244,8 +245,14 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq) > >>> pr_debug(" -> imaplen=%d\n", imaplen); > >>> } > >>> - if (!match) > >>> + if (!match) { > >>> + if (intc) { > >>> + pr_info("%pOF interrupt-map failed, using interrupt-controller\n", ipar); > >>> + return 0; > >>> + } > >>> + > >>> goto fail; > >>> + } > >>> /* > >>> * Successfully parsed an interrrupt-map translation; copy new > >>> > >> The detecting of the ATA disks works with this patch! Well done! > >> Thanks a lot! > > Thanks for testing it. I'll turn that into a proper patch. > > > > M. > > > Could you please explain your patch? Please refer to the commit message[1]. > I am not a developer. I work for the A-EON Linux FLS. I have no idea what this is, unfortunately. M. [1] https://lore.kernel.org/r/20211112143644.434995-1-maz@xxxxxxxxxx -- Without deviation from the norm, progress is not possible.