On Fri, 12 Nov 2021 14:15:18 +0000,
Christian Zigotzky <chzigot...@xenosoft.de> wrote:
> 
> On 12 November 2021 at 02:41 pm, Marc Zyngier wrote:
> > On Fri, 12 Nov 2021 09:40:30 +0000,
> > Christian Zigotzky <chzigot...@xenosoft.de> wrote:
> >> On 11 November 2021 at 06:39 pm, Marc Zyngier wrote:
> >>> On Wed, 10 Nov 2021 18:07:24 +0000,
> >>> Christian Zigotzky <chzigot...@xenosoft.de> 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-...@kernel.org

-- 
Without deviation from the norm, progress is not possible.

Reply via email to