Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 230125
b: refs/heads/master
c: dd203fa
h: refs/heads/master
i:
  230123: a5dfe3c
v: v3
  • Loading branch information
Clemens Ladisch authored and Takashi Iwai committed Jan 10, 2011
1 parent eb81010 commit d041ef9
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 7 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: 03ff959dd4e290ed909fd57dec79ccd0262c4095
refs/heads/master: dd203fa97bd5df18dbb0af5acf3e9a8beea33f74
28 changes: 22 additions & 6 deletions trunk/sound/pci/oxygen/xonar_pcm179x.c
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,7 @@ struct xonar_pcm179x {
s8 hp_gain_offset;
bool has_cs2000;
u8 cs2000_regs[0x1f];
bool broken_i2c;
};

struct xonar_hdav {
Expand Down Expand Up @@ -462,6 +463,7 @@ static void xonar_st_init(struct oxygen *chip)
data->generic.anti_pop_delay = 100;
data->has_cs2000 = 1;
data->cs2000_regs[CS2000_FUN_CFG_1] = CS2000_REF_CLK_DIV_1;
data->broken_i2c = true;

oxygen_write16(chip, OXYGEN_I2S_A_FORMAT,
OXYGEN_RATE_48000 | OXYGEN_I2S_FORMAT_I2S |
Expand Down Expand Up @@ -980,16 +982,29 @@ static int xonar_d2_control_filter(struct snd_kcontrol_new *template)
return 0;
}

static int xonar_st_h6_control_filter(struct snd_kcontrol_new *template)
{
if (!strncmp(template->name, "Master Playback ", 16))
/* no volume/mute, as I²C to the third DAC does not work */
return 1;
return 0;
}

static int add_pcm1796_controls(struct oxygen *chip)
{
struct xonar_pcm179x *data = chip->model_data;
int err;

err = snd_ctl_add(chip->card, snd_ctl_new1(&rolloff_control, chip));
if (err < 0)
return err;
err = snd_ctl_add(chip->card, snd_ctl_new1(&os_128_control, chip));
if (err < 0)
return err;
if (!data->broken_i2c) {
err = snd_ctl_add(chip->card,
snd_ctl_new1(&rolloff_control, chip));
if (err < 0)
return err;
err = snd_ctl_add(chip->card,
snd_ctl_new1(&os_128_control, chip));
if (err < 0)
return err;
}
return 0;
}

Expand Down Expand Up @@ -1208,6 +1223,7 @@ int __devinit get_xonar_pcm179x_model(struct oxygen *chip,
break;
case GPIO_DB_H6:
chip->model.shortname = "Xonar ST+H6";
chip->model.control_filter = xonar_st_h6_control_filter;
chip->model.dac_channels_pcm = 8;
chip->model.dac_channels_mixer = 8;
break;
Expand Down

0 comments on commit d041ef9

Please sign in to comment.