From: Jaroslav Kysela <perex@perex.cz>
To: alsa-devel@alsa-project.org
Cc: Takashi Iwai <tiwai@suse.de>
Subject: Re: [RFC] Fix for conflict of HDMI and SPDIF IEC958 controls
Date: Mon, 15 Oct 2012 12:21:18 +0200 [thread overview]
Message-ID: <507BE39E.5070306@perex.cz> (raw)
In-Reply-To: <s5hpq4nk9b1.wl%tiwai@suse.de>
Date 12.10.2012 17:18, Takashi Iwai wrote:
> Hi,
>
> there is a long-standing problem in HD-audio regarding IEC958
> controls. When both an SPDIF and an HDMI are created on the same
> card (e.g. one from analog codec and one from graphics chip), the
> driver assigns the IEC958 controls just with new indices, 0, 1, 2...
>
> The problem is that there is no way to connect between this index and
> the actual PCM device. Currently, alsa-lib HDA-Intel.conf has a fixed
> configuration:
> spdif -> IEC958 xxx index=0, PCM dev=1
> hdmi,0 -> IEC958 xxx index=0, PCM dev=3
> hdmi,1 -> IEC958 xxx index=1, PCM dev=7
> hdmi,2 -> IEC958 xxx index=2, PCM dev=8
> hdmi,3 -> IEC958 xxx index=3, PCM dev=9
>
> So obviously spdif and the first hdmi conflict.
>
> Basically this can be fixed by reassigning each IEC958 control with
> the same device number corresponding to the PCM device. That is, for
> SPDIF, assign a control element with device=1, for HDMI,
> device=3,7...
> However, this obviously breaks the old configuration unless user
> upgrades the alsa-lib configuration. Thus this is no-go.
>
> Now here is a compromise: the IEC958 control for SPDIF is reassigned
> to device=1 *only* when SPDIF and HDMI coexist. Since the
> configuration is anyway broken as is now in such a case, it's no big
> deal to fix one side in an incompatible way. (The reason why SPDIF
> is re-assigned is that I guess majority of user require more HDMI than
> SPDIF in such a configuration.)
>
> In addition, we need a fix in alsa-lib. Also not for breaking the
> compatibility with older kernel, we need some fallback check. I did a
> quick hack to alsa-lib conf code and added "skip_rest" option to the
> hook element, so that only the first matching element is taken.
>
> Long story short, I cooked up three patches. One patch is for kernel,
> to add the workaround above, and the two are for alsa-lib, one clean
> up and one to introduce the skip_rest option (and application to
> HDA-Intel.conf).
>
> My plan is to merge this to 3.8 tree, so it's no urgent issue.
> But it's of course always good to fix something.
What about to introduce more cleaner solution - export this information
using TLV to user space, so alsa-lib can enumerate (distinguish) the
spdif and hdmi devices properly.
Jaroslav
--
Jaroslav Kysela <perex@perex.cz>
Linux Kernel Sound Maintainer
ALSA Project; Red Hat, Inc.
next prev parent reply other threads:[~2012-10-15 10:21 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-12 15:18 [RFC] Fix for conflict of HDMI and SPDIF IEC958 controls Takashi Iwai
2012-10-12 15:24 ` [PATCH RFC] ALSA: hda - Add workaround for conflicting " Takashi Iwai
2012-10-17 8:17 ` Takashi Iwai
2012-10-17 12:43 ` Raymond Yau
2012-10-17 12:44 ` Takashi Iwai
2013-02-08 22:44 ` [PATCH] ALSA: hda - Fix the " Anssi Hannula
2013-02-10 10:38 ` Takashi Iwai
2013-02-10 11:05 ` Anssi Hannula
2013-02-11 10:51 ` Takashi Iwai
2013-02-11 11:20 ` Anssi Hannula
2013-02-11 11:28 ` Takashi Iwai
2013-02-12 15:51 ` Anssi Hannula
2013-02-12 17:40 ` Takashi Iwai
2012-10-12 15:25 ` [PATCH RFC 1/2] control: Simplify using snd_config_get_bool() Takashi Iwai
2012-10-12 15:25 ` [PATCH RFC 2/2] Add workaround for conflicting IEC958 controls for HD-audio Takashi Iwai
2013-02-03 16:40 ` Anssi Hannula
2013-02-04 9:34 ` Takashi Iwai
2012-10-15 2:31 ` [RFC] Fix for conflict of HDMI and SPDIF IEC958 controls Raymond Yau
2012-10-15 7:46 ` Takashi Iwai
2012-10-15 8:15 ` Raymond Yau
2012-10-15 8:35 ` Takashi Iwai
2012-10-15 8:49 ` Raymond Yau
2012-10-15 8:55 ` Takashi Iwai
[not found] ` <CAN8ccib4Z9VpHcdGxP3q5kofikU6zt6risGDAbOBiRKyKVcsxA@mail.gmail.com>
[not found] ` <CAN8cciY0TfZ+50EuoYbFdz1AzgNuDKZAaDE-o0v-YD_MpXnO1g@mail.gmail.com>
2012-10-15 13:10 ` Raymond Yau
2012-10-15 13:20 ` Takashi Iwai
2012-10-15 10:09 ` David Henningsson
2012-10-15 10:18 ` Takashi Iwai
2012-10-15 10:58 ` David Henningsson
2012-10-15 10:21 ` Jaroslav Kysela [this message]
2012-10-15 10:31 ` Takashi Iwai
2012-10-15 11:11 ` Jaroslav Kysela
2012-10-15 12:06 ` Takashi Iwai
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=507BE39E.5070306@perex.cz \
--to=perex@perex.cz \
--cc=alsa-devel@alsa-project.org \
--cc=tiwai@suse.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.