diff options
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/ca0106/ca0106_main.c | 5 | ||||
-rw-r--r-- | sound/pci/hda/hda_intel.c | 9 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 6 | ||||
-rw-r--r-- | sound/pci/oxygen/oxygen_mixer.c | 5 |
4 files changed, 19 insertions, 6 deletions
diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c index 2f8b28add276..6abe8a3bd365 100644 --- a/sound/pci/ca0106/ca0106_main.c +++ b/sound/pci/ca0106/ca0106_main.c | |||
@@ -249,11 +249,12 @@ static struct snd_ca0106_details ca0106_chip_details[] = { | |||
249 | .name = "MSI K8N Diamond MB [SB0438]", | 249 | .name = "MSI K8N Diamond MB [SB0438]", |
250 | .gpio_type = 2, | 250 | .gpio_type = 2, |
251 | .i2c_adc = 1 } , | 251 | .i2c_adc = 1 } , |
252 | /* Another MSI K8N Diamond MB, which has apprently a different SSID */ | 252 | /* MSI K8N Diamond PLUS MB */ |
253 | { .serial = 0x10091102, | 253 | { .serial = 0x10091102, |
254 | .name = "MSI K8N Diamond MB", | 254 | .name = "MSI K8N Diamond MB", |
255 | .gpio_type = 2, | 255 | .gpio_type = 2, |
256 | .i2c_adc = 1 } , | 256 | .i2c_adc = 1, |
257 | .spi_dac = 2 }, | ||
257 | /* Shuttle XPC SD31P which has an onboard Creative Labs | 258 | /* Shuttle XPC SD31P which has an onboard Creative Labs |
258 | * Sound Blaster Live! 24-bit EAX | 259 | * Sound Blaster Live! 24-bit EAX |
259 | * high-definition 7.1 audio processor". | 260 | * high-definition 7.1 audio processor". |
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index a73d6ca0a906..1c53e337ecb2 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -278,6 +278,9 @@ enum { | |||
278 | /* Defines for Nvidia HDA support */ | 278 | /* Defines for Nvidia HDA support */ |
279 | #define NVIDIA_HDA_TRANSREG_ADDR 0x4e | 279 | #define NVIDIA_HDA_TRANSREG_ADDR 0x4e |
280 | #define NVIDIA_HDA_ENABLE_COHBITS 0x0f | 280 | #define NVIDIA_HDA_ENABLE_COHBITS 0x0f |
281 | #define NVIDIA_HDA_ISTRM_COH 0x4d | ||
282 | #define NVIDIA_HDA_OSTRM_COH 0x4c | ||
283 | #define NVIDIA_HDA_ENABLE_COHBIT 0x01 | ||
281 | 284 | ||
282 | /* Defines for Intel SCH HDA snoop control */ | 285 | /* Defines for Intel SCH HDA snoop control */ |
283 | #define INTEL_SCH_HDA_DEVC 0x78 | 286 | #define INTEL_SCH_HDA_DEVC 0x78 |
@@ -900,6 +903,12 @@ static void azx_init_pci(struct azx *chip) | |||
900 | update_pci_byte(chip->pci, | 903 | update_pci_byte(chip->pci, |
901 | NVIDIA_HDA_TRANSREG_ADDR, | 904 | NVIDIA_HDA_TRANSREG_ADDR, |
902 | 0x0f, NVIDIA_HDA_ENABLE_COHBITS); | 905 | 0x0f, NVIDIA_HDA_ENABLE_COHBITS); |
906 | update_pci_byte(chip->pci, | ||
907 | NVIDIA_HDA_ISTRM_COH, | ||
908 | 0x01, NVIDIA_HDA_ENABLE_COHBIT); | ||
909 | update_pci_byte(chip->pci, | ||
910 | NVIDIA_HDA_OSTRM_COH, | ||
911 | 0x01, NVIDIA_HDA_ENABLE_COHBIT); | ||
903 | break; | 912 | break; |
904 | case AZX_DRIVER_SCH: | 913 | case AZX_DRIVER_SCH: |
905 | pci_read_config_word(chip->pci, INTEL_SCH_HDA_DEVC, &snoop); | 914 | pci_read_config_word(chip->pci, INTEL_SCH_HDA_DEVC, &snoop); |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index b80e725432f0..909f1c101c95 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -952,7 +952,7 @@ do_sku: | |||
952 | tmp | 0x2010); | 952 | tmp | 0x2010); |
953 | break; | 953 | break; |
954 | case 0x10ec0888: | 954 | case 0x10ec0888: |
955 | alc888_coef_init(codec); | 955 | /*alc888_coef_init(codec);*/ /* called in alc_init() */ |
956 | break; | 956 | break; |
957 | case 0x10ec0267: | 957 | case 0x10ec0267: |
958 | case 0x10ec0268: | 958 | case 0x10ec0268: |
@@ -2439,6 +2439,8 @@ static int alc_init(struct hda_codec *codec) | |||
2439 | unsigned int i; | 2439 | unsigned int i; |
2440 | 2440 | ||
2441 | alc_fix_pll(codec); | 2441 | alc_fix_pll(codec); |
2442 | if (codec->vendor_id == 0x10ec0888) | ||
2443 | alc888_coef_init(codec); | ||
2442 | 2444 | ||
2443 | for (i = 0; i < spec->num_init_verbs; i++) | 2445 | for (i = 0; i < spec->num_init_verbs; i++) |
2444 | snd_hda_sequence_write(codec, spec->init_verbs[i]); | 2446 | snd_hda_sequence_write(codec, spec->init_verbs[i]); |
@@ -8426,8 +8428,6 @@ static int patch_alc883(struct hda_codec *codec) | |||
8426 | codec->patch_ops = alc_patch_ops; | 8428 | codec->patch_ops = alc_patch_ops; |
8427 | if (board_config == ALC883_AUTO) | 8429 | if (board_config == ALC883_AUTO) |
8428 | spec->init_hook = alc883_auto_init; | 8430 | spec->init_hook = alc883_auto_init; |
8429 | else if (codec->vendor_id == 0x10ec0888) | ||
8430 | spec->init_hook = alc888_coef_init; | ||
8431 | 8431 | ||
8432 | #ifdef CONFIG_SND_HDA_POWER_SAVE | 8432 | #ifdef CONFIG_SND_HDA_POWER_SAVE |
8433 | if (!spec->loopback.amplist) | 8433 | if (!spec->loopback.amplist) |
diff --git a/sound/pci/oxygen/oxygen_mixer.c b/sound/pci/oxygen/oxygen_mixer.c index 6facac5aed90..05eb8994c141 100644 --- a/sound/pci/oxygen/oxygen_mixer.c +++ b/sound/pci/oxygen/oxygen_mixer.c | |||
@@ -512,9 +512,12 @@ static int ac97_switch_get(struct snd_kcontrol *ctl, | |||
512 | 512 | ||
513 | static void mute_ac97_ctl(struct oxygen *chip, unsigned int control) | 513 | static void mute_ac97_ctl(struct oxygen *chip, unsigned int control) |
514 | { | 514 | { |
515 | unsigned int priv_idx = chip->controls[control]->private_value & 0xff; | 515 | unsigned int priv_idx; |
516 | u16 value; | 516 | u16 value; |
517 | 517 | ||
518 | if (!chip->controls[control]) | ||
519 | return; | ||
520 | priv_idx = chip->controls[control]->private_value & 0xff; | ||
518 | value = oxygen_read_ac97(chip, 0, priv_idx); | 521 | value = oxygen_read_ac97(chip, 0, priv_idx); |
519 | if (!(value & 0x8000)) { | 522 | if (!(value & 0x8000)) { |
520 | oxygen_write_ac97(chip, 0, priv_idx, value | 0x8000); | 523 | oxygen_write_ac97(chip, 0, priv_idx, value | 0x8000); |