According to the ALC268 datasheet, there is actually an input amplifier on node 0x1d, even though this is not exposed in the codec proc file.
Signed-off-by: David Henningsson david.henningsson@canonical.com --- hda-spec.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
Relevant alsa info: alc268-toshiba-tecra-s11-m11--nvidia--ccert-201002-5346
diff --git a/hda-spec.c b/hda-spec.c index f1b03b4..dd43ee9 100644 --- a/hda-spec.c +++ b/hda-spec.c @@ -386,6 +386,20 @@ static void fixup_via_mixer(struct xhda_codec *codec) node->node[node->num_nodes++] = 0x08; }
+static void fixup_alc268_beep(struct xhda_codec *codec) +{ + struct xhda_node *node = find_node(codec, 0x1d); + if (!node) + return; + node->wcaps |= (1 << 1); /* AMP-in present */ + + node->amp_in_caps.ofs = 0x0c; + node->amp_in_caps.nsteps = 0x0c; + node->amp_in_caps.stepsize = 0x07; + node->amp_in_caps.mute = 0; + node->amp_in_caps.override = 1; +} + struct fixup_list { unsigned int vendor_id; void (*func)(struct xhda_codec *); @@ -397,6 +411,7 @@ static struct fixup_list fixups[] = { { 0x11060438, fixup_via_mixer }, { 0x11064438, fixup_via_mixer }, { 0x11060448, fixup_via_mixer }, + { 0x10ec0268, fixup_alc268_beep }, { } };