[ALSA] Improve the shared-jack handling on ac97
AC97 Codec
The handling of shared surround/clfe output jacks with line/mic-in
on some AC97 codecs is improved.
Instead of 'Line-In As Surround' or 'Mic As Center/LFE' switch, two
new enum controls are introduced: 'Channel Mode' and 'Surround Jack Mode'.
The formar changes the current output mode among 2, 4 and 6-channels.
The latter controls whether the jacks are shared or independent.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h
index 2433e27..996eeab 100644
--- a/include/sound/ac97_codec.h
+++ b/include/sound/ac97_codec.h
@@ -437,6 +437,7 @@
void (*suspend) (ac97_t *ac97);
void (*resume) (ac97_t *ac97);
#endif
+ void (*update_jacks) (ac97_t *ac97); /* for jack-sharing */
};
struct _snd_ac97_bus_ops {
@@ -516,6 +517,9 @@
} ad18xx;
unsigned int dev_flags; /* device specific */
} spec;
+ /* jack-sharing info */
+ unsigned char indep_surround;
+ unsigned char channel_mode;
};
/* conditions */