Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 99029
b: refs/heads/master
c: 75146fc
h: refs/heads/master
i:
  99027: e78f7e0
v: v3
  • Loading branch information
Clemens Ladisch authored and Jaroslav Kysela committed May 19, 2008
1 parent 90a612d commit b46afbd
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 30 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: bbbfb5526650cb9d01c5c230a4e3cbbc18474c41
refs/heads/master: 75146fc0f9368ea41419792ac8bfdd19273b4473
11 changes: 9 additions & 2 deletions trunk/sound/pci/oxygen/hifier.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,15 +68,22 @@ static void update_ak4396_volume(struct oxygen *chip)
ak4396_write(chip, AK4396_RCH_ATT, chip->dac_volume[1]);
}

static void hifier_init(struct oxygen *chip)
static void hifier_registers_init(struct oxygen *chip)
{
struct hifier_data *data = chip->model_data;

data->ak4396_ctl2 = AK4396_SMUTE | AK4396_DEM_OFF | AK4396_DFS_NORMAL;
ak4396_write(chip, AK4396_CONTROL_1, AK4396_DIF_24_MSB | AK4396_RSTN);
ak4396_write(chip, AK4396_CONTROL_2, data->ak4396_ctl2);
ak4396_write(chip, AK4396_CONTROL_3, AK4396_PCM);
update_ak4396_volume(chip);
}

static void hifier_init(struct oxygen *chip)
{
struct hifier_data *data = chip->model_data;

data->ak4396_ctl2 = AK4396_SMUTE | AK4396_DEM_OFF | AK4396_DFS_NORMAL;
hifier_registers_init(chip);

snd_component_add(chip->card, "AK4396");
snd_component_add(chip->card, "CS5340");
Expand Down
26 changes: 19 additions & 7 deletions trunk/sound/pci/oxygen/oxygen.c
Original file line number Diff line number Diff line change
Expand Up @@ -124,12 +124,11 @@ static void update_ak4396_volume(struct oxygen *chip)
}
}

static void ak4396_init(struct oxygen *chip)
static void ak4396_registers_init(struct oxygen *chip)
{
struct generic_data *data = chip->model_data;
unsigned int i;

data->ak4396_ctl2 = AK4396_SMUTE | AK4396_DEM_OFF | AK4396_DFS_NORMAL;
for (i = 0; i < 4; ++i) {
ak4396_write(chip, i,
AK4396_CONTROL_1, AK4396_DIF_24_MSB | AK4396_RSTN);
Expand All @@ -139,6 +138,14 @@ static void ak4396_init(struct oxygen *chip)
AK4396_CONTROL_3, AK4396_PCM);
}
update_ak4396_volume(chip);
}

static void ak4396_init(struct oxygen *chip)
{
struct generic_data *data = chip->model_data;

data->ak4396_ctl2 = AK4396_SMUTE | AK4396_DEM_OFF | AK4396_DFS_NORMAL;
ak4396_registers_init(chip);
snd_component_add(chip->card, "AK4396");
}

Expand All @@ -149,18 +156,23 @@ static void ak5385_init(struct oxygen *chip)
snd_component_add(chip->card, "AK5385");
}

static void wm8785_init(struct oxygen *chip)
static void wm8785_registers_init(struct oxygen *chip)
{
struct generic_data *data = chip->model_data;

data->saved_wm8785_registers[0] = WM8785_MCR_SLAVE |
WM8785_OSR_SINGLE | WM8785_FORMAT_LJUST;
data->saved_wm8785_registers[1] = WM8785_WL_24;

wm8785_write(chip, WM8785_R7, 0);
wm8785_write(chip, WM8785_R0, data->saved_wm8785_registers[0]);
wm8785_write(chip, WM8785_R1, data->saved_wm8785_registers[1]);
}

static void wm8785_init(struct oxygen *chip)
{
struct generic_data *data = chip->model_data;

data->saved_wm8785_registers[0] = WM8785_MCR_SLAVE |
WM8785_OSR_SINGLE | WM8785_FORMAT_LJUST;
data->saved_wm8785_registers[1] = WM8785_WL_24;
wm8785_registers_init(chip);
snd_component_add(chip->card, "WM8785");
}

