Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
92ab7b8f
Commit
92ab7b8f
authored
Apr 07, 2010
by
Takashi Iwai
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fix/hda' into topic/hda
parents
c125ba3b
f9700d5a
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
10 deletions
+23
-10
Documentation/sound/alsa/HD-Audio.txt
Documentation/sound/alsa/HD-Audio.txt
+12
-4
sound/pci/hda/hda_intel.c
sound/pci/hda/hda_intel.c
+1
-0
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_realtek.c
+10
-6
No files found.
Documentation/sound/alsa/HD-Audio.txt
View file @
92ab7b8f
...
@@ -119,10 +119,18 @@ the codec slots 0 and 1 no matter what the hardware reports.
...
@@ -119,10 +119,18 @@ the codec slots 0 and 1 no matter what the hardware reports.
Interrupt Handling
Interrupt Handling
~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~
In rare but some cases, the interrupt isn't properly handled as
HD-audio driver uses MSI as default (if available) since 2.6.33
default. You would notice this by the DMA transfer error reported by
kernel as MSI works better on some machines, and in general, it's
ALSA PCM core, for example. Using MSI might help in such a case.
better for performance. However, Nvidia controllers showed bad
Pass `enable_msi=1` option for enabling MSI.
regressions with MSI (especially in a combination with AMD chipset),
thus we disabled MSI for them.
There seem also still other devices that don't work with MSI. If you
see a regression wrt the sound quality (stuttering, etc) or a lock-up
in the recent kernel, try to pass `enable_msi=0` option to disable
MSI. If it works, you can add the known bad device to the blacklist
defined in hda_intel.c. In such a case, please report and give the
patch back to the upstream developer.
HD-AUDIO CODEC
HD-AUDIO CODEC
...
...
sound/pci/hda/hda_intel.c
View file @
92ab7b8f
...
@@ -2366,6 +2366,7 @@ static struct snd_pci_quirk msi_black_list[] __devinitdata = {
...
@@ -2366,6 +2366,7 @@ static struct snd_pci_quirk msi_black_list[] __devinitdata = {
SND_PCI_QUIRK
(
0x1043
,
0x81f6
,
"ASUS"
,
0
),
/* nvidia */
SND_PCI_QUIRK
(
0x1043
,
0x81f6
,
"ASUS"
,
0
),
/* nvidia */
SND_PCI_QUIRK
(
0x1043
,
0x822d
,
"ASUS"
,
0
),
/* Athlon64 X2 + nvidia MCP55 */
SND_PCI_QUIRK
(
0x1043
,
0x822d
,
"ASUS"
,
0
),
/* Athlon64 X2 + nvidia MCP55 */
SND_PCI_QUIRK
(
0x1849
,
0x0888
,
"ASRock"
,
0
),
/* Athlon64 X2 + nvidia */
SND_PCI_QUIRK
(
0x1849
,
0x0888
,
"ASRock"
,
0
),
/* Athlon64 X2 + nvidia */
SND_PCI_QUIRK
(
0xa0a0
,
0x0575
,
"Aopen MZ915-M"
,
0
),
/* ICH6 */
{}
{}
};
};
...
...
sound/pci/hda/patch_realtek.c
View file @
92ab7b8f
...
@@ -1690,6 +1690,11 @@ static struct hda_verb alc888_acer_aspire_4930g_verbs[] = {
...
@@ -1690,6 +1690,11 @@ static struct hda_verb alc888_acer_aspire_4930g_verbs[] = {
*/
*/
static
struct
hda_verb
alc888_acer_aspire_6530g_verbs
[]
=
{
static
struct
hda_verb
alc888_acer_aspire_6530g_verbs
[]
=
{
/* Route to built-in subwoofer as well as speakers */
{
0x0c
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_UNMUTE
(
0
)},
{
0x0c
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_UNMUTE
(
1
)},
{
0x0f
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_UNMUTE
(
0
)},
{
0x0f
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_UNMUTE
(
1
)},
/* Bias voltage on for external mic port */
/* Bias voltage on for external mic port */
{
0x18
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_IN
|
PIN_VREF80
},
{
0x18
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_IN
|
PIN_VREF80
},
/* Front Mic: set to PIN_IN (empty by default) */
/* Front Mic: set to PIN_IN (empty by default) */
...
@@ -1701,10 +1706,12 @@ static struct hda_verb alc888_acer_aspire_6530g_verbs[] = {
...
@@ -1701,10 +1706,12 @@ static struct hda_verb alc888_acer_aspire_6530g_verbs[] = {
/* Enable speaker output */
/* Enable speaker output */
{
0x14
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_OUT
},
{
0x14
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_OUT
},
{
0x14
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
},
{
0x14
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
},
{
0x14
,
AC_VERB_SET_EAPD_BTLENABLE
,
2
},
/* Enable headphone output */
/* Enable headphone output */
{
0x15
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_OUT
|
PIN_HP
},
{
0x15
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_OUT
|
PIN_HP
},
{
0x15
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
},
{
0x15
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
},
{
0x15
,
AC_VERB_SET_CONNECT_SEL
,
0x00
},
{
0x15
,
AC_VERB_SET_CONNECT_SEL
,
0x00
},
{
0x15
,
AC_VERB_SET_EAPD_BTLENABLE
,
2
},
{
}
{
}
};
};
...
@@ -8550,9 +8557,7 @@ static struct snd_kcontrol_new alc883_acer_aspire_mixer[] = {
...
@@ -8550,9 +8557,7 @@ static struct snd_kcontrol_new alc883_acer_aspire_mixer[] = {
static
struct
snd_kcontrol_new
alc888_acer_aspire_6530_mixer
[]
=
{
static
struct
snd_kcontrol_new
alc888_acer_aspire_6530_mixer
[]
=
{
HDA_CODEC_VOLUME
(
"Front Playback Volume"
,
0x0c
,
0x0
,
HDA_OUTPUT
),
HDA_CODEC_VOLUME
(
"Front Playback Volume"
,
0x0c
,
0x0
,
HDA_OUTPUT
),
HDA_BIND_MUTE
(
"Front Playback Switch"
,
0x0c
,
2
,
HDA_INPUT
),
HDA_CODEC_VOLUME
(
"LFE Playback Volume"
,
0x0f
,
0x0
,
HDA_OUTPUT
),
HDA_CODEC_VOLUME
(
"LFE Playback Volume"
,
0x0f
,
0x0
,
HDA_OUTPUT
),
HDA_BIND_MUTE
(
"LFE Playback Switch"
,
0x0f
,
2
,
HDA_INPUT
),
HDA_CODEC_VOLUME
(
"Line Playback Volume"
,
0x0b
,
0x02
,
HDA_INPUT
),
HDA_CODEC_VOLUME
(
"Line Playback Volume"
,
0x0b
,
0x02
,
HDA_INPUT
),
HDA_CODEC_MUTE
(
"Line Playback Switch"
,
0x0b
,
0x02
,
HDA_INPUT
),
HDA_CODEC_MUTE
(
"Line Playback Switch"
,
0x0b
,
0x02
,
HDA_INPUT
),
HDA_CODEC_VOLUME
(
"CD Playback Volume"
,
0x0b
,
0x04
,
HDA_INPUT
),
HDA_CODEC_VOLUME
(
"CD Playback Volume"
,
0x0b
,
0x04
,
HDA_INPUT
),
...
@@ -10193,13 +10198,12 @@ static void alc882_auto_set_output_and_unmute(struct hda_codec *codec,
...
@@ -10193,13 +10198,12 @@ static void alc882_auto_set_output_and_unmute(struct hda_codec *codec,
int
idx
;
int
idx
;
alc_set_pin_output
(
codec
,
nid
,
pin_type
);
alc_set_pin_output
(
codec
,
nid
,
pin_type
);
if
(
dac_idx
>=
spec
->
multiout
.
num_dacs
)
return
;
if
(
spec
->
multiout
.
dac_nids
[
dac_idx
]
==
0x25
)
if
(
spec
->
multiout
.
dac_nids
[
dac_idx
]
==
0x25
)
idx
=
4
;
idx
=
4
;
else
{
else
if
(
spec
->
multiout
.
num_dacs
>=
dac_idx
)
return
;
idx
=
spec
->
multiout
.
dac_nids
[
dac_idx
]
-
2
;
idx
=
spec
->
multiout
.
dac_nids
[
dac_idx
]
-
2
;
}
snd_hda_codec_write
(
codec
,
nid
,
0
,
AC_VERB_SET_CONNECT_SEL
,
idx
);
snd_hda_codec_write
(
codec
,
nid
,
0
,
AC_VERB_SET_CONNECT_SEL
,
idx
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment