Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
da497e30
K
Kernel
项目概览
openeuler
/
Kernel
接近 2 年 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
da497e30
编写于
9月 15, 2010
作者:
M
Mauro Carvalho Chehab
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
V4L/DVB: cx88: Remove BKL
Signed-off-by:
N
Mauro Carvalho Chehab
<
mchehab@redhat.com
>
上级
8979e9d4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
15 deletion
+16
-15
drivers/media/video/cx88/cx88-blackbird.c
drivers/media/video/cx88/cx88-blackbird.c
+8
-6
drivers/media/video/cx88/cx88-video.c
drivers/media/video/cx88/cx88-video.c
+8
-9
未找到文件。
drivers/media/video/cx88/cx88-blackbird.c
浏览文件 @
da497e30
...
...
@@ -1057,7 +1057,7 @@ static int mpeg_open(struct file *file)
dprintk
(
1
,
"%s
\n
"
,
__func__
);
lock_kernel
(
);
mutex_lock
(
&
dev
->
core
->
lock
);
/* Make sure we can acquire the hardware */
drv
=
cx8802_get_driver
(
dev
,
CX88_MPEG_BLACKBIRD
);
...
...
@@ -1065,7 +1065,7 @@ static int mpeg_open(struct file *file)
err
=
drv
->
request_acquire
(
drv
);
if
(
err
!=
0
)
{
dprintk
(
1
,
"%s: Unable to acquire hardware, %d
\n
"
,
__func__
,
err
);
unlock_kernel
()
;
mutex_unlock
(
&
dev
->
core
->
lock
);
;
return
err
;
}
}
...
...
@@ -1073,7 +1073,7 @@ static int mpeg_open(struct file *file)
if
(
!
atomic_read
(
&
dev
->
core
->
mpeg_users
)
&&
blackbird_initialize_codec
(
dev
)
<
0
)
{
if
(
drv
)
drv
->
request_release
(
drv
);
unlock_kernel
(
);
mutex_unlock
(
&
dev
->
core
->
lock
);
return
-
EINVAL
;
}
dprintk
(
1
,
"open dev=%s
\n
"
,
video_device_node_name
(
vdev
));
...
...
@@ -1083,7 +1083,7 @@ static int mpeg_open(struct file *file)
if
(
NULL
==
fh
)
{
if
(
drv
)
drv
->
request_release
(
drv
);
unlock_kernel
(
);
mutex_unlock
(
&
dev
->
core
->
lock
);
return
-
ENOMEM
;
}
file
->
private_data
=
fh
;
...
...
@@ -1099,10 +1099,9 @@ static int mpeg_open(struct file *file)
/* FIXME: locking against other video device */
cx88_set_scale
(
dev
->
core
,
dev
->
width
,
dev
->
height
,
fh
->
mpegq
.
field
);
unlock_kernel
();
atomic_inc
(
&
dev
->
core
->
mpeg_users
);
mutex_unlock
(
&
dev
->
core
->
lock
);
return
0
;
}
...
...
@@ -1120,8 +1119,11 @@ static int mpeg_release(struct file *file)
videobuf_stop
(
&
fh
->
mpegq
);
videobuf_mmap_free
(
&
fh
->
mpegq
);
mutex_lock
(
&
dev
->
core
->
lock
);
file
->
private_data
=
NULL
;
kfree
(
fh
);
mutex_unlock
(
&
dev
->
core
->
lock
);
/* Make sure we release the hardware */
drv
=
cx8802_get_driver
(
dev
,
CX88_MPEG_BLACKBIRD
);
...
...
drivers/media/video/cx88/cx88-video.c
浏览文件 @
da497e30
...
...
@@ -769,19 +769,14 @@ static int video_open(struct file *file)
break
;
}
lock_kernel
();
core
=
dev
->
core
;
dprintk
(
1
,
"open dev=%s radio=%d type=%s
\n
"
,
video_device_node_name
(
vdev
),
radio
,
v4l2_type_names
[
type
]);
/* allocate + initialize per filehandle data */
fh
=
kzalloc
(
sizeof
(
*
fh
),
GFP_KERNEL
);
if
(
NULL
==
fh
)
{
unlock_kernel
();
if
(
unlikely
(
!
fh
))
return
-
ENOMEM
;
}
file
->
private_data
=
fh
;
fh
->
dev
=
dev
;
fh
->
radio
=
radio
;
...
...
@@ -790,6 +785,9 @@ static int video_open(struct file *file)
fh
->
height
=
240
;
fh
->
fmt
=
format_by_fourcc
(
V4L2_PIX_FMT_BGR24
);
mutex_lock
(
&
core
->
lock
);
core
=
dev
->
core
;
videobuf_queue_sg_init
(
&
fh
->
vidq
,
&
cx8800_video_qops
,
&
dev
->
pci
->
dev
,
&
dev
->
slock
,
V4L2_BUF_TYPE_VIDEO_CAPTURE
,
...
...
@@ -826,9 +824,9 @@ static int video_open(struct file *file)
}
call_all
(
core
,
tuner
,
s_radio
);
}
unlock_kernel
();
atomic_inc
(
&
core
->
users
);
mutex_unlock
(
&
core
->
lock
);
return
0
;
}
...
...
@@ -920,10 +918,11 @@ static int video_release(struct file *file)
videobuf_mmap_free
(
&
fh
->
vidq
);
videobuf_mmap_free
(
&
fh
->
vbiq
);
mutex_lock
(
&
dev
->
core
->
lock
);
file
->
private_data
=
NULL
;
kfree
(
fh
);
mutex_lock
(
&
dev
->
core
->
lock
);
if
(
atomic_dec_and_test
(
&
dev
->
core
->
users
))
call_all
(
dev
->
core
,
core
,
s_power
,
0
);
mutex_unlock
(
&
dev
->
core
->
lock
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录