Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
84f3b6da
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,发现更多精彩内容 >>
提交
84f3b6da
编写于
4月 09, 2011
作者:
T
Takashi Iwai
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fix/hda' into for-linus
上级
664cee46
cd9abc7a
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
50 addition
and
27 deletion
+50
-27
sound/pci/hda/patch_conexant.c
sound/pci/hda/patch_conexant.c
+1
-0
sound/pci/hda/patch_hdmi.c
sound/pci/hda/patch_hdmi.c
+44
-26
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_realtek.c
+1
-1
sound/pci/hda/patch_sigmatel.c
sound/pci/hda/patch_sigmatel.c
+3
-0
sound/usb/midi.c
sound/usb/midi.c
+1
-0
未找到文件。
sound/pci/hda/patch_conexant.c
浏览文件 @
84f3b6da
...
@@ -3035,6 +3035,7 @@ static struct snd_pci_quirk cxt5066_cfg_tbl[] = {
...
@@ -3035,6 +3035,7 @@ static struct snd_pci_quirk cxt5066_cfg_tbl[] = {
SND_PCI_QUIRK
(
0x17aa
,
0x21c6
,
"Thinkpad Edge 13"
,
CXT5066_ASUS
),
SND_PCI_QUIRK
(
0x17aa
,
0x21c6
,
"Thinkpad Edge 13"
,
CXT5066_ASUS
),
SND_PCI_QUIRK
(
0x17aa
,
0x215e
,
"Lenovo Thinkpad"
,
CXT5066_THINKPAD
),
SND_PCI_QUIRK
(
0x17aa
,
0x215e
,
"Lenovo Thinkpad"
,
CXT5066_THINKPAD
),
SND_PCI_QUIRK
(
0x17aa
,
0x21da
,
"Lenovo X220"
,
CXT5066_THINKPAD
),
SND_PCI_QUIRK
(
0x17aa
,
0x21da
,
"Lenovo X220"
,
CXT5066_THINKPAD
),
SND_PCI_QUIRK
(
0x17aa
,
0x21db
,
"Lenovo X220-tablet"
,
CXT5066_THINKPAD
),
SND_PCI_QUIRK
(
0x17aa
,
0x38af
,
"Lenovo G560"
,
CXT5066_ASUS
),
SND_PCI_QUIRK
(
0x17aa
,
0x38af
,
"Lenovo G560"
,
CXT5066_ASUS
),
SND_PCI_QUIRK_VENDOR
(
0x17aa
,
"Lenovo"
,
CXT5066_IDEAPAD
),
/* Fallback for Lenovos without dock mic */
SND_PCI_QUIRK_VENDOR
(
0x17aa
,
"Lenovo"
,
CXT5066_IDEAPAD
),
/* Fallback for Lenovos without dock mic */
{}
{}
...
...
sound/pci/hda/patch_hdmi.c
浏览文件 @
84f3b6da
...
@@ -1280,6 +1280,39 @@ static int simple_playback_pcm_prepare(struct hda_pcm_stream *hinfo,
...
@@ -1280,6 +1280,39 @@ static int simple_playback_pcm_prepare(struct hda_pcm_stream *hinfo,
stream_tag
,
format
,
substream
);
stream_tag
,
format
,
substream
);
}
}
static
void
nvhdmi_8ch_7x_set_info_frame_parameters
(
struct
hda_codec
*
codec
,
int
channels
)
{
unsigned
int
chanmask
;
int
chan
=
channels
?
(
channels
-
1
)
:
1
;
switch
(
channels
)
{
default:
case
0
:
case
2
:
chanmask
=
0x00
;
break
;
case
4
:
chanmask
=
0x08
;
break
;
case
6
:
chanmask
=
0x0b
;
break
;
case
8
:
chanmask
=
0x13
;
break
;
}
/* Set the audio infoframe channel allocation and checksum fields. The
* channel count is computed implicitly by the hardware. */
snd_hda_codec_write
(
codec
,
0x1
,
0
,
Nv_VERB_SET_Channel_Allocation
,
chanmask
);
snd_hda_codec_write
(
codec
,
0x1
,
0
,
Nv_VERB_SET_Info_Frame_Checksum
,
(
0x71
-
chan
-
chanmask
));
}
static
int
nvhdmi_8ch_7x_pcm_close
(
struct
hda_pcm_stream
*
hinfo
,
static
int
nvhdmi_8ch_7x_pcm_close
(
struct
hda_pcm_stream
*
hinfo
,
struct
hda_codec
*
codec
,
struct
hda_codec
*
codec
,
struct
snd_pcm_substream
*
substream
)
struct
snd_pcm_substream
*
substream
)
...
@@ -1298,6 +1331,10 @@ static int nvhdmi_8ch_7x_pcm_close(struct hda_pcm_stream *hinfo,
...
@@ -1298,6 +1331,10 @@ static int nvhdmi_8ch_7x_pcm_close(struct hda_pcm_stream *hinfo,
AC_VERB_SET_STREAM_FORMAT
,
0
);
AC_VERB_SET_STREAM_FORMAT
,
0
);
}
}
/* The audio hardware sends a channel count of 0x7 (8ch) when all the
* streams are disabled. */
nvhdmi_8ch_7x_set_info_frame_parameters
(
codec
,
8
);
return
snd_hda_multi_out_dig_close
(
codec
,
&
spec
->
multiout
);
return
snd_hda_multi_out_dig_close
(
codec
,
&
spec
->
multiout
);
}
}
...
@@ -1308,37 +1345,16 @@ static int nvhdmi_8ch_7x_pcm_prepare(struct hda_pcm_stream *hinfo,
...
@@ -1308,37 +1345,16 @@ static int nvhdmi_8ch_7x_pcm_prepare(struct hda_pcm_stream *hinfo,
struct
snd_pcm_substream
*
substream
)
struct
snd_pcm_substream
*
substream
)
{
{
int
chs
;
int
chs
;
unsigned
int
dataDCC1
,
dataDCC2
,
chan
,
chanmask
,
chan
nel_id
;
unsigned
int
dataDCC1
,
dataDCC2
,
channel_id
;
int
i
;
int
i
;
mutex_lock
(
&
codec
->
spdif_mutex
);
mutex_lock
(
&
codec
->
spdif_mutex
);
chs
=
substream
->
runtime
->
channels
;
chs
=
substream
->
runtime
->
channels
;
chan
=
chs
?
(
chs
-
1
)
:
1
;
switch
(
chs
)
{
default:
case
0
:
case
2
:
chanmask
=
0x00
;
break
;
case
4
:
chanmask
=
0x08
;
break
;
case
6
:
chanmask
=
0x0b
;
break
;
case
8
:
chanmask
=
0x13
;
break
;
}
dataDCC1
=
AC_DIG1_ENABLE
|
AC_DIG1_COPYRIGHT
;
dataDCC1
=
AC_DIG1_ENABLE
|
AC_DIG1_COPYRIGHT
;
dataDCC2
=
0x2
;
dataDCC2
=
0x2
;
/* set the Audio InforFrame Channel Allocation */
snd_hda_codec_write
(
codec
,
0x1
,
0
,
Nv_VERB_SET_Channel_Allocation
,
chanmask
);
/* turn off SPDIF once; otherwise the IEC958 bits won't be updated */
/* turn off SPDIF once; otherwise the IEC958 bits won't be updated */
if
(
codec
->
spdif_status_reset
&&
(
codec
->
spdif_ctls
&
AC_DIG1_ENABLE
))
if
(
codec
->
spdif_status_reset
&&
(
codec
->
spdif_ctls
&
AC_DIG1_ENABLE
))
snd_hda_codec_write
(
codec
,
snd_hda_codec_write
(
codec
,
...
@@ -1413,10 +1429,7 @@ static int nvhdmi_8ch_7x_pcm_prepare(struct hda_pcm_stream *hinfo,
...
@@ -1413,10 +1429,7 @@ static int nvhdmi_8ch_7x_pcm_prepare(struct hda_pcm_stream *hinfo,
}
}
}
}
/* set the Audio Info Frame Checksum */
nvhdmi_8ch_7x_set_info_frame_parameters
(
codec
,
chs
);
snd_hda_codec_write
(
codec
,
0x1
,
0
,
Nv_VERB_SET_Info_Frame_Checksum
,
(
0x71
-
chan
-
chanmask
));
mutex_unlock
(
&
codec
->
spdif_mutex
);
mutex_unlock
(
&
codec
->
spdif_mutex
);
return
0
;
return
0
;
...
@@ -1512,6 +1525,11 @@ static int patch_nvhdmi_8ch_7x(struct hda_codec *codec)
...
@@ -1512,6 +1525,11 @@ static int patch_nvhdmi_8ch_7x(struct hda_codec *codec)
spec
->
multiout
.
max_channels
=
8
;
spec
->
multiout
.
max_channels
=
8
;
spec
->
pcm_playback
=
&
nvhdmi_pcm_playback_8ch_7x
;
spec
->
pcm_playback
=
&
nvhdmi_pcm_playback_8ch_7x
;
codec
->
patch_ops
=
nvhdmi_patch_ops_8ch_7x
;
codec
->
patch_ops
=
nvhdmi_patch_ops_8ch_7x
;
/* Initialize the audio infoframe channel mask and checksum to something
* valid */
nvhdmi_8ch_7x_set_info_frame_parameters
(
codec
,
8
);
return
0
;
return
0
;
}
}
...
...
sound/pci/hda/patch_realtek.c
浏览文件 @
84f3b6da
...
@@ -14124,7 +14124,7 @@ static hda_nid_t alc269vb_capsrc_nids[1] = {
...
@@ -14124,7 +14124,7 @@ static hda_nid_t alc269vb_capsrc_nids[1] = {
};
};
static hda_nid_t alc269_adc_candidates[] = {
static hda_nid_t alc269_adc_candidates[] = {
0x08, 0x09, 0x07,
0x08, 0x09, 0x07,
0x11,
};
};
#define alc269_modes alc260_modes
#define alc269_modes alc260_modes
...
...
sound/pci/hda/patch_sigmatel.c
浏览文件 @
84f3b6da
...
@@ -3408,6 +3408,9 @@ static int get_connection_index(struct hda_codec *codec, hda_nid_t mux,
...
@@ -3408,6 +3408,9 @@ static int get_connection_index(struct hda_codec *codec, hda_nid_t mux,
hda_nid_t
conn
[
HDA_MAX_NUM_INPUTS
];
hda_nid_t
conn
[
HDA_MAX_NUM_INPUTS
];
int
i
,
nums
;
int
i
,
nums
;
if
(
!
(
get_wcaps
(
codec
,
mux
)
&
AC_WCAP_CONN_LIST
))
return
-
1
;
nums
=
snd_hda_get_connections
(
codec
,
mux
,
conn
,
ARRAY_SIZE
(
conn
));
nums
=
snd_hda_get_connections
(
codec
,
mux
,
conn
,
ARRAY_SIZE
(
conn
));
for
(
i
=
0
;
i
<
nums
;
i
++
)
for
(
i
=
0
;
i
<
nums
;
i
++
)
if
(
conn
[
i
]
==
nid
)
if
(
conn
[
i
]
==
nid
)
...
...
sound/usb/midi.c
浏览文件 @
84f3b6da
...
@@ -1301,6 +1301,7 @@ static int snd_usbmidi_out_endpoint_create(struct snd_usb_midi* umidi,
...
@@ -1301,6 +1301,7 @@ static int snd_usbmidi_out_endpoint_create(struct snd_usb_midi* umidi,
case
USB_ID
(
0x15ca
,
0x0101
):
/* Textech USB Midi Cable */
case
USB_ID
(
0x15ca
,
0x0101
):
/* Textech USB Midi Cable */
case
USB_ID
(
0x15ca
,
0x1806
):
/* Textech USB Midi Cable */
case
USB_ID
(
0x15ca
,
0x1806
):
/* Textech USB Midi Cable */
case
USB_ID
(
0x1a86
,
0x752d
):
/* QinHeng CH345 "USB2.0-MIDI" */
case
USB_ID
(
0x1a86
,
0x752d
):
/* QinHeng CH345 "USB2.0-MIDI" */
case
USB_ID
(
0xfc08
,
0x0101
):
/* Unknown vendor Cable */
ep
->
max_transfer
=
4
;
ep
->
max_transfer
=
4
;
break
;
break
;
/*
/*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录