diff mbox series

[v2,2/2] arm64: dts: ti: k3-j722s-main: Disable "serdes_wiz0" and "serdes_wiz1"

Message ID 20250408103606.3679505-3-s-vadapalli@ti.com (mailing list archive)
State New
Headers show
Series J722S: Disable WIZ0 and WIZ1 in SoC file | expand

Commit Message

Siddharth Vadapalli April 8, 2025, 10:36 a.m. UTC
Since "serdes0" and "serdes1" which are the sub-nodes of "serdes_wiz0"
and "serdes_wiz1" respectively, have been disabled in the SoC file already,
and, given that these sub-nodes will only be enabled in a board file if the
board utilizes any of the SERDES instances and the peripherals bound to
them, we end up in a situation where the board file doesn't explicitly
disable "serdes_wiz0" and "serdes_wiz1". As a consequence of this, the
following errors show up when booting Linux:

  wiz bus@f0000:phy@f000000: probe with driver wiz failed with error -12
  ...
  wiz bus@f0000:phy@f010000: probe with driver wiz failed with error -12

To not only fix the above, but also, in order to follow the convention of
disabling device-tree nodes in the SoC file and enabling them in the board
files for those boards which require them, disable "serdes_wiz0" and
"serdes_wiz1" device-tree nodes.

Fixes: 628e0a0118e6 ("arm64: dts: ti: k3-j722s-main: Add SERDES and PCIe support")
Cc: stable@vger.kernel.org
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
---

v1 of this patch is at:
https://lore.kernel.org/r/20250408060636.3413856-3-s-vadapalli@ti.com/
Changes since v1:
- Added "Fixes" tag and updated commit message accordingly.

Regards,
Siddharth.

 arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Kumar, Udit April 11, 2025, 2:01 p.m. UTC | #1
