Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
cb784724
cloud-kernel
项目概览
openanolis
/
cloud-kernel
接近 2 年 前同步成功
通知
169
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看板
提交
cb784724
编写于
4月 13, 2008
作者:
M
Mauro Carvalho Chehab
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
V4L/DVB (7559): em28xx: Fills the entire buffer, before getting another one
Signed-off-by:
N
Mauro Carvalho Chehab
<
mchehab@infradead.org
>
上级
5e28e009
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
9 deletion
+14
-9
drivers/media/video/em28xx/em28xx-video.c
drivers/media/video/em28xx/em28xx-video.c
+14
-9
未找到文件。
drivers/media/video/em28xx/em28xx-video.c
浏览文件 @
cb784724
...
...
@@ -137,6 +137,8 @@ static inline void buffer_filled(struct em28xx *dev,
buf
->
vb
.
field_count
++
;
do_gettimeofday
(
&
buf
->
vb
.
ts
);
dev
->
isoc_ctl
.
buf
=
NULL
;
list_del
(
&
buf
->
vb
.
queue
);
wake_up
(
&
buf
->
vb
.
done
);
}
...
...
@@ -269,6 +271,11 @@ static inline int get_next_buf(struct em28xx_dmaqueue *dma_q,
{
struct
em28xx
*
dev
=
container_of
(
dma_q
,
struct
em28xx
,
vidq
);
/* If the previous buffer were not filled yet, continue */
*
buf
=
dev
->
isoc_ctl
.
buf
;
if
(
*
buf
)
return
1
;
if
(
list_empty
(
&
dma_q
->
active
))
{
em28xx_isocdbg
(
"No active queue to serve
\n
"
);
return
0
;
...
...
@@ -276,6 +283,9 @@ static inline int get_next_buf(struct em28xx_dmaqueue *dma_q,
*
buf
=
list_entry
(
dma_q
->
active
.
next
,
struct
em28xx_buffer
,
vb
.
queue
);
dev
->
isoc_ctl
.
buf
=
*
buf
;
return
1
;
}
...
...
@@ -303,13 +313,9 @@ static inline int em28xx_isoc_copy(struct urb *urb)
return
0
;
}
buf
=
dev
->
isoc_ctl
.
buf
;
if
(
!
buf
)
{
rc
=
get_next_buf
(
dma_q
,
&
buf
);
if
(
rc
<=
0
)
return
rc
;
}
rc
=
get_next_buf
(
dma_q
,
&
buf
);
if
(
rc
<=
0
)
return
rc
;
outp
=
videobuf_to_vmalloc
(
&
buf
->
vb
);
...
...
@@ -351,7 +357,6 @@ static inline int em28xx_isoc_copy(struct urb *urb)
rc
=
get_next_buf
(
dma_q
,
&
buf
);
if
(
rc
<=
0
)
return
rc
;
outp
=
videobuf_to_vmalloc
(
&
buf
->
vb
);
}
...
...
@@ -416,7 +421,6 @@ static void em28xx_uninit_isoc(struct em28xx *dev)
em28xx_isocdbg
(
"em28xx: called em28xx_uninit_isoc
\n
"
);
dev
->
isoc_ctl
.
nfields
=
-
1
;
dev
->
isoc_ctl
.
buf
=
NULL
;
for
(
i
=
0
;
i
<
dev
->
isoc_ctl
.
num_bufs
;
i
++
)
{
urb
=
dev
->
isoc_ctl
.
urb
[
i
];
if
(
urb
)
{
...
...
@@ -478,6 +482,7 @@ static int em28xx_prepare_isoc(struct em28xx *dev, int max_packets,
}
dev
->
isoc_ctl
.
max_pkt_size
=
dev
->
max_pkt_size
;
dev
->
isoc_ctl
.
buf
=
NULL
;
sb_size
=
max_packets
*
dev
->
isoc_ctl
.
max_pkt_size
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录