2023-05-15 10:53:59

by Krzysztof Kozlowski

[permalink] [raw]
Subject: [PATCH] dt-bindings: usb: usb251xb: correct swap-dx-lanes type to uint32

The "swap-dx-lanes" was never described as uint8 in original TXT
bindings and Linuxx driver expects uint32. Fix the type to match Linux
driver expectation and original binding.

Fixes: fff61d4ccf3d ("dt-bindings: usb: usb251xb: Convert to YAML schema")
Signed-off-by: Krzysztof Kozlowski <[email protected]>

---

Cc: [email protected]
---
Documentation/devicetree/bindings/usb/usb251xb.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/usb/usb251xb.yaml b/Documentation/devicetree/bindings/usb/usb251xb.yaml
index 4d1530816817..ac5b99710332 100644
--- a/Documentation/devicetree/bindings/usb/usb251xb.yaml
+++ b/Documentation/devicetree/bindings/usb/usb251xb.yaml
@@ -231,7 +231,7 @@ properties:
power-on sequence to a port until the port has adequate power.

swap-dx-lanes:
- $ref: /schemas/types.yaml#/definitions/uint8-array
+ $ref: /schemas/types.yaml#/definitions/uint32-array
description: |
Specifies the ports which will swap the differential-pair (D+/D-),
default is not-swapped.
--
2.34.1



2023-05-15 12:59:00

by Marek Vasut

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: usb: usb251xb: correct swap-dx-lanes type to uint32

On 5/15/23 12:33, Krzysztof Kozlowski wrote:
> The "swap-dx-lanes" was never described as uint8 in original TXT
> bindings and Linuxx driver expects uint32. Fix the type to match Linux

Linux , one x too many .

> driver expectation and original binding.
>
> Fixes: fff61d4ccf3d ("dt-bindings: usb: usb251xb: Convert to YAML schema")
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>
> ---
>
> Cc: [email protected]
> ---
> Documentation/devicetree/bindings/usb/usb251xb.yaml | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/usb/usb251xb.yaml b/Documentation/devicetree/bindings/usb/usb251xb.yaml
> index 4d1530816817..ac5b99710332 100644
> --- a/Documentation/devicetree/bindings/usb/usb251xb.yaml
> +++ b/Documentation/devicetree/bindings/usb/usb251xb.yaml
> @@ -231,7 +231,7 @@ properties:
> power-on sequence to a port until the port has adequate power.
>
> swap-dx-lanes:
> - $ref: /schemas/types.yaml#/definitions/uint8-array
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> description: |
> Specifies the ports which will swap the differential-pair (D+/D-),
> default is not-swapped.

Would it make more sense to update the driver instead ? I doubt you
could have more than 256 ports on this device after all.

2023-05-15 13:27:29

by Mike Looijmans

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: usb: usb251xb: correct swap-dx-lanes type to uint32

See below...

Met vriendelijke groet / kind regards,

Mike Looijmans
System Expert


TOPIC Embedded Products B.V.
Materiaalweg 4, 5681 RJ Best
The Netherlands

T: +31 (0) 499 33 69 69
E: [email protected]
W: http://www.topic.nl

Please consider the environment before printing this e-mail
On 15-05-2023 14:55, Marek Vasut wrote:
> On 5/15/23 12:33, Krzysztof Kozlowski wrote: diff --git
> a/Documentation/devicetree/bindings/usb/usb251xb.yaml
> b/Documentation/devicetree/bindings/usb/usb251xb.yaml
>> index 4d1530816817..ac5b99710332 100644
>> --- a/Documentation/devicetree/bindings/usb/usb251xb.yaml
>> +++ b/Documentation/devicetree/bindings/usb/usb251xb.yaml
>> @@ -231,7 +231,7 @@ properties:
>>         power-on sequence to a port until the port has adequate power.
>>       swap-dx-lanes:
>> -    $ref: /schemas/types.yaml#/definitions/uint8-array
>> +    $ref: /schemas/types.yaml#/definitions/uint32-array
>>       description: |
>>         Specifies the ports which will swap the differential-pair
>> (D+/D-),
>>         default is not-swapped.
>
> Would it make more sense to update the driver instead ? I doubt you
> could have more than 256 ports on this device after all.


I guess there's a bunch of devicetrees already out there using the
(misdocumented) 32-bit array binding, they'd break in a bad way...


--
Mike Looijmans


2023-05-15 13:53:06

by Marek Vasut

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: usb: usb251xb: correct swap-dx-lanes type to uint32

On 5/15/23 15:17, [email protected] wrote:
> See below...
>
> Met vriendelijke groet / kind regards,
>
> Mike Looijmans
> System Expert
>
>
> TOPIC Embedded Products B.V.
> Materiaalweg 4, 5681 RJ Best
> The Netherlands
>
> T: +31 (0) 499 33 69 69
> E: [email protected]
> W: http://www.topic.nl

Can you please drop this part next time ?

