Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
23fb348d
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看板
提交
23fb348d
编写于
4月 22, 2008
作者:
M
Mauro Carvalho Chehab
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
V4L/DVB (7266): cx88-dvb: convert attach_xc3028 into a function
Signed-off-by:
N
Mauro Carvalho Chehab
<
mchehab@infradead.org
>
上级
64016330
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
31 addition
and
27 deletion
+31
-27
drivers/media/video/cx88/cx88-dvb.c
drivers/media/video/cx88/cx88-dvb.c
+31
-27
未找到文件。
drivers/media/video/cx88/cx88-dvb.c
浏览文件 @
23fb348d
...
@@ -452,11 +452,33 @@ static struct zl10353_config cx88_geniatech_x8000_mt = {
...
@@ -452,11 +452,33 @@ static struct zl10353_config cx88_geniatech_x8000_mt = {
.
no_tuner
=
1
,
.
no_tuner
=
1
,
};
};
static
int
attach_xc3028
(
u8
addr
,
struct
cx8802_dev
*
dev
)
{
struct
dvb_frontend
*
fe
;
struct
xc2028_config
cfg
=
{
.
i2c_adap
=
&
dev
->
core
->
i2c_adap
,
.
i2c_addr
=
addr
,
.
video_dev
=
dev
->
core
,
};
fe
=
dvb_attach
(
xc2028_attach
,
dev
->
dvb
.
frontend
,
&
cfg
);
if
(
!
fe
)
{
printk
(
KERN_ERR
"%s/2: xc3028 attach failed
\n
"
,
dev
->
core
->
name
);
dvb_frontend_detach
(
dev
->
dvb
.
frontend
);
dvb_unregister_frontend
(
dev
->
dvb
.
frontend
);
dev
->
dvb
.
frontend
=
NULL
;
return
-
EINVAL
;
}
printk
(
KERN_INFO
"%s/2: xc3028 attached
\n
"
,
dev
->
core
->
name
);
return
0
;
}
static
int
dvb_register
(
struct
cx8802_dev
*
dev
)
static
int
dvb_register
(
struct
cx8802_dev
*
dev
)
{
{
int
attach_xc3028
=
0
;
/* init struct videobuf_dvb */
/* init struct videobuf_dvb */
dev
->
dvb
.
name
=
dev
->
core
->
name
;
dev
->
dvb
.
name
=
dev
->
core
->
name
;
dev
->
ts_gen_cntrl
=
0x0c
;
dev
->
ts_gen_cntrl
=
0x0c
;
...
@@ -595,8 +617,8 @@ static int dvb_register(struct cx8802_dev *dev)
...
@@ -595,8 +617,8 @@ static int dvb_register(struct cx8802_dev *dev)
*/
*/
if
(
dev
->
dvb
.
frontend
)
if
(
dev
->
dvb
.
frontend
)
dev
->
dvb
.
frontend
->
ops
.
i2c_gate_ctrl
=
NULL
;
dev
->
dvb
.
frontend
->
ops
.
i2c_gate_ctrl
=
NULL
;
if
(
attach_xc3028
(
0x61
,
dev
)
<
0
)
attach_xc3028
=
1
;
return
-
EINVAL
;
break
;
break
;
case
CX88_BOARD_PCHDTV_HD3000
:
case
CX88_BOARD_PCHDTV_HD3000
:
dev
->
dvb
.
frontend
=
dvb_attach
(
or51132_attach
,
&
pchdtv_hd3000
,
dev
->
dvb
.
frontend
=
dvb_attach
(
or51132_attach
,
&
pchdtv_hd3000
,
...
@@ -770,7 +792,8 @@ static int dvb_register(struct cx8802_dev *dev)
...
@@ -770,7 +792,8 @@ static int dvb_register(struct cx8802_dev *dev)
dev
->
dvb
.
frontend
=
dvb_attach
(
zl10353_attach
,
dev
->
dvb
.
frontend
=
dvb_attach
(
zl10353_attach
,
&
cx88_geniatech_x8000_mt
,
&
cx88_geniatech_x8000_mt
,
&
dev
->
core
->
i2c_adap
);
&
dev
->
core
->
i2c_adap
);
attach_xc3028
=
1
;
if
(
attach_xc3028
(
0x61
,
dev
)
<
0
)
return
-
EINVAL
;
break
;
break
;
case
CX88_BOARD_GENIATECH_X8000_MT
:
case
CX88_BOARD_GENIATECH_X8000_MT
:
dev
->
ts_gen_cntrl
=
0x00
;
dev
->
ts_gen_cntrl
=
0x00
;
...
@@ -778,7 +801,8 @@ static int dvb_register(struct cx8802_dev *dev)
...
@@ -778,7 +801,8 @@ static int dvb_register(struct cx8802_dev *dev)
dev
->
dvb
.
frontend
=
dvb_attach
(
zl10353_attach
,
dev
->
dvb
.
frontend
=
dvb_attach
(
zl10353_attach
,
&
cx88_geniatech_x8000_mt
,
&
cx88_geniatech_x8000_mt
,
&
dev
->
core
->
i2c_adap
);
&
dev
->
core
->
i2c_adap
);
attach_xc3028
=
1
;
if
(
attach_xc3028
(
0x61
,
dev
)
<
0
)
return
-
EINVAL
;
break
;
break
;
default:
default:
printk
(
KERN_ERR
"%s/2: The frontend of your DVB/ATSC card isn't supported yet
\n
"
,
printk
(
KERN_ERR
"%s/2: The frontend of your DVB/ATSC card isn't supported yet
\n
"
,
...
@@ -789,27 +813,7 @@ static int dvb_register(struct cx8802_dev *dev)
...
@@ -789,27 +813,7 @@ static int dvb_register(struct cx8802_dev *dev)
printk
(
KERN_ERR
printk
(
KERN_ERR
"%s/2: frontend initialization failed
\n
"
,
"%s/2: frontend initialization failed
\n
"
,
dev
->
core
->
name
);
dev
->
core
->
name
);
return
-
1
;
return
-
EINVAL
;
}
if
(
attach_xc3028
)
{
struct
dvb_frontend
*
fe
;
struct
xc2028_config
cfg
=
{
.
i2c_adap
=
&
dev
->
core
->
i2c_adap
,
.
i2c_addr
=
0x61
,
.
video_dev
=
dev
->
core
,
};
fe
=
dvb_attach
(
xc2028_attach
,
dev
->
dvb
.
frontend
,
&
cfg
);
if
(
!
fe
)
{
printk
(
KERN_ERR
"%s/2: xc3028 attach failed
\n
"
,
dev
->
core
->
name
);
dvb_frontend_detach
(
dev
->
dvb
.
frontend
);
dvb_unregister_frontend
(
dev
->
dvb
.
frontend
);
dev
->
dvb
.
frontend
=
NULL
;
return
-
1
;
}
printk
(
KERN_INFO
"%s/2: xc3028 attached
\n
"
,
dev
->
core
->
name
);
}
}
/* Ensure all frontends negotiate bus access */
/* Ensure all frontends negotiate bus access */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录