Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
df7c1d9a
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看板
提交
df7c1d9a
编写于
10月 25, 2008
作者:
M
Mauro Carvalho Chehab
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
V4L/DVB (12840): tm6000: add support for HVR900H
Signed-off-by:
N
Mauro Carvalho Chehab
<
mchehab@redhat.com
>
上级
8ae1fc6e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
31 addition
and
9 deletion
+31
-9
drivers/staging/tm6000/tm6000-cards.c
drivers/staging/tm6000/tm6000-cards.c
+31
-9
未找到文件。
drivers/staging/tm6000/tm6000-cards.c
浏览文件 @
df7c1d9a
...
...
@@ -40,6 +40,7 @@
#define TM6000_BOARD_ADSTECH_DUAL_TV 6
#define TM6000_BOARD_FREECOM_AND_SIMILAR 7
#define TM6000_BOARD_ADSTECH_MINI_DUAL_TV 8
#define TM6010_BOARD_HAUPPAUGE_900H 9
#define TM6000_MAXBOARDS 16
static
unsigned
int
card
[]
=
{[
0
...
(
TM6000_MAXBOARDS
-
1
)]
=
UNSET
};
...
...
@@ -161,6 +162,20 @@ struct tm6000_board tm6000_boards[] = {
},
.
gpio_addr_tun_reset
=
TM6000_GPIO_4
,
},
[
TM6010_BOARD_HAUPPAUGE_900H
]
=
{
.
name
=
"Hauppauge HVR-900H"
,
.
tuner_type
=
TUNER_XC2028
,
/* has a XC3028 */
.
tuner_addr
=
0xc2
,
.
demod_addr
=
0x1e
,
.
type
=
TM6010
,
.
caps
=
{
.
has_tuner
=
1
,
.
has_dvb
=
1
,
.
has_zl10353
=
1
,
.
has_eeprom
=
1
,
},
.
gpio_addr_tun_reset
=
TM6000_GPIO_2
,
},
};
/* table of devices that work with this driver */
...
...
@@ -170,23 +185,19 @@ struct usb_device_id tm6000_id_table [] = {
{
USB_DEVICE
(
0x06e1
,
0xf332
),
.
driver_info
=
TM6000_BOARD_ADSTECH_DUAL_TV
},
{
USB_DEVICE
(
0x14aa
,
0x0620
),
.
driver_info
=
TM6000_BOARD_FREECOM_AND_SIMILAR
},
{
USB_DEVICE
(
0x06e1
,
0xb339
),
.
driver_info
=
TM6000_BOARD_ADSTECH_MINI_DUAL_TV
},
{
USB_DEVICE
(
0x2040
,
0x6600
),
.
driver_info
=
TM6010_BOARD_HAUPPAUGE_900H
},
{
},
};
static
void
tm6000_config_tuner
(
struct
tm6000_core
*
dev
)
{
struct
v4l2_priv_tun_config
xc2028_cfg
;
struct
xc2028_ctrl
ctl
;
memset
(
&
ctl
,
0
,
sizeof
(
ctl
));
request_module
(
"tuner"
);
if
(
dev
->
tuner_type
==
TUNER_XC2028
)
{
if
(
dev
->
dev_type
==
TM6010
)
ctl
.
fname
=
"xc3028-v27.fw"
;
else
ctl
.
fname
=
"tm6000-xc3028.fw"
;
struct
v4l2_priv_tun_config
xc2028_cfg
;
struct
xc2028_ctrl
ctl
;
memset
(
&
ctl
,
0
,
sizeof
(
ctl
))
;
ctl
.
mts
=
1
;
ctl
.
read_not_reliable
=
1
;
...
...
@@ -195,6 +206,17 @@ static void tm6000_config_tuner (struct tm6000_core *dev)
xc2028_cfg
.
tuner
=
TUNER_XC2028
;
xc2028_cfg
.
priv
=
&
ctl
;
switch
(
dev
->
model
)
{
case
TM6010_BOARD_HAUPPAUGE_900H
:
ctl
.
fname
=
"xc3028L-v36.fw"
;
break
;
default:
if
(
dev
->
dev_type
==
TM6010
)
ctl
.
fname
=
"xc3028-v27.fw"
;
else
ctl
.
fname
=
"tm6000-xc3028.fw"
;
}
printk
(
KERN_INFO
"Setting firmware parameters for xc2028
\n
"
);
tm6000_i2c_call_clients
(
dev
,
TUNER_SET_CONFIG
,
&
xc2028_cfg
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录