|
@@ -300,13 +300,32 @@ enum em28xx_amux {
|
|
|
};
|
|
|
|
|
|
enum em28xx_aout {
|
|
|
+ /* AC97 outputs */
|
|
|
EM28XX_AOUT_MASTER = 1 << 0,
|
|
|
EM28XX_AOUT_LINE = 1 << 1,
|
|
|
EM28XX_AOUT_MONO = 1 << 2,
|
|
|
EM28XX_AOUT_LFE = 1 << 3,
|
|
|
EM28XX_AOUT_SURR = 1 << 4,
|
|
|
+
|
|
|
+ /* PCM IN Mixer - used by AC97_RECORD_SELECT register */
|
|
|
+ EM28XX_AOUT_PCM_IN = 1 << 7,
|
|
|
+
|
|
|
+ /* Bits 10-8 are used to indicate the PCM IN record select */
|
|
|
+ EM28XX_AOUT_PCM_MIC_PCM = 0 << 8,
|
|
|
+ EM28XX_AOUT_PCM_CD = 1 << 8,
|
|
|
+ EM28XX_AOUT_PCM_VIDEO = 2 << 8,
|
|
|
+ EM28XX_AOUT_PCM_AUX = 3 << 8,
|
|
|
+ EM28XX_AOUT_PCM_LINE = 4 << 8,
|
|
|
+ EM28XX_AOUT_PCM_STEREO = 5 << 8,
|
|
|
+ EM28XX_AOUT_PCM_MONO = 6 << 8,
|
|
|
+ EM28XX_AOUT_PCM_PHONE = 7 << 8,
|
|
|
};
|
|
|
|
|
|
+static int ac97_return_record_select(int a_out)
|
|
|
+{
|
|
|
+ return (a_out & 0x700) >> 8;
|
|
|
+}
|
|
|
+
|
|
|
struct em28xx_reg_seq {
|
|
|
int reg;
|
|
|
unsigned char val, mask;
|