Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gsplhtlxg
clone-Linux
提交
27762b2c
C
clone-Linux
项目概览
gsplhtlxg
/
clone-Linux
通知
2
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
clone-Linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
27762b2c
编写于
4月 10, 2010
作者:
T
Takashi Iwai
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fix/misc' into topic/usb
上级
7b7b9042
29aac005
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
53 addition
and
26 deletion
+53
-26
include/sound/ak4113.h
include/sound/ak4113.h
+1
-1
sound/core/pcm_lib.c
sound/core/pcm_lib.c
+4
-2
sound/i2c/other/ak4113.c
sound/i2c/other/ak4113.c
+1
-1
sound/pci/ac97/ac97_patch.c
sound/pci/ac97/ac97_patch.c
+2
-0
sound/pci/cmipci.c
sound/pci/cmipci.c
+11
-3
sound/pci/echoaudio/echoaudio.c
sound/pci/echoaudio/echoaudio.c
+2
-3
sound/pci/mixart/mixart.c
sound/pci/mixart/mixart.c
+14
-10
sound/usb/midi.c
sound/usb/midi.c
+18
-6
未找到文件。
include/sound/ak4113.h
浏览文件 @
27762b2c
...
...
@@ -307,7 +307,7 @@ struct ak4113 {
int
snd_ak4113_create
(
struct
snd_card
*
card
,
ak4113_read_t
*
read
,
ak4113_write_t
*
write
,
const
unsigned
char
pgm
[
AK4113_WRITABLE_REGS
]
,
const
unsigned
char
*
pgm
,
void
*
private_data
,
struct
ak4113
**
r_ak4113
);
void
snd_ak4113_reg_write
(
struct
ak4113
*
ak4113
,
unsigned
char
reg
,
unsigned
char
mask
,
unsigned
char
val
);
...
...
sound/core/pcm_lib.c
浏览文件 @
27762b2c
...
...
@@ -148,6 +148,9 @@ static void pcm_debug_name(struct snd_pcm_substream *substream,
#define xrun_debug(substream, mask) \
((substream)->pstr->xrun_debug & (mask))
#else
#define xrun_debug(substream, mask) 0
#endif
#define dump_stack_on_xrun(substream) do { \
if (xrun_debug(substream, XRUN_DEBUG_STACK)) \
...
...
@@ -169,6 +172,7 @@ static void xrun(struct snd_pcm_substream *substream)
}
}
#ifdef CONFIG_SND_PCM_XRUN_DEBUG
#define hw_ptr_error(substream, fmt, args...) \
do { \
if (xrun_debug(substream, XRUN_DEBUG_BASIC)) { \
...
...
@@ -255,8 +259,6 @@ static void xrun_log_show(struct snd_pcm_substream *substream)
#else
/* ! CONFIG_SND_PCM_XRUN_DEBUG */
#define xrun_debug(substream, mask) 0
#define xrun(substream) do { } while (0)
#define hw_ptr_error(substream, fmt, args...) do { } while (0)
#define xrun_log(substream, pos) do { } while (0)
#define xrun_log_show(substream) do { } while (0)
...
...
sound/i2c/other/ak4113.c
浏览文件 @
27762b2c
...
...
@@ -70,7 +70,7 @@ static int snd_ak4113_dev_free(struct snd_device *device)
}
int
snd_ak4113_create
(
struct
snd_card
*
card
,
ak4113_read_t
*
read
,
ak4113_write_t
*
write
,
const
unsigned
char
pgm
[
5
]
,
ak4113_write_t
*
write
,
const
unsigned
char
*
pgm
,
void
*
private_data
,
struct
ak4113
**
r_ak4113
)
{
struct
ak4113
*
chip
;
...
...
sound/pci/ac97/ac97_patch.c
浏览文件 @
27762b2c
...
...
@@ -1852,12 +1852,14 @@ static unsigned int ad1981_jacks_blacklist[] = {
0x10140523
,
/* Thinkpad R40 */
0x10140534
,
/* Thinkpad X31 */
0x10140537
,
/* Thinkpad T41p */
0x1014053e
,
/* Thinkpad R40e */
0x10140554
,
/* Thinkpad T42p/R50p */
0x10140567
,
/* Thinkpad T43p 2668-G7U */
0x10140581
,
/* Thinkpad X41-2527 */
0x10280160
,
/* Dell Dimension 2400 */
0x104380b0
,
/* Asus A7V8X-MX */
0x11790241
,
/* Toshiba Satellite A-15 S127 */
0x1179ff10
,
/* Toshiba P500 */
0x144dc01a
,
/* Samsung NP-X20C004/SEG */
0
/* end */
};
...
...
sound/pci/cmipci.c
浏览文件 @
27762b2c
...
...
@@ -941,13 +941,21 @@ static snd_pcm_uframes_t snd_cmipci_pcm_pointer(struct cmipci *cm, struct cmipci
struct
snd_pcm_substream
*
substream
)
{
size_t
ptr
;
unsigned
int
reg
;
unsigned
int
reg
,
rem
,
tries
;
if
(
!
rec
->
running
)
return
0
;
#if 1 // this seems better..
reg
=
rec
->
ch
?
CM_REG_CH1_FRAME2
:
CM_REG_CH0_FRAME2
;
ptr
=
rec
->
dma_size
-
(
snd_cmipci_read_w
(
cm
,
reg
)
+
1
);
ptr
>>=
rec
->
shift
;
for
(
tries
=
0
;
tries
<
3
;
tries
++
)
{
rem
=
snd_cmipci_read_w
(
cm
,
reg
);
if
(
rem
<
rec
->
dma_size
)
goto
ok
;
}
printk
(
KERN_ERR
"cmipci: invalid PCM pointer: %#x
\n
"
,
rem
);
return
SNDRV_PCM_POS_XRUN
;
ok:
ptr
=
(
rec
->
dma_size
-
(
rem
+
1
))
>>
rec
->
shift
;
#else
reg
=
rec
->
ch
?
CM_REG_CH1_FRAME1
:
CM_REG_CH0_FRAME1
;
ptr
=
snd_cmipci_read
(
cm
,
reg
)
-
rec
->
offset
;
...
...
sound/pci/echoaudio/echoaudio.c
浏览文件 @
27762b2c
...
...
@@ -2184,10 +2184,9 @@ static int __devinit snd_echo_probe(struct pci_dev *pci,
goto
ctl_error
;
#endif
if
((
err
=
snd_card_register
(
card
))
<
0
)
{
snd_card_free
(
card
);
err
=
snd_card_register
(
card
);
if
(
err
<
0
)
goto
ctl_error
;
}
snd_printk
(
KERN_INFO
"Card registered: %s
\n
"
,
card
->
longname
);
pci_set_drvdata
(
pci
,
chip
);
...
...
sound/pci/mixart/mixart.c
浏览文件 @
27762b2c
...
...
@@ -1161,13 +1161,15 @@ static long snd_mixart_BA0_read(struct snd_info_entry *entry, void *file_private
unsigned
long
count
,
unsigned
long
pos
)
{
struct
mixart_mgr
*
mgr
=
entry
->
private_data
;
unsigned
long
maxsize
;
count
=
count
&
~
3
;
/* make sure the read size is a multiple of 4 bytes */
if
(
count
<=
0
)
if
(
pos
>=
MIXART_BA0_SIZE
)
return
0
;
if
(
pos
+
count
>
MIXART_BA0_SIZE
)
count
=
(
long
)(
MIXART_BA0_SIZE
-
pos
);
if
(
copy_to_user_fromio
(
buf
,
MIXART_MEM
(
mgr
,
pos
),
count
))
maxsize
=
MIXART_BA0_SIZE
-
pos
;
if
(
count
>
maxsize
)
count
=
maxsize
;
count
=
count
&
~
3
;
/* make sure the read size is a multiple of 4 bytes */
if
(
copy_to_user_fromio
(
buf
,
MIXART_MEM
(
mgr
,
pos
),
count
))
return
-
EFAULT
;
return
count
;
}
...
...
@@ -1180,13 +1182,15 @@ static long snd_mixart_BA1_read(struct snd_info_entry *entry, void *file_private
unsigned
long
count
,
unsigned
long
pos
)
{
struct
mixart_mgr
*
mgr
=
entry
->
private_data
;
unsigned
long
maxsize
;
count
=
count
&
~
3
;
/* make sure the read size is a multiple of 4 bytes */
if
(
count
<=
0
)
if
(
pos
>
MIXART_BA1_SIZE
)
return
0
;
if
(
pos
+
count
>
MIXART_BA1_SIZE
)
count
=
(
long
)(
MIXART_BA1_SIZE
-
pos
);
if
(
copy_to_user_fromio
(
buf
,
MIXART_REG
(
mgr
,
pos
),
count
))
maxsize
=
MIXART_BA1_SIZE
-
pos
;
if
(
count
>
maxsize
)
count
=
maxsize
;
count
=
count
&
~
3
;
/* make sure the read size is a multiple of 4 bytes */
if
(
copy_to_user_fromio
(
buf
,
MIXART_REG
(
mgr
,
pos
),
count
))
return
-
EFAULT
;
return
count
;
}
...
...
sound/usb/midi.c
浏览文件 @
27762b2c
...
...
@@ -987,6 +987,8 @@ static void snd_usbmidi_output_drain(struct snd_rawmidi_substream *substream)
DEFINE_WAIT
(
wait
);
long
timeout
=
msecs_to_jiffies
(
50
);
if
(
ep
->
umidi
->
disconnected
)
return
;
/*
* The substream buffer is empty, but some data might still be in the
* currently active URBs, so we have to wait for those to complete.
...
...
@@ -1124,14 +1126,21 @@ static int snd_usbmidi_in_endpoint_create(struct snd_usb_midi* umidi,
* Frees an output endpoint.
* May be called when ep hasn't been initialized completely.
*/
static
void
snd_usbmidi_out_endpoint_
delete
(
struct
snd_usb_midi_out_endpoint
*
ep
)
static
void
snd_usbmidi_out_endpoint_
clear
(
struct
snd_usb_midi_out_endpoint
*
ep
)
{
unsigned
int
i
;
for
(
i
=
0
;
i
<
OUTPUT_URBS
;
++
i
)
if
(
ep
->
urbs
[
i
].
urb
)
if
(
ep
->
urbs
[
i
].
urb
)
{
free_urb_and_buffer
(
ep
->
umidi
,
ep
->
urbs
[
i
].
urb
,
ep
->
max_transfer
);
ep
->
urbs
[
i
].
urb
=
NULL
;
}
}
static
void
snd_usbmidi_out_endpoint_delete
(
struct
snd_usb_midi_out_endpoint
*
ep
)
{
snd_usbmidi_out_endpoint_clear
(
ep
);
kfree
(
ep
);
}
...
...
@@ -1263,15 +1272,18 @@ void snd_usbmidi_disconnect(struct list_head* p)
usb_kill_urb
(
ep
->
out
->
urbs
[
j
].
urb
);
if
(
umidi
->
usb_protocol_ops
->
finish_out_endpoint
)
umidi
->
usb_protocol_ops
->
finish_out_endpoint
(
ep
->
out
);
ep
->
out
->
active_urbs
=
0
;
if
(
ep
->
out
->
drain_urbs
)
{
ep
->
out
->
drain_urbs
=
0
;
wake_up
(
&
ep
->
out
->
drain_wait
);
}
}
if
(
ep
->
in
)
for
(
j
=
0
;
j
<
INPUT_URBS
;
++
j
)
usb_kill_urb
(
ep
->
in
->
urbs
[
j
]);
/* free endpoints here; later call can result in Oops */
if
(
ep
->
out
)
{
snd_usbmidi_out_endpoint_delete
(
ep
->
out
);
ep
->
out
=
NULL
;
}
if
(
ep
->
out
)
snd_usbmidi_out_endpoint_clear
(
ep
->
out
);
if
(
ep
->
in
)
{
snd_usbmidi_in_endpoint_delete
(
ep
->
in
);
ep
->
in
=
NULL
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录