Expand Down
54 changes: 34 additions & 20 deletions trunk/sound/pci/oxygen/virtuoso.c
Original file line number Diff line number Diff line change
Expand Up @@ -204,22 +204,29 @@ static void update_pcm1796_mute(struct oxygen *chip)
pcm1796_write(chip, i, 18, value);
}

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

data->anti_pop_delay = 300;
data->output_enable_bit = GPIO_D2_OUTPUT_ENABLE;
data->pcm1796_oversampling = PCM1796_OS_64;

for (i = 0; i < 4; ++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);
}
update_pcm1796_mute(chip); /* set ATLD before ATL/ATR */
update_pcm1796_volume(chip);
}

static void xonar_d2_init(struct oxygen *chip)
{
struct xonar_data *data = chip->model_data;

data->anti_pop_delay = 300;
data->output_enable_bit = GPIO_D2_OUTPUT_ENABLE;
data->pcm1796_oversampling = PCM1796_OS_64;

pcm1796_init(chip);

oxygen_set_bits16(chip, OXYGEN_GPIO_CONTROL, GPIO_D2_ALT);
oxygen_clear_bits16(chip, OXYGEN_GPIO_DATA, GPIO_D2_ALT);
Expand Down Expand Up @@ -272,24 +279,10 @@ static void update_cs43xx_mute(struct oxygen *chip)
update_cs4362a_volumes(chip);
}

static void xonar_dx_init(struct oxygen *chip)
static void cs43xx_init(struct oxygen *chip)
{
struct xonar_data *data = chip->model_data;

data->anti_pop_delay = 800;
data->output_enable_bit = GPIO_DX_OUTPUT_ENABLE;
data->ext_power_reg = OXYGEN_GPI_DATA;
data->ext_power_int_reg = OXYGEN_GPI_INTERRUPT_MASK;
data->ext_power_bit = GPI_DX_EXT_POWER;
data->cs4398_fm = CS4398_FM_SINGLE | CS4398_DEM_NONE | CS4398_DIF_LJUST;
data->cs4362a_fm = CS4362A_FM_SINGLE |
CS4362A_ATAPI_B_R | CS4362A_ATAPI_A_L;

oxygen_write16(chip, OXYGEN_2WIRE_BUS_STATUS,
OXYGEN_2WIRE_LENGTH_8 |
OXYGEN_2WIRE_INTERRUPT_MASK |
OXYGEN_2WIRE_SPEED_FAST);

/* set CPEN (control port mode) and power down */
cs4398_write(chip, 8, CS4398_CPEN | CS4398_PDN);
cs4362a_write(chip, 0x01, CS4362A_PDN | CS4362A_CPEN);
Expand All @@ -311,6 +304,27 @@ static void xonar_dx_init(struct oxygen *chip)
/* clear power down */
cs4398_write(chip, 8, CS4398_CPEN);
cs4362a_write(chip, 0x01, CS4362A_CPEN);
}

static void xonar_dx_init(struct oxygen *chip)
{
struct xonar_data *data = chip->model_data;

data->anti_pop_delay = 800;
data->output_enable_bit = GPIO_DX_OUTPUT_ENABLE;
data->ext_power_reg = OXYGEN_GPI_DATA;
data->ext_power_int_reg = OXYGEN_GPI_INTERRUPT_MASK;
data->ext_power_bit = GPI_DX_EXT_POWER;
data->cs4398_fm = CS4398_FM_SINGLE | CS4398_DEM_NONE | CS4398_DIF_LJUST;
data->cs4362a_fm = CS4362A_FM_SINGLE |
CS4362A_ATAPI_B_R | CS4362A_ATAPI_A_L;

oxygen_write16(chip, OXYGEN_2WIRE_BUS_STATUS,
OXYGEN_2WIRE_LENGTH_8 |
OXYGEN_2WIRE_INTERRUPT_MASK |
OXYGEN_2WIRE_SPEED_FAST);

cs43xx_init(chip);

oxygen_set_bits16(chip, OXYGEN_GPIO_CONTROL,
GPIO_DX_FRONT_PANEL | GPIO_DX_INPUT_ROUTE);
Expand Down

0 comments on commit b46afbd

Please sign in to comment.