Message ID | 283c811b-27f7-64a8-8a67-11cf6c3a79cf@xenosoft.de (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | [FSL,P50x0] Keyboard and mouse don't work anymore after the devicetree updates for 5.19 | expand |
Hi Le 26/05/2022 à 19:42, Christian Zigotzky a écrit : > 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] http://wiki.amiga.org/index.php?title=X5000 > [2] > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=86c87bea6b42100c67418af690919c44de6ede6e > > [3] > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/drivers/of/platform.c?id=86c87bea6b42100c67418af690919c44de6ede6e Based on your patch I would say the culprit commit is https://github.com/torvalds/linux/commit/a1a2b7125e1079cfcc13a116aa3af3df2f9e002b commit a1a2b7125e1079cfcc13a116aa3af3df2f9e002b Author: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> 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 no longer bypassed and thus allowing hierarchical interrupt domains to describe interrupts using "interrupts" DT property. Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Acked-by: Marc Zyngier <maz@kernel.org> Tested-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20220316200633.28974-1-prabhakar.mahadev-lad.rj@bp.renesas.com Can you please provide you device tree ? Do you use any out-of-tree drivers ? Thanks Christophe
On 27 May 2022 at 09:23 am, Christophe Leroy wrote: > Hi > > Le 26/05/2022 à 19:42, Christian Zigotzky a écrit : >> 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] http://wiki.amiga.org/index.php?title=X5000 >> [2] >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=86c87bea6b42100c67418af690919c44de6ede6e >> >> [3] >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/drivers/of/platform.c?id=86c87bea6b42100c67418af690919c44de6ede6e > > Based on your patch I would say the culprit commit is > https://github.com/torvalds/linux/commit/a1a2b7125e1079cfcc13a116aa3af3df2f9e002b > > commit a1a2b7125e1079cfcc13a116aa3af3df2f9e002b > Author: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > 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 no longer > bypassed and thus allowing hierarchical interrupt domains to describe > interrupts using "interrupts" DT property. > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > Acked-by: Marc Zyngier <maz@kernel.org> > Tested-by: Marc Zyngier <maz@kernel.org> > Signed-off-by: Rob Herring <robh@kernel.org> > Link: > https://lore.kernel.org/r/20220316200633.28974-1-prabhakar.mahadev-lad.rj@bp.renesas.com > > > > Can you please provide you device tree ? > > Do you use any out-of-tree drivers ? > > Thanks > Christophe Hi Christophe, No, I don't use any out-of-tree drivers. Please find attached the dtb, dts, and the dtsi file. Thanks, Christian /* * P5040 Silicon/SoC Device Tree Source (pre include) * * Copyright 2012 - 2015 Freescale Semiconductor Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Freescale Semiconductor nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * * ALTERNATIVELY, this software may be distributed under the terms of the * GNU General Public License ("GPL") as published by the Free Software * Foundation, either version 2 of that License or (at your option) any * later version. * * This software is provided by Freescale Semiconductor "as is" and any * express or implied warranties, including, but not limited to, the implied * warranties of merchantability and fitness for a particular purpose are * disclaimed. In no event shall Freescale Semiconductor be liable for any * direct, indirect, incidental, special, exemplary, or consequential damages * (including, but not limited to, procurement of substitute goods or services; * loss of use, data, or profits; or business interruption) however caused and * on any theory of liability, whether in contract, strict liability, or tort * (including negligence or otherwise) arising in any way out of the use of this * software, even if advised of the possibility of such damage. */ /dts-v1/; /include/ "e5500_power_isa.dtsi" / { compatible = "fsl,P5040"; #address-cells = <2>; #size-cells = <2>; interrupt-parent = <&mpic>; aliases { ccsr = &soc; dcsr = &dcsr; serial0 = &serial0; serial1 = &serial1; serial2 = &serial2; serial3 = &serial3; pci0 = &pci0; pci1 = &pci1; pci2 = &pci2; usb0 = &usb0; usb1 = &usb1; dma0 = &dma0; dma1 = &dma1; sdhc = &sdhc; msi0 = &msi0; msi1 = &msi1; msi2 = &msi2; crypto = &crypto; sec_jr0 = &sec_jr0; sec_jr1 = &sec_jr1; sec_jr2 = &sec_jr2; sec_jr3 = &sec_jr3; rtic_a = &rtic_a; rtic_b = &rtic_b; rtic_c = &rtic_c; rtic_d = &rtic_d; sec_mon = &sec_mon; raideng = &raideng; raideng_jr0 = &raideng_jr0; raideng_jr1 = &raideng_jr1; raideng_jr2 = &raideng_jr2; raideng_jr3 = &raideng_jr3; fman0 = &fman0; fman1 = &fman1; }; cpus { #address-cells = <1>; #size-cells = <0>; cpu0: PowerPC,e5500@0 { device_type = "cpu"; reg = <0>; clocks = <&clockgen 1 0>; next-level-cache = <&L2_0>; fsl,portid-mapping = <0x80000000>; L2_0: l2-cache { next-level-cache = <&cpc>; }; }; cpu1: PowerPC,e5500@1 { device_type = "cpu"; reg = <1>; clocks = <&clockgen 1 1>; next-level-cache = <&L2_1>; fsl,portid-mapping = <0x40000000>; L2_1: l2-cache { next-level-cache = <&cpc>; }; }; cpu2: PowerPC,e5500@2 { device_type = "cpu"; reg = <2>; clocks = <&clockgen 1 2>; next-level-cache = <&L2_2>; fsl,portid-mapping = <0x20000000>; L2_2: l2-cache { next-level-cache = <&cpc>; }; }; cpu3: PowerPC,e5500@3 { device_type = "cpu"; reg = <3>; clocks = <&clockgen 1 3>; next-level-cache = <&L2_3>; fsl,portid-mapping = <0x10000000>; L2_3: l2-cache { next-level-cache = <&cpc>; }; }; }; }; /* * Cyrus 5040 Device Tree Source, based on p5040ds.dts * * Copyright 2020 Darren Stevens * * p5040ds.dts Copyright 2012 - 2015 Freescale Semiconductor Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Freescale Semiconductor nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * * ALTERNATIVELY, this software may be distributed under the terms of the * GNU General Public License ("GPL") as published by the Free Software * Foundation, either version 2 of that License or (at your option) any * later version. * * This software is provided by Freescale Semiconductor "as is" and any * express or implied warranties, including, but not limited to, the implied * warranties of merchantability and fitness for a particular purpose are * disclaimed. In no event shall Freescale Semiconductor be liable for any * direct, indirect, incidental, special, exemplary, or consequential damages * (including, but not limited to, procurement of substitute goods or services; * loss of use, data, or profits; or business interruption) however caused and * on any theory of liability, whether in contract, strict liability, or tort * (including negligence or otherwise) arising in any way out of the use of this * software, even if advised of the possibility of such damage. */ /include/ "p5040si-pre.dtsi" / { model = "varisys,CYRUS5040"; compatible = "varisys,CYRUS"; #address-cells = <2>; #size-cells = <2>; interrupt-parent = <&mpic>; aliases{ ethernet0 = &enet4; ethernet1 = &enet10; }; memory { device_type = "memory"; }; reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; bman_fbpr: bman-fbpr { size = <0 0x1000000>; alignment = <0 0x1000000>; }; qman_fqd: qman-fqd { size = <0 0x400000>; alignment = <0 0x400000>; }; qman_pfdr: qman-pfdr { size = <0 0x2000000>; alignment = <0 0x2000000>; }; }; dcsr: dcsr@f00000000 { ranges = <0x00000000 0xf 0x00000000 0x01008000>; }; bportals: bman-portals@ff4000000 { ranges = <0x0 0xf 0xf4000000 0x200000>; }; qportals: qman-portals@ff4200000 { ranges = <0x0 0xf 0xf4200000 0x200000>; }; soc: soc@ffe000000 { ranges = <0x00000000 0xf 0xfe000000 0x1000000>; reg = <0xf 0xfe000000 0 0x00001000>; spi@110000 { }; i2c@118100 { }; i2c@119100 { rtc@6f { compatible = "microchip,mcp7941x"; reg = <0x6f>; }; }; gpio-poweroff { compatible = "gpio-poweroff"; gpios = <&gpio0 3 1>; }; gpio-restart { compatible = "gpio-restart"; gpios = <&gpio0 2 1>; }; leds { compatible = "gpio-leds"; hdd { label = "Disk activity"; gpios = <&gpio0 5 0>; linux,default-trigger = "disk-activity"; }; }; fman@400000 { mdio@e1120 { phy3: ethernet-phy@3 { reg = <0x3>; }; phy7: ethernet-phy@7 { reg = <0x7>; }; }; ethernet@e0000 { status = "disabled"; }; ethernet@e2000 { status = "disabled"; }; ethernet@e4000 { status = "disabled"; }; ethernet@e6000 { status = "disabled"; }; ethernet@e8000 { phy-handle = <&phy3>; phy-connection-type = "rgmii"; }; }; fman@500000 { ethernet@e0000 { status = "disabled"; }; ethernet@e2000 { status = "disabled"; }; ethernet@e4000 { status = "disabled"; }; ethernet@e6000 { status = "disabled"; }; ethernet@e8000 { phy-handle = <&phy7>; phy-connection-type = "rgmii"; }; }; }; lbc: localbus@ffe124000 { reg = <0xf 0xfe124000 0 0x1000>; ranges = <0 0 0xf 0xe8000000 0x08000000 2 0 0xf 0xffa00000 0x00040000 3 0 0xf 0xffdf0000 0x00008000>; }; pci0: pcie@ffe200000 { reg = <0xf 0xfe200000 0 0x1000>; ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000 0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>; pcie@0 { ranges = <0x02000000 0 0xe0000000 0x02000000 0 0xe0000000 0 0x20000000 0x01000000 0 0x00000000 0x01000000 0 0x00000000 0 0x00010000>; }; }; pci1: pcie@ffe201000 { reg = <0xf 0xfe201000 0 0x1000>; ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000 0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>; pcie@0 { ranges = <0x02000000 0 0xe0000000 0x02000000 0 0xe0000000 0 0x20000000 0x01000000 0 0x00000000 0x01000000 0 0x00000000 0 0x00010000>; }; }; pci2: pcie@ffe202000 { reg = <0xf 0xfe202000 0 0x1000>; ranges = <0x02000000 0 0xe0000000 0xc 0x40000000 0 0x20000000 0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>; pcie@0 { ranges = <0x02000000 0 0xe0000000 0x02000000 0 0xe0000000 0 0x20000000 0x01000000 0 0x00000000 0x01000000 0 0x00000000 0 0x00010000>; }; }; }; /include/ "p5040si-post.dtsi"
Rob's email address corrected. -- Christian On 27 May 2022 at 09:23 am, Christophe Leroy wrote: > Hi > > Le 26/05/2022 à 19:42, Christian Zigotzky a écrit : >> 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] http://wiki.amiga.org/index.php?title=X5000 >> [2] >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=86c87bea6b42100c67418af690919c44de6ede6e >> >> [3] >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/drivers/of/platform.c?id=86c87bea6b42100c67418af690919c44de6ede6e > > Based on your patch I would say the culprit commit is > https://github.com/torvalds/linux/commit/a1a2b7125e1079cfcc13a116aa3af3df2f9e002b > > commit a1a2b7125e1079cfcc13a116aa3af3df2f9e002b > Author: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > 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 no longer > bypassed and thus allowing hierarchical interrupt domains to describe > interrupts using "interrupts" DT property. > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > Acked-by: Marc Zyngier <maz@kernel.org> > Tested-by: Marc Zyngier <maz@kernel.org> > Signed-off-by: Rob Herring <robh@kernel.org> > Link: > https://lore.kernel.org/r/20220316200633.28974-1-prabhakar.mahadev-lad.rj@bp.renesas.com > > > > Can you please provide you device tree ? > > Do you use any out-of-tree drivers ? > > Thanks > Christophe Hi Christophe, No, I don't use any out-of-tree drivers. Please find attached the dtb, dts, and the dtsi file. Thanks, Christian /* * P5040 Silicon/SoC Device Tree Source (pre include) * * Copyright 2012 - 2015 Freescale Semiconductor Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Freescale Semiconductor nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * * ALTERNATIVELY, this software may be distributed under the terms of the * GNU General Public License ("GPL") as published by the Free Software * Foundation, either version 2 of that License or (at your option) any * later version. * * This software is provided by Freescale Semiconductor "as is" and any * express or implied warranties, including, but not limited to, the implied * warranties of merchantability and fitness for a particular purpose are * disclaimed. In no event shall Freescale Semiconductor be liable for any * direct, indirect, incidental, special, exemplary, or consequential damages * (including, but not limited to, procurement of substitute goods or services; * loss of use, data, or profits; or business interruption) however caused and * on any theory of liability, whether in contract, strict liability, or tort * (including negligence or otherwise) arising in any way out of the use of this * software, even if advised of the possibility of such damage. */ /dts-v1/; /include/ "e5500_power_isa.dtsi" / { compatible = "fsl,P5040"; #address-cells = <2>; #size-cells = <2>; interrupt-parent = <&mpic>; aliases { ccsr = &soc; dcsr = &dcsr; serial0 = &serial0; serial1 = &serial1; serial2 = &serial2; serial3 = &serial3; pci0 = &pci0; pci1 = &pci1; pci2 = &pci2; usb0 = &usb0; usb1 = &usb1; dma0 = &dma0; dma1 = &dma1; sdhc = &sdhc; msi0 = &msi0; msi1 = &msi1; msi2 = &msi2; crypto = &crypto; sec_jr0 = &sec_jr0; sec_jr1 = &sec_jr1; sec_jr2 = &sec_jr2; sec_jr3 = &sec_jr3; rtic_a = &rtic_a; rtic_b = &rtic_b; rtic_c = &rtic_c; rtic_d = &rtic_d; sec_mon = &sec_mon; raideng = &raideng; raideng_jr0 = &raideng_jr0; raideng_jr1 = &raideng_jr1; raideng_jr2 = &raideng_jr2; raideng_jr3 = &raideng_jr3; fman0 = &fman0; fman1 = &fman1; }; cpus { #address-cells = <1>; #size-cells = <0>; cpu0: PowerPC,e5500@0 { device_type = "cpu"; reg = <0>; clocks = <&clockgen 1 0>; next-level-cache = <&L2_0>; fsl,portid-mapping = <0x80000000>; L2_0: l2-cache { next-level-cache = <&cpc>; }; }; cpu1: PowerPC,e5500@1 { device_type = "cpu"; reg = <1>; clocks = <&clockgen 1 1>; next-level-cache = <&L2_1>; fsl,portid-mapping = <0x40000000>; L2_1: l2-cache { next-level-cache = <&cpc>; }; }; cpu2: PowerPC,e5500@2 { device_type = "cpu"; reg = <2>; clocks = <&clockgen 1 2>; next-level-cache = <&L2_2>; fsl,portid-mapping = <0x20000000>; L2_2: l2-cache { next-level-cache = <&cpc>; }; }; cpu3: PowerPC,e5500@3 { device_type = "cpu"; reg = <3>; clocks = <&clockgen 1 3>; next-level-cache = <&L2_3>; fsl,portid-mapping = <0x10000000>; L2_3: l2-cache { next-level-cache = <&cpc>; }; }; }; }; /* * Cyrus 5040 Device Tree Source, based on p5040ds.dts * * Copyright 2020 Darren Stevens * * p5040ds.dts Copyright 2012 - 2015 Freescale Semiconductor Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Freescale Semiconductor nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * * ALTERNATIVELY, this software may be distributed under the terms of the * GNU General Public License ("GPL") as published by the Free Software * Foundation, either version 2 of that License or (at your option) any * later version. * * This software is provided by Freescale Semiconductor "as is" and any * express or implied warranties, including, but not limited to, the implied * warranties of merchantability and fitness for a particular purpose are * disclaimed. In no event shall Freescale Semiconductor be liable for any * direct, indirect, incidental, special, exemplary, or consequential damages * (including, but not limited to, procurement of substitute goods or services; * loss of use, data, or profits; or business interruption) however caused and * on any theory of liability, whether in contract, strict liability, or tort * (including negligence or otherwise) arising in any way out of the use of this * software, even if advised of the possibility of such damage. */ /include/ "p5040si-pre.dtsi" / { model = "varisys,CYRUS5040"; compatible = "varisys,CYRUS"; #address-cells = <2>; #size-cells = <2>; interrupt-parent = <&mpic>; aliases{ ethernet0 = &enet4; ethernet1 = &enet10; }; memory { device_type = "memory"; }; reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; bman_fbpr: bman-fbpr { size = <0 0x1000000>; alignment = <0 0x1000000>; }; qman_fqd: qman-fqd { size = <0 0x400000>; alignment = <0 0x400000>; }; qman_pfdr: qman-pfdr { size = <0 0x2000000>; alignment = <0 0x2000000>; }; }; dcsr: dcsr@f00000000 { ranges = <0x00000000 0xf 0x00000000 0x01008000>; }; bportals: bman-portals@ff4000000 { ranges = <0x0 0xf 0xf4000000 0x200000>; }; qportals: qman-portals@ff4200000 { ranges = <0x0 0xf 0xf4200000 0x200000>; }; soc: soc@ffe000000 { ranges = <0x00000000 0xf 0xfe000000 0x1000000>; reg = <0xf 0xfe000000 0 0x00001000>; spi@110000 { }; i2c@118100 { }; i2c@119100 { rtc@6f { compatible = "microchip,mcp7941x"; reg = <0x6f>; }; }; gpio-poweroff { compatible = "gpio-poweroff"; gpios = <&gpio0 3 1>; }; gpio-restart { compatible = "gpio-restart"; gpios = <&gpio0 2 1>; }; leds { compatible = "gpio-leds"; hdd { label = "Disk activity"; gpios = <&gpio0 5 0>; linux,default-trigger = "disk-activity"; }; }; fman@400000 { mdio@e1120 { phy3: ethernet-phy@3 { reg = <0x3>; }; phy7: ethernet-phy@7 { reg = <0x7>; }; }; ethernet@e0000 { status = "disabled"; }; ethernet@e2000 { status = "disabled"; }; ethernet@e4000 { status = "disabled"; }; ethernet@e6000 { status = "disabled"; }; ethernet@e8000 { phy-handle = <&phy3>; phy-connection-type = "rgmii"; }; }; fman@500000 { ethernet@e0000 { status = "disabled"; }; ethernet@e2000 { status = "disabled"; }; ethernet@e4000 { status = "disabled"; }; ethernet@e6000 { status = "disabled"; }; ethernet@e8000 { phy-handle = <&phy7>; phy-connection-type = "rgmii"; }; }; }; lbc: localbus@ffe124000 { reg = <0xf 0xfe124000 0 0x1000>; ranges = <0 0 0xf 0xe8000000 0x08000000 2 0 0xf 0xffa00000 0x00040000 3 0 0xf 0xffdf0000 0x00008000>; }; pci0: pcie@ffe200000 { reg = <0xf 0xfe200000 0 0x1000>; ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000 0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>; pcie@0 { ranges = <0x02000000 0 0xe0000000 0x02000000 0 0xe0000000 0 0x20000000 0x01000000 0 0x00000000 0x01000000 0 0x00000000 0 0x00010000>; }; }; pci1: pcie@ffe201000 { reg = <0xf 0xfe201000 0 0x1000>; ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000 0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>; pcie@0 { ranges = <0x02000000 0 0xe0000000 0x02000000 0 0xe0000000 0 0x20000000 0x01000000 0 0x00000000 0x01000000 0 0x00000000 0 0x00010000>; }; }; pci2: pcie@ffe202000 { reg = <0xf 0xfe202000 0 0x1000>; ranges = <0x02000000 0 0xe0000000 0xc 0x40000000 0 0x20000000 0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>; pcie@0 { ranges = <0x02000000 0 0xe0000000 0x02000000 0 0xe0000000 0 0x20000000 0x01000000 0 0x00000000 0x01000000 0 0x00000000 0 0x00010000>; }; }; }; /include/ "p5040si-post.dtsi"
Hi, > -----Original Message----- > From: Christophe Leroy <christophe.leroy@csgroup.eu> > Sent: 27 May 2022 08:23 > To: Christian Zigotzky <chzigotzky@xenosoft.de>; rob.herring@calxeda.com; > Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@bp.renesas.com> > Cc: Darren Stevens <darren@stevens-zone.net>; linuxppc-dev <linuxppc- > dev@lists.ozlabs.org>; mad skateman <madskateman@gmail.com>; R.T.Dickinson > <rtd2@xtra.co.nz>; Christian Zigotzky <info@xenosoft.de> > 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 : > > 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.mah > > adev-lad.rj%40bp.renesas.com%7C4e9c08d1e3874a34bd4208da3fb1c007%7C53d8 > > 2571da1947e49cb4625a166a4a2a%7C0%7C0%7C637892329912063922%7CUnknown%7C > > TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVC > > I6Mn0%3D%7C3000%7C%7C%7C&sdata=fSABvBDi%2FYlqU1eydQB6%2F4BzxXkqRM0 > > 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%7C4e9c08d1e3874a34bd > > 4208da3fb1c007%7C53d82571da1947e49cb4625a166a4a2a%7C0%7C0%7C6378923299 > > 12063922%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiL > > CJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=ENkjlza0J7xFiI > > 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%3D86c87bea6b42100c67418af690919 > > c44de6ede6e&data=05%7C01%7Cprabhakar.mahadev-lad.rj%40bp.renesas.c > > om%7C4e9c08d1e3874a34bd4208da3fb1c007%7C53d82571da1947e49cb4625a166a4a > > 2a%7C0%7C0%7C637892329912063922%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLj > > AwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&a > > mp;sdata=yEJUK%2BGK2dzWARC5rfhsSSFSwD%2BLZm8aNNHqQhPYP7Y%3D&reserv > > ed=0 > > > Based on your patch I would say the culprit commit is > https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c > om%2Ftorvalds%2Flinux%2Fcommit%2Fa1a2b7125e1079cfcc13a116aa3af3df2f9e002b& > amp;data=05%7C01%7Cprabhakar.mahadev- > lad.rj%40bp.renesas.com%7C4e9c08d1e3874a34bd4208da3fb1c007%7C53d82571da194 > 7e49cb4625a166a4a2a%7C0%7C0%7C637892329912063922%7CUnknown%7CTWFpbGZsb3d8e > yJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7 > C%7C%7C&sdata=ONR1CiaSID6q4%2Fo%2BI6MlPA4ij89BJphQRpEu5tQxvYQ%3D&r > eserved=0 > > commit a1a2b7125e1079cfcc13a116aa3af3df2f9e002b > Author: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > 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 no longer > bypassed and thus allowing hierarchical interrupt domains to describe > interrupts using "interrupts" DT property. > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev- > lad.rj@bp.renesas.com> > Acked-by: Marc Zyngier <maz@kernel.org> > Tested-by: Marc Zyngier <maz@kernel.org> > Signed-off-by: Rob Herring <robh@kernel.org> > Link: > https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.ker > nel.org%2Fr%2F20220316200633.28974-1-prabhakar.mahadev- > lad.rj%40bp.renesas.com&data=05%7C01%7Cprabhakar.mahadev- > lad.rj%40bp.renesas.com%7C4e9c08d1e3874a34bd4208da3fb1c007%7C53d82571da194 > 7e49cb4625a166a4a2a%7C0%7C0%7C637892329912063922%7CUnknown%7CTWFpbGZsb3d8e > yJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7 > C%7C%7C&sdata=ri76vfLpmxe7vFDAlsBjyrSSkuTMz0ydftu3XObLGLA%3D&reser > ved=0 > Looks like the driver which you are using has not been converted to use platform_get_irq(), could you please check that. Cheers, Prabhakar
On 27 May 2022 at 09:56 am, Prabhakar Mahadev Lad wrote: > Hi, > >> -----Original Message----- >> From: Christophe Leroy <christophe.leroy@csgroup.eu> >> Sent: 27 May 2022 08:23 >> To: Christian Zigotzky <chzigotzky@xenosoft.de>; rob.herring@calxeda.com; >> Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@bp.renesas.com> >> Cc: Darren Stevens <darren@stevens-zone.net>; linuxppc-dev <linuxppc- >> dev@lists.ozlabs.org>; mad skateman <madskateman@gmail.com>; R.T.Dickinson >> <rtd2@xtra.co.nz>; Christian Zigotzky <info@xenosoft.de> >> 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 : >>> 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.mah >>> adev-lad.rj%40bp.renesas.com%7C4e9c08d1e3874a34bd4208da3fb1c007%7C53d8 >>> 2571da1947e49cb4625a166a4a2a%7C0%7C0%7C637892329912063922%7CUnknown%7C >>> TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVC >>> I6Mn0%3D%7C3000%7C%7C%7C&sdata=fSABvBDi%2FYlqU1eydQB6%2F4BzxXkqRM0 >>> 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%7C4e9c08d1e3874a34bd >>> 4208da3fb1c007%7C53d82571da1947e49cb4625a166a4a2a%7C0%7C0%7C6378923299 >>> 12063922%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiL >>> CJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=ENkjlza0J7xFiI >>> 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%3D86c87bea6b42100c67418af690919 >>> c44de6ede6e&data=05%7C01%7Cprabhakar.mahadev-lad.rj%40bp.renesas.c >>> om%7C4e9c08d1e3874a34bd4208da3fb1c007%7C53d82571da1947e49cb4625a166a4a >>> 2a%7C0%7C0%7C637892329912063922%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLj >>> AwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&a >>> mp;sdata=yEJUK%2BGK2dzWARC5rfhsSSFSwD%2BLZm8aNNHqQhPYP7Y%3D&reserv >>> ed=0 >> >> Based on your patch I would say the culprit commit is >> https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c >> om%2Ftorvalds%2Flinux%2Fcommit%2Fa1a2b7125e1079cfcc13a116aa3af3df2f9e002b& >> amp;data=05%7C01%7Cprabhakar.mahadev- >> lad.rj%40bp.renesas.com%7C4e9c08d1e3874a34bd4208da3fb1c007%7C53d82571da194 >> 7e49cb4625a166a4a2a%7C0%7C0%7C637892329912063922%7CUnknown%7CTWFpbGZsb3d8e >> yJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7 >> C%7C%7C&sdata=ONR1CiaSID6q4%2Fo%2BI6MlPA4ij89BJphQRpEu5tQxvYQ%3D&r >> eserved=0 >> >> commit a1a2b7125e1079cfcc13a116aa3af3df2f9e002b >> Author: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> >> 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 no longer >> bypassed and thus allowing hierarchical interrupt domains to describe >> interrupts using "interrupts" DT property. >> >> Signed-off-by: Lad Prabhakar <prabhakar.mahadev- >> lad.rj@bp.renesas.com> >> Acked-by: Marc Zyngier <maz@kernel.org> >> Tested-by: Marc Zyngier <maz@kernel.org> >> Signed-off-by: Rob Herring <robh@kernel.org> >> Link: >> https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.ker >> nel.org%2Fr%2F20220316200633.28974-1-prabhakar.mahadev- >> lad.rj%40bp.renesas.com&data=05%7C01%7Cprabhakar.mahadev- >> lad.rj%40bp.renesas.com%7C4e9c08d1e3874a34bd4208da3fb1c007%7C53d82571da194 >> 7e49cb4625a166a4a2a%7C0%7C0%7C637892329912063922%7CUnknown%7CTWFpbGZsb3d8e >> yJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7 >> C%7C%7C&sdata=ri76vfLpmxe7vFDAlsBjyrSSkuTMz0ydftu3XObLGLA%3D&reser >> ved=0 >> > 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? -- Christian
Hi, > -----Original Message----- > From: Christian Zigotzky <chzigotzky@xenosoft.de> > Sent: 27 May 2022 09:06 > To: Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@bp.renesas.com>; > Christophe Leroy <christophe.leroy@csgroup.eu>; Rob Herring > <robh@kernel.org> > Cc: Darren Stevens <darren@stevens-zone.net>; linuxppc-dev <linuxppc- > dev@lists.ozlabs.org>; mad skateman <madskateman@gmail.com>; R.T.Dickinson > <rtd2@xtra.co.nz>; Christian Zigotzky <info@xenosoft.de> > 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: > > Hi, > > > >> -----Original Message----- > >> From: Christophe Leroy <christophe.leroy@csgroup.eu> > >> Sent: 27 May 2022 08:23 > >> To: Christian Zigotzky <chzigotzky@xenosoft.de>; > >> rob.herring@calxeda.com; Prabhakar Mahadev Lad > >> <prabhakar.mahadev-lad.rj@bp.renesas.com> > >> Cc: Darren Stevens <darren@stevens-zone.net>; linuxppc-dev <linuxppc- > >> dev@lists.ozlabs.org>; mad skateman <madskateman@gmail.com>; > >> R.T.Dickinson <rtd2@xtra.co.nz>; Christian Zigotzky > >> <info@xenosoft.de> > >> 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 : > >>> 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=0 > >> > >> Based 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 <prabhakar.mahadev-lad.rj@bp.renesas.com> > >> 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 no > longer > >> bypassed and thus allowing hierarchical interrupt domains to > describe > >> interrupts using "interrupts" DT property. > >> > >> Signed-off-by: Lad Prabhakar <prabhakar.mahadev- > >> lad.rj@bp.renesas.com> > >> Acked-by: Marc Zyngier <maz@kernel.org> > >> Tested-by: Marc Zyngier <maz@kernel.org> > >> Signed-off-by: Rob Herring <robh@kernel.org> > >> 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=0 > >> > > 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
On 27 May 2022 at 10:14 am, Prabhakar Mahadev Lad wrote: > Hi, > >> -----Original Message----- >> From: Christian Zigotzky <chzigotzky@xenosoft.de> >> Sent: 27 May 2022 09:06 >> To: Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@bp.renesas.com>; >> Christophe Leroy <christophe.leroy@csgroup.eu>; Rob Herring >> <robh@kernel.org> >> Cc: Darren Stevens <darren@stevens-zone.net>; linuxppc-dev <linuxppc- >> dev@lists.ozlabs.org>; mad skateman <madskateman@gmail.com>; R.T.Dickinson >> <rtd2@xtra.co.nz>; Christian Zigotzky <info@xenosoft.de> >> 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: >>> Hi, >>> >>>> -----Original Message----- >>>> From: Christophe Leroy <christophe.leroy@csgroup.eu> >>>> Sent: 27 May 2022 08:23 >>>> To: Christian Zigotzky <chzigotzky@xenosoft.de>; >>>> rob.herring@calxeda.com; Prabhakar Mahadev Lad >>>> <prabhakar.mahadev-lad.rj@bp.renesas.com> >>>> Cc: Darren Stevens <darren@stevens-zone.net>; linuxppc-dev <linuxppc- >>>> dev@lists.ozlabs.org>; mad skateman <madskateman@gmail.com>; >>>> R.T.Dickinson <rtd2@xtra.co.nz>; Christian Zigotzky >>>> <info@xenosoft.de> >>>> 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 : >>>>> 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=0 >>>> Based 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 <prabhakar.mahadev-lad.rj@bp.renesas.com> >>>> 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 no >> longer >>>> bypassed and thus allowing hierarchical interrupt domains to >> describe >>>> interrupts using "interrupts" DT property. >>>> >>>> Signed-off-by: Lad Prabhakar <prabhakar.mahadev- >>>> lad.rj@bp.renesas.com> >>>> Acked-by: Marc Zyngier <maz@kernel.org> >>>> Tested-by: Marc Zyngier <maz@kernel.org> >>>> Signed-off-by: Rob Herring <robh@kernel.org> >>>> 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=0 >>>> >>> 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. -- Christian
On Fri, May 27, 2022 at 3:33 AM Christian Zigotzky <chzigotzky@xenosoft.de> wrote: > > On 27 May 2022 at 10:14 am, Prabhakar Mahadev Lad wrote: > > Hi, > > > >> -----Original Message----- > >> From: Christian Zigotzky <chzigotzky@xenosoft.de> > >> Sent: 27 May 2022 09:06 > >> To: Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@bp.renesas.com>; > >> Christophe Leroy <christophe.leroy@csgroup.eu>; Rob Herring > >> <robh@kernel.org> > >> Cc: Darren Stevens <darren@stevens-zone.net>; linuxppc-dev <linuxppc- > >> dev@lists.ozlabs.org>; mad skateman <madskateman@gmail.com>; R.T.Dickinson > >> <rtd2@xtra.co.nz>; Christian Zigotzky <info@xenosoft.de> > >> 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: > >>> Hi, > >>> > >>>> -----Original Message----- > >>>> From: Christophe Leroy <christophe.leroy@csgroup.eu> > >>>> Sent: 27 May 2022 08:23 > >>>> To: Christian Zigotzky <chzigotzky@xenosoft.de>; > >>>> rob.herring@calxeda.com; Prabhakar Mahadev Lad > >>>> <prabhakar.mahadev-lad.rj@bp.renesas.com> > >>>> Cc: Darren Stevens <darren@stevens-zone.net>; linuxppc-dev <linuxppc- > >>>> dev@lists.ozlabs.org>; mad skateman <madskateman@gmail.com>; > >>>> R.T.Dickinson <rtd2@xtra.co.nz>; Christian Zigotzky > >>>> <info@xenosoft.de> > >>>> 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 : > >>>>> 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=0 > >>>> Based 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 <prabhakar.mahadev-lad.rj@bp.renesas.com> > >>>> 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 no > >> longer > >>>> bypassed and thus allowing hierarchical interrupt domains to > >> describe > >>>> interrupts using "interrupts" DT property. > >>>> > >>>> Signed-off-by: Lad Prabhakar <prabhakar.mahadev- > >>>> lad.rj@bp.renesas.com> > >>>> Acked-by: Marc Zyngier <maz@kernel.org> > >>>> Tested-by: Marc Zyngier <maz@kernel.org> > >>>> Signed-off-by: Rob Herring <robh@kernel.org> > >>>> 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=0 > >>>> > >>> 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; retval = platform_device_add(pdev); if (retval)
On 27 May 2022 at 04:23 am, Rob Herring wrote: > 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) Hi Rob, Thanks a lot for your patch! :-) First attempt with the latest git kernel: patching file a/drivers/usb/host/fsl-mph-dr-of.c Hunk #1 FAILED at 80. Hunk #2 FAILED at 106. 2 out of 2 hunks FAILED -- saving rejects to file a/drivers/usb/host/fsl-mph-dr-of.c.rej I created a new patch with your modifications. (see attachment) Unfortunately I can't test it. The git kernel doesn't compile currently. powerpc-linux-gnu-ld: net/rds/tcp_stats.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/wireless/wext-spy.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/wireless/wext-priv.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/bcast.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/bearer.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/core.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/link.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/discover.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/msg.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/name_distr.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/subscr.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/name_table.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/net.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/netlink.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/netlink_compat.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/node.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/eth_media.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/topsrv.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/group.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/trace.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/udp_media.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/sysctl.o:(.bss+0x40): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/crypto.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/tipc/diag.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/9p/trans_common.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/9p/trans_virtio.o:(.bss+0x40): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/6lowpan/ndisc.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here powerpc-linux-gnu-ld: net/sysctl_net.o:(.bss+0x80): multiple definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here make: *** [Makefile:1160: vmlinux] Error 1 @All Could you please check the multiple definition of `____cacheline_aligned'? Thanks, Christian --- a/drivers/usb/host/fsl-mph-dr-of.c 2022-05-28 09:10:26.797688422 +0200 +++ b/drivers/usb/host/fsl-mph-dr-of.c 2022-05-28 09:15:01.668594809 +0200 @@ -80,8 +80,6 @@ static struct platform_device *fsl_usb2_ 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_ 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)
Le 28/05/2022 à 10:05, Christian Zigotzky a écrit : > On 27 May 2022 at 04:23 am, Rob Herring wrote: >> 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) > Hi Rob, > > Thanks a lot for your patch! :-) > > First attempt with the latest git kernel: > > patching file a/drivers/usb/host/fsl-mph-dr-of.c > Hunk #1 FAILED at 80. > Hunk #2 FAILED at 106. > 2 out of 2 hunks FAILED -- saving rejects to file > a/drivers/usb/host/fsl-mph-dr-of.c.rej > > I created a new patch with your modifications. (see attachment) > > Unfortunately I can't test it. The git kernel doesn't compile currently. > > powerpc-linux-gnu-ld: net/rds/tcp_stats.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): first > defined here ... > make: *** [Makefile:1160: vmlinux] Error 1 > > @All > Could you please check the multiple definition of `____cacheline_aligned'? > Fix at https://patchwork.ozlabs.org/project/linuxppc-dev/patch/20220527112035.2842155-1-mpe@ellerman.id.au/ Christophe
On 28 May 2022 at 10:05 am, Christian Zigotzky wrote: > On 27 May 2022 at 04:23 am, Rob Herring wrote: >> 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) > Hi Rob, > > Thanks a lot for your patch! :-) > > First attempt with the latest git kernel: > > patching file a/drivers/usb/host/fsl-mph-dr-of.c > Hunk #1 FAILED at 80. > Hunk #2 FAILED at 106. > 2 out of 2 hunks FAILED -- saving rejects to file > a/drivers/usb/host/fsl-mph-dr-of.c.rej > > I created a new patch with your modifications. (see attachment) > > Unfortunately I can't test it. The git kernel doesn't compile currently. > > powerpc-linux-gnu-ld: net/rds/tcp_stats.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/wireless/wext-spy.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/wireless/wext-priv.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/tipc/bcast.o:(.bss+0x0): multiple definition > of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here > powerpc-linux-gnu-ld: net/tipc/bearer.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/tipc/core.o:(.bss+0x0): multiple definition > of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here > powerpc-linux-gnu-ld: net/tipc/link.o:(.bss+0x0): multiple definition > of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here > powerpc-linux-gnu-ld: net/tipc/discover.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/tipc/msg.o:(.bss+0x0): multiple definition > of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here > powerpc-linux-gnu-ld: net/tipc/name_distr.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/tipc/subscr.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/tipc/name_table.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/tipc/net.o:(.bss+0x0): multiple definition > of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here > powerpc-linux-gnu-ld: net/tipc/netlink.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/tipc/netlink_compat.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/tipc/node.o:(.bss+0x0): multiple definition > of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here > powerpc-linux-gnu-ld: net/tipc/eth_media.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/tipc/topsrv.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/tipc/group.o:(.bss+0x0): multiple definition > of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here > powerpc-linux-gnu-ld: net/tipc/trace.o:(.bss+0x0): multiple definition > of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here > powerpc-linux-gnu-ld: net/tipc/udp_media.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/tipc/sysctl.o:(.bss+0x40): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/tipc/crypto.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/tipc/diag.o:(.bss+0x0): multiple definition > of `____cacheline_aligned'; init/version.o:(.bss+0x0): first defined here > powerpc-linux-gnu-ld: net/9p/trans_common.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/9p/trans_virtio.o:(.bss+0x40): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/6lowpan/ndisc.o:(.bss+0x0): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > powerpc-linux-gnu-ld: net/sysctl_net.o:(.bss+0x80): multiple > definition of `____cacheline_aligned'; init/version.o:(.bss+0x0): > first defined here > make: *** [Makefile:1160: vmlinux] Error 1 > > @All > Could you please check the multiple definition of > `____cacheline_aligned'? > > Thanks, > Christian > Fix at https://patchwork.ozlabs.org/project/linuxppc-dev/patch/20220527112035.2842155-1-mpe@ellerman.id.au/ Christophe ------ Thank you for your hint. It compiles with the paca.patch. @Rob Unfortunately with your modifications I get a boot loop. I compiled it also with the reverting patch (see attachment) and then it boots and works. Thanks, Christian --- a/drivers/of/platform.c 2022-05-26 18:46:15.551656025 +0200 +++ b/drivers/of/platform.c 2022-05-22 21:52:31.000000000 +0200 @@ -114,31 +114,35 @@ struct platform_device *of_device_alloc( struct device *parent) { struct platform_device *dev; - int rc, i, num_reg = 0; + int rc, i, num_reg = 0, num_irq; struct resource *res, temp_res; dev = platform_device_alloc("", PLATFORM_DEVID_NONE); if (!dev) return NULL; - /* count the io resources */ + /* count the io and irq resources */ while (of_address_to_resource(np, num_reg, &temp_res) == 0) num_reg++; + num_irq = of_irq_count(np); /* Populate the resource table */ - if (num_reg) { - res = kcalloc(num_reg, sizeof(*res), GFP_KERNEL); + if (num_irq || num_reg) { + res = kcalloc(num_irq + num_reg, sizeof(*res), GFP_KERNEL); if (!res) { platform_device_put(dev); return NULL; } - dev->num_resources = num_reg; + dev->num_resources = num_reg + num_irq; dev->resource = res; for (i = 0; i < num_reg; i++, res++) { rc = of_address_to_resource(np, i, res); WARN_ON(rc); } + if (of_irq_to_resource_table(np, res, num_irq) != num_irq) + pr_debug("not all legacy IRQ resources mapped for %pOFn\n", + np); } dev->dev.of_node = of_node_get(np);
On 27 May 2022 at 04:23 pm, Rob Herring wrote: > 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) Hello Rob, Thanks a lot for your patch! Unfortunately, this leads to a boot loop. Do you have another idea? Thanks, Christian
On Mon, May 30, 2022 at 12:26 AM Christian Zigotzky <chzigotzky@xenosoft.de> wrote: > > On 27 May 2022 at 04:23 pm, Rob Herring wrote: > > 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) > Hello Rob, > > Thanks a lot for your patch! Unfortunately, this leads to a boot loop. > Do you have another idea? Do you have a dmesg log? The other way to fix is creating a IRQ resource and adding it to the child device resources. Rob
> On 31. May 2022, at 15:46, Rob Herring <robh@kernel.org> wrote: > > On Mon, May 30, 2022 at 12:26 AM Christian Zigotzky > <chzigotzky@xenosoft.de> wrote: >> >>> On 27 May 2022 at 04:23 pm, Rob Herring wrote: >>> 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) >> Hello Rob, >> >> Thanks a lot for your patch! Unfortunately, this leads to a boot loop. >> Do you have another idea? > > Do you have a dmesg log? From the boot loop? > > The other way to fix is creating a IRQ resource and adding it to the > child device resources. Good idea. > > Rob
On 31. May 2022, at 15:46, Rob Herring <robh@kernel.org> wrote: Do you have a dmesg log? The other way to fix is creating a IRQ resource and adding it to the child device resources. Rob —— Rob, Do you mean a dmesg from the boot loop? The other way is a good idea. Cheers, Christian
On Tue, May 31, 2022 at 06:29:38PM +0200, Christian Zigotzky wrote: > > > > On 31. May 2022, at 15:46, Rob Herring <robh@kernel.org> wrote: > > > > On Mon, May 30, 2022 at 12:26 AM Christian Zigotzky > > <chzigotzky@xenosoft.de> wrote: > >> > >>> On 27 May 2022 at 04:23 pm, Rob Herring wrote: > >>> 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) > >> Hello Rob, > >> > >> Thanks a lot for your patch! Unfortunately, this leads to a boot loop. > >> Do you have another idea? > > > > Do you have a dmesg log? > > From the boot loop? Yes. > > > > > The other way to fix is creating a IRQ resource and adding it to the > > child device resources. > > Good idea. Not really. I'd rather have the child device just point to the DT node, but that doesn't seem to work for some drivers and I want to understand why. Rob
On 27 May 2022 at 03:40 pm, Darren Stevens wrote: > Hi Christian, > > Can you send me the full dmesg output from this failed boot? I looked but can't seem to find which component is at fault here > > Thanks > Darren On 01 June 2022 at 02:35 pm, Rob Herring wrote: > On Tue, May 31, 2022 at 06:29:38PM +0200, Christian Zigotzky wrote: >> >>> On 31. May 2022, at 15:46, Rob Herring <robh@kernel.org> wrote: >>> >>> On Mon, May 30, 2022 at 12:26 AM Christian Zigotzky >>> <chzigotzky@xenosoft.de> wrote: >>>>> On 27 May 2022 at 04:23 pm, Rob Herring wrote: >>>>> 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) >>>> Hello Rob, >>>> >>>> Thanks a lot for your patch! Unfortunately, this leads to a boot loop. >>>> Do you have another idea? >>> Do you have a dmesg log? >> From the boot loop? > Yes. > >>> The other way to fix is creating a IRQ resource and adding it to the >>> child device resources. >> Good idea. > Not really. I'd rather have the child device just point to the DT node, > but that doesn't seem to work for some drivers and I want to understand > why. > > Rob Hello Rob, Hello Darren, The keyboard and mouse issue still exists in the latest git kernel. Here are the logs: - http://www.xenosoft.de/dmesg_FSL_P5040_Void_PPC.txt - http://www.xenosoft.de/dmesg_FSL_P5040_MintPPC.txt - http://www.xenosoft.de/dmesg_FSL_P5040_Void_PPC_with_Robs_patch.txt Thanks, Christian
On Fri, May 27, 2022 at 9:23 AM Rob Herring <robh@kernel.org> wrote: > > On Fri, May 27, 2022 at 3:33 AM Christian Zigotzky > <chzigotzky@xenosoft.de> wrote: > > > > On 27 May 2022 at 10:14 am, Prabhakar Mahadev Lad wrote: > > > Hi, > > > > > >> -----Original Message----- > > >> From: Christian Zigotzky <chzigotzky@xenosoft.de> > > >> > > >> On 27 May 2022 at 09:56 am, Prabhakar Mahadev Lad wrote: > > >>> Hi, > > >>> > > >>>> -----Original Message----- > > >>>> From: Christophe Leroy <christophe.leroy@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)
On 06 June 2022 at 04:58 pm, Rob Herring wrote: > On Fri, May 27, 2022 at 9:23 AM Rob Herring <robh@kernel.org> wrote: >> On Fri, May 27, 2022 at 3:33 AM Christian Zigotzky >> <chzigotzky@xenosoft.de> wrote: >>> On 27 May 2022 at 10:14 am, Prabhakar Mahadev Lad wrote: >>>> Hi, >>>> >>>>> -----Original Message----- >>>>> From: Christian Zigotzky <chzigotzky@xenosoft.de> >>>>> >>>>> On 27 May 2022 at 09:56 am, Prabhakar Mahadev Lad wrote: >>>>>> Hi, >>>>>> >>>>>>> -----Original Message----- >>>>>>> From: Christophe Leroy <christophe.leroy@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) Hello Rob, Thanks a lot for your answer. Is the following patch correct? --- a/drivers/usb/host/fsl-mph-dr-of.c 2022-05-28 09:10:26.797688422 +0200 +++ b/drivers/usb/host/fsl-mph-dr-of.c 2022-05-28 09:15:01.668594809 +0200 @@ -80,8 +80,6 @@ static struct platform_device *fsl_usb2_ 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_ 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; + pdev->dev.of_node_reused = true; retval = platform_device_add(pdev); if (retval) --- Thanks, Christian
On Mon, Jun 6, 2022 at 11:14 AM Christian Zigotzky <chzigotzky@xenosoft.de> wrote: > > On 06 June 2022 at 04:58 pm, Rob Herring wrote: > > On Fri, May 27, 2022 at 9:23 AM Rob Herring <robh@kernel.org> wrote: > >> On Fri, May 27, 2022 at 3:33 AM Christian Zigotzky > >> <chzigotzky@xenosoft.de> wrote: > >>> On 27 May 2022 at 10:14 am, Prabhakar Mahadev Lad wrote: > >>>> Hi, > >>>> > >>>>> -----Original Message----- > >>>>> From: Christian Zigotzky <chzigotzky@xenosoft.de> > >>>>> > >>>>> On 27 May 2022 at 09:56 am, Prabhakar Mahadev Lad wrote: > >>>>>> Hi, > >>>>>> > >>>>>>> -----Original Message----- > >>>>>>> From: Christophe Leroy <christophe.leroy@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) > Hello Rob, > > Thanks a lot for your answer. > > Is the following patch correct? Yes > > --- a/drivers/usb/host/fsl-mph-dr-of.c 2022-05-28 09:10:26.797688422 > +0200 > +++ b/drivers/usb/host/fsl-mph-dr-of.c 2022-05-28 09:15:01.668594809 > +0200 > @@ -80,8 +80,6 @@ static struct platform_device *fsl_usb2_ > 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_ > 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; > + pdev->dev.of_node_reused = true; > > retval = platform_device_add(pdev); > if (retval) > > --- > > Thanks, > Christian
--- a/drivers/of/platform.c 2022-05-26 18:46:15.551656025 +0200 +++ b/drivers/of/platform.c 2022-05-22 21:52:31.000000000 +0200 @@ -114,31 +114,35 @@ struct platform_device *of_device_alloc( struct device *parent) { struct platform_device *dev; - int rc, i, num_reg = 0; + int rc, i, num_reg = 0, num_irq; struct resource *res, temp_res; dev = platform_device_alloc("", PLATFORM_DEVID_NONE); if (!dev) return NULL; - /* count the io resources */ + /* count the io and irq resources */ while (of_address_to_resource(np, num_reg, &temp_res) == 0) num_reg++; + num_irq = of_irq_count(np); /* Populate the resource table */ - if (num_reg) { - res = kcalloc(num_reg, sizeof(*res), GFP_KERNEL); + if (num_irq || num_reg) { + res = kcalloc(num_irq + num_reg, sizeof(*res), GFP_KERNEL); if (!res) { platform_device_put(dev); return NULL; } - dev->num_resources = num_reg; + dev->num_resources = num_reg + num_irq; dev->resource = res; for (i = 0; i < num_reg; i++, res++) { rc = of_address_to_resource(np, i, res); WARN_ON(rc); } + if (of_irq_to_resource_table(np, res, num_irq) != num_irq) + pr_debug("not all legacy IRQ resources mapped for %pOFn\n", + np); } dev->dev.of_node = of_node_get(np);