From: Matthew Ranostay <mranostay@embeddedalley.com>
To: alsa-devel@alsa-project.org
Cc: Takashi Iwai <tiwai@suse.de>
Subject: [PATCH] hda: SPDIF mux fixes for STAC927x
Date: Tue, 16 Sep 2008 10:39:37 -0400 [thread overview]
Message-ID: <48CFC529.7010605@embeddedalley.com> (raw)
Corrected bounds-checking in stac92xx_auto_create_mux_input_ctls() and added a spec->spdif_labels
pointer for custom SPDIF mux labels for non-standard codec connections.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
---
diff --git a/pci/hda/patch_sigmatel.c b/pci/hda/patch_sigmatel.c
index f00334f..dc7393f 100644
--- a/pci/hda/patch_sigmatel.c
+++ b/pci/hda/patch_sigmatel.c
@@ -175,6 +175,7 @@ struct sigmatel_spec {
unsigned int num_dmuxes;
hda_nid_t *smux_nids;
unsigned int num_smuxes;
+ const char **spdif_labels;
hda_nid_t dig_in_nid;
hda_nid_t mono_nid;
@@ -383,6 +384,11 @@ static hda_nid_t stac927x_dmic_nids[STAC927X_NUM_DMICS + 1] = {
0x13, 0x14, 0
};
+static const char *stac927x_spdif_labels[5] = {
+ "Digital Playback", "ADAT", "Analog Mux 1",
+ "Analog Mux 2", "Analog Mux 3"
+};
+
static hda_nid_t stac9205_adc_nids[2] = {
0x12, 0x13
};
@@ -2893,26 +2899,29 @@ static int stac92xx_auto_create_mux_input_ctls(struct hda_codec *codec)
};
static const char *stac92xx_spdif_labels[3] = {
- "Digital Playback", "Analog Mux 1", "Analog Mux 2"
+ "Digital Playback", "Analog Mux 1", "Analog Mux 2",
};
static int stac92xx_auto_create_spdif_mux_ctls(struct hda_codec *codec)
{
struct sigmatel_spec *spec = codec->spec;
struct hda_input_mux *spdif_mux = &spec->private_smux;
+ const char **labels = spec->spdif_labels;
int i, num_cons;
- hda_nid_t con_lst[ARRAY_SIZE(stac92xx_spdif_labels)];
+ hda_nid_t con_lst[HDA_MAX_NUM_INPUTS];
num_cons = snd_hda_get_connections(codec,
spec->smux_nids[0],
con_lst,
HDA_MAX_NUM_INPUTS);
- if (!num_cons || num_cons > ARRAY_SIZE(stac92xx_spdif_labels))
+ if (!num_cons)
return -EINVAL;
+ if (!labels)
+ labels = stac92xx_spdif_labels;
+
for (i = 0; i < num_cons; i++) {
- spdif_mux->items[spdif_mux->num_items].label =
- stac92xx_spdif_labels[i];
+ spdif_mux->items[spdif_mux->num_items].label = labels[i];
spdif_mux->items[spdif_mux->num_items].index = i;
spdif_mux->num_items++;
}
@@ -4376,6 +4385,7 @@ static int patch_stac927x(struct hda_codec *codec)
spec->num_muxes = ARRAY_SIZE(stac927x_mux_nids);
spec->smux_nids = stac927x_smux_nids;
spec->num_smuxes = ARRAY_SIZE(stac927x_smux_nids);
+ spec->spdif_labels = stac927x_spdif_labels;
spec->dac_list = stac927x_dac_nids;
spec->multiout.dac_nids = spec->dac_nids;
next reply other threads:[~2008-09-16 14:39 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-16 14:39 Matthew Ranostay [this message]
2008-09-16 16:16 ` [PATCH] hda: SPDIF mux fixes for STAC927x 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=48CFC529.7010605@embeddedalley.com \
--to=mranostay@embeddedalley.com \
--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.