On Mon, Mar 4, 2024 at 1:23 PM Mark Brown broonie@kernel.org wrote:
On Mon, Mar 04, 2024 at 01:14:43PM -0800, cujomalainey@chromium.org wrote:
Non-dts based systems can use ACPI DSDT to pass on the mclk to da7219. This enables da7219 mclk to be linked to system clock. Enable/Disable of the mclk is already handled in the codec so platform drivers don't have to explicitly do handling of mclk.
...
device_property_read_string(dev, "dlg,mclk-name", &pdata->mclk_name);
...
da7219->mclk = clk_get(component->dev, "mclk");
if (da7219->pdata->mclk_name)
da7219->mclk = clk_get(NULL, da7219->pdata->mclk_name);
if (!da7219->mclk)
da7219->mclk = clk_get(component->dev, "mclk");
I would never have guessed from the changelog that what this change actually does is provide a mechanism for overriding the name we use to request the MCLK. I had thought this was adding clock handling to a driver that had none. The changelog should say what the change is doing.
No problem, I can clean it up, I figured a good starting point would be to just revive the original that was sent in 2018 https://mailman.alsa-project.org/hyperkitty/list/alsa-devel@alsa-project.org...
We have been carrying this in our tree the whole time, just caught it and figure I would try and get it up stream again
Having a firmware property for this is obviously broken for DT systems, this should be limited to ACPI systems if it's going to be there at all. It would be nicer if it were implementeded by having some ACPI specific code link whatever the configured clock name is to "mclk" - I don't know if the clock API has an equivalent to regulator_register_supply_alias() but that's the sort of thing I'm thinking of.
I will take a look at this, note that it appears the original author is no longer at AMD as the emails are bouncing.