> Please consider the environment before printing this e-mail
> On 15-05-2023 14:55, Marek Vasut wrote:
>> On 5/15/23 12:33, Krzysztof Kozlowski wrote: diff --git
>> a/Documentation/devicetree/bindings/usb/usb251xb.yaml
>> b/Documentation/devicetree/bindings/usb/usb251xb.yaml
>>> index 4d1530816817..ac5b99710332 100644
>>> --- a/Documentation/devicetree/bindings/usb/usb251xb.yaml
>>> +++ b/Documentation/devicetree/bindings/usb/usb251xb.yaml
>>> @@ -231,7 +231,7 @@ properties:
>>>         power-on sequence to a port until the port has adequate power.
>>>       swap-dx-lanes:
>>> -    $ref: /schemas/types.yaml#/definitions/uint8-array
>>> +    $ref: /schemas/types.yaml#/definitions/uint32-array
>>>       description: |
>>>         Specifies the ports which will swap the differential-pair
>>> (D+/D-),
>>>         default is not-swapped.
>>
>> Would it make more sense to update the driver instead ? I doubt you
>> could have more than 256 ports on this device after all.
>
>
> I guess there's a bunch of devicetrees already out there using the
> (misdocumented) 32-bit array binding, they'd break in a bad way...

I think it is the other way around -- if the binding was documented as
u8, then the existing DTs should use the u8 type if they are compliant
to the binding document.

I see one board in next which uses this property and sets it to 0 , so
this one is not affected either way:
arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts:
swap-dx-lanes = <0>;


2023-05-16 08:33:23

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: usb: usb251xb: correct swap-dx-lanes type to uint32

On 15/05/2023 15:47, Marek Vasut wrote:
>> Please consider the environment before printing this e-mail
>> On 15-05-2023 14:55, Marek Vasut wrote:
>>> On 5/15/23 12:33, Krzysztof Kozlowski wrote: diff --git
>>> a/Documentation/devicetree/bindings/usb/usb251xb.yaml
>>> b/Documentation/devicetree/bindings/usb/usb251xb.yaml
>>>> index 4d1530816817..ac5b99710332 100644
>>>> --- a/Documentation/devicetree/bindings/usb/usb251xb.yaml
>>>> +++ b/Documentation/devicetree/bindings/usb/usb251xb.yaml
>>>> @@ -231,7 +231,7 @@ properties:
>>>>         power-on sequence to a port until the port has adequate power.
>>>>       swap-dx-lanes:
>>>> -    $ref: /schemas/types.yaml#/definitions/uint8-array
>>>> +    $ref: /schemas/types.yaml#/definitions/uint32-array
>>>>       description: |
>>>>         Specifies the ports which will swap the differential-pair
>>>> (D+/D-),
>>>>         default is not-swapped.
>>>
>>> Would it make more sense to update the driver instead ? I doubt you
>>> could have more than 256 ports on this device after all.
>>
>>
>> I guess there's a bunch of devicetrees already out there using the
>> (misdocumented) 32-bit array binding, they'd break in a bad way...
>
> I think it is the other way around -- if the binding was documented as
> u8, then the existing DTs should use the u8 type if they are compliant
> to the binding document.
>
> I see one board in next which uses this property and sets it to 0 , so
> this one is not affected either way:
> arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts:
> swap-dx-lanes = <0>;


First of all, the original binding did not define it as u8. It actually
skipped the type entirely but:
- Example shown u32,
- Driver used u32,
- In-tree user uses u32 (although as pointed - as 0 so not really
relevant).

Thus the ABI is rather defined by not-breaking users here, so I would
stick to fixing it to u32.

Best regards,
Krzysztof


2023-05-16 08:34:44

by Marek Vasut

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: usb: usb251xb: correct swap-dx-lanes type to uint32

On 5/16/23 10:19, Krzysztof Kozlowski wrote:
> On 15/05/2023 15:47, Marek Vasut wrote:
>>> Please consider the environment before printing this e-mail
>>> On 15-05-2023 14:55, Marek Vasut wrote:
>>>> On 5/15/23 12:33, Krzysztof Kozlowski wrote: diff --git
>>>> a/Documentation/devicetree/bindings/usb/usb251xb.yaml
>>>> b/Documentation/devicetree/bindings/usb/usb251xb.yaml
>>>>> index 4d1530816817..ac5b99710332 100644
>>>>> --- a/Documentation/devicetree/bindings/usb/usb251xb.yaml
>>>>> +++ b/Documentation/devicetree/bindings/usb/usb251xb.yaml
>>>>> @@ -231,7 +231,7 @@ properties:
>>>>>         power-on sequence to a port until the port has adequate power.
>>>>>       swap-dx-lanes:
>>>>> -    $ref: /schemas/types.yaml#/definitions/uint8-array
>>>>> +    $ref: /schemas/types.yaml#/definitions/uint32-array
>>>>>       description: |
>>>>>         Specifies the ports which will swap the differential-pair
>>>>> (D+/D-),
>>>>>         default is not-swapped.
>>>>
>>>> Would it make more sense to update the driver instead ? I doubt you
>>>> could have more than 256 ports on this device after all.
>>>
>>>
>>> I guess there's a bunch of devicetrees already out there using the
>>> (misdocumented) 32-bit array binding, they'd break in a bad way...
>>
>> I think it is the other way around -- if the binding was documented as
>> u8, then the existing DTs should use the u8 type if they are compliant
>> to the binding document.
>>
>> I see one board in next which uses this property and sets it to 0 , so
>> this one is not affected either way:
>> arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts:
>> swap-dx-lanes = <0>;
>
>
> First of all, the original binding did not define it as u8. It actually
> skipped the type entirely but:
> - Example shown u32,
> - Driver used u32,
> - In-tree user uses u32 (although as pointed - as 0 so not really
> relevant).
>
> Thus the ABI is rather defined by not-breaking users here, so I would
> stick to fixing it to u32.

Fine by me.