Subject: Re: [PATCH v2 1/4] dt-bindings: bluetooth: add new wcn3991 compatible to fix bd_addr

From: Johan Hovold <[email-masked]>
Date: Mon, 18 Mar 2024 16:10:53 +0100

On Mon, Mar 18, 2024 at 09:48:06AM -0500, Rob Herring wrote:
> On Mon, Mar 18, 2024 at 02:17:47PM +0100, Johan Hovold wrote:
> > On Mon, Mar 18, 2024 at 03:00:40PM +0200, Dmitry Baryshkov wrote:
> > > On Mon, 18 Mar 2024 at 13:09, Johan Hovold <[email-masked]> wrote:

> > > > The only device out there that should be affected by this is the WCN3991
> > > > used in some Chromebooks. To maintain backwards compatibility, mark the
> > > > current compatible string as deprecated and add a new
> > > > 'qcom,wcn3991-bt-bdaddr-le' for firmware which conforms with the
> > > > binding.
> > 
> > > This compatible doesn't describe new hardware kind. As such, I think,
> > > the better way would be to continue using qcom,wcn3991-bt compatible
> > > string + add some kind of qcom,bt-addr-le property.
> > 
> > No, you can't handle backwards compatibility by *adding* a property.
> 
> But you could add a property for the not broken case. That's a bit odd, 
> but so is your compatible.

Sure, we could have a property that we only add for wcn3991-bt going
forward.

But we can't go back in time and add this property to all devicetrees
and say that 'local-bd-address' is big endian unless that property is
present (as that would leave all the non-wcn3991 devicetrees broken).

> > I wanted to avoid doing this, but if we have to support Google's broken
> > boot firmware for these devices, then this is how it needs to be done.
> 
> Don't Chromebooks update everything together. So maybe we don't care in 
> this case?

That was my hope, but Matthias seemed to suggest that we need to
continue supporting the current (broken) binding because doing such a
coordinated update may be easier said than done:

	https://lore.kernel.org/lkml/[email-masked]/

A new compatible string (or one-off property) would allow them do make a
change when they are ready (e.g. by only updating the devicetrees after
all boot firmware has been patched and pushed out).

Johan