On 4/8/2025 4:06 PM, Siddharth Vadapalli wrote:
> Since "serdes0" and "serdes1" which are the sub-nodes of "serdes_wiz0"
> and "serdes_wiz1" respectively, have been disabled in the SoC file already,
> and, given that these sub-nodes will only be enabled in a board file if the
> board utilizes any of the SERDES instances and the peripherals bound to
> them, we end up in a situation where the board file doesn't explicitly
> disable "serdes_wiz0" and "serdes_wiz1". As a consequence of this, the
> following errors show up when booting Linux:
>
>    wiz bus@f0000:phy@f000000: probe with driver wiz failed with error -12
>    ...
>    wiz bus@f0000:phy@f010000: probe with driver wiz failed with error -12
>
> To not only fix the above, but also, in order to follow the convention of
> disabling device-tree nodes in the SoC file and enabling them in the board
> files for those boards which require them, disable "serdes_wiz0" and
> "serdes_wiz1" device-tree nodes.
>
> Fixes: 628e0a0118e6 ("arm64: dts: ti: k3-j722s-main: Add SERDES and PCIe support")
> Cc: stable@vger.kernel.org
> Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
> ---
>
> v1 of this patch is at:
> https://lore.kernel.org/r/20250408060636.3413856-3-s-vadapalli@ti.com/
> Changes since v1:
> - Added "Fixes" tag and updated commit message accordingly.
>
> Regards,
> Siddharth.
>
>   arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
> index 6850f50530f1..beda9e40e931 100644
> --- a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
> @@ -32,6 +32,8 @@ serdes_wiz0: phy@f000000 {
>   		assigned-clocks = <&k3_clks 279 1>;
>   		assigned-clock-parents = <&k3_clks 279 5>;
>   
> +		status = "disabled";
> +

Since you are disabling parent node.

Do you still want to carry status = "disabled" in child nodes serdes0 
and serdes1.


>   		serdes0: serdes@f000000 {
>   			compatible = "ti,j721e-serdes-10g";
>   			reg = <0x0f000000 0x00010000>;
> @@ -70,6 +72,8 @@ serdes_wiz1: phy@f010000 {
>   		assigned-clocks = <&k3_clks 280 1>;
>   		assigned-clock-parents = <&k3_clks 280 5>;
>   
> +		status = "disabled";
> +
>   		serdes1: serdes@f010000 {
>   			compatible = "ti,j721e-serdes-10g";
>   			reg = <0x0f010000 0x00010000>;
Siddharth Vadapalli April 11, 2025, 2:17 p.m. UTC | #2
On Fri, Apr 11, 2025 at 07:31:52PM +0530, Kumar, Udit wrote:

Hello Udit,

> 
> On 4/8/2025 4:06 PM, Siddharth Vadapalli wrote:
> > Since "serdes0" and "serdes1" which are the sub-nodes of "serdes_wiz0"
> > and "serdes_wiz1" respectively, have been disabled in the SoC file already,
> > and, given that these sub-nodes will only be enabled in a board file if the
> > board utilizes any of the SERDES instances and the peripherals bound to
> > them, we end up in a situation where the board file doesn't explicitly
> > disable "serdes_wiz0" and "serdes_wiz1". As a consequence of this, the
> > following errors show up when booting Linux:
> > 
> >    wiz bus@f0000:phy@f000000: probe with driver wiz failed with error -12
> >    ...
> >    wiz bus@f0000:phy@f010000: probe with driver wiz failed with error -12
> > 
> > To not only fix the above, but also, in order to follow the convention of
> > disabling device-tree nodes in the SoC file and enabling them in the board
> > files for those boards which require them, disable "serdes_wiz0" and
> > "serdes_wiz1" device-tree nodes.
> > 
> > Fixes: 628e0a0118e6 ("arm64: dts: ti: k3-j722s-main: Add SERDES and PCIe support")
> > Cc: stable@vger.kernel.org
> > Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
> > ---
> > 
> > v1 of this patch is at:
> > https://lore.kernel.org/r/20250408060636.3413856-3-s-vadapalli@ti.com/
> > Changes since v1:
> > - Added "Fixes" tag and updated commit message accordingly.
> > 
> > Regards,
> > Siddharth.
> > 
> >   arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 4 ++++
> >   1 file changed, 4 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
> > index 6850f50530f1..beda9e40e931 100644
> > --- a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
> > +++ b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
> > @@ -32,6 +32,8 @@ serdes_wiz0: phy@f000000 {
> >   		assigned-clocks = <&k3_clks 279 1>;
> >   		assigned-clock-parents = <&k3_clks 279 5>;
> > +		status = "disabled";
> > +
> 
> Since you are disabling parent node.
> 
> Do you still want to carry status = "disabled" in child nodes serdes0 and
> serdes1.

I could drop it, but then the patches will look something like:
1) Patch 1: Same as the first patch in this series
2) Patch 2: Current patch + Remove status = "disabled" within serdes0/1
3) Patch 3: Removed redundant status = "okay" within serdes0/1 in
            k3-j722s-evm.dts

Updated Patch 2 and the new Patch 3 mentioned above aren't necessarily a
complete "Fix" and have other changes in addition to the "Fix". For that
reason, the changes associated with the updated patch 2 and the new patch 3
could be a separate series, unless you believe that they should go
together in the current series. Please let me know.

Regards,
Siddharth.
Kumar, Udit April 11, 2025, 3:52 p.m. UTC | #3
Hi

On 4/11/2025 7:47 PM, Siddharth Vadapalli wrote:
> On Fri, Apr 11, 2025 at 07:31:52PM +0530, Kumar, Udit wrote:
>
> Hello Udit,
>
>> On 4/8/2025 4:06 PM, Siddharth Vadapalli wrote:
>>> Since "serdes0" and "serdes1" which are the sub-nodes of "serdes_wiz0"
>>> and "serdes_wiz1" respectively, have been disabled in the SoC file already,
>>> and, given that these sub-nodes will only be enabled in a board file if the
>>> board utilizes any of the SERDES instances and the peripherals bound to
>>> them, we end up in a situation where the board file doesn't explicitly
>>> disable "serdes_wiz0" and "serdes_wiz1". As a consequence of this, the
>>> following errors show up when booting Linux:
>>>
>>>     wiz bus@f0000:phy@f000000: probe with driver wiz failed with error -12
>>>     ...
>>>     wiz bus@f0000:phy@f010000: probe with driver wiz failed with error -12
>>>
>>> To not only fix the above, but also, in order to follow the convention of
>>> disabling device-tree nodes in the SoC file and enabling them in the board
>>> files for those boards which require them, disable "serdes_wiz0" and
>>> "serdes_wiz1" device-tree nodes.
>>>
>>> Fixes: 628e0a0118e6 ("arm64: dts: ti: k3-j722s-main: Add SERDES and PCIe support")
>>> Cc: stable@vger.kernel.org
>>> Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
>>> ---
>>>
>>> v1 of this patch is at:
>>> https://lore.kernel.org/r/20250408060636.3413856-3-s-vadapalli@ti.com/
>>> Changes since v1:
>>> - Added "Fixes" tag and updated commit message accordingly.
>>>
>>> Regards,
>>> Siddharth.
>>>
>>>    arch/arm64/boot/dts/ti/k3-j722s-main.dtsi | 4 ++++
>>>    1 file changed, 4 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
>>> index 6850f50530f1..beda9e40e931 100644
>>> --- a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
>>> +++ b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
>>> @@ -32,6 +32,8 @@ serdes_wiz0: phy@f000000 {
>>>    		assigned-clocks = <&k3_clks 279 1>;
>>>    		assigned-clock-parents = <&k3_clks 279 5>;
>>> +		status = "disabled";
>>> +
>> Since you are disabling parent node.
>>
>> Do you still want to carry status = "disabled" in child nodes serdes0 and
>> serdes1.
> I could drop it, but then the patches will look something like:
> 1) Patch 1: Same as the first patch in this series
> 2) Patch 2: Current patch + Remove status = "disabled" within serdes0/1
> 3) Patch 3: Removed redundant status = "okay" within serdes0/1 in
>              k3-j722s-evm.dts
>
> Updated Patch 2 and the new Patch 3 mentioned above aren't necessarily a
> complete "Fix" and have other changes in addition to the "Fix". For that
> reason, the changes associated with the updated patch 2 and the new patch 3
> could be a separate series, unless you believe that they should go
> together in the current series. Please let me know.

