mbox series

[v2,0/2] ALSA: HDAudio: enable dynamic selection between legacy and Skylake drivers

Message ID 20181215200723.4216-1-pierre-louis.bossart@linux.intel.com (mailing list archive)
Headers show
Series ALSA: HDAudio: enable dynamic selection between legacy and Skylake drivers | expand

Message

Pierre-Louis Bossart Dec. 15, 2018, 8:07 p.m. UTC
Use detection logic based on the PCI class/subclass/prog-if in the
HDaudio legacy probe, and add a module parameter to bypass or force
the automatic detection should it ever fail (or in case of missing
firmware or topology files)

This patchset was tested on
1. an SKL HP device with the DSP disabled
2. a WHL Acer Swift3 laptop
3. APL NUC6
4. KBL NUC7

5 reboot tests were done for each device with the DSP presence
detected reliably. The "pci_binding" parameter was also tested on the
WHL device.

The dynamic selection adds about 5ms worst case.

[    2.813741] snd_hda_intel 0000:00:1f.3: The DSP is enabled on this platform, aborting probe
[    2.850588] snd_soc_skl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100

The SOF driver will use exactly the same mechanism, and add a mutual
exclusion with the Skylake/SST driver to avoid having 3 drivers for
the same PCI ID. Two is complicated enough.

Changes since v1 (Feedback from Takashi)
a) added explanations and renamed Kconfigs to SND_HDA_INTEL_DSP_DETECTION_XYZ
b) less verbose dev_info
c) fixed pci_binding parameter

Pierre-Louis Bossart (2):
  ALSA: HD-Audio: SKL+: abort probe if DSP is present and Skylake driver
    selected
  ALSA: HD-Audio: SKL+: force HDaudio legacy or SKL+ driver selection

 include/sound/hdaudio.h        |  6 ++++
 sound/pci/hda/Kconfig          | 62 ++++++++++++++++++++++++++++++++++
 sound/pci/hda/hda_controller.h |  2 +-
 sound/pci/hda/hda_intel.c      | 54 +++++++++++++++++++++++++----
 sound/soc/intel/Kconfig        |  6 ++++
 sound/soc/intel/skylake/skl.c  | 48 ++++++++++++++++++--------
 6 files changed, 155 insertions(+), 23 deletions(-)


base-commit: ba26f635bf7253b42b08135152b18a2c8082abb7

Comments

Takashi Iwai Dec. 16, 2018, 9:18 a.m. UTC | #1
On Sat, 15 Dec 2018 21:07:21 +0100,
Pierre-Louis Bossart wrote:
> 
> Use detection logic based on the PCI class/subclass/prog-if in the
> HDaudio legacy probe, and add a module parameter to bypass or force
> the automatic detection should it ever fail (or in case of missing
> firmware or topology files)
> 
> This patchset was tested on
> 1. an SKL HP device with the DSP disabled
> 2. a WHL Acer Swift3 laptop
> 3. APL NUC6
> 4. KBL NUC7
> 
> 5 reboot tests were done for each device with the DSP presence
> detected reliably. The "pci_binding" parameter was also tested on the
> WHL device.
> 
> The dynamic selection adds about 5ms worst case.
> 
> [    2.813741] snd_hda_intel 0000:00:1f.3: The DSP is enabled on this platform, aborting probe
> [    2.850588] snd_soc_skl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
> 
> The SOF driver will use exactly the same mechanism, and add a mutual
> exclusion with the Skylake/SST driver to avoid having 3 drivers for
> the same PCI ID. Two is complicated enough.
> 
> Changes since v1 (Feedback from Takashi)
> a) added explanations and renamed Kconfigs to SND_HDA_INTEL_DSP_DETECTION_XYZ
> b) less verbose dev_info
> c) fixed pci_binding parameter
> 
> Pierre-Louis Bossart (2):
>   ALSA: HD-Audio: SKL+: abort probe if DSP is present and Skylake driver
>     selected
>   ALSA: HD-Audio: SKL+: force HDaudio legacy or SKL+ driver selection

For both, feel free to take my ack:
  Reviewed-by: Takashi Iwai <tiwai@suse.de>


thanks,

Takashi
Mark Brown Jan. 9, 2019, 7:23 p.m. UTC | #2
On Sat, Dec 15, 2018 at 02:07:21PM -0600, Pierre-Louis Bossart wrote:
> Use detection logic based on the PCI class/subclass/prog-if in the
> HDaudio legacy probe, and add a module parameter to bypass or force
> the automatic detection should it ever fail (or in case of missing
> firmware or topology files)

Given the issues Linus found is this series still valid?
Pierre-Louis Bossart Jan. 9, 2019, 9:15 p.m. UTC | #3
On 1/9/19 1:23 PM, Mark Brown wrote:
> On Sat, Dec 15, 2018 at 02:07:21PM -0600, Pierre-Louis Bossart wrote:
>> Use detection logic based on the PCI class/subclass/prog-if in the
>> HDaudio legacy probe, and add a module parameter to bypass or force
>> the automatic detection should it ever fail (or in case of missing
>> firmware or topology files)
> Given the issues Linus found is this series still valid?
No. please drop this patchset. We need to first fix the HDMI issues due 
to broken programming sequences that existed before the dynamic 
selection was added. we can also simplify it if we change the probe 
order to avoid making any changes to the legacy and add more 
intelligence so e.g. only use the Skylake driver in "auto" mode if 
digital mics controlled by the DSP are detected in the NHLT tables.