aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/pci/oxygen/xonar_cs43xx.c5
-rw-r--r--sound/pci/oxygen/xonar_pcm179x.c8
2 files changed, 10 insertions, 3 deletions
diff --git a/sound/pci/oxygen/xonar_cs43xx.c b/sound/pci/oxygen/xonar_cs43xx.c
index aa27c31049af..ae4e5b512483 100644
--- a/sound/pci/oxygen/xonar_cs43xx.c
+++ b/sound/pci/oxygen/xonar_cs43xx.c
@@ -63,6 +63,7 @@
63#define GPI_EXT_POWER 0x01 63#define GPI_EXT_POWER 0x01
64#define GPIO_D1_OUTPUT_ENABLE 0x0001 64#define GPIO_D1_OUTPUT_ENABLE 0x0001
65#define GPIO_D1_FRONT_PANEL 0x0002 65#define GPIO_D1_FRONT_PANEL 0x0002
66#define GPIO_D1_MAGIC 0x00c0
66#define GPIO_D1_INPUT_ROUTE 0x0100 67#define GPIO_D1_INPUT_ROUTE 0x0100
67 68
68#define I2C_DEVICE_CS4398 0x9e /* 10011, AD1=1, AD0=1, /W=0 */ 69#define I2C_DEVICE_CS4398 0x9e /* 10011, AD1=1, AD0=1, /W=0 */
@@ -169,7 +170,9 @@ static void xonar_d1_init(struct oxygen *chip)
169 cs43xx_registers_init(chip); 170 cs43xx_registers_init(chip);
170 171
171 oxygen_set_bits16(chip, OXYGEN_GPIO_CONTROL, 172 oxygen_set_bits16(chip, OXYGEN_GPIO_CONTROL,
172 GPIO_D1_FRONT_PANEL | GPIO_D1_INPUT_ROUTE); 173 GPIO_D1_FRONT_PANEL |
174 GPIO_D1_MAGIC |
175 GPIO_D1_INPUT_ROUTE);
173 oxygen_clear_bits16(chip, OXYGEN_GPIO_DATA, 176 oxygen_clear_bits16(chip, OXYGEN_GPIO_DATA,
174 GPIO_D1_FRONT_PANEL | GPIO_D1_INPUT_ROUTE); 177 GPIO_D1_FRONT_PANEL | GPIO_D1_INPUT_ROUTE);
175 178
diff --git a/sound/pci/oxygen/xonar_pcm179x.c b/sound/pci/oxygen/xonar_pcm179x.c
index d491fd6c0be2..fe4b2655a252 100644
--- a/sound/pci/oxygen/xonar_pcm179x.c
+++ b/sound/pci/oxygen/xonar_pcm179x.c
@@ -167,12 +167,14 @@
167#define GPIO_INPUT_ROUTE 0x0100 167#define GPIO_INPUT_ROUTE 0x0100
168 168
169#define GPIO_HDAV_OUTPUT_ENABLE 0x0001 169#define GPIO_HDAV_OUTPUT_ENABLE 0x0001
170#define GPIO_HDAV_MAGIC 0x00c0
170 171
171#define GPIO_DB_MASK 0x0030 172#define GPIO_DB_MASK 0x0030
172#define GPIO_DB_H6 0x0000 173#define GPIO_DB_H6 0x0000
173 174
174#define GPIO_ST_OUTPUT_ENABLE 0x0001 175#define GPIO_ST_OUTPUT_ENABLE 0x0001
175#define GPIO_ST_HP_REAR 0x0002 176#define GPIO_ST_HP_REAR 0x0002
177#define GPIO_ST_MAGIC 0x0040
176#define GPIO_ST_HP 0x0080 178#define GPIO_ST_HP 0x0080
177 179
178#define I2C_DEVICE_PCM1796(i) (0x98 + ((i) << 1)) /* 10011, ii, /W=0 */ 180#define I2C_DEVICE_PCM1796(i) (0x98 + ((i) << 1)) /* 10011, ii, /W=0 */
@@ -350,7 +352,8 @@ static void xonar_hdav_init(struct oxygen *chip)
350 352
351 pcm1796_init(chip); 353 pcm1796_init(chip);
352 354
353 oxygen_set_bits16(chip, OXYGEN_GPIO_CONTROL, GPIO_INPUT_ROUTE); 355 oxygen_set_bits16(chip, OXYGEN_GPIO_CONTROL,
356 GPIO_HDAV_MAGIC | GPIO_INPUT_ROUTE);
354 oxygen_clear_bits16(chip, OXYGEN_GPIO_DATA, GPIO_INPUT_ROUTE); 357 oxygen_clear_bits16(chip, OXYGEN_GPIO_DATA, GPIO_INPUT_ROUTE);
355 358
356 xonar_init_cs53x1(chip); 359 xonar_init_cs53x1(chip);
@@ -381,7 +384,8 @@ static void xonar_st_init_common(struct oxygen *chip)
381 pcm1796_init(chip); 384 pcm1796_init(chip);
382 385
383 oxygen_set_bits16(chip, OXYGEN_GPIO_CONTROL, 386 oxygen_set_bits16(chip, OXYGEN_GPIO_CONTROL,
384 GPIO_INPUT_ROUTE | GPIO_ST_HP_REAR | GPIO_ST_HP); 387 GPIO_INPUT_ROUTE | GPIO_ST_HP_REAR |
388 GPIO_ST_MAGIC | GPIO_ST_HP);
385 oxygen_clear_bits16(chip, OXYGEN_GPIO_DATA, 389 oxygen_clear_bits16(chip, OXYGEN_GPIO_DATA,
386 GPIO_INPUT_ROUTE | GPIO_ST_HP_REAR | GPIO_ST_HP); 390 GPIO_INPUT_ROUTE | GPIO_ST_HP_REAR | GPIO_ST_HP);
387 391