[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <47137843-14fc-f6d0-4372-a9ef2456cab8@linux.intel.com>
Date: Mon, 31 Dec 2018 09:22:02 -0600
From: Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>
To: Azat Khuzhin <dohardgopro@...il.com>, Takashi Iwai <tiwai@...e.de>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Ingo Molnar <mingo@...nel.org>,
Mark Brown <broonie@...nel.org>,
Liam Girdwood <lgirdwood@...il.com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [GIT PULL] sound updates for 4.21
On 12/31/18 7:43 AM, Azat Khuzhin wrote:
>> +/* CFL and later models, preferring ASoC when DSP is available */
>> +#define IS_CFL_PLUS(pci) \
>> + ((pci)->vendor == 0x8086 && \
>> + ((pci)->device == 0xa348 || \
>> + (pci)->device == 0x9dc8 || \
>> + (pci)->device == 0x34c8))
>> +
>> static char *driver_short_names[] = {
>> [AZX_DRIVER_ICH] = "HDA Intel",
>> [AZX_DRIVER_PCH] = "HDA Intel PCH",
>> @@ -2056,7 +2063,7 @@ static int azx_probe(struct pci_dev *pci,
>> if (pci_id->driver_data & AZX_DCAPS_INTEL_SHARED) {
>> switch (skl_pci_binding) {
>> case SND_SKL_PCI_BIND_AUTO:
>> - if (pci->class != 0x040300) {
>> + if (pci->class != 0x040300 && IS_CFL_PLUS(pci)) {
>> dev_info(&pci->dev, "The DSP is enabled on this platform, aborting probe\n");
>> return -ENODEV;
>> }
> lenovo thinkpad carbon 6th gen - no sound after this patch, and this
> patch should fix sound issue for it (not tested, just checking the
> condition and pci attrs)
> But what interesting is that I cannot remove snd_soc_skl module
> without reboot (to adjust "pci_binding=1" so make sound works),
> because kernel hang after short period doing it:
>
> # rmmod snd_soc_skl_ssp_clk
> # rmmod snd_soc_skl
>
> WARN_ON triggered on rmmod:
This is unfortunately a known issue with this driver, Takashi and I had
a couple of email threads on this. Even without errors removing the
module doesn't seem to release all resources. I don't like this at all,
and for the Sound Open Firmware (SOF) driver I mandated module
load-unload as a functional requirement along with zero warnings w/
Sparse, Coccinelle and friends, but on this legacy code I am afraid
there is no simple fix - at least not in a merge window or a single
kernel cycle.
Powered by blists - more mailing lists