Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
17fbb5bd
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
17fbb5bd
编写于
4月 04, 2011
作者:
T
Takashi Iwai
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fix/misc' into topic/misc
上级
cdccfc8d
12ff414e
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
24 addition
and
7 deletion
+24
-7
sound/core/pcm_lib.c
sound/core/pcm_lib.c
+3
-1
sound/firewire/speakers.c
sound/firewire/speakers.c
+1
-2
sound/pci/ens1370.c
sound/pci/ens1370.c
+19
-4
sound/pci/hda/patch_conexant.c
sound/pci/hda/patch_conexant.c
+1
-0
未找到文件。
sound/core/pcm_lib.c
浏览文件 @
17fbb5bd
...
...
@@ -375,6 +375,7 @@ static int snd_pcm_update_hw_ptr0(struct snd_pcm_substream *substream,
}
if
(
runtime
->
no_period_wakeup
)
{
snd_pcm_sframes_t
xrun_threshold
;
/*
* Without regular period interrupts, we have to check
* the elapsed time to detect xruns.
...
...
@@ -383,7 +384,8 @@ static int snd_pcm_update_hw_ptr0(struct snd_pcm_substream *substream,
if
(
jdelta
<
runtime
->
hw_ptr_buffer_jiffies
/
2
)
goto
no_delta_check
;
hdelta
=
jdelta
-
delta
*
HZ
/
runtime
->
rate
;
while
(
hdelta
>
runtime
->
hw_ptr_buffer_jiffies
/
2
+
1
)
{
xrun_threshold
=
runtime
->
hw_ptr_buffer_jiffies
/
2
+
1
;
while
(
hdelta
>
xrun_threshold
)
{
delta
+=
runtime
->
buffer_size
;
hw_base
+=
runtime
->
buffer_size
;
if
(
hw_base
>=
runtime
->
boundary
)
...
...
sound/firewire/speakers.c
浏览文件 @
17fbb5bd
...
...
@@ -778,10 +778,9 @@ static int __devexit fwspk_remove(struct device *dev)
{
struct
fwspk
*
fwspk
=
dev_get_drvdata
(
dev
);
snd_card_disconnect
(
fwspk
->
card
);
mutex_lock
(
&
fwspk
->
mutex
);
amdtp_out_stream_pcm_abort
(
&
fwspk
->
stream
);
snd_card_disconnect
(
fwspk
->
card
);
fwspk_stop_stream
(
fwspk
);
mutex_unlock
(
&
fwspk
->
mutex
);
...
...
sound/pci/ens1370.c
浏览文件 @
17fbb5bd
...
...
@@ -229,6 +229,7 @@ MODULE_PARM_DESC(lineio, "Line In to Rear Out (0 = auto, 1 = force).");
#define ES_REG_1371_CODEC 0x14
/* W/R: Codec Read/Write register address */
#define ES_1371_CODEC_RDY (1<<31)
/* codec ready */
#define ES_1371_CODEC_WIP (1<<30)
/* codec register access in progress */
#define EV_1938_CODEC_MAGIC (1<<26)
#define ES_1371_CODEC_PIRD (1<<23)
/* codec read/write select register */
#define ES_1371_CODEC_WRITE(a,d) ((((a)&0x7f)<<16)|(((d)&0xffff)<<0))
#define ES_1371_CODEC_READS(a) ((((a)&0x7f)<<16)|ES_1371_CODEC_PIRD)
...
...
@@ -603,12 +604,18 @@ static void snd_es1370_codec_write(struct snd_ak4531 *ak4531,
#ifdef CHIP1371
static
inline
bool
is_ev1938
(
struct
ensoniq
*
ensoniq
)
{
return
ensoniq
->
pci
->
device
==
0x8938
;
}
static
void
snd_es1371_codec_write
(
struct
snd_ac97
*
ac97
,
unsigned
short
reg
,
unsigned
short
val
)
{
struct
ensoniq
*
ensoniq
=
ac97
->
private_data
;
unsigned
int
t
,
x
;
unsigned
int
t
,
x
,
flag
;
flag
=
is_ev1938
(
ensoniq
)
?
EV_1938_CODEC_MAGIC
:
0
;
mutex_lock
(
&
ensoniq
->
src_mutex
);
for
(
t
=
0
;
t
<
POLL_COUNT
;
t
++
)
{
if
(
!
(
inl
(
ES_REG
(
ensoniq
,
1371
_CODEC
))
&
ES_1371_CODEC_WIP
))
{
...
...
@@ -630,7 +637,8 @@ static void snd_es1371_codec_write(struct snd_ac97 *ac97,
0x00010000
)
break
;
}
outl
(
ES_1371_CODEC_WRITE
(
reg
,
val
),
ES_REG
(
ensoniq
,
1371
_CODEC
));
outl
(
ES_1371_CODEC_WRITE
(
reg
,
val
)
|
flag
,
ES_REG
(
ensoniq
,
1371
_CODEC
));
/* restore SRC reg */
snd_es1371_wait_src_ready
(
ensoniq
);
outl
(
x
,
ES_REG
(
ensoniq
,
1371
_SMPRATE
));
...
...
@@ -647,8 +655,9 @@ static unsigned short snd_es1371_codec_read(struct snd_ac97 *ac97,
unsigned
short
reg
)
{
struct
ensoniq
*
ensoniq
=
ac97
->
private_data
;
unsigned
int
t
,
x
,
fail
=
0
;
unsigned
int
t
,
x
,
f
lag
,
f
ail
=
0
;
flag
=
is_ev1938
(
ensoniq
)
?
EV_1938_CODEC_MAGIC
:
0
;
__again:
mutex_lock
(
&
ensoniq
->
src_mutex
);
for
(
t
=
0
;
t
<
POLL_COUNT
;
t
++
)
{
...
...
@@ -671,7 +680,8 @@ static unsigned short snd_es1371_codec_read(struct snd_ac97 *ac97,
0x00010000
)
break
;
}
outl
(
ES_1371_CODEC_READS
(
reg
),
ES_REG
(
ensoniq
,
1371
_CODEC
));
outl
(
ES_1371_CODEC_READS
(
reg
)
|
flag
,
ES_REG
(
ensoniq
,
1371
_CODEC
));
/* restore SRC reg */
snd_es1371_wait_src_ready
(
ensoniq
);
outl
(
x
,
ES_REG
(
ensoniq
,
1371
_SMPRATE
));
...
...
@@ -683,6 +693,11 @@ static unsigned short snd_es1371_codec_read(struct snd_ac97 *ac97,
/* now wait for the stinkin' data (RDY) */
for
(
t
=
0
;
t
<
POLL_COUNT
;
t
++
)
{
if
((
x
=
inl
(
ES_REG
(
ensoniq
,
1371
_CODEC
)))
&
ES_1371_CODEC_RDY
)
{
if
(
is_ev1938
(
ensoniq
))
{
for
(
t
=
0
;
t
<
100
;
t
++
)
inl
(
ES_REG
(
ensoniq
,
CONTROL
));
x
=
inl
(
ES_REG
(
ensoniq
,
1371
_CODEC
));
}
mutex_unlock
(
&
ensoniq
->
src_mutex
);
return
ES_1371_CODEC_READ
(
x
);
}
...
...
sound/pci/hda/patch_conexant.c
浏览文件 @
17fbb5bd
...
...
@@ -3034,6 +3034,7 @@ static struct snd_pci_quirk cxt5066_cfg_tbl[] = {
SND_PCI_QUIRK
(
0x17aa
,
0x21c5
,
"Thinkpad Edge 13"
,
CXT5066_THINKPAD
),
SND_PCI_QUIRK
(
0x17aa
,
0x21c6
,
"Thinkpad Edge 13"
,
CXT5066_ASUS
),
SND_PCI_QUIRK
(
0x17aa
,
0x215e
,
"Lenovo Thinkpad"
,
CXT5066_THINKPAD
),
SND_PCI_QUIRK
(
0x17aa
,
0x21da
,
"Lenovo X220"
,
CXT5066_THINKPAD
),
SND_PCI_QUIRK
(
0x17aa
,
0x38af
,
"Lenovo G560"
,
CXT5066_ASUS
),
SND_PCI_QUIRK_VENDOR
(
0x17aa
,
"Lenovo"
,
CXT5066_IDEAPAD
),
/* Fallback for Lenovos without dock mic */
{}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录