[alsa-devel] [PATCH] ALSA: HDA: Remove unconnected PCM devices for Intel HDMI
David Henningsson
david.henningsson at canonical.com
Tue Nov 23 10:29:12 CET 2010
On 2010-11-23 08:12, Takashi Iwai wrote:
> At Fri, 12 Nov 2010 16:46:34 +0100,
> David Henningsson wrote:
>>
>> Since I'm a little new in HDMI land and the patch is non-trivial, I
>> wouldn't mind some comments on this one. Also thanks to Jaroslav who
>> cleared a few things out about the logical and physical devices which
>> helped me figure out what I should do about it :-)
>>
>> Anyway, here's the patch.
>>
>> Some newer chips have more than one HDMI output, but usually not
>> all of them are exposed as physical jacks. Removing the unused
>> PCM devices (as indicated by BIOS in the pin config default) will
>> reduce user confusion as they currently have to choose between
>> several HDMI devices, some of them not working anyway.
>>
>> Signed-off-by: David Henningsson<david.henningsson at canonical.com>
>
> The patch looks mostly OK.
> But this gives a few errors and warnings via checkpatch.pl.
> Could you fix errors, at least?
>
> Also some review comments:
>
>> static int hdmi_add_cvt(struct hda_codec *codec, hda_nid_t nid)
>> {
>> + int i;
>> struct hdmi_spec *spec = codec->spec;
>>
>> - if (spec->num_cvts>= MAX_HDMI_CVTS) {
>> - snd_printk(KERN_WARNING
>> - "HDMI: no space for converter %d\n", nid);
>> + for (i = 0; spec->pin_cvt[i] != nid; i++)
>
> I'd write with a normal loop like for (i = 0; i< spec->num_pins; i++)
> This is easier to read.
>
>> + if (!spec->pin[i]) {
>> + snd_printd("HDMI: Skipping node %d (no connection)\n", nid);
>
> Better to use snd_printdd(). snd_printd() is enabled on many distros,
> and such an unnecessary kernel message may make user worry.
>
>> @@ -951,17 +954,33 @@ static int hdmi_parse_codec(struct hda_codec *codec)
> ...
>> case AC_WID_PIN:
>> caps = snd_hda_param_read(codec, nid, AC_PAR_PIN_CAP);
>> if (!(caps& (AC_PINCAP_HDMI | AC_PINCAP_DP)))
>> continue;
>> +
>> + config = snd_hda_codec_read(codec, nid, 0,
>> + AC_VERB_GET_CONFIG_DEFAULT, 0);
>> + if (((config& AC_DEFCFG_PORT_CONN)>>
>> + AC_DEFCFG_PORT_CONN_SHIFT) == AC_JACK_PORT_NONE)
>
> You can use get_defcfg_connect() here.
Thanks for the review, Takashi! I usually run checkpatch.pl these days
but this one must have slipped. What do you think of this patch (untested)?
--
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ALSA-HDA-Remove-unconnected-PCM-devices-for-Intel-HD.patch
Type: text/x-patch
Size: 0 bytes
Desc: not available
Url : http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20101123/e837260f/attachment.patch
More information about the Alsa-devel
mailing list