[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <015e084e-70ed-7b5c-b103-8426ef0842d4@linux.intel.com>
Date: Wed, 6 Oct 2021 11:37:24 -0500
From: Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>
To: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Hans de Goede <hdegoede@...hat.com>
Cc: Mark Brown <broonie@...nel.org>, alsa-devel@...a-project.org,
linux-kernel@...r.kernel.org,
Cezary Rojewski <cezary.rojewski@...el.com>,
Liam Girdwood <liam.r.girdwood@...ux.intel.com>,
Jie Yang <yang.jie@...ux.intel.com>,
Jaroslav Kysela <perex@...ex.cz>, Takashi Iwai <tiwai@...e.com>
Subject: Re: [PATCH v1 3/4] ASoC: Intel: bytcr_rt5651: use
devm_clk_get_optional() for mclk
On 10/6/21 11:23 AM, Andy Shevchenko wrote:
> On Wed, Oct 06, 2021 at 10:51:52AM -0500, Pierre-Louis Bossart wrote:
>> On 10/6/21 10:04 AM, Andy Shevchenko wrote:
>>> The devm_clk_get_optional() helper returns NULL when devm_clk_get()
>>> returns -ENOENT. This makes things slightly cleaner. The added benefit
>>> is mostly cosmetic.
>
> ...
>
>>> if (SND_SOC_DAPM_EVENT_ON(event)) {
>>> - if (byt_rt5651_quirk & BYT_RT5651_MCLK_EN) {
>>> - ret = clk_prepare_enable(priv->mclk);
>>> - if (ret < 0) {
>>> - dev_err(card->dev,
>>> - "could not configure MCLK state");
>>> - return ret;
>>> - }
>>> + ret = clk_prepare_enable(priv->mclk);
>>> + if (ret < 0) {
>>> + dev_err(card->dev, "could not configure MCLK state");
>>> + return ret;
>>> }
>>
>> I don't get why you removed the test on the BYT_RT5651_MCLK_EN quirk,
>> see below it was designed as a fall-back mode. We don't want to return
>> an error when we know the clock is not present/desired.
>
> Why should we do a unneeded test? When we switch to the optional, there
> will be no error from these CCF APIs. Besides that it drops indentation
> level and makes code neat.
By looking at this code only one cannot really visualize that it's a
no-op. I personally prefer to see explicit intent rather than have to
dig hundreds of lines below what this clock is optional.
I am also not even sure that in real products this clock is actually
optional, the default is to make use of it:
#define BYT_RT5651_DEFAULT_QUIRKS (BYT_RT5651_MCLK_EN | \
and the only platform without this clock is "Minnowboard Max B3" -
probably not used by anyone. I fried mine a long time ago.
We'd need to Hans to comment on this since he's really the only one
maintaining this code.
> ...
>
>> same here, why was the quirk removed?
>
> Same answer.
>
> ...
>
>> that part in the probe looks fine, but the changes above are controversial.
>
> I didn't get. How controversial? Why? The whole point of _optional is to get
> rid of unneeded checks (since they are _anyway_ be called).
It's inconsistent since you kept the following part but no longer use it:
+ /*
+ * Fall back to bit clock usage when clock is not
+ * available likely due to missing dependencies.
+ */
+ if (!priv->mclk)
+ byt_rt5651_quirk &= ~BYT_RT5651_MCLK_EN;
Powered by blists - more mailing lists