]> err.no Git - linux-2.6/blobdiff - sound/pci/intel8x0m.c
/spare/repo/netdev-2.6 branch 'master'
[linux-2.6] / sound / pci / intel8x0m.c
index f9972b20050d6b2d0fbd2bcda5b56701d7d4b7a2..bb758c77d211067ab49979f0fb962f7db654ae2c 100644 (file)
@@ -35,7 +35,6 @@
 #include <sound/pcm.h>
 #include <sound/ac97_codec.h>
 #include <sound/info.h>
-#include <sound/control.h>
 #include <sound/initval.h>
 
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
@@ -292,60 +291,9 @@ static struct pci_device_id snd_intel8x0m_ids[] = {
 #endif
        { 0, }
 };
-static int snd_intel8x0m_switch_default_get(snd_kcontrol_t *kcontrol,
-                                           snd_ctl_elem_value_t *ucontrol);
-static int snd_intel8x0m_switch_default_put(snd_kcontrol_t *kcontrol,
-                                           snd_ctl_elem_value_t *ucontrol);
-static int snd_intel8x0m_switch_default_info(snd_kcontrol_t *kcontrol,
-                                            snd_ctl_elem_info_t *uinfo);
-
-#define PRIVATE_VALUE_INITIALIZER(r,m) (((r) & 0xffff) << 16 | ((m) & 0xffff))
-#define PRIVATE_VALUE_MASK(control) ((control)->private_value & 0xffff)
-#define PRIVATE_VALUE_REG(control) (((control)->private_value >> 16) & 0xffff)
-
-static snd_kcontrol_new_t snd_intel8x0m_mixer_switches[] __devinitdata = {
-  { .name  = "Off-hook Switch",
-    .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
-    .info  = snd_intel8x0m_switch_default_info,
-    .get   = snd_intel8x0m_switch_default_get,
-    .put   = snd_intel8x0m_switch_default_put,
-    .private_value = PRIVATE_VALUE_INITIALIZER(AC97_GPIO_STATUS,AC97_GPIO_LINE1_OH)
-  }
-};
 
 MODULE_DEVICE_TABLE(pci, snd_intel8x0m_ids);
 
-static int snd_intel8x0m_switch_default_info(snd_kcontrol_t *kcontrol,
-                                            snd_ctl_elem_info_t *uinfo)
-{
-       uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
-       uinfo->count = 1;
-       uinfo->value.integer.min = 0;
-       uinfo->value.integer.max = 1;
-       return 0;
-}
-
-static int snd_intel8x0m_switch_default_get(snd_kcontrol_t *kcontrol,
-                                           snd_ctl_elem_value_t *ucontrol)
-{
-       unsigned short mask = PRIVATE_VALUE_MASK(kcontrol);
-       unsigned short reg = PRIVATE_VALUE_REG(kcontrol);
-       intel8x0_t *chip = snd_kcontrol_chip(kcontrol);
-       unsigned int status;
-       status = snd_ac97_read(chip->ac97, reg) & mask ? 1 : 0;
-       ucontrol->value.integer.value[0] = status;
-       return 0;
-}
-static int snd_intel8x0m_switch_default_put(snd_kcontrol_t *kcontrol,
-                                           snd_ctl_elem_value_t *ucontrol)
-{
-       unsigned short mask = PRIVATE_VALUE_MASK(kcontrol);
-       unsigned short reg = PRIVATE_VALUE_REG(kcontrol);
-       intel8x0_t *chip = snd_kcontrol_chip(kcontrol);
-       unsigned short new_status = ucontrol->value.integer.value[0] ? mask : ~mask;
-       return snd_ac97_update_bits(chip->ac97, reg,
-                                   mask, new_status);
-}
 /*
  *  Lowlevel I/O - busmaster
  */
@@ -700,21 +648,6 @@ static snd_pcm_uframes_t snd_intel8x0_pcm_pointer(snd_pcm_substream_t * substrea
        return bytes_to_frames(substream->runtime, ptr);
 }
 
-static int snd_intel8x0m_pcm_trigger(snd_pcm_substream_t *substream, int cmd)
-{
-       /* hook off/on on start/stop */
-       /* Moved this to mixer control */
-       switch (cmd) {
-       case SNDRV_PCM_TRIGGER_START:
-               break;
-       case SNDRV_PCM_TRIGGER_STOP:
-               break;
-       default:
-               return -EINVAL;
-       }
-       return snd_intel8x0_pcm_trigger(substream,cmd);
-}
-
 static int snd_intel8x0m_pcm_prepare(snd_pcm_substream_t * substream)
 {
        intel8x0_t *chip = snd_pcm_substream_chip(substream);
@@ -810,7 +743,7 @@ static snd_pcm_ops_t snd_intel8x0m_playback_ops = {
        .hw_params =    snd_intel8x0_hw_params,
        .hw_free =      snd_intel8x0_hw_free,
        .prepare =      snd_intel8x0m_pcm_prepare,
-       .trigger =      snd_intel8x0m_pcm_trigger,
+       .trigger =      snd_intel8x0_pcm_trigger,
        .pointer =      snd_intel8x0_pcm_pointer,
 };
 
@@ -821,7 +754,7 @@ static snd_pcm_ops_t snd_intel8x0m_capture_ops = {
        .hw_params =    snd_intel8x0_hw_params,
        .hw_free =      snd_intel8x0_hw_free,
        .prepare =      snd_intel8x0m_pcm_prepare,
-       .trigger =      snd_intel8x0m_pcm_trigger,
+       .trigger =      snd_intel8x0_pcm_trigger,
        .pointer =      snd_intel8x0_pcm_pointer,
 };
 
@@ -949,7 +882,6 @@ static int __devinit snd_intel8x0_mixer(intel8x0_t *chip, int ac97_clock)
        ac97_t *x97;
        int err;
        unsigned int glob_sta = 0;
-       unsigned int idx;
        static ac97_bus_ops_t ops = {
                .write = snd_intel8x0_codec_write,
                .read = snd_intel8x0_codec_read,
@@ -985,10 +917,6 @@ static int __devinit snd_intel8x0_mixer(intel8x0_t *chip, int ac97_clock)
                chip->ichd[ICHD_MDMIN].ac97 = x97;
                chip->ichd[ICHD_MDMOUT].ac97 = x97;
        }
-       for (idx = 0; idx < ARRAY_SIZE(snd_intel8x0m_mixer_switches); idx++) {
-               if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&snd_intel8x0m_mixer_switches[idx], chip))) < 0)
-                       goto __err;
-       }
 
        chip->in_ac97_init = 0;
        return 0;
@@ -1452,7 +1380,7 @@ static struct pci_driver driver = {
 
 static int __init alsa_card_intel8x0m_init(void)
 {
-       return pci_module_init(&driver);
+       return pci_register_driver(&driver);
 }
 
 static void __exit alsa_card_intel8x0m_exit(void)