From: David Henningsson <david.henningsson@canonical.com>
To: Wu Fengguang <wfg@linux.intel.com>
Cc: Takashi Iwai <tiwai@suse.de>,
ALSA Development Mailing List <alsa-devel@alsa-project.org>
Subject: Re: [PATCH] ALSA: HDA: Remove unconnected PCM devices for Intel HDMI
Date: Tue, 23 Nov 2010 16:40:49 +0100 [thread overview]
Message-ID: <4CEBE081.10705@canonical.com> (raw)
In-Reply-To: <20101123151536.GB26749@localhost>
[-- Attachment #1: Type: text/plain, Size: 3078 bytes --]
On 2010-11-23 16:15, Wu Fengguang wrote:
>> > From ca84aa8edbfb66e46266677249b141b5419d6e0a Mon Sep 17 00:00:00 2001
>> From: David Henningsson<david.henningsson@canonical.com>
>> Date: Tue, 23 Nov 2010 10:23:40 +0100
>> Subject: [PATCH] ALSA: HDA: Remove unconnected PCM devices for Intel HDMI
>>
>> Some newer chips have more than one HDMI output, but usually not
>
> Please point out the model name here (where this patch actually makes
> a difference)?
I'm attaching the codec-proc file for the relevant machine, which lists
as "Intel Cougarpoint HDMI".
>> 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@canonical.com>
>> ---
>> sound/pci/hda/patch_hdmi.c | 41 ++++++++++++++++++++++++++++++++---------
>> 1 files changed, 32 insertions(+), 9 deletions(-)
>>
>> diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
>> index d3e49aa..14a1087 100644
>> --- a/sound/pci/hda/patch_hdmi.c
>> +++ b/sound/pci/hda/patch_hdmi.c
>> @@ -905,23 +905,28 @@ static int hdmi_add_pin(struct hda_codec *codec, hda_nid_t pin_nid)
>> spec->pin[spec->num_pins] = pin_nid;
>> spec->num_pins++;
>>
>> - /*
>> - * It is assumed that converter nodes come first in the node list and
>> - * hence have been registered and usable now.
>> - */
>> return hdmi_read_pin_conn(codec, pin_nid);
>> }
>>
>> static int hdmi_add_cvt(struct hda_codec *codec, hda_nid_t nid)
>> {
>> + int i, found_pin = 0;
>> 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);
>> - return -E2BIG;
>
>> + for (i = 0; i< spec->num_pins; i++)
>> + if (nid == spec->pin_cvt[i]) {
>> + found_pin = 1;
>> + break;
>> + }
>> +
>> + if (!found_pin) {
>
> Can test this instead:
>
> if (hda_node_index(spec->pin_cvt, nid)< 0) {
Yes, that would probably be simpler.
>> + snd_printdd("HDMI: Skipping node %d (no connection)\n", nid);
>> + return -EINVAL;
>> }
>
> The above return actually will hide the device for cvt 3:
>
> +---- pin 4
> /
> cvt 2 ------ pin 5
> \
> +---- pin 6
>
> cvt 3
>
> Which is the default connection for Intel ibexpeak/sandybridge codecs.
> It might be a problem when the user uses dual displays (which may be
> configured at runtime). I have no such a setup, so cannot assure
> things will work or not work..
Hmm, is this really relevant? Looking at the current patch_hdmi.c, I
can't see that it ever tries to change pin <-> cvt connections, but I
might be missing something.
In fact, I have yet to see an HDMI codec where you can actually perform
that change, perhaps you can post such a codec-proc file?
--
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic
[-- Attachment #2: hdmi-codec.txt --]
[-- Type: text/plain, Size: 3656 bytes --]
Codec: Intel CougarPoint HDMI
Address: 3
Function Id: 0x1
Vendor Id: 0x80862805
Subsystem Id: 0x80862805
Revision Id: 0x100000
No Modem Function Group found
Default PCM:
rates [0x0]:
bits [0x0]:
formats [0x0]:
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
Node 0x02 [Audio Output] wcaps 0x6611: 8-Channels Digital
Control: name="IEC958 Playback Con Mask", index=1, device=0
Control: name="IEC958 Playback Pro Mask", index=1, device=0
Control: name="IEC958 Playback Default", index=1, device=0
Control: name="IEC958 Playback Switch", index=1, device=0
Device: name="INTEL HDMI 0", type="HDMI", device=3
Converter: stream=8, channel=0
Digital: Enabled
Digital category: 0x0
PCM:
rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
bits [0x1e]: 16 20 24 32
formats [0x5]: PCM AC3
Power states: D0 D3 EPSS
Power: setting=D0, actual=D0
Node 0x03 [Audio Output] wcaps 0x6611: 8-Channels Digital
Control: name="IEC958 Playback Con Mask", index=2, device=0
Control: name="IEC958 Playback Pro Mask", index=2, device=0
Control: name="IEC958 Playback Default", index=2, device=0
Control: name="IEC958 Playback Switch", index=2, device=0
Device: name="INTEL HDMI 1", type="HDMI", device=7
Converter: stream=0, channel=0
Digital: Enabled
Digital category: 0x0
PCM:
rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
bits [0x1e]: 16 20 24 32
formats [0x5]: PCM AC3
Power states: D0 D3 EPSS
Power: setting=D0, actual=D0
Node 0x04 [Audio Output] wcaps 0x6611: 8-Channels Digital
Control: name="IEC958 Playback Con Mask", index=3, device=0
Control: name="IEC958 Playback Pro Mask", index=3, device=0
Control: name="IEC958 Playback Default", index=3, device=0
Control: name="IEC958 Playback Switch", index=3, device=0
Device: name="INTEL HDMI 2", type="HDMI", device=8
Converter: stream=0, channel=0
Digital: Enabled
Digital category: 0x0
PCM:
rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
bits [0x1e]: 16 20 24 32
formats [0x5]: PCM AC3
Power states: D0 D3 EPSS
Power: setting=D0, actual=D0
Node 0x05 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x09000094: OUT Detect HBR HDMI DP
Pin Default 0x58560010: [N/A] Digital Out at Int HDMI
Conn = Digital, Color = Unknown
DefAssociation = 0x1, Sequence = 0x0
Pin-ctls: 0x40: OUT
Unsolicited: tag=05, enabled=1
Power states: D0 D3 EPSS
Power: setting=D0, actual=D0
Connection: 1
0x02
Node 0x06 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x09000094: OUT Detect HBR HDMI DP
Pin Default 0x58560020: [N/A] Digital Out at Int HDMI
Conn = Digital, Color = Unknown
DefAssociation = 0x2, Sequence = 0x0
Pin-ctls: 0x40: OUT
Unsolicited: tag=06, enabled=1
Power states: D0 D3 EPSS
Power: setting=D0, actual=D0
Connection: 1
0x03
Node 0x07 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x09000094: OUT Detect HBR HDMI DP
Pin Default 0x18560030: [Jack] Digital Out at Int HDMI
Conn = Digital, Color = Unknown
DefAssociation = 0x3, Sequence = 0x0
Pin-ctls: 0x40: OUT
Unsolicited: tag=07, enabled=1
Power states: D0 D3 EPSS
Power: setting=D0, actual=D0
Connection: 1
0x04
Node 0x08 [Vendor Defined Widget] wcaps 0xf00000: Mono
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
next prev parent reply other threads:[~2010-11-23 15:40 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-12 15:46 [PATCH] ALSA: HDA: Remove unconnected PCM devices for Intel HDMI David Henningsson
2010-11-23 7:12 ` Takashi Iwai
2010-11-23 9:29 ` David Henningsson
2010-11-23 11:06 ` Wu Fengguang
2010-11-23 13:51 ` Takashi Iwai
2010-11-23 14:19 ` David Henningsson
2010-11-23 14:58 ` Wu Fengguang
2010-11-24 9:39 ` Takashi Iwai
2010-11-23 15:15 ` Wu Fengguang
2010-11-23 15:40 ` David Henningsson [this message]
2010-11-23 15:54 ` Wu Fengguang
2010-11-24 13:50 ` David Henningsson
2010-11-23 16:16 ` Wu Fengguang
2010-12-07 19:10 ` Takashi Iwai
2012-02-01 12:38 ` RIDDICC
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CEBE081.10705@canonical.com \
--to=david.henningsson@canonical.com \
--cc=alsa-devel@alsa-project.org \
--cc=tiwai@suse.de \
--cc=wfg@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).