[alsa-devel] [PATCH 6/6] ALSA: hda/intel: stop probe if DMICS are detected on Skylake+ platforms

Takashi Iwai tiwai at suse.de
Fri Jul 19 20:13:57 CEST 2019


On Fri, 19 Jul 2019 19:06:10 +0200,
Pierre-Louis Bossart wrote:
> 
> +static int azx_check_dmic(struct pci_dev *pci, struct azx *chip)
> +{
> +	struct nhlt_acpi_table *nhlt;
> +	int ret = 0;
> +
> +	if (chip->driver_type == AZX_DRIVER_SKL &&
> +	    pci->class != 0x040300) {
> +		nhlt = intel_nhlt_init(&pci->dev);
> +		if (nhlt) {
> +			if (intel_nhlt_get_dmic_geo(&pci->dev, nhlt)) {
> +				ret = -ENODEV;
> +				dev_dbg(&pci->dev, "Digital mics found on Skylake+ platform, aborting probe\n");

IMO, this can be verbose, dev_info() would be suitable.
Otherwise user has no idea why the module load is skipped.


> @@ -2055,6 +2078,17 @@ static int azx_probe(struct pci_dev *pci,
>  	card->private_data = chip;
>  	hda = container_of(chip, struct hda_intel, chip);
>  
> +	/*
> +	 * stop probe if digital microphones detected on Skylake+ platform
> +	 * with the DSP enabled. This is an opt-in behavior defined at build
> +	 * time or at run-time with a module parameter
> +	 */
> +	if (IS_ENABLED(CONFIG_SND_HDA_INTEL_DETECT_DMIC) || dmic_detect >= 0) {

Isn't it "dmic_detect != 0" ?  Otherwise passing dmic_detect=0 would
be treated as positive here.


thanks,

Takashi


More information about the Alsa-devel mailing list