[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200217091423.y2muniz3hosquho6@gilmour.lan>
Date: Mon, 17 Feb 2020 10:14:23 +0100
From: Maxime Ripard <maxime@...no.tech>
To: Samuel Holland <samuel@...lland.org>
Cc: Mark Brown <broonie@...nel.org>,
Liam Girdwood <lgirdwood@...il.com>,
Rob Herring <robh+dt@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Chen-Yu Tsai <wens@...e.org>,
Vasily Khoruzhick <anarsoul@...il.com>,
Mylène Josserand
<mylene.josserand@...e-electrons.com>,
Jaroslav Kysela <perex@...ex.cz>,
Takashi Iwai <tiwai@...e.com>, alsa-devel@...a-project.org,
devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org
Subject: Re: [RFC PATCH 00/34] sun8i-codec fixes and new features
Hi,
On Mon, Feb 17, 2020 at 12:42:16AM -0600, Samuel Holland wrote:
> The sun8i-codec driver, as used in the Allwinner A33 and A64, currently
> only exposes a small subset of the available hardware features. In order
> to use the A64 in a smartphone (the PinePhone), I've added the necessary
> functionality to the driver:
> * The full set of supported DAI format options
> * Support for AIF2 and AIF3
> * Additional routing knobs
> * Additional volume controls
>
> Unfortunately, due to preexisting issues with the driver, there are some
> breaking changes, as explained further in the commit messages:
> * The LRCK inversion issue means we need a new compatible for the A64.
> * Some controls are named inaccurately, so they are renamed.
> * Likewise, the DAPM widgets used in device trees were either named
> wrong, or the device trees were using the wrong widgets in the first
> place. (Specifically, the links between the analog codec and digital
> codec happen at the ADC and DAC, not AIF1.)
>
> I tended to take the philosophy of "while I'm breaking things, I might
> as well do them right", so I've probably made a few more changes than
> absolutely necessary. I'm not sure about where all of the policy
> boundaries are, about how far I should go to maintain compatibility. For
> example, for the DT widget usage, I could:
> * Rename everything and update the DTS files (which is what I did)
> * Keep the old (misleading/wrong) name for the widgets, but repurpose
> them to work correctly
> (i.e. "ADC Left" would be named "AIF1 Slot 0 Left ADC", but it
> would work just like "ADC Left" does in this patchset)
> * Keep the old widgets around as a compatibility layer, but add new
> widgets and update the in-tree DTS files to use them
> (i.e. "ADC Left" would have a path from "AIF1 Slot 0 Left ADC",
> but "AIF1 Slot 0 Left ADC" would be a no-op widget)
> * Something else entirely
I'm not sure this is really a concern here. We need to maintain the
compatibility with old DT's, but those will have an A33 compatible
too, and as far as I can see, you're not changing anything for that
compatible, so we're in the clear?
If not, then the third option would probably be the best, especially
since it's only a couple of them.
Maxime
Powered by blists - more mailing lists