From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; dkim=none Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2a07:de40:b251:101:10:150:64:2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3595FD2 for ; Mon, 27 Nov 2023 07:20:08 -0800 (PST) Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id DEF731FCFD; Mon, 27 Nov 2023 15:20:06 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 88F481367B; Mon, 27 Nov 2023 15:20:06 +0000 (UTC) Received: from dovecot-director2.suse.de ([10.150.64.162]) by imap1.dmz-prg2.suse.org with ESMTPSA id tI3MH6azZGVbQQAAD6G6ig (envelope-from ); Mon, 27 Nov 2023 15:20:06 +0000 Date: Mon, 27 Nov 2023 16:20:06 +0100 Message-ID: <878r6jp6jd.wl-tiwai@suse.de> From: Takashi Iwai To: =?ISO-8859-1?Q?P=E9ter?= Ujfalusi Cc: lgirdwood@gmail.com, broonie@kernel.org, perex@perex.cz, tiwai@suse.com, alsa-devel@alsa-project.org, linux-sound@vger.kernel.org, pierre-louis.bossart@linux.intel.com, kai.vehmanen@linux.intel.com, ranjani.sridharan@linux.intel.com Subject: Re: [PATCH 1/2] ALSA: hda/hdmi: Add helper function to check if a device is HDMI codec In-Reply-To: <8ede931b-8c9c-4b95-83e5-5f0db9819e8e@linux.intel.com> References: <20231127130245.24295-1-peter.ujfalusi@linux.intel.com> <20231127130245.24295-2-peter.ujfalusi@linux.intel.com> <87jzq3pc6r.wl-tiwai@suse.de> <87cyvvp8t6.wl-tiwai@suse.de> <8ede931b-8c9c-4b95-83e5-5f0db9819e8e@linux.intel.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/27.2 Mule/6.0 Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Level: X-Rspamd-Server: rspamd1 Authentication-Results: smtp-out2.suse.de; none X-Rspamd-Queue-Id: DEF731FCFD X-Spam-Score: -4.00 X-Spamd-Result: default: False [-4.00 / 50.00]; REPLY(-4.00)[] On Mon, 27 Nov 2023 15:45:54 +0100, Péter Ujfalusi wrote: > > > > On 27/11/2023 16:31, Takashi Iwai wrote: > > On Mon, 27 Nov 2023 15:12:51 +0100, > > Péter Ujfalusi wrote: > >> > >> > >> > >> On 27/11/2023 15:18, Takashi Iwai wrote: > >>>> +bool snd_hda_device_is_hdmi(struct hdac_device *hdev) > >>>> +{ > >>>> + int i; > >>>> + > >>>> + for (i = 0; i < ARRAY_SIZE(snd_hda_id_hdmi); i++) { > >>>> + if (snd_hda_id_hdmi[i].vendor_id == hdev->vendor_id) > >>>> + return true; > >>>> + } > >>>> + > >>>> + return false; > >>>> +} > >>>> +EXPORT_SYMBOL_GPL(snd_hda_device_is_hdmi); > >>> > >>> I'm afraid that this will bring unnecessary dependency on HDMI codec > >>> driver. > >> > >> For HDMI support we anyways need HDMI code? > > > > But the ASoC hdac-hda driver isn't specifically bound with HDMI, I > > thought? > > > > With your patch, now it becomes a hard-dependency. It'll be even > > build failure when HDMI codec driver isn't enabled in Kconfig. > > The change in hdaudio.h handles the config dependency, if > CONFIG_SND_HDA_CODEC_HDMI is not enabled in Kconfig then > snd_hda_device_is_hdmi() will return false. OK, that's at least good. But I still find it not ideal to bring the hard dependency there unnecessarily. With the introduction of a flag in hdac_device, the necessary change would be even smaller like below. Takashi --- a/include/sound/hdaudio.h +++ b/include/sound/hdaudio.h @@ -95,6 +95,7 @@ struct hdac_device { bool lazy_cache:1; /* don't wake up for writes */ bool caps_overwriting:1; /* caps overwrite being in process */ bool cache_coef:1; /* cache COEF read/write too */ + bool is_hdmi:1; /* a HDMI/DP codec */ unsigned int registered:1; /* codec was registered */ }; --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -2597,6 +2597,7 @@ static int patch_generic_hdmi(struct hda_codec *codec) } generic_hdmi_init_per_pins(codec); + codec->core.is_hdmi = true; return 0; } @@ -3472,6 +3473,7 @@ static int patch_simple_hdmi(struct hda_codec *codec, spec->pcm_playback = simple_pcm_playback; codec->patch_ops = simple_hdmi_patch_ops; + codec->core.is_hdmi = true; return 0; }