[FSL P50x0] Keyboard and mouse don't work anymore after the devicetree updates for 5.19

Rob Herring robh at kernel.org
Tue Jun 7 00:58:52 AEST 2022


On Fri, May 27, 2022 at 9:23 AM Rob Herring <robh at kernel.org> wrote:
>
> On Fri, May 27, 2022 at 3:33 AM Christian Zigotzky
> <chzigotzky at xenosoft.de> wrote:
> >
> > On 27 May 2022 at 10:14 am, Prabhakar Mahadev Lad wrote:
> > > Hi,
> > >
> > >> -----Original Message-----
> > >> From: Christian Zigotzky <chzigotzky at xenosoft.de>
> > >>
> > >> On 27 May 2022 at 09:56 am, Prabhakar Mahadev Lad wrote:
> > >>> Hi,
> > >>>
> > >>>> -----Original Message-----
> > >>>> From: Christophe Leroy <christophe.leroy at csgroup.eu>

[...]

> > >>> Looks like the driver which you are using has not been converted to use
> > >> platform_get_irq(), could you please check that.
> > >>> Cheers,
> > >>> Prabhakar
> > >> Do you mean the mouse and keyboard driver?
> > >>
> > > No it could be your gpio/pinctrl driver assuming the keyboard/mouse are using GPIO's. If you are using interrupts then it might be some hierarchal irqc driver in drivers/irqchip/.
> > >
> > > Cheers,
> > > Prabhakar
> > Good to know. I only use unmodified drivers from the official Linux
> > kernel so it's not an issue of the Cyrus+ board.
>
> The issue is in drivers/usb/host/fsl-mph-dr-of.c which copies the
> resources to a child platform device. Can you try the following
> change:
>
> diff --git a/drivers/usb/host/fsl-mph-dr-of.c b/drivers/usb/host/fsl-mph-dr-of.c
> index 44a7e58a26e3..47d9b7be60da 100644
> --- a/drivers/usb/host/fsl-mph-dr-of.c
> +++ b/drivers/usb/host/fsl-mph-dr-of.c
> @@ -80,8 +80,6 @@ static struct platform_device *fsl_usb2_device_register(
>                                         const char *name, int id)
>  {
>         struct platform_device *pdev;
> -       const struct resource *res = ofdev->resource;
> -       unsigned int num = ofdev->num_resources;
>         int retval;
>
>         pdev = platform_device_alloc(name, id);
> @@ -106,11 +104,7 @@ static struct platform_device *fsl_usb2_device_register(
>         if (retval)
>                 goto error;
>
> -       if (num) {
> -               retval = platform_device_add_resources(pdev, res, num);
> -               if (retval)
> -                       goto error;
> -       }
> +       pdev->dev.of_node = ofdev->dev.of_node;

>From the log, I think you also need to add this line:

pdev->dev.of_node_reused = true;

>
>         retval = platform_device_add(pdev);
>         if (retval)


More information about the Linuxppc-dev mailing list