Message ID | 20240319152926.1288-2-johan+linaro@kernel.org |
---|---|
State | Superseded |
Headers | show |
Series | Bluetooth: qca: fix device-address endianness | expand |
This is an automated email and please do not reply to this email. Dear Submitter, Thank you for submitting the patches to the linux bluetooth mailing list. While preparing the CI tests, the patches you submitted couldn't be applied to the current HEAD of the repository. ----- Output ----- error: patch failed: drivers/bluetooth/hci_qca.c:1904 error: drivers/bluetooth/hci_qca.c: patch does not apply hint: Use 'git am --show-current-patch' to see the failed patch Please resolve the issue and submit the patches again. --- Regards, Linux Bluetooth
Hi, On Tue, Mar 19, 2024 at 8:29 AM Johan Hovold <johan+linaro@kernel.org> wrote: > > Several Qualcomm Bluetooth controllers lack persistent storage for the > device address and instead one can be provided by the boot firmware > using the 'local-bd-address' devicetree property. > > The Bluetooth bindings clearly states that the address should be > specified in little-endian order, but due to a long-standing bug in the > Qualcomm driver which reversed the address some boot firmware has been > providing the address in big-endian order instead. > > The only device out there that should be affected by this is the WCN3991 > used in some Chromebooks. > > Add a 'qcom,local-bd-address-broken' property which can be set on these > platforms to indicate that the boot firmware is using the wrong byte > order. > > Note that ChromeOS always updates the kernel and devicetree in lockstep > so that there is no need to handle backwards compatibility with older > devicetrees. > > Signed-off-by: Johan Hovold <johan+linaro@kernel.org> > --- > .../devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml > index eba2f3026ab0..e099ef83e7b1 100644 > --- a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml > +++ b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml > @@ -94,6 +94,9 @@ properties: > > local-bd-address: true > > + qcom,local-bd-address-broken: true > + description: > > + boot firmware is incorrectly passing the address in big-endian order Personally, I feel like "qcom,local-bd-address-backwards" or "qcom,local-bd-address-swapped" would be more documenting but I don't feel super strongly about it. I guess "broken" makes it more obvious that this is not just a normal variant that someone should use. If DT binding folks are happy, I'm happy enough with this solution. Reviewed-by: Douglas Anderson <dianders@chromium.org>
On Tue, Mar 19, 2024 at 09:10:08AM -0700, Doug Anderson wrote: > On Tue, Mar 19, 2024 at 8:29 AM Johan Hovold <johan+linaro@kernel.org> wrote: > > + qcom,local-bd-address-broken: true > > + description: > > > + boot firmware is incorrectly passing the address in big-endian order > > Personally, I feel like "qcom,local-bd-address-backwards" or > "qcom,local-bd-address-swapped" would be more documenting but I don't > feel super strongly about it. I guess "broken" makes it more obvious > that this is not just a normal variant that someone should use. Yeah, that is precisely why I chose that name, to avoid having people think this is something they can just pick and choose for their driver. As is repeatedly made clear, this needs to be obvious from the name, as apparently not many people bother to look up the documentation. > If DT binding folks are happy, I'm happy enough with this solution. > Reviewed-by: Douglas Anderson <dianders@chromium.org> Thanks for reviewing. Johan
On Tue, 19 Mar 2024 16:29:22 +0100, Johan Hovold wrote: > Several Qualcomm Bluetooth controllers lack persistent storage for the > device address and instead one can be provided by the boot firmware > using the 'local-bd-address' devicetree property. > > The Bluetooth bindings clearly states that the address should be > specified in little-endian order, but due to a long-standing bug in the > Qualcomm driver which reversed the address some boot firmware has been > providing the address in big-endian order instead. > > The only device out there that should be affected by this is the WCN3991 > used in some Chromebooks. > > Add a 'qcom,local-bd-address-broken' property which can be set on these > platforms to indicate that the boot firmware is using the wrong byte > order. > > Note that ChromeOS always updates the kernel and devicetree in lockstep > so that there is no need to handle backwards compatibility with older > devicetrees. > > Signed-off-by: Johan Hovold <johan+linaro@kernel.org> > --- > .../devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml | 3 +++ > 1 file changed, 3 insertions(+) > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: ./Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml:98:16: [error] syntax error: mapping values are not allowed here (syntax) dtschema/dtc warnings/errors: make[2]: *** Deleting file 'Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.example.dts' Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml:98:16: mapping values are not allowed in this context make[2]: *** [Documentation/devicetree/bindings/Makefile:26: Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.example.dts] Error 1 make[2]: *** Waiting for unfinished jobs.... ./Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml:98:16: mapping values are not allowed in this context /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml: ignoring, error parsing file make[1]: *** [/builds/robherring/dt-review-ci/linux/Makefile:1428: dt_binding_check] Error 2 make: *** [Makefile:240: __sub-make] Error 2 doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20240319152926.1288-2-johan+linaro@kernel.org The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
diff --git a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml index eba2f3026ab0..e099ef83e7b1 100644 --- a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml +++ b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml @@ -94,6 +94,9 @@ properties: local-bd-address: true + qcom,local-bd-address-broken: true + description: > + boot firmware is incorrectly passing the address in big-endian order required: - compatible
Several Qualcomm Bluetooth controllers lack persistent storage for the device address and instead one can be provided by the boot firmware using the 'local-bd-address' devicetree property. The Bluetooth bindings clearly states that the address should be specified in little-endian order, but due to a long-standing bug in the Qualcomm driver which reversed the address some boot firmware has been providing the address in big-endian order instead. The only device out there that should be affected by this is the WCN3991 used in some Chromebooks. Add a 'qcom,local-bd-address-broken' property which can be set on these platforms to indicate that the boot firmware is using the wrong byte order. Note that ChromeOS always updates the kernel and devicetree in lockstep so that there is no need to handle backwards compatibility with older devicetrees. Signed-off-by: Johan Hovold <johan+linaro@kernel.org> --- .../devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml | 3 +++ 1 file changed, 3 insertions(+)