From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pierre-Louis Bossart Subject: Re: [PATCH 6/6] ALSA: hda/intel: stop probe if DMICS are detected on Skylake+ platforms Date: Fri, 19 Jul 2019 15:21:19 -0500 Message-ID: References: <20190719170610.17610-1-pierre-louis.bossart@linux.intel.com> <20190719170610.17610-7-pierre-louis.bossart@linux.intel.com> <6bc24e2a-596b-83f4-d022-5f630657c3a1@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 0F69CF800C4 for ; Fri, 19 Jul 2019 22:21:24 +0200 (CEST) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" To: Takashi Iwai Cc: Hui Wang , Curtis Malainey , alsa-devel@alsa-project.org, broonie@kernel.org, Daniel Drake List-Id: alsa-devel@alsa-project.org On 7/19/19 1:55 PM, Takashi Iwai wrote: > On Fri, 19 Jul 2019 20:29:10 +0200, > Pierre-Louis Bossart wrote: >> >> >>>> @@ -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. >> >> Ah, good catch. I literally copied the enable_msi example here, which >> relies on >= 0. >> >> if (enable_msi >= 0) { >> chip->msi = !!enable_msi; >> return; >> } >> >> Not sure what the intention was here. > > The MSI-enablement depends on the platform. enable_msi >=0 means that > user passed module option explicitly so we follow that. Otherwise, > let the system chooses whether to enable MSI or not. > >> Using dmic_detect != 0 wouldn't work for the default -1 value, >> maybe dmic_detect > 0 is probably a better solution? > > In your case, the logic doesn't look like the dynamically platform > dependent, so it should be simpler as below: > > static bool dmic_detect = IS_ENABLED(CONFIG_SND_HDA_INTEL_DETECT_DMIC); > module_param(dmic_detect, bool, 0444); > > and evaluate it > > if (dmic_detect) { > ret = azx_check_dmic(); > .... > > That is, if Kconfig is set, it's per default enabled, but user can > still turn it off via option. Otherwise user needs to enable it via > option. Makes sense, thanks for the feedback. Will send a v2 shortly. Have a nice week-end.