aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2010-12-02 05:36:51 -0500
committerTakashi Iwai <tiwai@suse.de>2010-12-06 08:47:50 -0500
commitf7e4bad74e1b18aaff6e89cf2bc4a3868a6ba56e (patch)
treeac18eb17dc0e046c8661a5a946ac05bd6eecb677
parent28b26e15533e60970a014582d812d471ad63bcd0 (diff)
ALSA: virtuoso: initialize unknown GPIO bits
Initialize the configuration of some unknown GPIO output bits (that might not be used at all) to be the same as in the Windows driver, just to be sure. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-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