Re: [FSL P50x0] Keyboard and mouse don't work anymore after the devicetree updates for 5.19
From: Rob Herring <robh@kernel.org>
Date: 2022-05-27 14:23:58
Subsystem:
the rest, usb subsystem · Maintainers:
Linus Torvalds, Greg Kroah-Hartman
On Fri, May 27, 2022 at 3:33 AM Christian Zigotzky [off-list ref] wrote:
On 27 May 2022 at 10:14 am, Prabhakar Mahadev Lad wrote:quoted
Hi,quoted
-----Original Message----- From: Christian Zigotzky <redacted> Sent: 27 May 2022 09:06 To: Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@bp.renesas.com>; Christophe Leroy [off-list ref]; Rob Herring [off-list ref] Cc: Darren Stevens <redacted>; linuxppc-dev <linuxppc- dev@lists.ozlabs.org>; mad skateman [off-list ref]; R.T.Dickinson [off-list ref]; Christian Zigotzky [off-list ref] Subject: [FSL P50x0] Keyboard and mouse don't work anymore after the devicetree updates for 5.19 On 27 May 2022 at 09:56 am, Prabhakar Mahadev Lad wrote:quoted
Hi,quoted
-----Original Message----- From: Christophe Leroy <redacted> Sent: 27 May 2022 08:23 To: Christian Zigotzky <redacted>; rob.herring@calxeda.com; Prabhakar Mahadev Lad [off-list ref] Cc: Darren Stevens <redacted>; linuxppc-dev <linuxppc- dev@lists.ozlabs.org>; mad skateman [off-list ref]; R.T.Dickinson [off-list ref]; Christian Zigotzky [off-list ref] Subject: Re: [FSL P50x0] Keyboard and mouse don't work anymore after the devicetree updates for 5.19 Hi Le 26/05/2022 à 19:42, Christian Zigotzky a écrit :quoted
Hello, My keyboard and mouse don't work anymore with my Cyrus+ board with a FSL P50x0 PowerPC SoC [1] after the devicetree updates for 5.19 [2]. After reverting the devicetree updates, my keyboard and mouse work without any problems. I figured out that the issue is in the patch for the file platform.c [3]. I created a patch for reverting the problematic code. (see attachment) After reverting the changes with the attached patch, the keyboard and mouse work again. Please check your changes in the file platform.c [3]. Thanks, Christian [1] https://jpn01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwiki. amiga.org%2Findex.php%3Ftitle%3DX5000&data=05%7C01%7Cprabhakar.m ah adev-lad.rj%40bp.renesas.com%7C4e9c08d1e3874a34bd4208da3fb1c007%7C53 d8 2571da1947e49cb4625a166a4a2a%7C0%7C0%7C637892329912063922%7CUnknown% 7C TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJX VC I6Mn0%3D%7C3000%7C%7C%7C&sdata=fSABvBDi%2FYlqU1eydQB6%2F4BzxXkqR M0 Ln9hdInyTp6w%3D&reserved=0 [2] https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit. kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git %2 Fcommit%2F%3Fid%3D86c87bea6b42100c67418af690919c44de6ede6e&data= 05 %7C01%7Cprabhakar.mahadev-lad.rj%40bp.renesas.com%7C4e9c08d1e3874a34 bd 4208da3fb1c007%7C53d82571da1947e49cb4625a166a4a2a%7C0%7C0%7C63789232 99 12063922%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzI iL CJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=ENkjlza0J7xF iI aPUwMBxHBIkXJNkT%2BLTZ3xuPz%2B10Q%3D&reserved=0 [3] https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit. kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git %2 Fdiff%2Fdrivers%2Fof%2Fplatform.c%3Fid%3D86c87bea6b42100c67418af6909 19 c44de6ede6e&data=05%7C01%7Cprabhakar.mahadev-lad.rj%40bp.renesas .c om%7C4e9c08d1e3874a34bd4208da3fb1c007%7C53d82571da1947e49cb4625a166a 4a 2a%7C0%7C0%7C637892329912063922%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4w Lj AwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C &a mp;sdata=yEJUK%2BGK2dzWARC5rfhsSSFSwD%2BLZm8aNNHqQhPYP7Y%3D&rese rv ed=0Based on your patch I would say the culprit commit is https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit hub.c%2F&data=05%7C01%7Cprabhakar.mahadev-lad.rj%40bp.renesas.com %7Cbf899ff2084643971c7908da3fb7d4b9%7C53d82571da1947e49cb4625a166a4a2 a%7C0%7C1%7C637892356025845542%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLj AwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000%7C%7C%7C& amp;sdata=%2FzI4yueF6Pc%2Fpvh7Ax9WilnaYX8ozFTRyQpiVaaacbg%3D&rese rved=0 om%2Ftorvalds%2Flinux%2Fcommit%2Fa1a2b7125e1079cfcc13a116aa3af3df2f9e 002b& amp;data=05%7C01%7Cprabhakar.mahadev- lad.rj%40bp.renesas.com%7C4e9c08d1e3874a34bd4208da3fb1c007%7C53d82571 da194 7e49cb4625a166a4a2a%7C0%7C0%7C637892329912063922%7CUnknown%7CTWFpbGZs b3d8e yJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3 000%7 C%7C%7C&sdata=ONR1CiaSID6q4%2Fo%2BI6MlPA4ij89BJphQRpEu5tQxvYQ%3D& amp;r eserved=0 commit a1a2b7125e1079cfcc13a116aa3af3df2f9e002b Author: Lad Prabhakar [off-list ref] Date: Wed Mar 16 20:06:33 2022 +0000 of/platform: Drop static setup of IRQ resource from DT core Now that all the DT drivers have switched to platform_get_irq() we can now safely drop the static setup of IRQ resource from DT core code. With the above change hierarchical setup of irq domains is nolongerquoted
quoted
bypassed and thus allowing hierarchical interrupt domains todescribequoted
quoted
interrupts using "interrupts" DT property. Signed-off-by: Lad Prabhakar <prabhakar.mahadev- lad.rj@bp.renesas.com> Acked-by: Marc Zyngier [off-list ref] Tested-by: Marc Zyngier [off-list ref] Signed-off-by: Rob Herring [off-list ref] Link: https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flor e.ker%2F&data=05%7C01%7Cprabhakar.mahadev-lad.rj%40bp.renesas.com %7Cbf899ff2084643971c7908da3fb7d4b9%7C53d82571da1947e49cb4625a166a4a2 a%7C0%7C1%7C637892356025845542%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLj AwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000%7C%7C%7C& amp;sdata=R%2FhdNkjna6kT31Fy9L3HjrDscWR743O%2BAY8sITu9pVE%3D&rese rved=0 nel.org%2Fr%2F20220316200633.28974-1-prabhakar.mahadev- lad.rj%40bp.renesas.com&data=05%7C01%7Cprabhakar.mahadev- lad.rj%40bp.renesas.com%7C4e9c08d1e3874a34bd4208da3fb1c007%7C53d82571 da194 7e49cb4625a166a4a2a%7C0%7C0%7C637892329912063922%7CUnknown%7CTWFpbGZs b3d8e yJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3 000%7 C%7C%7C&sdata=ri76vfLpmxe7vFDAlsBjyrSSkuTMz0ydftu3XObLGLA%3D& reser ved=0Looks like the driver which you are using has not been converted to useplatform_get_irq(), could you please check that.quoted
Cheers, PrabhakarDo 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, PrabhakarGood 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; retval = platform_device_add(pdev); if (retval)