Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
d2192121
L
linux
项目概览
xiphi1978
/
linux
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d2192121
编写于
5月 26, 2010
作者:
T
Takashi Iwai
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fix/hda' into for-linus
上级
4daf7a0c
9ef04066
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
48 addition
and
47 deletion
+48
-47
sound/pci/hda/hda_intel.c
sound/pci/hda/hda_intel.c
+7
-2
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_realtek.c
+40
-44
sound/pci/hda/patch_sigmatel.c
sound/pci/hda/patch_sigmatel.c
+1
-1
未找到文件。
sound/pci/hda/hda_intel.c
浏览文件 @
d2192121
...
...
@@ -1097,6 +1097,7 @@ static irqreturn_t azx_interrupt(int irq, void *dev_id)
struct
azx
*
chip
=
dev_id
;
struct
azx_dev
*
azx_dev
;
u32
status
;
u8
sd_status
;
int
i
,
ok
;
spin_lock
(
&
chip
->
reg_lock
);
...
...
@@ -1110,8 +1111,10 @@ static irqreturn_t azx_interrupt(int irq, void *dev_id)
for
(
i
=
0
;
i
<
chip
->
num_streams
;
i
++
)
{
azx_dev
=
&
chip
->
azx_dev
[
i
];
if
(
status
&
azx_dev
->
sd_int_sta_mask
)
{
sd_status
=
azx_sd_readb
(
azx_dev
,
SD_STS
);
azx_sd_writeb
(
azx_dev
,
SD_STS
,
SD_INT_MASK
);
if
(
!
azx_dev
->
substream
||
!
azx_dev
->
running
)
if
(
!
azx_dev
->
substream
||
!
azx_dev
->
running
||
!
(
sd_status
&
SD_INT_COMPLETE
))
continue
;
/* check whether this IRQ is really acceptable */
ok
=
azx_position_ok
(
chip
,
azx_dev
);
...
...
@@ -2279,12 +2282,14 @@ static int azx_dev_free(struct snd_device *device)
* white/black-listing for position_fix
*/
static
struct
snd_pci_quirk
position_fix_list
[]
__devinitdata
=
{
SND_PCI_QUIRK
(
0x1025
,
0x009f
,
"Acer Aspire 5110"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1028
,
0x01cc
,
"Dell D820"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1028
,
0x01de
,
"Dell Precision 390"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1028
,
0x01f6
,
"Dell Latitude 131L"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x103c
,
0x306d
,
"HP dv3"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1106
,
0x3288
,
"ASUS M2V-MX SE"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1043
,
0x813d
,
"ASUS P5AD2"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1106
,
0x3288
,
"ASUS M2V-MX SE"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1179
,
0xff10
,
"Toshiba A100-259"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1458
,
0xa022
,
"ga-ma770-ud3"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1462
,
0x1002
,
"MSI Wind U115"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1565
,
0x820f
,
"Biostar Microtech"
,
POS_FIX_LPIB
),
...
...
sound/pci/hda/patch_realtek.c
浏览文件 @
d2192121
...
...
@@ -7025,6 +7025,14 @@ static struct hda_input_mux alc889A_mb31_capture_source = {
},
};
static struct hda_input_mux alc889A_imac91_capture_source = {
.num_items = 2,
.items = {
{ "Mic", 0x01 },
{ "Line", 0x2 }, /* Not sure! */
},
};
/*
* 2ch mode
*/
...
...
@@ -7486,15 +7494,8 @@ static struct snd_kcontrol_new alc885_macmini3_mixer[] = {
};
static struct snd_kcontrol_new alc885_imac91_mixer[] = {
HDA_CODEC_VOLUME("Line-Out Playback Volume", 0x0c, 0x00, HDA_OUTPUT),
HDA_BIND_MUTE ("Line-Out Playback Switch", 0x0c, 0x02, HDA_INPUT),
HDA_CODEC_MUTE ("Speaker Playback Switch", 0x14, 0x00, HDA_OUTPUT),
HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0d, 0x00, HDA_OUTPUT),
HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT),
HDA_CODEC_MUTE ("Line Playback Switch", 0x0b, 0x02, HDA_INPUT),
HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x00, HDA_INPUT),
HDA_CODEC_MUTE ("Mic Playback Switch", 0x0b, 0x00, HDA_INPUT),
HDA_CODEC_VOLUME("Mic Boost", 0x18, 0x00, HDA_INPUT),
HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x00, HDA_OUTPUT),
HDA_BIND_MUTE("Speaker Playback Switch", 0x0c, 0x02, HDA_INPUT),
{ } /* end */
};
...
...
@@ -7995,61 +7996,56 @@ static struct hda_verb alc885_mbp3_init_verbs[] = {
/* iMac 9,1 */
static struct hda_verb alc885_imac91_init_verbs[] = {
/* Line-Out mixer: unmute input/output amp left and right (volume = 0) */
{0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},
{0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
{0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
/* Rear mixer */
{0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},
{0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
{0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
/* HP Pin: output 0 (0x0c) */
/* Internal Speaker Pin (0x0c) */
{0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, (PIN_OUT | AC_PINCTL_VREF_50) },
{0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
{0x18, AC_VERB_SET_CONNECT_SEL, 0x00},
{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, (PIN_OUT | AC_PINCTL_VREF_50) },
{0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
{0x1a, AC_VERB_SET_CONNECT_SEL, 0x00},
/* HP Pin: Rear */
{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
{0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
{0x14, AC_VERB_SET_CONNECT_SEL, 0x00},
{0x14, AC_VERB_SET_UNSOLICITED_ENABLE,
ALC880_HP_EVENT | AC_USRSP_EN
},
/*
Internal Speakers: output 0 (0x0d)
*/
{0x15, AC_VERB_SET_PIN_WIDGET_CONTROL,
PIN_OUT
},
{0x14, AC_VERB_SET_UNSOLICITED_ENABLE,
(ALC880_HP_EVENT | AC_USRSP_EN)
},
/*
Line in Rear
*/
{0x15, AC_VERB_SET_PIN_WIDGET_CONTROL,
AC_PINCTL_VREF_50
},
{0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
{0x15, AC_VERB_SET_CONNECT_SEL, 0x00},
/* Mic (rear) pin: input vref at 80% */
{0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
{0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
/* Front Mic pin: input vref at 80% */
{0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
{0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
/* Line In pin: use output 1 when in LineOut mode */
{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
{0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
{0x1a, AC_VERB_SET_CONNECT_SEL, 0x01},
/* FIXME: use matrix-type input source selection */
/* Mixer elements: 0x18, 19, 1a, 1b, 1c, 1d, 14, 15, 16, 17, 0b */
/* Input mixer1: unmute Mic, F-Mic, Line, CD inputs */
/* Rear mixer */
{0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},
{0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
{0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
/* Line-Out mixer: unmute input/output amp left and right (volume = 0) */
{0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},
{0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
{0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
/* 0x24 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In */
{0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
{0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)},
{0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)},
{0x24, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)},
/*
Input mixer2
*/
/*
0x23 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
*/
{0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
{0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)},
{0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)},
{0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)},
/*
Input mixer3
*/
/*
0x22 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
*/
{0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
{0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)},
{0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)},
{0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)},
/*
ADC1: mute amp left and right
*/
/*
0x07 [Audio Input] wcaps 0x10011b: Stereo Amp-In
*/
{0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
{0x07, AC_VERB_SET_CONNECT_SEL, 0x00},
/*
ADC2: mute amp left and right
*/
/*
0x08 [Audio Input] wcaps 0x10011b: Stereo Amp-In
*/
{0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
{0x08, AC_VERB_SET_CONNECT_SEL, 0x00},
/*
ADC3: mute amp left and right
*/
/*
0x09 [Audio Input] wcaps 0x10011b: Stereo Amp-In
*/
{0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
{0x09, AC_VERB_SET_CONNECT_SEL, 0x00},
{ }
};
...
...
@@ -8118,7 +8114,7 @@ static void alc885_imac91_setup(struct hda_codec *codec)
struct alc_spec *spec = codec->spec;
spec->autocfg.hp_pins[0] = 0x14;
spec->autocfg.speaker_pins[0] = 0x1
5
;
spec->autocfg.speaker_pins[0] = 0x1
8
;
spec->autocfg.speaker_pins[1] = 0x1a;
}
...
...
@@ -9627,14 +9623,14 @@ static struct alc_config_preset alc882_presets[] = {
.init_hook = alc885_imac24_init_hook,
},
[ALC885_IMAC91] = {
.mixers = {
alc885_imac91_mixer, alc882_chmode_mixer
},
.mixers = {
alc885_imac91_mixer
},
.init_verbs = { alc885_imac91_init_verbs,
alc880_gpio1_init_verbs },
.num_dacs = ARRAY_SIZE(alc882_dac_nids),
.dac_nids = alc882_dac_nids,
.channel_mode = alc885_mb
p_4
ch_modes,
.num_channel_mode = ARRAY_SIZE(alc885_mb
p_4
ch_modes),
.input_mux = &alc88
2
_capture_source,
.channel_mode = alc885_mb
a21_
ch_modes,
.num_channel_mode = ARRAY_SIZE(alc885_mb
a21_
ch_modes),
.input_mux = &alc88
9A_imac91
_capture_source,
.dig_out_nid = ALC882_DIGOUT_NID,
.dig_in_nid = ALC882_DIGIN_NID,
.unsol_event = alc_automute_amp_unsol_event,
...
...
sound/pci/hda/patch_sigmatel.c
浏览文件 @
d2192121
...
...
@@ -2078,12 +2078,12 @@ static struct snd_pci_quirk stac927x_cfg_tbl[] = {
SND_PCI_QUIRK_MASK
(
PCI_VENDOR_ID_INTEL
,
0xff00
,
0x2000
,
"Intel D965"
,
STAC_D965_3ST
),
/* Dell 3 stack systems */
SND_PCI_QUIRK
(
PCI_VENDOR_ID_DELL
,
0x01f7
,
"Dell XPS M1730"
,
STAC_DELL_3ST
),
SND_PCI_QUIRK
(
PCI_VENDOR_ID_DELL
,
0x01dd
,
"Dell Dimension E520"
,
STAC_DELL_3ST
),
SND_PCI_QUIRK
(
PCI_VENDOR_ID_DELL
,
0x01ed
,
"Dell "
,
STAC_DELL_3ST
),
SND_PCI_QUIRK
(
PCI_VENDOR_ID_DELL
,
0x01f4
,
"Dell "
,
STAC_DELL_3ST
),
/* Dell 3 stack systems with verb table in BIOS */
SND_PCI_QUIRK
(
PCI_VENDOR_ID_DELL
,
0x01f3
,
"Dell Inspiron 1420"
,
STAC_DELL_BIOS
),
SND_PCI_QUIRK
(
PCI_VENDOR_ID_DELL
,
0x01f7
,
"Dell XPS M1730"
,
STAC_DELL_BIOS
),
SND_PCI_QUIRK
(
PCI_VENDOR_ID_DELL
,
0x0227
,
"Dell Vostro 1400 "
,
STAC_DELL_BIOS
),
SND_PCI_QUIRK
(
PCI_VENDOR_ID_DELL
,
0x022e
,
"Dell "
,
STAC_DELL_BIOS
),
SND_PCI_QUIRK
(
PCI_VENDOR_ID_DELL
,
0x022f
,
"Dell Inspiron 1525"
,
STAC_DELL_BIOS
),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录