Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 1505
b: refs/heads/master
c: 01d25d4
h: refs/heads/master
i:
  1503: 25d977e
v: v3
  • Loading branch information
Takashi Iwai authored and Jaroslav Kysela committed May 29, 2005
1 parent 1c75276 commit 7f1c0cb
Show file tree
Hide file tree
Showing 38 changed files with 178 additions and 59 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 01ef355f0c34d6fbb451512e70e4cf336776b7fd
refs/heads/master: 01d25d460a3b28aab537fab9a0038d1b5832ce28
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@
<listitem><para>create <function>probe()</function> callback.</para></listitem>
<listitem><para>create <function>remove()</function> callback.</para></listitem>
<listitem><para>create pci_driver table which contains the three pointers above.</para></listitem>
<listitem><para>create <function>init()</function> function just calling <function>pci_module_init()</function> to register the pci_driver table defined above.</para></listitem>
<listitem><para>create <function>init()</function> function just calling <function>pci_register_driver()</function> to register the pci_driver table defined above.</para></listitem>
<listitem><para>create <function>exit()</function> function to call <function>pci_unregister_driver()</function> function.</para></listitem>
</itemizedlist>
</para>
Expand Down Expand Up @@ -1198,7 +1198,7 @@
/* initialization of the module */
static int __init alsa_card_mychip_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

/* clean up the module */
Expand Down Expand Up @@ -1654,7 +1654,7 @@
<![CDATA[
static int __init alsa_card_mychip_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

static void __exit alsa_card_mychip_exit(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/ali5451/ali5451.c
Original file line number Diff line number Diff line change
Expand Up @@ -2270,7 +2270,7 @@ static struct pci_driver driver = {

static int __init alsa_card_ali_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

static void __exit alsa_card_ali_exit(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/als4000.c
Original file line number Diff line number Diff line change
Expand Up @@ -777,7 +777,7 @@ static struct pci_driver driver = {

static int __init alsa_card_als4000_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

static void __exit alsa_card_als4000_exit(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/atiixp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1645,7 +1645,7 @@ static struct pci_driver driver = {

static int __init alsa_card_atiixp_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

static void __exit alsa_card_atiixp_exit(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/atiixp_modem.c
Original file line number Diff line number Diff line change
Expand Up @@ -1332,7 +1332,7 @@ static struct pci_driver driver = {

static int __init alsa_card_atiixp_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

static void __exit alsa_card_atiixp_exit(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/au88x0/au88x0.c
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ static struct pci_driver driver = {
// initialization of the module
static int __init alsa_card_vortex_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

// clean up the module
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/azt3328.c
Original file line number Diff line number Diff line change
Expand Up @@ -1520,7 +1520,7 @@ static int __init alsa_card_azf3328_init(void)
{
int err;
snd_azf3328_dbgcallenter();
err = pci_module_init(&driver);
err = pci_register_driver(&driver);
snd_azf3328_dbgcallleave();
return err;
}
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/bt87x.c
Original file line number Diff line number Diff line change
Expand Up @@ -918,7 +918,7 @@ static int __init alsa_card_bt87x_init(void)
{
if (load_all)
driver.id_table = snd_bt87x_default_ids;
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

static void __exit alsa_card_bt87x_exit(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/ca0106/ca0106_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1268,7 +1268,7 @@ static int __init alsa_card_ca0106_init(void)
{
int err;

if ((err = pci_module_init(&driver)) > 0)
if ((err = pci_register_driver(&driver)) > 0)
return err;

return 0;
Expand Down
159 changes: 139 additions & 20 deletions trunk/sound/pci/cmipci.c
Original file line number Diff line number Diff line change
Expand Up @@ -519,40 +519,50 @@ inline static unsigned char snd_cmipci_read_b(cmipci_t *cm, unsigned int cmd)
}

/* bit operations for dword register */
static void snd_cmipci_set_bit(cmipci_t *cm, unsigned int cmd, unsigned int flag)
static int snd_cmipci_set_bit(cmipci_t *cm, unsigned int cmd, unsigned int flag)
{
unsigned int val;
val = inl(cm->iobase + cmd);
unsigned int val, oval;
val = oval = inl(cm->iobase + cmd);
val |= flag;
if (val == oval)
return 0;
outl(val, cm->iobase + cmd);
return 1;
}

static void snd_cmipci_clear_bit(cmipci_t *cm, unsigned int cmd, unsigned int flag)
static int snd_cmipci_clear_bit(cmipci_t *cm, unsigned int cmd, unsigned int flag)
{
unsigned int val;
val = inl(cm->iobase + cmd);
unsigned int val, oval;
val = oval = inl(cm->iobase + cmd);
val &= ~flag;
if (val == oval)
return 0;
outl(val, cm->iobase + cmd);
return 1;
}

#if 0 // not used
/* bit operations for byte register */
static void snd_cmipci_set_bit_b(cmipci_t *cm, unsigned int cmd, unsigned char flag)
static int snd_cmipci_set_bit_b(cmipci_t *cm, unsigned int cmd, unsigned char flag)
{
unsigned char val;
val = inb(cm->iobase + cmd);
unsigned char val, oval;
val = oval = inb(cm->iobase + cmd);
val |= flag;
if (val == oval)
return 0;
outb(val, cm->iobase + cmd);
return 1;
}

static void snd_cmipci_clear_bit_b(cmipci_t *cm, unsigned int cmd, unsigned char flag)
static int snd_cmipci_clear_bit_b(cmipci_t *cm, unsigned int cmd, unsigned char flag)
{
unsigned char val;
val = inb(cm->iobase + cmd);
unsigned char val, oval;
val = oval = inb(cm->iobase + cmd);
val &= ~flag;
if (val == oval)
return 0;
outb(val, cm->iobase + cmd);
return 1;
}
#endif


/*
Expand Down Expand Up @@ -2250,8 +2260,8 @@ DEFINE_SWITCH_ARG(exchange_dac, CM_REG_MISC_CTRL, CM_XCHGDAC, 0, 0, 0); /* rever
DEFINE_SWITCH_ARG(exchange_dac, CM_REG_MISC_CTRL, CM_XCHGDAC, CM_XCHGDAC, 0, 0);
#endif
DEFINE_BIT_SWITCH_ARG(fourch, CM_REG_MISC_CTRL, CM_N4SPK3D, 0, 0);
DEFINE_BIT_SWITCH_ARG(line_rear, CM_REG_MIXER1, CM_SPK4, 1, 0);
DEFINE_BIT_SWITCH_ARG(line_bass, CM_REG_LEGACY_CTRL, CM_LINE_AS_BASS, 0, 0);
// DEFINE_BIT_SWITCH_ARG(line_rear, CM_REG_MIXER1, CM_SPK4, 1, 0);
// DEFINE_BIT_SWITCH_ARG(line_bass, CM_REG_LEGACY_CTRL, CM_LINE_AS_BASS, 0, 0);
// DEFINE_BIT_SWITCH_ARG(joystick, CM_REG_FUNCTRL1, CM_JYSTK_EN, 0, 0); /* now module option */
DEFINE_SWITCH_ARG(modem, CM_REG_MISC_CTRL, CM_FLINKON|CM_FLINKOFF, CM_FLINKON, 0, 0);

Expand Down Expand Up @@ -2300,10 +2310,114 @@ static int snd_cmipci_spdout_enable_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_v
}


static int snd_cmipci_line_in_mode_info(snd_kcontrol_t *kcontrol,
snd_ctl_elem_info_t *uinfo)
{
cmipci_t *cm = snd_kcontrol_chip(kcontrol);
static char *texts[3] = { "Line-In", "Rear Output", "Bass Output" };
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
uinfo->count = 1;
uinfo->value.enumerated.items = cm->chip_version >= 39 ? 3 : 2;
if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;
strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]);
return 0;
}

static inline unsigned int get_line_in_mode(cmipci_t *cm)
{
unsigned int val;
if (cm->chip_version >= 39) {
val = snd_cmipci_read(cm, CM_REG_LEGACY_CTRL);
if (val & CM_LINE_AS_BASS)
return 2;
}
val = snd_cmipci_read_b(cm, CM_REG_MIXER1);
if (val & CM_SPK4)
return 1;
return 0;
}

static int snd_cmipci_line_in_mode_get(snd_kcontrol_t *kcontrol,
snd_ctl_elem_value_t *ucontrol)
{
cmipci_t *cm = snd_kcontrol_chip(kcontrol);

spin_lock_irq(&cm->reg_lock);
ucontrol->value.enumerated.item[0] = get_line_in_mode(cm);
spin_unlock_irq(&cm->reg_lock);
return 0;
}

static int snd_cmipci_line_in_mode_put(snd_kcontrol_t *kcontrol,
snd_ctl_elem_value_t *ucontrol)
{
cmipci_t *cm = snd_kcontrol_chip(kcontrol);
int change;

spin_lock_irq(&cm->reg_lock);
if (ucontrol->value.enumerated.item[0] == 2)
change = snd_cmipci_set_bit(cm, CM_REG_LEGACY_CTRL, CM_LINE_AS_BASS);
else
change = snd_cmipci_clear_bit(cm, CM_REG_LEGACY_CTRL, CM_LINE_AS_BASS);
if (ucontrol->value.enumerated.item[0] == 1)
change |= snd_cmipci_set_bit_b(cm, CM_REG_MIXER1, CM_SPK4);
else
change |= snd_cmipci_clear_bit_b(cm, CM_REG_MIXER1, CM_SPK4);
spin_unlock_irq(&cm->reg_lock);
return change;
}

static int snd_cmipci_mic_in_mode_info(snd_kcontrol_t *kcontrol,
snd_ctl_elem_info_t *uinfo)
{
static char *texts[2] = { "Mic-In", "Center/LFE Output" };
uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
uinfo->count = 1;
uinfo->value.enumerated.items = 2;
if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;
strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]);
return 0;
}

static int snd_cmipci_mic_in_mode_get(snd_kcontrol_t *kcontrol,
snd_ctl_elem_value_t *ucontrol)
{
cmipci_t *cm = snd_kcontrol_chip(kcontrol);
/* same bit as spdi_phase */
spin_lock_irq(&cm->reg_lock);
ucontrol->value.enumerated.item[0] =
(snd_cmipci_read_b(cm, CM_REG_MISC) & CM_SPDIF_INVERSE) ? 1 : 0;
spin_unlock_irq(&cm->reg_lock);
return 0;
}

static int snd_cmipci_mic_in_mode_put(snd_kcontrol_t *kcontrol,
snd_ctl_elem_value_t *ucontrol)
{
cmipci_t *cm = snd_kcontrol_chip(kcontrol);
int change;

spin_lock_irq(&cm->reg_lock);
if (ucontrol->value.enumerated.item[0])
change = snd_cmipci_set_bit_b(cm, CM_REG_MISC, CM_SPDIF_INVERSE);
else
change = snd_cmipci_clear_bit_b(cm, CM_REG_MISC, CM_SPDIF_INVERSE);
spin_unlock_irq(&cm->reg_lock);
return change;
}

/* both for CM8338/8738 */
static snd_kcontrol_new_t snd_cmipci_mixer_switches[] __devinitdata = {
DEFINE_MIXER_SWITCH("Four Channel Mode", fourch),
DEFINE_MIXER_SWITCH("Line-In As Rear", line_rear),
{
.name = "Line-In Mode",
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.info = snd_cmipci_line_in_mode_info,
.get = snd_cmipci_line_in_mode_get,
.put = snd_cmipci_line_in_mode_put,
},
};

/* for non-multichannel chips */
Expand Down Expand Up @@ -2341,10 +2455,15 @@ static snd_kcontrol_new_t snd_cmipci_old_mixer_switches[] __devinitdata = {

/* only for model 039 or later */
static snd_kcontrol_new_t snd_cmipci_extra_mixer_switches[] __devinitdata = {
DEFINE_MIXER_SWITCH("Line-In As Bass", line_bass),
DEFINE_MIXER_SWITCH("IEC958 In Select", spdif_in_sel2),
DEFINE_MIXER_SWITCH("IEC958 In Phase Inverse", spdi_phase2),
DEFINE_MIXER_SWITCH("Mic As Center/LFE", spdi_phase), /* same bit as spdi_phase */
{
.name = "Mic-In Mode",
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.info = snd_cmipci_mic_in_mode_info,
.get = snd_cmipci_mic_in_mode_get,
.put = snd_cmipci_mic_in_mode_put,
}
};

/* card control switches */
Expand Down Expand Up @@ -2944,7 +3063,7 @@ static struct pci_driver driver = {

static int __init alsa_card_cmipci_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

static void __exit alsa_card_cmipci_exit(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/cs4281.c
Original file line number Diff line number Diff line change
Expand Up @@ -2124,7 +2124,7 @@ static struct pci_driver driver = {

static int __init alsa_card_cs4281_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

static void __exit alsa_card_cs4281_exit(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/cs46xx/cs46xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ static struct pci_driver driver = {

static int __init alsa_card_cs46xx_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

static void __exit alsa_card_cs46xx_exit(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/emu10k1/emu10k1.c
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ static struct pci_driver driver = {

static int __init alsa_card_emu10k1_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

static void __exit alsa_card_emu10k1_exit(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/emu10k1/emu10k1x.c
Original file line number Diff line number Diff line change
Expand Up @@ -1627,7 +1627,7 @@ static int __init alsa_card_emu10k1x_init(void)
{
int err;

if ((err = pci_module_init(&driver)) > 0)
if ((err = pci_register_driver(&driver)) > 0)
return err;

return 0;
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/ens1370.c
Original file line number Diff line number Diff line change
Expand Up @@ -2401,7 +2401,7 @@ static struct pci_driver driver = {

static int __init alsa_card_ens137x_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

static void __exit alsa_card_ens137x_exit(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/es1938.c
Original file line number Diff line number Diff line change
Expand Up @@ -1761,7 +1761,7 @@ static struct pci_driver driver = {

static int __init alsa_card_es1938_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

static void __exit alsa_card_es1938_exit(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/es1968.c
Original file line number Diff line number Diff line change
Expand Up @@ -2795,7 +2795,7 @@ static struct pci_driver driver = {

static int __init alsa_card_es1968_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

static void __exit alsa_card_es1968_exit(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/sound/pci/fm801.c
Original file line number Diff line number Diff line change
Expand Up @@ -1469,7 +1469,7 @@ static struct pci_driver driver = {

static int __init alsa_card_fm801_init(void)
{
return pci_module_init(&driver);
return pci_register_driver(&driver);
}

static void __exit alsa_card_fm801_exit(void)
Expand Down
Loading

0 comments on commit 7f1c0cb

Please sign in to comment.