Re: Regression found (Stop-marking-clocks-as-CLK_IS_CRITICAL)

Hans de Goede
2018-11-01T23:53:06Z

[-- Attachment #1: Type: text/plain, Size: 3305 bytes --]

Hi,

On 01-11-18 15:28, Dean Wallace wrote:
> On 01-11-18, Hans de Goede wrote:
>> Hi,
>>
>> On 01-11-18 11:37, Dean Wallace wrote:
>>> On 31-10-18, Pierre-Louis Bossart wrote:
>>>>
>>>>> Just thought it worth mentioning, this new patch that fixes sound
>>>>> again, seems to have ressurected an old issue with PLL unlock. I'm
>>>>> seeing journal entries after fresh boot ......
>>>>>
>>>>> ```
>>>>> picard kernel: max98090 i2c-193C9890:00: PLL unlocked
>>>>> picard systemd[462]: Started Sound Service.
>>>>> picard kernel: max98090 i2c-193C9890:00: PLL unlocked
>>>>> picard kernel: max98090 i2c-193C9890:00: PLL unlocked
>>>>> picard kernel: max98090 i2c-193C9890:00: PLL unlocked
>>>>> picard kernel: max98090 i2c-193C9890:00: PLL unlocked
>>>>> picard kernel: max98090 i2c-193C9890:00: PLL unlocked
>>>>> picard kernel: max98090 i2c-193C9890:00: PLL unlocked
>>>>> picard kernel: max98090 i2c-193C9890:00: PLL unlocked
>>>>> picard kernel: max98090 i2c-193C9890:00: PLL unlocked
>>>>> picard kernel: max98090_pll_work: 141 callbacks suppressed
>>>>> picard kernel: max98090 i2c-193C9890:00: PLL unlocked
>>>>> ```
>>>>>
>>>>> sound is ok, but sometimes plugging in headphones spams journal with
>>>>> those PLL messages, and sound turns into "daleks", and I have to
>>>>> remove/insert headphones few times or stop/start audio to fix it.
>>>>> It's a very old issue, maybe you'd know more about it.
>>>>
>>>> I noticed this error on my Orco device used for tests many moons ago, but I
>>>> could never find out what led to this error case, it wasn't deterministic
>>>> and didn't impact the audio quality. All I could do is rate_limit it... If
>>>> we have an A vs. B situation it'd be really helpful to diagnose further.
>>>>
>>>> Is there really a causality between the changes from Hans and this PLL
>>>> unlock error? Are you 100% sure this was not present in the previous install
>>>> you used (4.18.14 as mentioned earlier in the thread)?
>>>>
>>>> Thanks
>>>>
>>>> -Pierre
>>>>
>>> Well, numerous boots, kernels, headphone inserting - no PLL or
>>> 'Daleks'. My laptop must have been haunted that day (halloween).
>>> I'll put it to bed.
>>
>> So you can no longer reproduce. Bummer. Note this might be caused by
>> the temperature of the laptop when you were running the tests...
>>
>> Anyways if you hit this again and you can reproduce it, please
>> give adding a msleep(10) after code mucking with the clk a try.
>>
>> Regards,
>>
>> Hans
>>
> Right then, I can make it unlock and 'daleks' by going into
> pavucontrol and switching the Profile back and forth from Stereo
> Output to Stereo Output+Analog Mono Input, which is actually something
> I've done to make it correct itself as well. I don't use the mic or
> anything so I've had it set to Stereo Ouput only which I 'think' has
> somehow made it more stable for me. With all my playing around, one
> of the things I did was clean out my .config/pulse folder which meant
> by default the 'Profile' in pavucontrol was set to Output+Input, which
> seems to help trigger the PLL issue when inserting headphones.
>
> So what would you like me to do, as I can trigger it on demand it
> seems.

Please give the attached patch a try (on top of my patch for the clk quirk)
and let us know if that fixes these errors.

Regards,

Hans

[-- Attachment #2: 0001-ASoC-intel-cht_bsw_max98090_ti-Sleep-a-bit-after-ena.patch --]
[-- Type: text/x-patch, Size: 1258 bytes --]

>From d81f1906f08bb6d3aa45a0403adc1d36754c13cc Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Thu, 1 Nov 2018 15:47:42 +0100
Subject: [PATCH] ASoC: intel: cht_bsw_max98090_ti: Sleep a bit after enabling
the mclk

Sleep a bit after enabling the mclk to give the PLL some time to lock,
this fixes the log showing a whole bunch of:

kernel: max98090 i2c-193C9890:00: PLL unlocked

errors.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
sound/soc/intel/boards/cht_bsw_max98090_ti.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/sound/soc/intel/boards/cht_bsw_max98090_ti.c b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
index 9d9f6e41d81c..f3bc0bfdfe08 100644
--- a/sound/soc/intel/boards/cht_bsw_max98090_ti.c
+++ b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
@@ -19,6 +19,7 @@
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/

+#include <linux/delay.h>
#include <linux/dmi.h>
#include <linux/module.h>
#include <linux/platform_device.h>
@@ -66,6 +67,7 @@ static int platform_clock_control(struct snd_soc_dapm_widget *w,
"could not configure MCLK state");
return ret;
}
+ usleep_range(5000, 10000);
} else {
clk_disable_unprepare(ctx->mclk);
}
--
2.19.0