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?
IMO, it's better to add a bool flag is_hdmi to struct hdac_device, and let the HDMI codec driver setting it at the probe, instead. Then we can save an extra exported symbol, too.
We only use a combined generic codec driver which just supports 'HDA' codecs regardless of what type they are.
When things probed via ASoC/SOF I just could not find any other way to access to this table inside of patch_hdmi.c.
We could sort of 'cheat' and look for a specific (I'm not sure if it is Intel or HDA generic) mask: 0x4 It is used in Intel drivers to identify the display codec, so the HDMI/DP. If the 0x4 is universal among all HDA platforms for HDMI/DP then I'm more than happy to drop this patch, but I'm not sure about that.