Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 111025
b: refs/heads/master
c: 70c27d3
h: refs/heads/master
i:
  111023: b5cca7d
v: v3
  • Loading branch information
Clemens Ladisch committed Sep 22, 2008
1 parent 0549d88 commit 3c0e7dd
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 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: 4f50d2fd00da451261f51f28e929ebd161068422
refs/heads/master: 70c27d345ed74ca9ea7ebf1fa0186af644caeb1d
19 changes: 15 additions & 4 deletions trunk/sound/pci/oxygen/virtuoso.c
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ MODULE_DEVICE_TABLE(pci, xonar_ids);
struct xonar_data {
unsigned int model;
unsigned int anti_pop_delay;
unsigned int dacs;
u16 output_enable_bit;
u8 ext_power_reg;
u8 ext_power_int_reg;
Expand Down Expand Up @@ -214,23 +215,25 @@ static void xonar_common_init(struct oxygen *chip)

static void update_pcm1796_volume(struct oxygen *chip)
{
struct xonar_data *data = chip->model_data;
unsigned int i;

for (i = 0; i < 4; ++i) {
for (i = 0; i < data->dacs; ++i) {
pcm1796_write(chip, i, 16, chip->dac_volume[i * 2]);
pcm1796_write(chip, i, 17, chip->dac_volume[i * 2 + 1]);
}
}

static void update_pcm1796_mute(struct oxygen *chip)
{
struct xonar_data *data = chip->model_data;
unsigned int i;
u8 value;

value = PCM1796_DMF_DISABLED | PCM1796_FMT_24_LJUST | PCM1796_ATLD;
if (chip->dac_mute)
value |= PCM1796_MUTE;
for (i = 0; i < 4; ++i)
for (i = 0; i < data->dacs; ++i)
pcm1796_write(chip, i, 18, value);
}

Expand All @@ -239,7 +242,7 @@ static void pcm1796_init(struct oxygen *chip)
struct xonar_data *data = chip->model_data;
unsigned int i;

for (i = 0; i < 4; ++i) {
for (i = 0; i < data->dacs; ++i) {
pcm1796_write(chip, i, 19, PCM1796_FLT_SHARP | PCM1796_ATS_1);
pcm1796_write(chip, i, 20, data->pcm1796_oversampling);
pcm1796_write(chip, i, 21, 0);
Expand Down Expand Up @@ -415,7 +418,7 @@ static void set_pcm1796_params(struct oxygen *chip,

data->pcm1796_oversampling =
params_rate(params) >= 96000 ? PCM1796_OS_32 : PCM1796_OS_64;
for (i = 0; i < 4; ++i)
for (i = 0; i < data->dacs; ++i)
pcm1796_write(chip, i, 20, data->pcm1796_oversampling);
}

Expand Down Expand Up @@ -574,9 +577,17 @@ static int xonar_model_probe(struct oxygen *chip, unsigned long driver_data)
[MODEL_D2] = "Xonar D2",
[MODEL_D2X] = "Xonar D2X",
};
static const u8 dacs[] = {
[MODEL_D1] = 2,
[MODEL_DX] = 2,
[MODEL_D2] = 4,
[MODEL_D2X] = 4,
};
struct xonar_data *data = chip->model_data;

data->model = driver_data;

data->dacs = dacs[data->model];
chip->model.shortname = names[data->model];
return 0;
}
Expand Down

0 comments on commit 3c0e7dd

Please sign in to comment.