I don't see any use case where serdes_wiz0 is enabled and serdes0 is 
disabled.

So your comment 3) is valid. you can take this clean up in other series


For now

Reviewed-by: Udit Kumar <u-kumar1@ti.com>



> Regards,
> Siddharth.
Siddharth Vadapalli April 12, 2025, 5:33 a.m. UTC | #4
On Fri, Apr 11, 2025 at 09:22:00PM +0530, Kumar, Udit wrote:
> Hi
> 
> On 4/11/2025 7:47 PM, Siddharth Vadapalli wrote:
> > On Fri, Apr 11, 2025 at 07:31:52PM +0530, Kumar, Udit wrote:

[...]

> > > Since you are disabling parent node.
> > > 
> > > Do you still want to carry status = "disabled" in child nodes serdes0 and
> > > serdes1.
> > I could drop it, but then the patches will look something like:
> > 1) Patch 1: Same as the first patch in this series
> > 2) Patch 2: Current patch + Remove status = "disabled" within serdes0/1
> > 3) Patch 3: Removed redundant status = "okay" within serdes0/1 in
> >              k3-j722s-evm.dts
> > 
> > Updated Patch 2 and the new Patch 3 mentioned above aren't necessarily a
> > complete "Fix" and have other changes in addition to the "Fix". For that
> > reason, the changes associated with the updated patch 2 and the new patch 3
> > could be a separate series, unless you believe that they should go
> > together in the current series. Please let me know.
> 
> I don't see any use case where serdes_wiz0 is enabled and serdes0 is
> disabled.
> 
> So your comment 3) is valid. you can take this clean up in other series
> 
> 
> For now
> 
> Reviewed-by: Udit Kumar <u-kumar1@ti.com>

I have posted the cleanup series at:
https://lore.kernel.org/r/20250412052712.927626-1-s-vadapalli@ti.com/
The cleanup series applies on top of the current series.

Regards,
Siddharth.
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
index 6850f50530f1..beda9e40e931 100644
--- a/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
@@ -32,6 +32,8 @@  serdes_wiz0: phy@f000000 {
 		assigned-clocks = <&k3_clks 279 1>;
 		assigned-clock-parents = <&k3_clks 279 5>;
 
+		status = "disabled";
+
 		serdes0: serdes@f000000 {
 			compatible = "ti,j721e-serdes-10g";
 			reg = <0x0f000000 0x00010000>;
@@ -70,6 +72,8 @@  serdes_wiz1: phy@f010000 {
 		assigned-clocks = <&k3_clks 280 1>;
 		assigned-clock-parents = <&k3_clks 280 5>;
 
+		status = "disabled";
+
 		serdes1: serdes@f010000 {
 			compatible = "ti,j721e-serdes-10g";
 			reg = <0x0f010000 0x00010000>;