Merge x86-64 update from Andi
[linux-2.6-microblaze.git] / include / sound / ac97_codec.h
index 1309c12..7f0ca79 100644 (file)
@@ -26,6 +26,7 @@
  */
 
 #include <linux/bitops.h>
+#include <linux/device.h>
 #include "pcm.h"
 #include "control.h"
 #include "info.h"
 #define AC97_HAS_NO_PC_BEEP    (1<<12) /* no PC Beep volume */
 #define AC97_HAS_NO_VIDEO      (1<<13) /* no Video volume */
 #define AC97_HAS_NO_CD         (1<<14) /* no CD volume */
+#define AC97_HAS_NO_MIC        (1<<15) /* no MIC volume */
+#define AC97_HAS_NO_TONE       (1<<16) /* no Tone volume */
+#define AC97_HAS_NO_STD_PCM    (1<<17) /* no standard AC97 PCM volume and mute */
 
 /* rates indexes */
 #define AC97_RATES_FRONT_DAC   0
 #define AC97_RATES_MIC_ADC     4
 #define AC97_RATES_SPDIF       5
 
-/* shared controllers */
-enum {
-       AC97_SHARED_TYPE_NONE,
-       AC97_SHARED_TYPE_ICH,
-       AC97_SHARED_TYPE_ATIIXP,
-       AC97_SHARED_TYPE_VIA,
-       AC97_SHARED_TYPES
-};
-
 /*
  *
  */
@@ -464,7 +459,6 @@ struct _snd_ac97_bus {
        unsigned short used_slots[2][4]; /* actually used PCM slots */
        unsigned short pcms_count; /* count of PCMs */
        struct ac97_pcm *pcms;
-       unsigned int shared_type;       /* type of shared controller betwen audio and modem */
        ac97_t *codec[4];
        snd_info_entry_t *proc;
 };
@@ -520,8 +514,11 @@ struct _snd_ac97 {
        /* jack-sharing info */
        unsigned char indep_surround;
        unsigned char channel_mode;
+       struct device dev;
 };
 
+#define to_ac97_t(d) container_of(d, struct _snd_ac97, dev)
+
 /* conditions */
 static inline int ac97_is_audio(ac97_t * ac97)
 {
@@ -599,4 +596,8 @@ struct ac97_enum {
        unsigned short mask;
        const char **texts;
 };
+
+/* ad hoc AC97 device driver access */
+extern struct bus_type ac97_bus_type;
+
 #endif /* __SOUND_AC97_CODEC_H */