Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
593195f9
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
593195f9
编写于
1月 11, 2006
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
上级
983d5dbd
f9cfc08d
变更
108
展开全部
隐藏空白更改
内联
并排
Showing
108 changed file
with
1608 addition
and
1299 deletion
+1608
-1299
Documentation/video4linux/CARDLIST.bttv
Documentation/video4linux/CARDLIST.bttv
+1
-0
Documentation/video4linux/CARDLIST.cx88
Documentation/video4linux/CARDLIST.cx88
+1
-1
drivers/media/common/saa7146_core.c
drivers/media/common/saa7146_core.c
+3
-6
drivers/media/common/saa7146_fops.c
drivers/media/common/saa7146_fops.c
+2
-4
drivers/media/dvb/b2c2/flexcop.c
drivers/media/dvb/b2c2/flexcop.c
+2
-4
drivers/media/dvb/bt8xx/dvb-bt8xx.c
drivers/media/dvb/bt8xx/dvb-bt8xx.c
+1
-2
drivers/media/dvb/dvb-core/dvb_ca_en50221.c
drivers/media/dvb/dvb-core/dvb_ca_en50221.c
+2
-6
drivers/media/dvb/dvb-core/dvb_frontend.c
drivers/media/dvb/dvb-core/dvb_frontend.c
+1
-2
drivers/media/dvb/dvb-usb/cxusb.c
drivers/media/dvb/dvb-usb/cxusb.c
+150
-2
drivers/media/dvb/dvb-usb/dtt200u-fe.c
drivers/media/dvb/dvb-usb/dtt200u-fe.c
+1
-2
drivers/media/dvb/dvb-usb/dvb-usb-ids.h
drivers/media/dvb/dvb-usb/dvb-usb-ids.h
+2
-0
drivers/media/dvb/dvb-usb/dvb-usb-init.c
drivers/media/dvb/dvb-usb/dvb-usb-init.c
+2
-4
drivers/media/dvb/dvb-usb/dvb-usb-urb.c
drivers/media/dvb/dvb-usb/dvb-usb-urb.c
+3
-6
drivers/media/dvb/dvb-usb/vp702x-fe.c
drivers/media/dvb/dvb-usb/vp702x-fe.c
+1
-2
drivers/media/dvb/dvb-usb/vp7045-fe.c
drivers/media/dvb/dvb-usb/vp7045-fe.c
+1
-2
drivers/media/dvb/frontends/bcm3510.c
drivers/media/dvb/frontends/bcm3510.c
+1
-2
drivers/media/dvb/frontends/dib3000mb.c
drivers/media/dvb/frontends/dib3000mb.c
+1
-2
drivers/media/dvb/frontends/dib3000mc.c
drivers/media/dvb/frontends/dib3000mc.c
+1
-2
drivers/media/dvb/frontends/dvb-pll.c
drivers/media/dvb/frontends/dvb-pll.c
+17
-0
drivers/media/dvb/frontends/dvb-pll.h
drivers/media/dvb/frontends/dvb-pll.h
+1
-0
drivers/media/dvb/frontends/lgdt330x.c
drivers/media/dvb/frontends/lgdt330x.c
+1
-2
drivers/media/dvb/frontends/mt352.c
drivers/media/dvb/frontends/mt352.c
+1
-2
drivers/media/dvb/frontends/nxt200x.c
drivers/media/dvb/frontends/nxt200x.c
+1
-2
drivers/media/dvb/pluto2/pluto2.c
drivers/media/dvb/pluto2/pluto2.c
+1
-2
drivers/media/dvb/ttpci/av7110.c
drivers/media/dvb/ttpci/av7110.c
+1
-3
drivers/media/dvb/ttpci/budget-av.c
drivers/media/dvb/ttpci/budget-av.c
+126
-3
drivers/media/dvb/ttpci/budget.h
drivers/media/dvb/ttpci/budget.h
+1
-0
drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
+1
-3
drivers/media/dvb/ttusb-dec/ttusb_dec.c
drivers/media/dvb/ttusb-dec/ttusb_dec.c
+1
-3
drivers/media/radio/radio-gemtek-pci.c
drivers/media/radio/radio-gemtek-pci.c
+1
-2
drivers/media/video/Kconfig
drivers/media/video/Kconfig
+1
-1
drivers/media/video/adv7170.c
drivers/media/video/adv7170.c
+2
-4
drivers/media/video/adv7175.c
drivers/media/video/adv7175.c
+2
-4
drivers/media/video/bt819.c
drivers/media/video/bt819.c
+2
-5
drivers/media/video/bt832.c
drivers/media/video/bt832.c
+3
-4
drivers/media/video/bt856.c
drivers/media/video/bt856.c
+2
-4
drivers/media/video/bttv-cards.c
drivers/media/video/bttv-cards.c
+164
-141
drivers/media/video/bttv-gpio.c
drivers/media/video/bttv-gpio.c
+1
-2
drivers/media/video/bttv-input.c
drivers/media/video/bttv-input.c
+6
-0
drivers/media/video/bttv.h
drivers/media/video/bttv.h
+1
-0
drivers/media/video/compat_ioctl32.c
drivers/media/video/compat_ioctl32.c
+259
-112
drivers/media/video/cpia_pp.c
drivers/media/video/cpia_pp.c
+1
-2
drivers/media/video/cpia_usb.c
drivers/media/video/cpia_usb.c
+1
-3
drivers/media/video/cs53l32a.c
drivers/media/video/cs53l32a.c
+3
-4
drivers/media/video/cx25840/cx25840-core.c
drivers/media/video/cx25840/cx25840-core.c
+9
-10
drivers/media/video/cx88/cx88-blackbird.c
drivers/media/video/cx88/cx88-blackbird.c
+2
-4
drivers/media/video/cx88/cx88-cards.c
drivers/media/video/cx88/cx88-cards.c
+5
-0
drivers/media/video/cx88/cx88-core.c
drivers/media/video/cx88/cx88-core.c
+1
-2
drivers/media/video/cx88/cx88-dvb.c
drivers/media/video/cx88/cx88-dvb.c
+1
-2
drivers/media/video/cx88/cx88-input.c
drivers/media/video/cx88/cx88-input.c
+1
-0
drivers/media/video/cx88/cx88-video.c
drivers/media/video/cx88/cx88-video.c
+2
-4
drivers/media/video/dpc7146.c
drivers/media/video/dpc7146.c
+1
-2
drivers/media/video/em28xx/em28xx-video.c
drivers/media/video/em28xx/em28xx-video.c
+1
-2
drivers/media/video/hexium_gemini.c
drivers/media/video/hexium_gemini.c
+1
-2
drivers/media/video/hexium_orion.c
drivers/media/video/hexium_orion.c
+1
-2
drivers/media/video/indycam.c
drivers/media/video/indycam.c
+2
-5
drivers/media/video/msp3400-driver.c
drivers/media/video/msp3400-driver.c
+32
-32
drivers/media/video/msp3400-kthreads.c
drivers/media/video/msp3400-kthreads.c
+62
-62
drivers/media/video/msp3400.h
drivers/media/video/msp3400.h
+6
-6
drivers/media/video/mt20xx.c
drivers/media/video/mt20xx.c
+4
-4
drivers/media/video/mxb.c
drivers/media/video/mxb.c
+1
-2
drivers/media/video/ovcamchip/ov6x20.c
drivers/media/video/ovcamchip/ov6x20.c
+1
-2
drivers/media/video/ovcamchip/ov6x30.c
drivers/media/video/ovcamchip/ov6x30.c
+1
-2
drivers/media/video/ovcamchip/ov76be.c
drivers/media/video/ovcamchip/ov76be.c
+1
-2
drivers/media/video/ovcamchip/ov7x10.c
drivers/media/video/ovcamchip/ov7x10.c
+1
-2
drivers/media/video/ovcamchip/ov7x20.c
drivers/media/video/ovcamchip/ov7x20.c
+1
-2
drivers/media/video/ovcamchip/ovcamchip_core.c
drivers/media/video/ovcamchip/ovcamchip_core.c
+1
-2
drivers/media/video/saa5246a.c
drivers/media/video/saa5246a.c
+1
-2
drivers/media/video/saa5249.c
drivers/media/video/saa5249.c
+2
-3
drivers/media/video/saa7110.c
drivers/media/video/saa7110.c
+2
-4
drivers/media/video/saa7111.c
drivers/media/video/saa7111.c
+2
-4
drivers/media/video/saa7114.c
drivers/media/video/saa7114.c
+2
-4
drivers/media/video/saa7115.c
drivers/media/video/saa7115.c
+21
-23
drivers/media/video/saa711x.c
drivers/media/video/saa711x.c
+2
-4
drivers/media/video/saa7127.c
drivers/media/video/saa7127.c
+20
-22
drivers/media/video/saa7134/Kconfig
drivers/media/video/saa7134/Kconfig
+1
-1
drivers/media/video/saa7134/saa6752hs.c
drivers/media/video/saa7134/saa6752hs.c
+1
-2
drivers/media/video/saa7134/saa7134-cards.c
drivers/media/video/saa7134/saa7134-cards.c
+1
-1
drivers/media/video/saa7134/saa7134-core.c
drivers/media/video/saa7134/saa7134-core.c
+1
-2
drivers/media/video/saa7134/saa7134-video.c
drivers/media/video/saa7134/saa7134-video.c
+1
-2
drivers/media/video/saa7146.h
drivers/media/video/saa7146.h
+0
-1
drivers/media/video/saa7185.c
drivers/media/video/saa7185.c
+2
-4
drivers/media/video/saa7191.c
drivers/media/video/saa7191.c
+2
-5
drivers/media/video/stradis.c
drivers/media/video/stradis.c
+554
-584
drivers/media/video/tda7432.c
drivers/media/video/tda7432.c
+7
-8
drivers/media/video/tda9875.c
drivers/media/video/tda9875.c
+1
-2
drivers/media/video/tda9887.c
drivers/media/video/tda9887.c
+1
-2
drivers/media/video/tea5767.c
drivers/media/video/tea5767.c
+2
-2
drivers/media/video/tea6420.c
drivers/media/video/tea6420.c
+1
-2
drivers/media/video/tuner-3036.c
drivers/media/video/tuner-3036.c
+1
-2
drivers/media/video/tuner-core.c
drivers/media/video/tuner-core.c
+9
-10
drivers/media/video/tvaudio.c
drivers/media/video/tvaudio.c
+27
-28
drivers/media/video/tveeprom.c
drivers/media/video/tveeprom.c
+2
-4
drivers/media/video/tvp5150.c
drivers/media/video/tvp5150.c
+1
-2
drivers/media/video/v4l1-compat.c
drivers/media/video/v4l1-compat.c
+8
-16
drivers/media/video/video-buf.c
drivers/media/video/video-buf.c
+3
-6
drivers/media/video/videocodec.c
drivers/media/video/videocodec.c
+2
-9
drivers/media/video/videodev.c
drivers/media/video/videodev.c
+1
-4
drivers/media/video/vino.c
drivers/media/video/vino.c
+1
-3
drivers/media/video/vpx3220.c
drivers/media/video/vpx3220.c
+2
-5
drivers/media/video/wm8775.c
drivers/media/video/wm8775.c
+1
-2
drivers/media/video/zoran_card.c
drivers/media/video/zoran_card.c
+1
-2
drivers/media/video/zoran_driver.c
drivers/media/video/zoran_driver.c
+1
-2
drivers/media/video/zr36016.c
drivers/media/video/zr36016.c
+1
-2
drivers/media/video/zr36050.c
drivers/media/video/zr36050.c
+1
-2
drivers/media/video/zr36060.c
drivers/media/video/zr36060.c
+1
-2
include/media/tuner.h
include/media/tuner.h
+2
-2
include/media/v4l2-common.h
include/media/v4l2-common.h
+1
-2
未找到文件。
Documentation/video4linux/CARDLIST.bttv
浏览文件 @
593195f9
...
...
@@ -142,3 +142,4 @@
141 -> Asound Skyeye PCTV
142 -> Sabrent TV-FM (bttv version)
143 -> Hauppauge ImpactVCB (bt878) [0070:13eb]
144 -> MagicTV
Documentation/video4linux/CARDLIST.cx88
浏览文件 @
593195f9
...
...
@@ -19,7 +19,7 @@
18 -> Hauppauge Nova-T DVB-T [0070:9002,0070:9001]
19 -> Conexant DVB-T reference design [14f1:0187]
20 -> Provideo PV259 [1540:2580]
21 -> DViCO FusionHDTV DVB-T Plus [18ac:db10]
21 -> DViCO FusionHDTV DVB-T Plus [18ac:db10
,18ac:db11
]
22 -> pcHDTV HD3000 HDTV [7063:3000]
23 -> digitalnow DNTV Live! DVB-T [17de:a8a6]
24 -> Hauppauge WinTV 28xxx (Roslyn) models [0070:2801]
...
...
drivers/media/common/saa7146_core.c
浏览文件 @
593195f9
...
...
@@ -109,10 +109,9 @@ static struct scatterlist* vmalloc_to_sg(unsigned char *virt, int nr_pages)
struct
page
*
pg
;
int
i
;
sglist
=
k
malloc
(
sizeof
(
struct
scatterlist
)
*
nr_pages
,
GFP_KERNEL
);
sglist
=
k
calloc
(
nr_pages
,
sizeof
(
struct
scatterlist
)
,
GFP_KERNEL
);
if
(
NULL
==
sglist
)
return
NULL
;
memset
(
sglist
,
0
,
sizeof
(
struct
scatterlist
)
*
nr_pages
);
for
(
i
=
0
;
i
<
nr_pages
;
i
++
,
virt
+=
PAGE_SIZE
)
{
pg
=
vmalloc_to_page
(
virt
);
if
(
NULL
==
pg
)
...
...
@@ -306,15 +305,13 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent
struct
saa7146_dev
*
dev
;
int
err
=
-
ENOMEM
;
dev
=
kmalloc
(
sizeof
(
struct
saa7146_dev
),
GFP_KERNEL
);
/* clear out mem for sure */
dev
=
kzalloc
(
sizeof
(
struct
saa7146_dev
),
GFP_KERNEL
);
if
(
!
dev
)
{
ERR
((
"out of memory.
\n
"
));
goto
out
;
}
/* clear out mem for sure */
memset
(
dev
,
0x0
,
sizeof
(
struct
saa7146_dev
));
DEB_EE
((
"pci:%p
\n
"
,
pci
));
err
=
pci_enable_device
(
pci
);
...
...
drivers/media/common/saa7146_fops.c
浏览文件 @
593195f9
...
...
@@ -239,13 +239,12 @@ static int fops_open(struct inode *inode, struct file *file)
}
/* allocate per open data */
fh
=
k
m
alloc
(
sizeof
(
*
fh
),
GFP_KERNEL
);
fh
=
k
z
alloc
(
sizeof
(
*
fh
),
GFP_KERNEL
);
if
(
NULL
==
fh
)
{
DEB_S
((
"cannot allocate memory for per open data.
\n
"
));
result
=
-
ENOMEM
;
goto
out
;
}
memset
(
fh
,
0
,
sizeof
(
*
fh
));
file
->
private_data
=
fh
;
fh
->
dev
=
dev
;
...
...
@@ -464,12 +463,11 @@ static struct video_device device_template =
int
saa7146_vv_init
(
struct
saa7146_dev
*
dev
,
struct
saa7146_ext_vv
*
ext_vv
)
{
struct
saa7146_vv
*
vv
=
k
m
alloc
(
sizeof
(
struct
saa7146_vv
),
GFP_KERNEL
);
struct
saa7146_vv
*
vv
=
k
z
alloc
(
sizeof
(
struct
saa7146_vv
),
GFP_KERNEL
);
if
(
NULL
==
vv
)
{
ERR
((
"out of memory. aborting.
\n
"
));
return
-
1
;
}
memset
(
vv
,
0x0
,
sizeof
(
*
vv
));
DEB_EE
((
"dev:%p
\n
"
,
dev
));
...
...
drivers/media/dvb/b2c2/flexcop.c
浏览文件 @
593195f9
...
...
@@ -220,20 +220,18 @@ EXPORT_SYMBOL(flexcop_reset_block_300);
struct
flexcop_device
*
flexcop_device_kmalloc
(
size_t
bus_specific_len
)
{
void
*
bus
;
struct
flexcop_device
*
fc
=
k
m
alloc
(
sizeof
(
struct
flexcop_device
),
GFP_KERNEL
);
struct
flexcop_device
*
fc
=
k
z
alloc
(
sizeof
(
struct
flexcop_device
),
GFP_KERNEL
);
if
(
!
fc
)
{
err
(
"no memory"
);
return
NULL
;
}
memset
(
fc
,
0
,
sizeof
(
struct
flexcop_device
));
bus
=
k
m
alloc
(
bus_specific_len
,
GFP_KERNEL
);
bus
=
k
z
alloc
(
bus_specific_len
,
GFP_KERNEL
);
if
(
!
bus
)
{
err
(
"no memory"
);
kfree
(
fc
);
return
NULL
;
}
memset
(
bus
,
0
,
bus_specific_len
);
fc
->
bus_specific
=
bus
;
...
...
drivers/media/dvb/bt8xx/dvb-bt8xx.c
浏览文件 @
593195f9
...
...
@@ -786,10 +786,9 @@ static int dvb_bt8xx_probe(struct device *dev)
struct
pci_dev
*
bttv_pci_dev
;
int
ret
;
if
(
!
(
card
=
k
m
alloc
(
sizeof
(
struct
dvb_bt8xx_card
),
GFP_KERNEL
)))
if
(
!
(
card
=
k
z
alloc
(
sizeof
(
struct
dvb_bt8xx_card
),
GFP_KERNEL
)))
return
-
ENOMEM
;
memset
(
card
,
0
,
sizeof
(
*
card
));
init_MUTEX
(
&
card
->
lock
);
card
->
bttv_nr
=
sub
->
core
->
nr
;
strncpy
(
card
->
card_name
,
sub
->
core
->
name
,
sizeof
(
sub
->
core
->
name
));
...
...
drivers/media/dvb/dvb-core/dvb_ca_en50221.c
浏览文件 @
593195f9
...
...
@@ -1649,21 +1649,17 @@ int dvb_ca_en50221_init(struct dvb_adapter *dvb_adapter,
return
-
EINVAL
;
/* initialise the system data */
if
((
ca
=
(
struct
dvb_ca_private
*
)
kmalloc
(
sizeof
(
struct
dvb_ca_private
),
GFP_KERNEL
))
==
NULL
)
{
if
((
ca
=
kzalloc
(
sizeof
(
struct
dvb_ca_private
),
GFP_KERNEL
))
==
NULL
)
{
ret
=
-
ENOMEM
;
goto
error
;
}
memset
(
ca
,
0
,
sizeof
(
struct
dvb_ca_private
));
ca
->
pub
=
pubca
;
ca
->
flags
=
flags
;
ca
->
slot_count
=
slot_count
;
if
((
ca
->
slot_info
=
k
malloc
(
sizeof
(
struct
dvb_ca_slot
)
*
slot_count
,
GFP_KERNEL
))
==
NULL
)
{
if
((
ca
->
slot_info
=
k
calloc
(
slot_count
,
sizeof
(
struct
dvb_ca_slot
)
,
GFP_KERNEL
))
==
NULL
)
{
ret
=
-
ENOMEM
;
goto
error
;
}
memset
(
ca
->
slot_info
,
0
,
sizeof
(
struct
dvb_ca_slot
)
*
slot_count
);
init_waitqueue_head
(
&
ca
->
wait_queue
);
ca
->
thread_pid
=
0
;
init_waitqueue_head
(
&
ca
->
thread_queue
);
...
...
drivers/media/dvb/dvb-core/dvb_frontend.c
浏览文件 @
593195f9
...
...
@@ -1024,13 +1024,12 @@ int dvb_register_frontend(struct dvb_adapter* dvb,
if
(
down_interruptible
(
&
frontend_mutex
))
return
-
ERESTARTSYS
;
fe
->
frontend_priv
=
k
m
alloc
(
sizeof
(
struct
dvb_frontend_private
),
GFP_KERNEL
);
fe
->
frontend_priv
=
k
z
alloc
(
sizeof
(
struct
dvb_frontend_private
),
GFP_KERNEL
);
if
(
fe
->
frontend_priv
==
NULL
)
{
up
(
&
frontend_mutex
);
return
-
ENOMEM
;
}
fepriv
=
fe
->
frontend_priv
;
memset
(
fe
->
frontend_priv
,
0
,
sizeof
(
struct
dvb_frontend_private
));
init_MUTEX
(
&
fepriv
->
sem
);
init_waitqueue_head
(
&
fepriv
->
wait_queue
);
...
...
drivers/media/dvb/dvb-usb/cxusb.c
浏览文件 @
593195f9
...
...
@@ -253,6 +253,26 @@ static int cxusb_dee1601_demod_init(struct dvb_frontend* fe)
return
0
;
}
static
int
cxusb_mt352_demod_init
(
struct
dvb_frontend
*
fe
)
{
/* used in both lgz201 and th7579 */
static
u8
clock_config
[]
=
{
CLOCK_CTL
,
0x38
,
0x39
};
static
u8
reset
[]
=
{
RESET
,
0x80
};
static
u8
adc_ctl_1_cfg
[]
=
{
ADC_CTL_1
,
0x40
};
static
u8
agc_cfg
[]
=
{
AGC_TARGET
,
0x24
,
0x20
};
static
u8
gpp_ctl_cfg
[]
=
{
GPP_CTL
,
0x33
};
static
u8
capt_range_cfg
[]
=
{
CAPT_RANGE
,
0x32
};
mt352_write
(
fe
,
clock_config
,
sizeof
(
clock_config
));
udelay
(
200
);
mt352_write
(
fe
,
reset
,
sizeof
(
reset
));
mt352_write
(
fe
,
adc_ctl_1_cfg
,
sizeof
(
adc_ctl_1_cfg
));
mt352_write
(
fe
,
agc_cfg
,
sizeof
(
agc_cfg
));
mt352_write
(
fe
,
gpp_ctl_cfg
,
sizeof
(
gpp_ctl_cfg
));
mt352_write
(
fe
,
capt_range_cfg
,
sizeof
(
capt_range_cfg
));
return
0
;
}
struct
cx22702_config
cxusb_cx22702_config
=
{
.
demod_address
=
0x63
,
...
...
@@ -274,6 +294,13 @@ struct mt352_config cxusb_dee1601_config = {
.
pll_set
=
dvb_usb_pll_set
,
};
struct
mt352_config
cxusb_mt352_config
=
{
/* used in both lgz201 and th7579 */
.
demod_address
=
0x0f
,
.
demod_init
=
cxusb_mt352_demod_init
,
.
pll_set
=
dvb_usb_pll_set
,
};
/* Callbacks for DVB USB */
static
int
cxusb_fmd1216me_tuner_attach
(
struct
dvb_usb_device
*
d
)
{
...
...
@@ -302,6 +329,20 @@ static int cxusb_dee1601_tuner_attach(struct dvb_usb_device *d)
return
0
;
}
static
int
cxusb_lgz201_tuner_attach
(
struct
dvb_usb_device
*
d
)
{
d
->
pll_addr
=
0x61
;
d
->
pll_desc
=
&
dvb_pll_lg_z201
;
return
0
;
}
static
int
cxusb_dtt7579_tuner_attach
(
struct
dvb_usb_device
*
d
)
{
d
->
pll_addr
=
0x60
;
d
->
pll_desc
=
&
dvb_pll_thomson_dtt7579
;
return
0
;
}
static
int
cxusb_cx22702_frontend_attach
(
struct
dvb_usb_device
*
d
)
{
u8
b
;
...
...
@@ -329,6 +370,19 @@ static int cxusb_lgdt330x_frontend_attach(struct dvb_usb_device *d)
return
-
EIO
;
}
static
int
cxusb_mt352_frontend_attach
(
struct
dvb_usb_device
*
d
)
{
/* used in both lgz201 and th7579 */
if
(
usb_set_interface
(
d
->
udev
,
0
,
0
)
<
0
)
err
(
"set interface failed"
);
cxusb_ctrl_msg
(
d
,
CMD_DIGITAL
,
NULL
,
0
,
NULL
,
0
);
if
((
d
->
fe
=
mt352_attach
(
&
cxusb_mt352_config
,
&
d
->
i2c_adap
))
!=
NULL
)
return
0
;
return
-
EIO
;
}
static
int
cxusb_dee1601_frontend_attach
(
struct
dvb_usb_device
*
d
)
{
if
(
usb_set_interface
(
d
->
udev
,
0
,
0
)
<
0
)
...
...
@@ -370,13 +424,17 @@ static int bluebird_patch_dvico_firmware_download(struct usb_device *udev, const
static
struct
dvb_usb_properties
cxusb_medion_properties
;
static
struct
dvb_usb_properties
cxusb_bluebird_lgh064f_properties
;
static
struct
dvb_usb_properties
cxusb_bluebird_dee1601_properties
;
static
struct
dvb_usb_properties
cxusb_bluebird_lgz201_properties
;
static
struct
dvb_usb_properties
cxusb_bluebird_dtt7579_properties
;
static
int
cxusb_probe
(
struct
usb_interface
*
intf
,
const
struct
usb_device_id
*
id
)
{
if
(
dvb_usb_device_init
(
intf
,
&
cxusb_medion_properties
,
THIS_MODULE
,
NULL
)
==
0
||
dvb_usb_device_init
(
intf
,
&
cxusb_bluebird_lgh064f_properties
,
THIS_MODULE
,
NULL
)
==
0
||
dvb_usb_device_init
(
intf
,
&
cxusb_bluebird_dee1601_properties
,
THIS_MODULE
,
NULL
)
==
0
)
{
dvb_usb_device_init
(
intf
,
&
cxusb_bluebird_dee1601_properties
,
THIS_MODULE
,
NULL
)
==
0
||
dvb_usb_device_init
(
intf
,
&
cxusb_bluebird_lgz201_properties
,
THIS_MODULE
,
NULL
)
==
0
||
dvb_usb_device_init
(
intf
,
&
cxusb_bluebird_dtt7579_properties
,
THIS_MODULE
,
NULL
)
==
0
)
{
return
0
;
}
...
...
@@ -389,6 +447,12 @@ static struct usb_device_id cxusb_table [] = {
{
USB_DEVICE
(
USB_VID_DVICO
,
USB_PID_DVICO_BLUEBIRD_LG064F_WARM
)
},
{
USB_DEVICE
(
USB_VID_DVICO
,
USB_PID_DVICO_BLUEBIRD_DEE1601_COLD
)
},
{
USB_DEVICE
(
USB_VID_DVICO
,
USB_PID_DVICO_BLUEBIRD_DEE1601_WARM
)
},
{
USB_DEVICE
(
USB_VID_DVICO
,
USB_PID_DVICO_BLUEBIRD_LGZ201_COLD
)
},
{
USB_DEVICE
(
USB_VID_DVICO
,
USB_PID_DVICO_BLUEBIRD_LGZ201_WARM
)
},
{
USB_DEVICE
(
USB_VID_DVICO
,
USB_PID_DVICO_BLUEBIRD_TH7579_COLD
)
},
{
USB_DEVICE
(
USB_VID_DVICO
,
USB_PID_DVICO_BLUEBIRD_TH7579_WARM
)
},
{
USB_DEVICE
(
USB_VID_DVICO
,
USB_PID_DIGITALNOW_BLUEBIRD_DEE1601_COLD
)
},
{
USB_DEVICE
(
USB_VID_DVICO
,
USB_PID_DIGITALNOW_BLUEBIRD_DEE1601_WARM
)
},
{}
/* Terminating entry */
};
MODULE_DEVICE_TABLE
(
usb
,
cxusb_table
);
...
...
@@ -505,12 +569,96 @@ static struct dvb_usb_properties cxusb_bluebird_dee1601_properties = {
}
},
.
num_device_descs
=
1
,
.
num_device_descs
=
2
,
.
devices
=
{
{
"DViCO FusionHDTV DVB-T Dual USB"
,
{
&
cxusb_table
[
3
],
NULL
},
{
&
cxusb_table
[
4
],
NULL
},
},
{
"DigitalNow DVB-T Dual USB"
,
{
&
cxusb_table
[
9
],
NULL
},
{
&
cxusb_table
[
10
],
NULL
},
},
}
};
static
struct
dvb_usb_properties
cxusb_bluebird_lgz201_properties
=
{
.
caps
=
DVB_USB_IS_AN_I2C_ADAPTER
,
.
usb_ctrl
=
DEVICE_SPECIFIC
,
.
firmware
=
"dvb-usb-bluebird-01.fw"
,
.
download_firmware
=
bluebird_patch_dvico_firmware_download
,
/* use usb alt setting 0 for EP4 transfer (dvb-t),
use usb alt setting 7 for EP2 transfer (atsc) */
.
size_of_priv
=
sizeof
(
struct
cxusb_state
),
.
streaming_ctrl
=
cxusb_streaming_ctrl
,
.
power_ctrl
=
cxusb_power_ctrl
,
.
frontend_attach
=
cxusb_mt352_frontend_attach
,
.
tuner_attach
=
cxusb_lgz201_tuner_attach
,
.
i2c_algo
=
&
cxusb_i2c_algo
,
.
generic_bulk_ctrl_endpoint
=
0x01
,
/* parameter for the MPEG2-data transfer */
.
urb
=
{
.
type
=
DVB_USB_BULK
,
.
count
=
5
,
.
endpoint
=
0x04
,
.
u
=
{
.
bulk
=
{
.
buffersize
=
8192
,
}
}
},
.
num_device_descs
=
1
,
.
devices
=
{
{
"DViCO FusionHDTV DVB-T USB (LGZ201)"
,
{
&
cxusb_table
[
5
],
NULL
},
{
&
cxusb_table
[
6
],
NULL
},
},
}
};
static
struct
dvb_usb_properties
cxusb_bluebird_dtt7579_properties
=
{
.
caps
=
DVB_USB_IS_AN_I2C_ADAPTER
,
.
usb_ctrl
=
DEVICE_SPECIFIC
,
.
firmware
=
"dvb-usb-bluebird-01.fw"
,
.
download_firmware
=
bluebird_patch_dvico_firmware_download
,
/* use usb alt setting 0 for EP4 transfer (dvb-t),
use usb alt setting 7 for EP2 transfer (atsc) */
.
size_of_priv
=
sizeof
(
struct
cxusb_state
),
.
streaming_ctrl
=
cxusb_streaming_ctrl
,
.
power_ctrl
=
cxusb_power_ctrl
,
.
frontend_attach
=
cxusb_mt352_frontend_attach
,
.
tuner_attach
=
cxusb_dtt7579_tuner_attach
,
.
i2c_algo
=
&
cxusb_i2c_algo
,
.
generic_bulk_ctrl_endpoint
=
0x01
,
/* parameter for the MPEG2-data transfer */
.
urb
=
{
.
type
=
DVB_USB_BULK
,
.
count
=
5
,
.
endpoint
=
0x04
,
.
u
=
{
.
bulk
=
{
.
buffersize
=
8192
,
}
}
},
.
num_device_descs
=
1
,
.
devices
=
{
{
"DViCO FusionHDTV DVB-T USB (TH7579)"
,
{
&
cxusb_table
[
7
],
NULL
},
{
&
cxusb_table
[
8
],
NULL
},
},
}
};
...
...
drivers/media/dvb/dvb-usb/dtt200u-fe.c
浏览文件 @
593195f9
...
...
@@ -156,10 +156,9 @@ struct dvb_frontend* dtt200u_fe_attach(struct dvb_usb_device *d)
struct
dtt200u_fe_state
*
state
=
NULL
;
/* allocate memory for the internal state */
state
=
(
struct
dtt200u_fe_state
*
)
km
alloc
(
sizeof
(
struct
dtt200u_fe_state
),
GFP_KERNEL
);
state
=
kz
alloc
(
sizeof
(
struct
dtt200u_fe_state
),
GFP_KERNEL
);
if
(
state
==
NULL
)
goto
error
;
memset
(
state
,
0
,
sizeof
(
struct
dtt200u_fe_state
));
deb_info
(
"attaching frontend dtt200u
\n
"
);
...
...
drivers/media/dvb/dvb-usb/dvb-usb-ids.h
浏览文件 @
593195f9
...
...
@@ -95,6 +95,8 @@
#define USB_PID_DVICO_BLUEBIRD_TH7579_WARM 0xdb11
#define USB_PID_DVICO_BLUEBIRD_DEE1601_COLD 0xdb50
#define USB_PID_DVICO_BLUEBIRD_DEE1601_WARM 0xdb51
#define USB_PID_DIGITALNOW_BLUEBIRD_DEE1601_COLD 0xdb54
#define USB_PID_DIGITALNOW_BLUEBIRD_DEE1601_WARM 0xdb55
#define USB_PID_MEDION_MD95700 0x0932
#define USB_PID_KYE_DVB_T_COLD 0x701e
#define USB_PID_KYE_DVB_T_WARM 0x701f
...
...
drivers/media/dvb/dvb-usb/dvb-usb-init.c
浏览文件 @
593195f9
...
...
@@ -154,12 +154,11 @@ int dvb_usb_device_init(struct usb_interface *intf, struct dvb_usb_properties
}
info
(
"found a '%s' in warm state."
,
desc
->
name
);
d
=
km
alloc
(
sizeof
(
struct
dvb_usb_device
),
GFP_KERNEL
);
d
=
kz
alloc
(
sizeof
(
struct
dvb_usb_device
),
GFP_KERNEL
);
if
(
d
==
NULL
)
{
err
(
"no memory for 'struct dvb_usb_device'"
);
return
ret
;
}
memset
(
d
,
0
,
sizeof
(
struct
dvb_usb_device
));
d
->
udev
=
udev
;
memcpy
(
&
d
->
props
,
props
,
sizeof
(
struct
dvb_usb_properties
));
...
...
@@ -167,13 +166,12 @@ int dvb_usb_device_init(struct usb_interface *intf, struct dvb_usb_properties
d
->
owner
=
owner
;
if
(
d
->
props
.
size_of_priv
>
0
)
{
d
->
priv
=
km
alloc
(
d
->
props
.
size_of_priv
,
GFP_KERNEL
);
d
->
priv
=
kz
alloc
(
d
->
props
.
size_of_priv
,
GFP_KERNEL
);
if
(
d
->
priv
==
NULL
)
{
err
(
"no memory for priv in 'struct dvb_usb_device'"
);
kfree
(
d
);
return
-
ENOMEM
;
}
memset
(
d
->
priv
,
0
,
d
->
props
.
size_of_priv
);
}
usb_set_intfdata
(
intf
,
d
);
...
...
drivers/media/dvb/dvb-usb/dvb-usb-urb.c
浏览文件 @
593195f9
...
...
@@ -175,15 +175,13 @@ static int dvb_usb_allocate_stream_buffers(struct dvb_usb_device *d, int num, un
deb_mem
(
"all in all I will use %lu bytes for streaming
\n
"
,
num
*
size
);
if
((
d
->
buf_list
=
k
malloc
(
num
*
sizeof
(
u8
*
),
GFP_ATOMIC
))
==
NULL
)
if
((
d
->
buf_list
=
k
calloc
(
num
,
sizeof
(
u8
*
),
GFP_ATOMIC
))
==
NULL
)
return
-
ENOMEM
;
if
((
d
->
dma_addr
=
k
malloc
(
num
*
sizeof
(
dma_addr_t
),
GFP_ATOMIC
))
==
NULL
)
{
if
((
d
->
dma_addr
=
k
calloc
(
num
,
sizeof
(
dma_addr_t
),
GFP_ATOMIC
))
==
NULL
)
{
kfree
(
d
->
buf_list
);
return
-
ENOMEM
;
}
memset
(
d
->
buf_list
,
0
,
num
*
sizeof
(
u8
*
));
memset
(
d
->
dma_addr
,
0
,
num
*
sizeof
(
dma_addr_t
));
d
->
state
|=
DVB_USB_STATE_URB_BUF
;
...
...
@@ -285,10 +283,9 @@ int dvb_usb_urb_init(struct dvb_usb_device *d)
usb_clear_halt
(
d
->
udev
,
usb_rcvbulkpipe
(
d
->
udev
,
d
->
props
.
urb
.
endpoint
));
/* allocate the array for the data transfer URBs */
d
->
urb_list
=
k
m
alloc
(
d
->
props
.
urb
.
count
*
sizeof
(
struct
urb
*
),
GFP_KERNEL
);
d
->
urb_list
=
k
z
alloc
(
d
->
props
.
urb
.
count
*
sizeof
(
struct
urb
*
),
GFP_KERNEL
);
if
(
d
->
urb_list
==
NULL
)
return
-
ENOMEM
;
memset
(
d
->
urb_list
,
0
,
d
->
props
.
urb
.
count
*
sizeof
(
struct
urb
*
));
d
->
state
|=
DVB_USB_STATE_URB_LIST
;
switch
(
d
->
props
.
urb
.
type
)
{
...
...
drivers/media/dvb/dvb-usb/vp702x-fe.c
浏览文件 @
593195f9
...
...
@@ -281,10 +281,9 @@ static struct dvb_frontend_ops vp702x_fe_ops;
struct
dvb_frontend
*
vp702x_fe_attach
(
struct
dvb_usb_device
*
d
)
{
struct
vp702x_fe_state
*
s
=
k
m
alloc
(
sizeof
(
struct
vp702x_fe_state
),
GFP_KERNEL
);
struct
vp702x_fe_state
*
s
=
k
z
alloc
(
sizeof
(
struct
vp702x_fe_state
),
GFP_KERNEL
);
if
(
s
==
NULL
)
goto
error
;
memset
(
s
,
0
,
sizeof
(
struct
vp702x_fe_state
));
s
->
d
=
d
;
s
->
fe
.
ops
=
&
vp702x_fe_ops
;
...
...
drivers/media/dvb/dvb-usb/vp7045-fe.c
浏览文件 @
593195f9
...
...
@@ -145,10 +145,9 @@ static struct dvb_frontend_ops vp7045_fe_ops;
struct
dvb_frontend
*
vp7045_fe_attach
(
struct
dvb_usb_device
*
d
)
{
struct
vp7045_fe_state
*
s
=
k
m
alloc
(
sizeof
(
struct
vp7045_fe_state
),
GFP_KERNEL
);
struct
vp7045_fe_state
*
s
=
k
z
alloc
(
sizeof
(
struct
vp7045_fe_state
),
GFP_KERNEL
);
if
(
s
==
NULL
)
goto
error
;
memset
(
s
,
0
,
sizeof
(
struct
vp7045_fe_state
));
s
->
d
=
d
;
s
->
fe
.
ops
=
&
vp7045_fe_ops
;
...
...
drivers/media/dvb/frontends/bcm3510.c
浏览文件 @
593195f9
...
...
@@ -782,10 +782,9 @@ struct dvb_frontend* bcm3510_attach(const struct bcm3510_config *config,
bcm3510_register_value
v
;
/* allocate memory for the internal state */
state
=
k
m
alloc
(
sizeof
(
struct
bcm3510_state
),
GFP_KERNEL
);
state
=
k
z
alloc
(
sizeof
(
struct
bcm3510_state
),
GFP_KERNEL
);
if
(
state
==
NULL
)
goto
error
;
memset
(
state
,
0
,
sizeof
(
struct
bcm3510_state
));
/* setup the state */
...
...
drivers/media/dvb/frontends/dib3000mb.c
浏览文件 @
593195f9
...
...
@@ -700,10 +700,9 @@ struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config,
struct
dib3000_state
*
state
=
NULL
;
/* allocate memory for the internal state */
state
=
k
m
alloc
(
sizeof
(
struct
dib3000_state
),
GFP_KERNEL
);
state
=
k
z
alloc
(
sizeof
(
struct
dib3000_state
),
GFP_KERNEL
);
if
(
state
==
NULL
)
goto
error
;
memset
(
state
,
0
,
sizeof
(
struct
dib3000_state
));
/* setup the state */
state
->
i2c
=
i2c
;
...
...
drivers/media/dvb/frontends/dib3000mc.c
浏览文件 @
593195f9
...
...
@@ -832,10 +832,9 @@ struct dvb_frontend* dib3000mc_attach(const struct dib3000_config* config,
u16
devid
;
/* allocate memory for the internal state */
state
=
k
m
alloc
(
sizeof
(
struct
dib3000_state
),
GFP_KERNEL
);
state
=
k
z
alloc
(
sizeof
(
struct
dib3000_state
),
GFP_KERNEL
);
if
(
state
==
NULL
)
goto
error
;
memset
(
state
,
0
,
sizeof
(
struct
dib3000_state
));
/* setup the state */
state
->
i2c
=
i2c
;
...
...
drivers/media/dvb/frontends/dvb-pll.c
浏览文件 @
593195f9
...
...
@@ -345,6 +345,23 @@ struct dvb_pll_desc dvb_pll_tbmv30111in = {
};
EXPORT_SYMBOL
(
dvb_pll_tbmv30111in
);
/*
* Philips SD1878 Tuner.
*/
struct
dvb_pll_desc
dvb_pll_philips_sd1878_tda8261
=
{
.
name
=
"Philips SD1878"
,
.
min
=
950000
,
.
max
=
2150000
,
.
count
=
4
,
.
entries
=
{
{
1250000
,
499
,
500
,
0xc4
,
0x00
},
{
1550000
,
499
,
500
,
0xc4
,
0x40
},
{
2050000
,
499
,
500
,
0xc4
,
0x80
},
{
2150000
,
499
,
500
,
0xc4
,
0xc0
},
},
};
EXPORT_SYMBOL
(
dvb_pll_philips_sd1878_tda8261
);
/* ----------------------------------------------------------- */
/* code */
...
...
drivers/media/dvb/frontends/dvb-pll.h
浏览文件 @
593195f9
...
...
@@ -39,6 +39,7 @@ extern struct dvb_pll_desc dvb_pll_tded4;
extern
struct
dvb_pll_desc
dvb_pll_tuv1236d
;
extern
struct
dvb_pll_desc
dvb_pll_tdhu2
;
extern
struct
dvb_pll_desc
dvb_pll_tbmv30111in
;
extern
struct
dvb_pll_desc
dvb_pll_philips_sd1878_tda8261
;
int
dvb_pll_configure
(
struct
dvb_pll_desc
*
desc
,
u8
*
buf
,
u32
freq
,
int
bandwidth
);
...
...
drivers/media/dvb/frontends/lgdt330x.c
浏览文件 @
593195f9
...
...
@@ -714,10 +714,9 @@ struct dvb_frontend* lgdt330x_attach(const struct lgdt330x_config* config,
u8
buf
[
1
];
/* Allocate memory for the internal state */
state
=
(
struct
lgdt330x_state
*
)
km
alloc
(
sizeof
(
struct
lgdt330x_state
),
GFP_KERNEL
);
state
=
kz
alloc
(
sizeof
(
struct
lgdt330x_state
),
GFP_KERNEL
);
if
(
state
==
NULL
)
goto
error
;
memset
(
state
,
0
,
sizeof
(
*
state
));
/* Setup the state */
state
->
config
=
config
;
...
...
drivers/media/dvb/frontends/mt352.c
浏览文件 @
593195f9
...
...
@@ -535,9 +535,8 @@ struct dvb_frontend* mt352_attach(const struct mt352_config* config,
struct
mt352_state
*
state
=
NULL
;
/* allocate memory for the internal state */
state
=
k
m
alloc
(
sizeof
(
struct
mt352_state
),
GFP_KERNEL
);
state
=
k
z
alloc
(
sizeof
(
struct
mt352_state
),
GFP_KERNEL
);
if
(
state
==
NULL
)
goto
error
;
memset
(
state
,
0
,
sizeof
(
*
state
));
/* setup the state */
state
->
i2c
=
i2c
;
...
...
drivers/media/dvb/frontends/nxt200x.c
浏览文件 @
593195f9
...
...
@@ -1110,10 +1110,9 @@ struct dvb_frontend* nxt200x_attach(const struct nxt200x_config* config,
u8
buf
[]
=
{
0
,
0
,
0
,
0
,
0
};
/* allocate memory for the internal state */
state
=
(
struct
nxt200x_state
*
)
km
alloc
(
sizeof
(
struct
nxt200x_state
),
GFP_KERNEL
);
state
=
kz
alloc
(
sizeof
(
struct
nxt200x_state
),
GFP_KERNEL
);
if
(
state
==
NULL
)
goto
error
;
memset
(
state
,
0
,
sizeof
(
*
state
));
/* setup the state */
state
->
config
=
config
;
...
...
drivers/media/dvb/pluto2/pluto2.c
浏览文件 @
593195f9
...
...
@@ -584,11 +584,10 @@ static int __devinit pluto2_probe(struct pci_dev *pdev,
struct
dmx_demux
*
dmx
;
int
ret
=
-
ENOMEM
;
pluto
=
k
m
alloc
(
sizeof
(
struct
pluto
),
GFP_KERNEL
);
pluto
=
k
z
alloc
(
sizeof
(
struct
pluto
),
GFP_KERNEL
);
if
(
!
pluto
)
goto
out
;
memset
(
pluto
,
0
,
sizeof
(
struct
pluto
));
pluto
->
pdev
=
pdev
;
ret
=
pci_enable_device
(
pdev
);
...
...
drivers/media/dvb/ttpci/av7110.c
浏览文件 @
593195f9
...
...
@@ -2565,14 +2565,12 @@ static int av7110_attach(struct saa7146_dev* dev, struct saa7146_pci_extension_d
}
/* prepare the av7110 device struct */
av7110
=
k
m
alloc
(
sizeof
(
struct
av7110
),
GFP_KERNEL
);
av7110
=
k
z
alloc
(
sizeof
(
struct
av7110
),
GFP_KERNEL
);
if
(
!
av7110
)
{
dprintk
(
1
,
"out of memory
\n
"
);
return
-
ENOMEM
;
}
memset
(
av7110
,
0
,
sizeof
(
struct
av7110
));
av7110
->
card_name
=
(
char
*
)
pci_ext
->
ext_priv
;
av7110
->
dev
=
dev
;
dev
->
ext_priv
=
av7110
;
...
...
drivers/media/dvb/ttpci/budget-av.c
浏览文件 @
593195f9
...
...
@@ -37,6 +37,7 @@
#include "stv0299.h"
#include "tda10021.h"
#include "tda1004x.h"
#include "dvb-pll.h"
#include <media/saa7146_vv.h>
#include <linux/module.h>
#include <linux/errno.h>
...
...
@@ -864,8 +865,117 @@ static struct tda1004x_config philips_tu1216_config = {
.
request_firmware
=
philips_tu1216_request_firmware
,
};
static
u8
philips_sd1878_inittab
[]
=
{
0x01
,
0x15
,
0x02
,
0x30
,
0x03
,
0x00
,
0x04
,
0x7d
,
0x05
,
0x35
,
0x06
,
0x40
,
0x07
,
0x00
,
0x08
,
0x43
,
0x09
,
0x02
,
0x0C
,
0x51
,
0x0D
,
0x82
,
0x0E
,
0x23
,
0x10
,
0x3f
,
0x11
,
0x84
,
0x12
,
0xb9
,
0x15
,
0xc9
,
0x16
,
0x19
,
0x17
,
0x8c
,
0x18
,
0x59
,
0x19
,
0xf8
,
0x1a
,
0xfe
,
0x1c
,
0x7f
,
0x1d
,
0x00
,
0x1e
,
0x00
,
0x1f
,
0x50
,
0x20
,
0x00
,
0x21
,
0x00
,
0x22
,
0x00
,
0x23
,
0x00
,
0x28
,
0x00
,
0x29
,
0x28
,
0x2a
,
0x14
,
0x2b
,
0x0f
,
0x2c
,
0x09
,
0x2d
,
0x09
,
0x31
,
0x1f
,
0x32
,
0x19
,
0x33
,
0xfc
,
0x34
,
0x93
,
0xff
,
0xff
};
static
int
philips_sd1878_tda8261_pll_set
(
struct
dvb_frontend
*
fe
,
struct
i2c_adapter
*
i2c
,
struct
dvb_frontend_parameters
*
params
)
{
u8
buf
[
4
];
int
rc
;
struct
i2c_msg
tuner_msg
=
{.
addr
=
0x60
,.
flags
=
0
,.
buf
=
buf
,.
len
=
sizeof
(
buf
)};
if
((
params
->
frequency
<
950000
)
||
(
params
->
frequency
>
2150000
))
return
-
EINVAL
;
rc
=
dvb_pll_configure
(
&
dvb_pll_philips_sd1878_tda8261
,
buf
,
params
->
frequency
,
0
);
if
(
rc
<
0
)
return
rc
;
if
(
i2c_transfer
(
i2c
,
&
tuner_msg
,
1
)
!=
1
)
return
-
EIO
;
return
0
;
}
static
int
philips_sd1878_ci_set_symbol_rate
(
struct
dvb_frontend
*
fe
,
u32
srate
,
u32
ratio
)
{
u8
aclk
=
0
;
u8
bclk
=
0
;
u8
m1
;
aclk
=
0xb5
;
if
(
srate
<
2000000
)
bclk
=
0x86
;
else
if
(
srate
<
5000000
)
bclk
=
0x89
;
else
if
(
srate
<
15000000
)
bclk
=
0x8f
;
else
if
(
srate
<
45000000
)
bclk
=
0x95
;
m1
=
0x14
;
if
(
srate
<
4000000
)
m1
=
0x10
;
stv0299_writereg
(
fe
,
0x0e
,
0x23
);
stv0299_writereg
(
fe
,
0x0f
,
0x94
);
stv0299_writereg
(
fe
,
0x10
,
0x39
);
stv0299_writereg
(
fe
,
0x13
,
aclk
);
stv0299_writereg
(
fe
,
0x14
,
bclk
);
stv0299_writereg
(
fe
,
0x15
,
0xc9
);
stv0299_writereg
(
fe
,
0x1f
,
(
ratio
>>
16
)
&
0xff
);
stv0299_writereg
(
fe
,
0x20
,
(
ratio
>>
8
)
&
0xff
);
stv0299_writereg
(
fe
,
0x21
,
(
ratio
)
&
0xf0
);
stv0299_writereg
(
fe
,
0x0f
,
0x80
|
m1
);
return
0
;
}
static
struct
stv0299_config
philips_sd1878_config
=
{
.
demod_address
=
0x68
,
.
inittab
=
philips_sd1878_inittab
,
.
mclk
=
88000000UL
,
.
invert
=
0
,
.
skip_reinit
=
0
,
.
lock_output
=
STV0229_LOCKOUTPUT_1
,
.
volt13_op0_op1
=
STV0299_VOLT13_OP0
,
.
min_delay_ms
=
100
,
.
set_symbol_rate
=
philips_sd1878_ci_set_symbol_rate
,
.
pll_set
=
philips_sd1878_tda8261_pll_set
,
};
static
u8
read_pwm
(
struct
budget_av
*
budget_av
)
{
...
...
@@ -886,7 +996,10 @@ static u8 read_pwm(struct budget_av *budget_av)
#define SUBID_DVBS_KNC1_PLUS 0x0011
#define SUBID_DVBS_TYPHOON 0x4f56
#define SUBID_DVBS_CINERGY1200 0x1154
#define SUBID_DVBS_CYNERGY1200N 0x1155
#define SUBID_DVBS_TV_STAR 0x0014
#define SUBID_DVBS_TV_STAR_CI 0x0016
#define SUBID_DVBC_KNC1 0x0020
#define SUBID_DVBC_KNC1_PLUS 0x0021
#define SUBID_DVBC_CINERGY1200 0x1156
...
...
@@ -922,6 +1035,13 @@ static void frontend_init(struct budget_av *budget_av)
}
break
;
case
SUBID_DVBS_TV_STAR
:
case
SUBID_DVBS_TV_STAR_CI
:
case
SUBID_DVBS_CYNERGY1200N
:
fe
=
stv0299_attach
(
&
philips_sd1878_config
,
&
budget_av
->
budget
.
i2c_adap
);
break
;
case
SUBID_DVBS_KNC1_PLUS
:
case
SUBID_DVBS_TYPHOON
:
fe
=
stv0299_attach
(
&
typhoon_config
,
...
...
@@ -1027,11 +1147,9 @@ static int budget_av_attach(struct saa7146_dev *dev, struct saa7146_pci_extensio
dprintk
(
2
,
"dev: %p
\n
"
,
dev
);
if
(
!
(
budget_av
=
k
m
alloc
(
sizeof
(
struct
budget_av
),
GFP_KERNEL
)))
if
(
!
(
budget_av
=
k
z
alloc
(
sizeof
(
struct
budget_av
),
GFP_KERNEL
)))
return
-
ENOMEM
;
memset
(
budget_av
,
0
,
sizeof
(
struct
budget_av
));
budget_av
->
has_saa7113
=
0
;
budget_av
->
budget
.
ci_present
=
0
;
...
...
@@ -1166,10 +1284,12 @@ static struct saa7146_extension budget_extension;
MAKE_BUDGET_INFO
(
knc1s
,
"KNC1 DVB-S"
,
BUDGET_KNC1S
);
MAKE_BUDGET_INFO
(
knc1c
,
"KNC1 DVB-C"
,
BUDGET_KNC1C
);
MAKE_BUDGET_INFO
(
knc1t
,
"KNC1 DVB-T"
,
BUDGET_KNC1T
);
MAKE_BUDGET_INFO
(
kncxs
,
"KNC TV STAR DVB-S"
,
BUDGET_TVSTAR
);
MAKE_BUDGET_INFO
(
knc1sp
,
"KNC1 DVB-S Plus"
,
BUDGET_KNC1SP
);
MAKE_BUDGET_INFO
(
knc1cp
,
"KNC1 DVB-C Plus"
,
BUDGET_KNC1CP
);
MAKE_BUDGET_INFO
(
knc1tp
,
"KNC1 DVB-T Plus"
,
BUDGET_KNC1TP
);
MAKE_BUDGET_INFO
(
cin1200s
,
"TerraTec Cinergy 1200 DVB-S"
,
BUDGET_CIN1200S
);
MAKE_BUDGET_INFO
(
cin1200sn
,
"TerraTec Cinergy 1200 DVB-S"
,
BUDGET_CIN1200S
);
MAKE_BUDGET_INFO
(
cin1200c
,
"Terratec Cinergy 1200 DVB-C"
,
BUDGET_CIN1200C
);
MAKE_BUDGET_INFO
(
cin1200t
,
"Terratec Cinergy 1200 DVB-T"
,
BUDGET_CIN1200T
);
...
...
@@ -1178,11 +1298,14 @@ static struct pci_device_id pci_tbl[] = {
MAKE_EXTENSION_PCI
(
knc1s
,
0x1131
,
0x0010
),
MAKE_EXTENSION_PCI
(
knc1s
,
0x1894
,
0x0010
),
MAKE_EXTENSION_PCI
(
knc1sp
,
0x1131
,
0x0011
),
MAKE_EXTENSION_PCI
(
kncxs
,
0x1894
,
0x0014
),
MAKE_EXTENSION_PCI
(
kncxs
,
0x1894
,
0x0016
),
MAKE_EXTENSION_PCI
(
knc1c
,
0x1894
,
0x0020
),
MAKE_EXTENSION_PCI
(
knc1cp
,
0x1894
,
0x0021
),
MAKE_EXTENSION_PCI
(
knc1t
,
0x1894
,
0x0030
),
MAKE_EXTENSION_PCI
(
knc1tp
,
0x1894
,
0x0031
),
MAKE_EXTENSION_PCI
(
cin1200s
,
0x153b
,
0x1154
),
MAKE_EXTENSION_PCI
(
cin1200sn
,
0x153b
,
0x1155
),
MAKE_EXTENSION_PCI
(
cin1200c
,
0x153b
,
0x1156
),
MAKE_EXTENSION_PCI
(
cin1200t
,
0x153b
,
0x1157
),
{
...
...
drivers/media/dvb/ttpci/budget.h
浏览文件 @
593195f9
...
...
@@ -95,6 +95,7 @@ static struct saa7146_pci_extension_data x_var = { \
#define BUDGET_KNC1SP 11
#define BUDGET_KNC1CP 12
#define BUDGET_KNC1TP 13
#define BUDGET_TVSTAR 14
#define BUDGET_VIDEO_PORTA 0
#define BUDGET_VIDEO_PORTB 1
...
...
drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
浏览文件 @
593195f9
...
...
@@ -1489,11 +1489,9 @@ static int ttusb_probe(struct usb_interface *intf, const struct usb_device_id *i
if
(
intf
->
altsetting
->
desc
.
bInterfaceNumber
!=
1
)
return
-
ENODEV
;
if
(
!
(
ttusb
=
k
m
alloc
(
sizeof
(
struct
ttusb
),
GFP_KERNEL
)))
if
(
!
(
ttusb
=
k
z
alloc
(
sizeof
(
struct
ttusb
),
GFP_KERNEL
)))
return
-
ENOMEM
;
memset
(
ttusb
,
0
,
sizeof
(
struct
ttusb
));
ttusb
->
dev
=
udev
;
ttusb
->
c
=
0
;
ttusb
->
mux_state
=
0
;
...
...
drivers/media/dvb/ttusb-dec/ttusb_dec.c
浏览文件 @
593195f9
...
...
@@ -1606,15 +1606,13 @@ static int ttusb_dec_probe(struct usb_interface *intf,
udev
=
interface_to_usbdev
(
intf
);
if
(
!
(
dec
=
k
m
alloc
(
sizeof
(
struct
ttusb_dec
),
GFP_KERNEL
)))
{
if
(
!
(
dec
=
k
z
alloc
(
sizeof
(
struct
ttusb_dec
),
GFP_KERNEL
)))
{
printk
(
"%s: couldn't allocate memory.
\n
"
,
__FUNCTION__
);
return
-
ENOMEM
;
}
usb_set_intfdata
(
intf
,
(
void
*
)
dec
);
memset
(
dec
,
0
,
sizeof
(
struct
ttusb_dec
));
switch
(
le16_to_cpu
(
id
->
idProduct
))
{
case
0x1006
:
ttusb_dec_set_model
(
dec
,
TTUSB_DEC3000S
);
...
...
drivers/media/radio/radio-gemtek-pci.c
浏览文件 @
593195f9
...
...
@@ -318,11 +318,10 @@ static int __devinit gemtek_pci_probe( struct pci_dev *pci_dev, const struct pci
struct
gemtek_pci_card
*
card
;
struct
video_device
*
devradio
;
if
(
(
card
=
k
m
alloc
(
sizeof
(
struct
gemtek_pci_card
),
GFP_KERNEL
))
==
NULL
)
{
if
(
(
card
=
k
z
alloc
(
sizeof
(
struct
gemtek_pci_card
),
GFP_KERNEL
))
==
NULL
)
{
printk
(
KERN_ERR
"gemtek_pci: out of memory
\n
"
);
return
-
ENOMEM
;
}
memset
(
card
,
0
,
sizeof
(
struct
gemtek_pci_card
)
);
if
(
pci_enable_device
(
pci_dev
)
)
goto
err_pci
;
...
...
drivers/media/video/Kconfig
浏览文件 @
593195f9
...
...
@@ -183,7 +183,7 @@ config VIDEO_STRADIS
help
Say Y here to enable support for the Stradis 4:2:2 MPEG-2 video
driver for PCI. There is a product page at
<http://www.stradis.com/
decoder.html
>.
<http://www.stradis.com/>.
config VIDEO_ZORAN
tristate "Zoran ZR36057/36067 Video For Linux"
...
...
drivers/media/video/adv7170.c
浏览文件 @
593195f9
...
...
@@ -413,10 +413,9 @@ adv7170_detect_client (struct i2c_adapter *adapter,
if
(
!
i2c_check_functionality
(
adapter
,
I2C_FUNC_SMBUS_BYTE_DATA
))
return
0
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
client
==
0
)
return
-
ENOMEM
;
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
i2c_driver_adv7170
;
...
...
@@ -433,12 +432,11 @@ adv7170_detect_client (struct i2c_adapter *adapter,
}
strlcpy
(
I2C_NAME
(
client
),
dname
,
sizeof
(
I2C_NAME
(
client
)));
encoder
=
k
m
alloc
(
sizeof
(
struct
adv7170
),
GFP_KERNEL
);
encoder
=
k
z
alloc
(
sizeof
(
struct
adv7170
),
GFP_KERNEL
);
if
(
encoder
==
NULL
)
{
kfree
(
client
);
return
-
ENOMEM
;
}
memset
(
encoder
,
0
,
sizeof
(
struct
adv7170
));
encoder
->
norm
=
VIDEO_MODE_NTSC
;
encoder
->
input
=
0
;
encoder
->
enable
=
1
;
...
...
drivers/media/video/adv7175.c
浏览文件 @
593195f9
...
...
@@ -463,10 +463,9 @@ adv7175_detect_client (struct i2c_adapter *adapter,
if
(
!
i2c_check_functionality
(
adapter
,
I2C_FUNC_SMBUS_BYTE_DATA
))
return
0
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
client
==
0
)
return
-
ENOMEM
;
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
i2c_driver_adv7175
;
...
...
@@ -483,12 +482,11 @@ adv7175_detect_client (struct i2c_adapter *adapter,
}
strlcpy
(
I2C_NAME
(
client
),
dname
,
sizeof
(
I2C_NAME
(
client
)));
encoder
=
k
m
alloc
(
sizeof
(
struct
adv7175
),
GFP_KERNEL
);
encoder
=
k
z
alloc
(
sizeof
(
struct
adv7175
),
GFP_KERNEL
);
if
(
encoder
==
NULL
)
{
kfree
(
client
);
return
-
ENOMEM
;
}
memset
(
encoder
,
0
,
sizeof
(
struct
adv7175
));
encoder
->
norm
=
VIDEO_MODE_PAL
;
encoder
->
input
=
0
;
encoder
->
enable
=
1
;
...
...
drivers/media/video/bt819.c
浏览文件 @
593195f9
...
...
@@ -528,21 +528,18 @@ bt819_detect_client (struct i2c_adapter *adapter,
if
(
!
i2c_check_functionality
(
adapter
,
I2C_FUNC_SMBUS_BYTE_DATA
))
return
0
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
client
==
0
)
return
-
ENOMEM
;
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
i2c_driver_bt819
;
decoder
=
k
m
alloc
(
sizeof
(
struct
bt819
),
GFP_KERNEL
);
decoder
=
k
z
alloc
(
sizeof
(
struct
bt819
),
GFP_KERNEL
);
if
(
decoder
==
NULL
)
{
kfree
(
client
);
return
-
ENOMEM
;
}
memset
(
decoder
,
0
,
sizeof
(
struct
bt819
));
decoder
->
norm
=
VIDEO_MODE_NTSC
;
decoder
->
input
=
0
;
decoder
->
enable
=
1
;
...
...
drivers/media/video/bt832.c
浏览文件 @
593195f9
...
...
@@ -75,13 +75,13 @@ int bt832_hexdump(struct i2c_client *i2c_client_s, unsigned char *buf)
if
(
debug
>
1
)
{
int
i
;
v4l_dbg
(
2
,
i2c_client_s
,
"hexdump:"
);
v4l_dbg
(
2
,
debug
,
i2c_client_s
,
"hexdump:"
);
for
(
i
=
1
;
i
<
65
;
i
++
)
{
if
(
i
!=
1
)
{
if
(((
i
-
1
)
%
8
)
==
0
)
printk
(
" "
);
if
(((
i
-
1
)
%
16
)
==
0
)
{
printk
(
"
\n
"
);
v4l_dbg
(
2
,
i2c_client_s
,
"hexdump:"
);
v4l_dbg
(
2
,
debug
,
i2c_client_s
,
"hexdump:"
);
}
}
printk
(
" %02x"
,
buf
[
i
]);
...
...
@@ -167,9 +167,8 @@ static int bt832_attach(struct i2c_adapter *adap, int addr, int kind)
client_template
.
adapter
=
adap
;
client_template
.
addr
=
addr
;
if
(
NULL
==
(
t
=
k
m
alloc
(
sizeof
(
*
t
),
GFP_KERNEL
)))
if
(
NULL
==
(
t
=
k
z
alloc
(
sizeof
(
*
t
),
GFP_KERNEL
)))
return
-
ENOMEM
;
memset
(
t
,
0
,
sizeof
(
*
t
));
t
->
client
=
client_template
;
i2c_set_clientdata
(
&
t
->
client
,
t
);
i2c_attach_client
(
&
t
->
client
);
...
...
drivers/media/video/bt856.c
浏览文件 @
593195f9
...
...
@@ -316,21 +316,19 @@ bt856_detect_client (struct i2c_adapter *adapter,
if
(
!
i2c_check_functionality
(
adapter
,
I2C_FUNC_SMBUS_BYTE_DATA
))
return
0
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
client
==
0
)
return
-
ENOMEM
;
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
i2c_driver_bt856
;
strlcpy
(
I2C_NAME
(
client
),
"bt856"
,
sizeof
(
I2C_NAME
(
client
)));
encoder
=
k
m
alloc
(
sizeof
(
struct
bt856
),
GFP_KERNEL
);
encoder
=
k
z
alloc
(
sizeof
(
struct
bt856
),
GFP_KERNEL
);
if
(
encoder
==
NULL
)
{
kfree
(
client
);
return
-
ENOMEM
;
}
memset
(
encoder
,
0
,
sizeof
(
struct
bt856
));
encoder
->
norm
=
VIDEO_MODE_NTSC
;
encoder
->
enable
=
1
;
i2c_set_clientdata
(
client
,
encoder
);
...
...
drivers/media/video/bttv-cards.c
浏览文件 @
593195f9
此差异已折叠。
点击以展开。
drivers/media/video/bttv-gpio.c
浏览文件 @
593195f9
...
...
@@ -64,10 +64,9 @@ int bttv_sub_add_device(struct bttv_core *core, char *name)
struct
bttv_sub_device
*
sub
;
int
err
;
sub
=
k
m
alloc
(
sizeof
(
*
sub
),
GFP_KERNEL
);
sub
=
k
z
alloc
(
sizeof
(
*
sub
),
GFP_KERNEL
);
if
(
NULL
==
sub
)
return
-
ENOMEM
;
memset
(
sub
,
0
,
sizeof
(
*
sub
));
sub
->
core
=
core
;
sub
->
dev
.
parent
=
&
core
->
pci
->
dev
;
...
...
drivers/media/video/bttv-input.c
浏览文件 @
593195f9
...
...
@@ -583,6 +583,12 @@ int bttv_input_init(struct bttv *btv)
btv
->
custom_irq
=
bttv_rc5_irq
;
ir
->
rc5_gpio
=
1
;
break
;
case
BTTV_BOARD_MACHTV_MAGICTV
:
ir_codes
=
ir_codes_apac_viewcomp
;
ir
->
mask_keycode
=
0x001F00
;
ir
->
mask_keyup
=
0x004000
;
ir
->
polling
=
50
;
/* ms */
break
;
}
if
(
NULL
==
ir_codes
)
{
dprintk
(
KERN_INFO
"Ooops: IR config error [card=%d]
\n
"
,
btv
->
c
.
type
);
...
...
drivers/media/video/bttv.h
浏览文件 @
593195f9
...
...
@@ -166,6 +166,7 @@
#define BTTV_BOARD_ASOUND_SKYEYE 0x8d
#define BTTV_BOARD_SABRENT_TVFM 0x8e
#define BTTV_BOARD_HAUPPAUGE_IMPACTVCB 0x8f
#define BTTV_BOARD_MACHTV_MAGICTV 0x90
/* i2c address list */
#define I2C_TSA5522 0xc2
...
...
drivers/media/video/compat_ioctl32.c
浏览文件 @
593195f9
此差异已折叠。
点击以展开。
drivers/media/video/cpia_pp.c
浏览文件 @
593195f9
...
...
@@ -702,12 +702,11 @@ static int cpia_pp_register(struct parport *port)
return
-
ENXIO
;
}
cam
=
k
m
alloc
(
sizeof
(
struct
pp_cam_entry
),
GFP_KERNEL
);
cam
=
k
z
alloc
(
sizeof
(
struct
pp_cam_entry
),
GFP_KERNEL
);
if
(
cam
==
NULL
)
{
LOG
(
"failed to allocate camera structure
\n
"
);
return
-
ENOMEM
;
}
memset
(
cam
,
0
,
sizeof
(
struct
pp_cam_entry
));
pdev
=
parport_register_device
(
port
,
"cpia_pp"
,
NULL
,
NULL
,
NULL
,
0
,
cam
);
...
...
drivers/media/video/cpia_usb.c
浏览文件 @
593195f9
...
...
@@ -499,14 +499,12 @@ static int cpia_probe(struct usb_interface *intf,
printk
(
KERN_INFO
"USB CPiA camera found
\n
"
);
ucpia
=
k
m
alloc
(
sizeof
(
*
ucpia
),
GFP_KERNEL
);
ucpia
=
k
z
alloc
(
sizeof
(
*
ucpia
),
GFP_KERNEL
);
if
(
!
ucpia
)
{
printk
(
KERN_ERR
"couldn't kmalloc cpia struct
\n
"
);
return
-
ENOMEM
;
}
memset
(
ucpia
,
0
,
sizeof
(
*
ucpia
));
ucpia
->
dev
=
udev
;
ucpia
->
iface
=
interface
->
desc
.
bInterfaceNumber
;
init_waitqueue_head
(
&
ucpia
->
wq_stream
);
...
...
drivers/media/video/cs53l32a.c
浏览文件 @
593195f9
...
...
@@ -141,11 +141,10 @@ static int cs53l32a_attach(struct i2c_adapter *adapter, int address, int kind)
if
(
!
i2c_check_functionality
(
adapter
,
I2C_FUNC_SMBUS_BYTE_DATA
))
return
0
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
client
==
0
)
return
-
ENOMEM
;
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
i2c_driver
;
...
...
@@ -156,7 +155,7 @@ static int cs53l32a_attach(struct i2c_adapter *adapter, int address, int kind)
for
(
i
=
1
;
i
<=
7
;
i
++
)
{
u8
v
=
cs53l32a_read
(
client
,
i
);
v4l_dbg
(
1
,
client
,
"Read Reg %d %02x
\n
"
,
i
,
v
);
v4l_dbg
(
1
,
debug
,
client
,
"Read Reg %d %02x
\n
"
,
i
,
v
);
}
/* Set cs53l32a internal register for Adaptec 2010/2410 setup */
...
...
@@ -174,7 +173,7 @@ static int cs53l32a_attach(struct i2c_adapter *adapter, int address, int kind)
for
(
i
=
1
;
i
<=
7
;
i
++
)
{
u8
v
=
cs53l32a_read
(
client
,
i
);
v4l_dbg
(
1
,
client
,
"Read Reg %d %02x
\n
"
,
i
,
v
);
v4l_dbg
(
1
,
debug
,
client
,
"Read Reg %d %02x
\n
"
,
i
,
v
);
}
i2c_attach_client
(
client
);
...
...
drivers/media/video/cx25840/cx25840-core.c
浏览文件 @
593195f9
...
...
@@ -43,9 +43,9 @@ MODULE_LICENSE("GPL");
static
unsigned
short
normal_i2c
[]
=
{
0x88
>>
1
,
I2C_CLIENT_END
};
int
debug
=
0
;
int
cx25840_
debug
=
0
;
module_param
(
debug
,
bool
,
0644
);
module_param
_named
(
debug
,
cx25840_debug
,
int
,
0644
);
MODULE_PARM_DESC
(
debug
,
"Debugging messages [0=Off (default) 1=On]"
);
...
...
@@ -265,7 +265,7 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
vid_input
<=
CX25840_COMPOSITE8
);
u8
reg
;
v4l_dbg
(
1
,
client
,
"decoder set video input %d, audio input %d
\n
"
,
v4l_dbg
(
1
,
c
x25840_debug
,
c
lient
,
"decoder set video input %d, audio input %d
\n
"
,
vid_input
,
aud_input
);
if
(
is_composite
)
{
...
...
@@ -533,7 +533,7 @@ static int set_v4lfmt(struct i2c_client *client, struct v4l2_format *fmt)
else
filter
=
3
;
v4l_dbg
(
1
,
client
,
"decoder set size %dx%d -> scale %ux%u
\n
"
,
v4l_dbg
(
1
,
c
x25840_debug
,
c
lient
,
"decoder set size %dx%d -> scale %ux%u
\n
"
,
pix
->
width
,
pix
->
height
,
HSC
,
VSC
);
/* HSCALE=HSC */
...
...
@@ -687,13 +687,13 @@ static int cx25840_command(struct i2c_client *client, unsigned int cmd,
return
cx25840_audio
(
client
,
cmd
,
arg
);
case
VIDIOC_STREAMON
:
v4l_dbg
(
1
,
client
,
"enable output
\n
"
);
v4l_dbg
(
1
,
c
x25840_debug
,
c
lient
,
"enable output
\n
"
);
cx25840_write
(
client
,
0x115
,
0x8c
);
cx25840_write
(
client
,
0x116
,
0x07
);
break
;
case
VIDIOC_STREAMOFF
:
v4l_dbg
(
1
,
client
,
"disable output
\n
"
);
v4l_dbg
(
1
,
c
x25840_debug
,
c
lient
,
"disable output
\n
"
);
cx25840_write
(
client
,
0x115
,
0x00
);
cx25840_write
(
client
,
0x116
,
0x00
);
break
;
...
...
@@ -862,17 +862,16 @@ static int cx25840_detect_client(struct i2c_adapter *adapter, int address,
if
(
!
i2c_check_functionality
(
adapter
,
I2C_FUNC_I2C
))
return
0
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
client
==
0
)
return
-
ENOMEM
;
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
i2c_driver_cx25840
;
snprintf
(
client
->
name
,
sizeof
(
client
->
name
)
-
1
,
"cx25840"
);
v4l_dbg
(
1
,
client
,
"detecting cx25840 client on address 0x%x
\n
"
,
address
<<
1
);
v4l_dbg
(
1
,
c
x25840_debug
,
c
lient
,
"detecting cx25840 client on address 0x%x
\n
"
,
address
<<
1
);
device_id
=
cx25840_read
(
client
,
0x101
)
<<
8
;
device_id
|=
cx25840_read
(
client
,
0x100
);
...
...
@@ -880,7 +879,7 @@ static int cx25840_detect_client(struct i2c_adapter *adapter, int address,
/* The high byte of the device ID should be
* 0x84 if chip is present */
if
((
device_id
&
0xff00
)
!=
0x8400
)
{
v4l_dbg
(
1
,
client
,
"cx25840 not found
\n
"
);
v4l_dbg
(
1
,
c
x25840_debug
,
c
lient
,
"cx25840 not found
\n
"
);
kfree
(
client
);
return
0
;
}
...
...
drivers/media/video/cx88/cx88-blackbird.c
浏览文件 @
593195f9
...
...
@@ -1539,10 +1539,9 @@ static int mpeg_open(struct inode *inode, struct file *file)
dprintk
(
1
,
"open minor=%d
\n
"
,
minor
);
/* allocate + initialize per filehandle data */
fh
=
k
m
alloc
(
sizeof
(
*
fh
),
GFP_KERNEL
);
fh
=
k
z
alloc
(
sizeof
(
*
fh
),
GFP_KERNEL
);
if
(
NULL
==
fh
)
return
-
ENOMEM
;
memset
(
fh
,
0
,
sizeof
(
*
fh
));
file
->
private_data
=
fh
;
fh
->
dev
=
dev
;
...
...
@@ -1678,10 +1677,9 @@ static int __devinit blackbird_probe(struct pci_dev *pci_dev,
goto
fail_core
;
err
=
-
ENOMEM
;
dev
=
k
m
alloc
(
sizeof
(
*
dev
),
GFP_KERNEL
);
dev
=
k
z
alloc
(
sizeof
(
*
dev
),
GFP_KERNEL
);
if
(
NULL
==
dev
)
goto
fail_core
;
memset
(
dev
,
0
,
sizeof
(
*
dev
));
dev
->
pci
=
pci_dev
;
dev
->
core
=
core
;
dev
->
width
=
720
;
...
...
drivers/media/video/cx88/cx88-cards.c
浏览文件 @
593195f9
...
...
@@ -1244,6 +1244,11 @@ struct cx88_subid cx88_subids[] = {
.
subvendor
=
0x18ac
,
.
subdevice
=
0xdb50
,
.
card
=
CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL
,
},{
.
subvendor
=
0x18ac
,
.
subdevice
=
0xdb11
,
.
card
=
CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS
,
/* Re-branded DViCO: UltraView DVB-T Plus */
},
};
const
unsigned
int
cx88_idcount
=
ARRAY_SIZE
(
cx88_subids
);
...
...
drivers/media/video/cx88/cx88-core.c
浏览文件 @
593195f9
...
...
@@ -1050,11 +1050,10 @@ struct cx88_core* cx88_core_get(struct pci_dev *pci)
up
(
&
devlist
);
return
core
;
}
core
=
k
m
alloc
(
sizeof
(
*
core
),
GFP_KERNEL
);
core
=
k
z
alloc
(
sizeof
(
*
core
),
GFP_KERNEL
);
if
(
NULL
==
core
)
goto
fail_unlock
;
memset
(
core
,
0
,
sizeof
(
*
core
));
atomic_inc
(
&
core
->
refcount
);
core
->
pci_bus
=
pci
->
bus
->
number
;
core
->
pci_slot
=
PCI_SLOT
(
pci
->
devfn
);
...
...
drivers/media/video/cx88/cx88-dvb.c
浏览文件 @
593195f9
...
...
@@ -657,10 +657,9 @@ static int __devinit dvb_probe(struct pci_dev *pci_dev,
goto
fail_core
;
err
=
-
ENOMEM
;
dev
=
k
m
alloc
(
sizeof
(
*
dev
),
GFP_KERNEL
);
dev
=
k
z
alloc
(
sizeof
(
*
dev
),
GFP_KERNEL
);
if
(
NULL
==
dev
)
goto
fail_core
;
memset
(
dev
,
0
,
sizeof
(
*
dev
));
dev
->
pci
=
pci_dev
;
dev
->
core
=
core
;
...
...
drivers/media/video/cx88/cx88-input.c
浏览文件 @
593195f9
...
...
@@ -697,6 +697,7 @@ void cx88_ir_irq(struct cx88_core *core)
case
CX88_BOARD_HAUPPAUGE_DVB_T1
:
case
CX88_BOARD_HAUPPAUGE_NOVASE2_S1
:
case
CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1
:
case
CX88_BOARD_HAUPPAUGE_HVR1100
:
ircode
=
ir_decode_biphase
(
ir
->
samples
,
ir
->
scount
,
5
,
7
);
ir_dprintk
(
"biphase decoded: %x
\n
"
,
ircode
);
if
((
ircode
&
0xfffff000
)
!=
0x3000
)
...
...
drivers/media/video/cx88/cx88-video.c
浏览文件 @
593195f9
...
...
@@ -750,10 +750,9 @@ static int video_open(struct inode *inode, struct file *file)
minor
,
radio
,
v4l2_type_names
[
type
]);
/* allocate + initialize per filehandle data */
fh
=
k
m
alloc
(
sizeof
(
*
fh
),
GFP_KERNEL
);
fh
=
k
z
alloc
(
sizeof
(
*
fh
),
GFP_KERNEL
);
if
(
NULL
==
fh
)
return
-
ENOMEM
;
memset
(
fh
,
0
,
sizeof
(
*
fh
));
file
->
private_data
=
fh
;
fh
->
dev
=
dev
;
fh
->
radio
=
radio
;
...
...
@@ -1809,10 +1808,9 @@ static int __devinit cx8800_initdev(struct pci_dev *pci_dev,
struct
cx88_core
*
core
;
int
err
;
dev
=
k
m
alloc
(
sizeof
(
*
dev
),
GFP_KERNEL
);
dev
=
k
z
alloc
(
sizeof
(
*
dev
),
GFP_KERNEL
);
if
(
NULL
==
dev
)
return
-
ENOMEM
;
memset
(
dev
,
0
,
sizeof
(
*
dev
));
/* pci init */
dev
->
pci
=
pci_dev
;
...
...
drivers/media/video/dpc7146.c
浏览文件 @
593195f9
...
...
@@ -94,12 +94,11 @@ static int dpc_probe(struct saa7146_dev* dev)
struct
i2c_client
*
client
;
struct
list_head
*
item
;
dpc
=
(
struct
dpc
*
)
km
alloc
(
sizeof
(
struct
dpc
),
GFP_KERNEL
);
dpc
=
kz
alloc
(
sizeof
(
struct
dpc
),
GFP_KERNEL
);
if
(
NULL
==
dpc
)
{
printk
(
"dpc_v4l2.o: dpc_probe: not enough kernel memory.
\n
"
);
return
-
ENOMEM
;
}
memset
(
dpc
,
0x0
,
sizeof
(
struct
dpc
));
/* FIXME: enable i2c-port pins, video-port-pins
video port pins should be enabled here ?! */
...
...
drivers/media/video/em28xx/em28xx-video.c
浏览文件 @
593195f9
...
...
@@ -1861,12 +1861,11 @@ static int em28xx_usb_probe(struct usb_interface *interface,
}
/* allocate memory for our device state and initialize it */
dev
=
k
m
alloc
(
sizeof
(
*
dev
),
GFP_KERNEL
);
dev
=
k
z
alloc
(
sizeof
(
*
dev
),
GFP_KERNEL
);
if
(
dev
==
NULL
)
{
em28xx_err
(
DRIVER_NAME
": out of memory!
\n
"
);
return
-
ENOMEM
;
}
memset
(
dev
,
0
,
sizeof
(
*
dev
));
/* compute alternate max packet sizes */
uif
=
udev
->
actconfig
->
interface
[
0
];
...
...
drivers/media/video/hexium_gemini.c
浏览文件 @
593195f9
...
...
@@ -240,12 +240,11 @@ static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_d
DEB_EE
((
".
\n
"
));
hexium
=
(
struct
hexium
*
)
km
alloc
(
sizeof
(
struct
hexium
),
GFP_KERNEL
);
hexium
=
kz
alloc
(
sizeof
(
struct
hexium
),
GFP_KERNEL
);
if
(
NULL
==
hexium
)
{
printk
(
"hexium_gemini: not enough kernel memory in hexium_attach().
\n
"
);
return
-
ENOMEM
;
}
memset
(
hexium
,
0x0
,
sizeof
(
struct
hexium
));
dev
->
ext_priv
=
hexium
;
/* enable i2c-port pins */
...
...
drivers/media/video/hexium_orion.c
浏览文件 @
593195f9
...
...
@@ -224,12 +224,11 @@ static int hexium_probe(struct saa7146_dev *dev)
return
-
EFAULT
;
}
hexium
=
(
struct
hexium
*
)
km
alloc
(
sizeof
(
struct
hexium
),
GFP_KERNEL
);
hexium
=
kz
alloc
(
sizeof
(
struct
hexium
),
GFP_KERNEL
);
if
(
NULL
==
hexium
)
{
printk
(
"hexium_orion: hexium_probe: not enough kernel memory.
\n
"
);
return
-
ENOMEM
;
}
memset
(
hexium
,
0x0
,
sizeof
(
struct
hexium
));
/* enable i2c-port pins */
saa7146_write
(
dev
,
MC1
,
(
MASK_08
|
MASK_24
|
MASK_10
|
MASK_26
));
...
...
drivers/media/video/indycam.c
浏览文件 @
593195f9
...
...
@@ -289,18 +289,15 @@ static int indycam_attach(struct i2c_adapter *adap, int addr, int kind)
printk
(
KERN_INFO
"SGI IndyCam driver version %s
\n
"
,
INDYCAM_MODULE_VERSION
);
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
!
client
)
return
-
ENOMEM
;
camera
=
k
m
alloc
(
sizeof
(
struct
indycam
),
GFP_KERNEL
);
camera
=
k
z
alloc
(
sizeof
(
struct
indycam
),
GFP_KERNEL
);
if
(
!
camera
)
{
err
=
-
ENOMEM
;
goto
out_free_client
;
}
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
memset
(
camera
,
0
,
sizeof
(
struct
indycam
));
client
->
addr
=
addr
;
client
->
adapter
=
adap
;
client
->
driver
=
&
i2c_driver_indycam
;
...
...
drivers/media/video/msp3400-driver.c
浏览文件 @
593195f9
...
...
@@ -66,26 +66,26 @@ MODULE_LICENSE("GPL");
/* module parameters */
static
int
opmode
=
OPMODE_AUTO
;
int
debug
=
0
;
/*
debug output */
int
once
=
0
;
/* no continous stereo monitoring */
int
amsound
=
0
;
/* hard-wire AM sound at 6.5 Hz (france),
int
msp_debug
=
0
;
/* msp_
debug output */
int
msp_
once
=
0
;
/* no continous stereo monitoring */
int
msp_
amsound
=
0
;
/* hard-wire AM sound at 6.5 Hz (france),
the autoscan seems work well only with FM... */
int
standard
=
1
;
/* Override auto detect of audio
standard, if needed. */
int
dolby
=
0
;
int
msp_standard
=
1
;
/* Override auto detect of audio msp_
standard, if needed. */
int
msp_
dolby
=
0
;
int
stereo_threshold
=
0x190
;
/* a2 threshold for stereo/bilingual
int
msp_stereo_thresh
=
0x190
;
/* a2 threshold for stereo/bilingual
(msp34xxg only) 0x00a0-0x03c0 */
/* read-only */
module_param
(
opmode
,
int
,
0444
);
/* read-write */
module_param
(
once
,
bool
,
0644
);
module_param
(
debug
,
int
,
0644
);
module_param
(
stereo_threshold
,
int
,
0644
);
module_param
(
standard
,
int
,
0644
);
module_param
(
amsound
,
bool
,
0644
);
module_param
(
dolby
,
bool
,
0644
);
module_param
_named
(
once
,
msp_once
,
bool
,
0644
);
module_param
_named
(
debug
,
msp_debug
,
int
,
0644
);
module_param
_named
(
stereo_threshold
,
msp_stereo_thresh
,
int
,
0644
);
module_param
_named
(
standard
,
msp_standard
,
int
,
0644
);
module_param
_named
(
amsound
,
msp_amsound
,
bool
,
0644
);
module_param
_named
(
dolby
,
msp_dolby
,
bool
,
0644
);
MODULE_PARM_DESC
(
opmode
,
"Forces a MSP3400 opmode. 0=Manual, 1=Autodetect, 2=Autodetect and autoselect"
);
MODULE_PARM_DESC
(
once
,
"No continuous stereo monitoring"
);
...
...
@@ -127,7 +127,7 @@ int msp_reset(struct i2c_client *client)
{
client
->
addr
,
I2C_M_RD
,
2
,
read
},
};
v4l_dbg
(
3
,
client
,
"msp_reset
\n
"
);
v4l_dbg
(
3
,
msp_debug
,
client
,
"msp_reset
\n
"
);
if
(
i2c_transfer
(
client
->
adapter
,
&
reset
[
0
],
1
)
!=
1
||
i2c_transfer
(
client
->
adapter
,
&
reset
[
1
],
1
)
!=
1
||
i2c_transfer
(
client
->
adapter
,
test
,
2
)
!=
2
)
{
...
...
@@ -165,7 +165,7 @@ static int msp_read(struct i2c_client *client, int dev, int addr)
return
-
1
;
}
retval
=
read
[
0
]
<<
8
|
read
[
1
];
v4l_dbg
(
3
,
client
,
"msp_read(0x%x, 0x%x): 0x%x
\n
"
,
dev
,
addr
,
retval
);
v4l_dbg
(
3
,
msp_debug
,
client
,
"msp_read(0x%x, 0x%x): 0x%x
\n
"
,
dev
,
addr
,
retval
);
return
retval
;
}
...
...
@@ -190,7 +190,7 @@ static int msp_write(struct i2c_client *client, int dev, int addr, int val)
buffer
[
3
]
=
val
>>
8
;
buffer
[
4
]
=
val
&
0xff
;
v4l_dbg
(
3
,
client
,
"msp_write(0x%x, 0x%x, 0x%x)
\n
"
,
dev
,
addr
,
val
);
v4l_dbg
(
3
,
msp_debug
,
client
,
"msp_write(0x%x, 0x%x, 0x%x)
\n
"
,
dev
,
addr
,
val
);
for
(
err
=
0
;
err
<
3
;
err
++
)
{
if
(
i2c_master_send
(
client
,
buffer
,
5
)
==
5
)
break
;
...
...
@@ -273,7 +273,7 @@ void msp_set_scart(struct i2c_client *client, int in, int out)
}
else
state
->
acb
=
0xf60
;
/* Mute Input and SCART 1 Output */
v4l_dbg
(
1
,
client
,
"scart switch: %s => %d (ACB=0x%04x)
\n
"
,
v4l_dbg
(
1
,
msp_debug
,
client
,
"scart switch: %s => %d (ACB=0x%04x)
\n
"
,
scart_names
[
in
],
out
,
state
->
acb
);
msp_write_dsp
(
client
,
0x13
,
state
->
acb
);
...
...
@@ -285,7 +285,7 @@ void msp_set_mute(struct i2c_client *client)
{
struct
msp_state
*
state
=
i2c_get_clientdata
(
client
);
v4l_dbg
(
1
,
client
,
"mute audio
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"mute audio
\n
"
);
msp_write_dsp
(
client
,
0x0000
,
0
);
msp_write_dsp
(
client
,
0x0007
,
1
);
if
(
state
->
has_scart2_out_volume
)
...
...
@@ -303,7 +303,7 @@ void msp_set_audio(struct i2c_client *client)
if
(
!
state
->
muted
)
val
=
(
state
->
volume
*
0x7f
/
65535
)
<<
8
;
v4l_dbg
(
1
,
client
,
"mute=%s volume=%d
\n
"
,
v4l_dbg
(
1
,
msp_debug
,
client
,
"mute=%s volume=%d
\n
"
,
state
->
muted
?
"on"
:
"off"
,
state
->
volume
);
msp_write_dsp
(
client
,
0x0000
,
val
);
...
...
@@ -321,7 +321,7 @@ void msp_set_audio(struct i2c_client *client)
treble
=
((
state
->
treble
-
32768
)
*
0x60
/
65535
)
<<
8
;
loudness
=
state
->
loudness
?
((
5
*
4
)
<<
8
)
:
0
;
v4l_dbg
(
1
,
client
,
"balance=%d bass=%d treble=%d loudness=%d
\n
"
,
v4l_dbg
(
1
,
msp_debug
,
client
,
"balance=%d bass=%d treble=%d loudness=%d
\n
"
,
state
->
balance
,
state
->
bass
,
state
->
treble
,
state
->
loudness
);
msp_write_dsp
(
client
,
0x0001
,
bal
<<
8
);
...
...
@@ -341,12 +341,12 @@ int msp_modus(struct i2c_client *client)
struct
msp_state
*
state
=
i2c_get_clientdata
(
client
);
if
(
state
->
radio
)
{
v4l_dbg
(
1
,
client
,
"video mode selected to Radio
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"video mode selected to Radio
\n
"
);
return
0x0003
;
}
if
(
state
->
v4l2_std
&
V4L2_STD_PAL
)
{
v4l_dbg
(
1
,
client
,
"video mode selected to PAL
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"video mode selected to PAL
\n
"
);
#if 1
/* experimental: not sure this works with all chip versions */
...
...
@@ -357,11 +357,11 @@ int msp_modus(struct i2c_client *client)
#endif
}
if
(
state
->
v4l2_std
&
V4L2_STD_NTSC
)
{
v4l_dbg
(
1
,
client
,
"video mode selected to NTSC
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"video mode selected to NTSC
\n
"
);
return
0x2003
;
}
if
(
state
->
v4l2_std
&
V4L2_STD_SECAM
)
{
v4l_dbg
(
1
,
client
,
"video mode selected to SECAM
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"video mode selected to SECAM
\n
"
);
return
0x0003
;
}
return
0x0003
;
...
...
@@ -619,7 +619,7 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
u16
*
sarg
=
arg
;
int
scart
=
0
;
if
(
debug
>=
2
)
if
(
msp_
debug
>=
2
)
v4l_i2c_print_ioctl
(
client
,
cmd
);
switch
(
cmd
)
{
...
...
@@ -666,7 +666,7 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
if
(
state
->
radio
)
return
0
;
state
->
radio
=
1
;
v4l_dbg
(
1
,
client
,
"switching to radio mode
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"switching to radio mode
\n
"
);
state
->
watch_stereo
=
0
;
switch
(
state
->
opmode
)
{
case
OPMODE_MANUAL
:
...
...
@@ -937,7 +937,7 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
if
(
a
->
index
<
0
||
a
->
index
>
2
)
return
-
EINVAL
;
v4l_dbg
(
1
,
client
,
"Setting audio out on msp34xx to input %i
\n
"
,
a
->
index
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"Setting audio out on msp34xx to input %i
\n
"
,
a
->
index
);
msp_set_scart
(
client
,
state
->
in_scart
,
a
->
index
+
1
);
break
;
...
...
@@ -947,7 +947,7 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
{
u32
*
a
=
(
u32
*
)
arg
;
v4l_dbg
(
1
,
client
,
"Setting I2S speed to %d
\n
"
,
*
a
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"Setting I2S speed to %d
\n
"
,
*
a
);
switch
(
*
a
)
{
case
1024000
:
...
...
@@ -1041,7 +1041,7 @@ static int msp_suspend(struct device * dev, pm_message_t state)
{
struct
i2c_client
*
client
=
container_of
(
dev
,
struct
i2c_client
,
dev
);
v4l_dbg
(
1
,
client
,
"suspend
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"suspend
\n
"
);
msp_reset
(
client
);
return
0
;
}
...
...
@@ -1050,7 +1050,7 @@ static int msp_resume(struct device * dev)
{
struct
i2c_client
*
client
=
container_of
(
dev
,
struct
i2c_client
,
dev
);
v4l_dbg
(
1
,
client
,
"resume
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"resume
\n
"
);
msp_wake_thread
(
client
);
return
0
;
}
...
...
@@ -1080,7 +1080,7 @@ static int msp_attach(struct i2c_adapter *adapter, int address, int kind)
snprintf
(
client
->
name
,
sizeof
(
client
->
name
)
-
1
,
"msp3400"
);
if
(
msp_reset
(
client
)
==
-
1
)
{
v4l_dbg
(
1
,
client
,
"msp3400 not found
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"msp3400 not found
\n
"
);
kfree
(
client
);
return
-
1
;
}
...
...
@@ -1107,9 +1107,9 @@ static int msp_attach(struct i2c_adapter *adapter, int address, int kind)
state
->
rev1
=
msp_read_dsp
(
client
,
0x1e
);
if
(
state
->
rev1
!=
-
1
)
state
->
rev2
=
msp_read_dsp
(
client
,
0x1f
);
v4l_dbg
(
1
,
client
,
"rev1=0x%04x, rev2=0x%04x
\n
"
,
state
->
rev1
,
state
->
rev2
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"rev1=0x%04x, rev2=0x%04x
\n
"
,
state
->
rev1
,
state
->
rev2
);
if
(
state
->
rev1
==
-
1
||
(
state
->
rev1
==
0
&&
state
->
rev2
==
0
))
{
v4l_dbg
(
1
,
client
,
"not an msp3400 (cannot read chip version)
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"not an msp3400 (cannot read chip version)
\n
"
);
kfree
(
state
);
kfree
(
client
);
return
-
1
;
...
...
drivers/media/video/msp3400-kthreads.c
浏览文件 @
593195f9
...
...
@@ -168,7 +168,7 @@ void msp3400c_setmode(struct i2c_client *client, int type)
struct
msp_state
*
state
=
i2c_get_clientdata
(
client
);
int
i
;
v4l_dbg
(
1
,
client
,
"setmode: %d
\n
"
,
type
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"setmode: %d
\n
"
,
type
);
state
->
mode
=
type
;
state
->
audmode
=
V4L2_TUNER_MODE_MONO
;
state
->
rxsubchans
=
V4L2_TUNER_SUB_MONO
;
...
...
@@ -191,7 +191,7 @@ void msp3400c_setmode(struct i2c_client *client, int type)
msp_write_dem
(
client
,
0x0056
,
0
);
/*LOAD_REG_1/2*/
if
(
dolby
)
{
if
(
msp_
dolby
)
{
msp_write_dsp
(
client
,
0x0008
,
0x0520
);
/* I2S1 */
msp_write_dsp
(
client
,
0x0009
,
0x0620
);
/* I2S2 */
msp_write_dsp
(
client
,
0x000b
,
msp3400c_init_data
[
type
].
dsp_src
);
...
...
@@ -221,7 +221,7 @@ void msp3400c_setstereo(struct i2c_client *client, int mode)
/* this method would break everything, let's make sure
* it's never called
*/
v4l_dbg
(
1
,
client
,
"setstereo called with mode=%d instead of set_source (ignored)
\n
"
,
v4l_dbg
(
1
,
msp_debug
,
client
,
"setstereo called with mode=%d instead of set_source (ignored)
\n
"
,
mode
);
return
;
}
...
...
@@ -229,7 +229,7 @@ void msp3400c_setstereo(struct i2c_client *client, int mode)
/* switch demodulator */
switch
(
state
->
mode
)
{
case
MSP_MODE_FM_TERRA
:
v4l_dbg
(
1
,
client
,
"FM setstereo: %s
\n
"
,
strmode
[
mode
]);
v4l_dbg
(
1
,
msp_debug
,
client
,
"FM setstereo: %s
\n
"
,
strmode
[
mode
]);
msp3400c_setcarrier
(
client
,
state
->
second
,
state
->
main
);
switch
(
mode
)
{
case
V4L2_TUNER_MODE_STEREO
:
...
...
@@ -243,7 +243,7 @@ void msp3400c_setstereo(struct i2c_client *client, int mode)
}
break
;
case
MSP_MODE_FM_SAT
:
v4l_dbg
(
1
,
client
,
"SAT setstereo: %s
\n
"
,
strmode
[
mode
]);
v4l_dbg
(
1
,
msp_debug
,
client
,
"SAT setstereo: %s
\n
"
,
strmode
[
mode
]);
switch
(
mode
)
{
case
V4L2_TUNER_MODE_MONO
:
msp3400c_setcarrier
(
client
,
MSP_CARRIER
(
6
.
5
),
MSP_CARRIER
(
6
.
5
));
...
...
@@ -262,24 +262,24 @@ void msp3400c_setstereo(struct i2c_client *client, int mode)
case
MSP_MODE_FM_NICAM1
:
case
MSP_MODE_FM_NICAM2
:
case
MSP_MODE_AM_NICAM
:
v4l_dbg
(
1
,
client
,
"NICAM setstereo: %s
\n
"
,
strmode
[
mode
]);
v4l_dbg
(
1
,
msp_debug
,
client
,
"NICAM setstereo: %s
\n
"
,
strmode
[
mode
]);
msp3400c_setcarrier
(
client
,
state
->
second
,
state
->
main
);
if
(
state
->
nicam_on
)
nicam
=
0x0100
;
break
;
case
MSP_MODE_BTSC
:
v4l_dbg
(
1
,
client
,
"BTSC setstereo: %s
\n
"
,
strmode
[
mode
]);
v4l_dbg
(
1
,
msp_debug
,
client
,
"BTSC setstereo: %s
\n
"
,
strmode
[
mode
]);
nicam
=
0x0300
;
break
;
case
MSP_MODE_EXTERN
:
v4l_dbg
(
1
,
client
,
"extern setstereo: %s
\n
"
,
strmode
[
mode
]);
v4l_dbg
(
1
,
msp_debug
,
client
,
"extern setstereo: %s
\n
"
,
strmode
[
mode
]);
nicam
=
0x0200
;
break
;
case
MSP_MODE_FM_RADIO
:
v4l_dbg
(
1
,
client
,
"FM-Radio setstereo: %s
\n
"
,
strmode
[
mode
]);
v4l_dbg
(
1
,
msp_debug
,
client
,
"FM-Radio setstereo: %s
\n
"
,
strmode
[
mode
]);
break
;
default:
v4l_dbg
(
1
,
client
,
"mono setstereo
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"mono setstereo
\n
"
);
return
;
}
...
...
@@ -290,7 +290,7 @@ void msp3400c_setstereo(struct i2c_client *client, int mode)
break
;
case
V4L2_TUNER_MODE_MONO
:
if
(
state
->
mode
==
MSP_MODE_AM_NICAM
)
{
v4l_dbg
(
1
,
client
,
"switching to AM mono
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"switching to AM mono
\n
"
);
/* AM mono decoding is handled by tuner, not MSP chip */
/* SCART switching control register */
msp_set_scart
(
client
,
SCART_MONO
,
0
);
...
...
@@ -304,9 +304,9 @@ void msp3400c_setstereo(struct i2c_client *client, int mode)
src
=
0x0010
|
nicam
;
break
;
}
v4l_dbg
(
1
,
client
,
"setstereo final source/matrix = 0x%x
\n
"
,
src
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"setstereo final source/matrix = 0x%x
\n
"
,
src
);
if
(
dolby
)
{
if
(
msp_
dolby
)
{
msp_write_dsp
(
client
,
0x0008
,
0x0520
);
msp_write_dsp
(
client
,
0x0009
,
0x0620
);
msp_write_dsp
(
client
,
0x000a
,
src
);
...
...
@@ -327,20 +327,20 @@ static void msp3400c_print_mode(struct i2c_client *client)
struct
msp_state
*
state
=
i2c_get_clientdata
(
client
);
if
(
state
->
main
==
state
->
second
)
{
v4l_dbg
(
1
,
client
,
"mono sound carrier: %d.%03d MHz
\n
"
,
v4l_dbg
(
1
,
msp_debug
,
client
,
"mono sound carrier: %d.%03d MHz
\n
"
,
state
->
main
/
910000
,
(
state
->
main
/
910
)
%
1000
);
}
else
{
v4l_dbg
(
1
,
client
,
"main sound carrier: %d.%03d MHz
\n
"
,
v4l_dbg
(
1
,
msp_debug
,
client
,
"main sound carrier: %d.%03d MHz
\n
"
,
state
->
main
/
910000
,
(
state
->
main
/
910
)
%
1000
);
}
if
(
state
->
mode
==
MSP_MODE_FM_NICAM1
||
state
->
mode
==
MSP_MODE_FM_NICAM2
)
v4l_dbg
(
1
,
client
,
"NICAM/FM carrier : %d.%03d MHz
\n
"
,
v4l_dbg
(
1
,
msp_debug
,
client
,
"NICAM/FM carrier : %d.%03d MHz
\n
"
,
state
->
second
/
910000
,
(
state
->
second
/
910
)
%
1000
);
if
(
state
->
mode
==
MSP_MODE_AM_NICAM
)
v4l_dbg
(
1
,
client
,
"NICAM/AM carrier : %d.%03d MHz
\n
"
,
v4l_dbg
(
1
,
msp_debug
,
client
,
"NICAM/AM carrier : %d.%03d MHz
\n
"
,
state
->
second
/
910000
,
(
state
->
second
/
910
)
%
1000
);
if
(
state
->
mode
==
MSP_MODE_FM_TERRA
&&
state
->
main
!=
state
->
second
)
{
v4l_dbg
(
1
,
client
,
"FM-stereo carrier : %d.%03d MHz
\n
"
,
v4l_dbg
(
1
,
msp_debug
,
client
,
"FM-stereo carrier : %d.%03d MHz
\n
"
,
state
->
second
/
910000
,
(
state
->
second
/
910
)
%
1000
);
}
}
...
...
@@ -360,7 +360,7 @@ int autodetect_stereo(struct i2c_client *client)
val
=
msp_read_dsp
(
client
,
0x18
);
if
(
val
>
32767
)
val
-=
65536
;
v4l_dbg
(
2
,
client
,
"stereo detect register: %d
\n
"
,
val
);
v4l_dbg
(
2
,
msp_debug
,
client
,
"stereo detect register: %d
\n
"
,
val
);
if
(
val
>
4096
)
{
rxsubchans
=
V4L2_TUNER_SUB_STEREO
|
V4L2_TUNER_SUB_MONO
;
}
else
if
(
val
<
-
4096
)
{
...
...
@@ -374,7 +374,7 @@ int autodetect_stereo(struct i2c_client *client)
case
MSP_MODE_FM_NICAM2
:
case
MSP_MODE_AM_NICAM
:
val
=
msp_read_dem
(
client
,
0x23
);
v4l_dbg
(
2
,
client
,
"nicam sync=%d, mode=%d
\n
"
,
v4l_dbg
(
2
,
msp_debug
,
client
,
"nicam sync=%d, mode=%d
\n
"
,
val
&
1
,
(
val
&
0x1e
)
>>
1
);
if
(
val
&
1
)
{
...
...
@@ -407,7 +407,7 @@ int autodetect_stereo(struct i2c_client *client)
break
;
case
MSP_MODE_BTSC
:
val
=
msp_read_dem
(
client
,
0x200
);
v4l_dbg
(
2
,
client
,
"status=0x%x (pri=%s, sec=%s, %s%s%s)
\n
"
,
v4l_dbg
(
2
,
msp_debug
,
client
,
"status=0x%x (pri=%s, sec=%s, %s%s%s)
\n
"
,
val
,
(
val
&
0x0002
)
?
"no"
:
"yes"
,
(
val
&
0x0004
)
?
"no"
:
"yes"
,
...
...
@@ -421,13 +421,13 @@ int autodetect_stereo(struct i2c_client *client)
}
if
(
rxsubchans
!=
state
->
rxsubchans
)
{
update
=
1
;
v4l_dbg
(
1
,
client
,
"watch: rxsubchans %d => %d
\n
"
,
v4l_dbg
(
1
,
msp_debug
,
client
,
"watch: rxsubchans %d => %d
\n
"
,
state
->
rxsubchans
,
rxsubchans
);
state
->
rxsubchans
=
rxsubchans
;
}
if
(
newnicam
!=
state
->
nicam_on
)
{
update
=
1
;
v4l_dbg
(
1
,
client
,
"watch: nicam %d => %d
\n
"
,
v4l_dbg
(
1
,
msp_debug
,
client
,
"watch: nicam %d => %d
\n
"
,
state
->
nicam_on
,
newnicam
);
state
->
nicam_on
=
newnicam
;
}
...
...
@@ -452,7 +452,7 @@ static void watch_stereo(struct i2c_client *client)
msp3400c_setstereo
(
client
,
V4L2_TUNER_MODE_MONO
);
}
if
(
once
)
if
(
msp_
once
)
state
->
watch_stereo
=
0
;
}
...
...
@@ -464,21 +464,21 @@ int msp3400c_thread(void *data)
int
count
,
max1
,
max2
,
val1
,
val2
,
val
,
this
;
v4l_dbg
(
1
,
client
,
"msp3400 daemon started
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"msp3400 daemon started
\n
"
);
for
(;;)
{
v4l_dbg
(
2
,
client
,
"msp3400 thread: sleep
\n
"
);
v4l_dbg
(
2
,
msp_debug
,
client
,
"msp3400 thread: sleep
\n
"
);
msp_sleep
(
state
,
-
1
);
v4l_dbg
(
2
,
client
,
"msp3400 thread: wakeup
\n
"
);
v4l_dbg
(
2
,
msp_debug
,
client
,
"msp3400 thread: wakeup
\n
"
);
restart:
v4l_dbg
(
1
,
client
,
"thread: restart scan
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"thread: restart scan
\n
"
);
state
->
restart
=
0
;
if
(
kthread_should_stop
())
break
;
if
(
state
->
radio
||
MSP_MODE_EXTERN
==
state
->
mode
)
{
/* no carrier scan, just unmute */
v4l_dbg
(
1
,
client
,
"thread: no carrier scan
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"thread: no carrier scan
\n
"
);
msp_set_audio
(
client
);
continue
;
}
...
...
@@ -498,11 +498,11 @@ int msp3400c_thread(void *data)
cd
=
msp3400c_carrier_detect_main
;
count
=
ARRAY_SIZE
(
msp3400c_carrier_detect_main
);
if
(
amsound
&&
(
state
->
v4l2_std
&
V4L2_STD_SECAM
))
{
if
(
msp_
amsound
&&
(
state
->
v4l2_std
&
V4L2_STD_SECAM
))
{
/* autodetect doesn't work well with AM ... */
max1
=
3
;
count
=
0
;
v4l_dbg
(
1
,
client
,
"AM sound override
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"AM sound override
\n
"
);
}
for
(
this
=
0
;
this
<
count
;
this
++
)
{
...
...
@@ -514,7 +514,7 @@ int msp3400c_thread(void *data)
val
-=
65536
;
if
(
val1
<
val
)
val1
=
val
,
max1
=
this
;
v4l_dbg
(
1
,
client
,
"carrier1 val: %5d / %s
\n
"
,
val
,
cd
[
this
].
name
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"carrier1 val: %5d / %s
\n
"
,
val
,
cd
[
this
].
name
);
}
/* carrier detect pass #2 -- second (stereo) carrier */
...
...
@@ -535,7 +535,7 @@ int msp3400c_thread(void *data)
break
;
}
if
(
amsound
&&
(
state
->
v4l2_std
&
V4L2_STD_SECAM
))
{
if
(
msp_
amsound
&&
(
state
->
v4l2_std
&
V4L2_STD_SECAM
))
{
/* autodetect doesn't work well with AM ... */
cd
=
NULL
;
count
=
0
;
...
...
@@ -550,7 +550,7 @@ int msp3400c_thread(void *data)
val
-=
65536
;
if
(
val2
<
val
)
val2
=
val
,
max2
=
this
;
v4l_dbg
(
1
,
client
,
"carrier2 val: %5d / %s
\n
"
,
val
,
cd
[
this
].
name
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"carrier2 val: %5d / %s
\n
"
,
val
,
cd
[
this
].
name
);
}
/* program the msp3400 according to the results */
...
...
@@ -627,7 +627,7 @@ int msp3400c_thread(void *data)
/* unmute */
msp_set_audio
(
client
);
if
(
debug
)
if
(
msp_
debug
)
msp3400c_print_mode
(
client
);
/* monitor tv audio mode */
...
...
@@ -637,7 +637,7 @@ int msp3400c_thread(void *data)
watch_stereo
(
client
);
}
}
v4l_dbg
(
1
,
client
,
"thread: exit
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"thread: exit
\n
"
);
return
0
;
}
...
...
@@ -648,22 +648,22 @@ int msp3410d_thread(void *data)
struct
msp_state
*
state
=
i2c_get_clientdata
(
client
);
int
val
,
i
,
std
;
v4l_dbg
(
1
,
client
,
"msp3410 daemon started
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"msp3410 daemon started
\n
"
);
for
(;;)
{
v4l_dbg
(
2
,
client
,
"msp3410 thread: sleep
\n
"
);
v4l_dbg
(
2
,
msp_debug
,
client
,
"msp3410 thread: sleep
\n
"
);
msp_sleep
(
state
,
-
1
);
v4l_dbg
(
2
,
client
,
"msp3410 thread: wakeup
\n
"
);
v4l_dbg
(
2
,
msp_debug
,
client
,
"msp3410 thread: wakeup
\n
"
);
restart:
v4l_dbg
(
1
,
client
,
"thread: restart scan
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"thread: restart scan
\n
"
);
state
->
restart
=
0
;
if
(
kthread_should_stop
())
break
;
if
(
state
->
mode
==
MSP_MODE_EXTERN
)
{
/* no carrier scan needed, just unmute */
v4l_dbg
(
1
,
client
,
"thread: no carrier scan
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"thread: no carrier scan
\n
"
);
msp_set_audio
(
client
);
continue
;
}
...
...
@@ -682,8 +682,8 @@ int msp3410d_thread(void *data)
std
=
(
state
->
v4l2_std
&
V4L2_STD_NTSC
)
?
0x20
:
1
;
state
->
watch_stereo
=
0
;
if
(
debug
)
v4l_dbg
(
1
,
client
,
"setting standard: %s (0x%04x)
\n
"
,
if
(
msp_
debug
)
v4l_dbg
(
1
,
msp_debug
,
client
,
"setting standard: %s (0x%04x)
\n
"
,
msp_standard_std_name
(
std
),
std
);
if
(
std
!=
1
)
{
...
...
@@ -700,22 +700,22 @@ int msp3410d_thread(void *data)
val
=
msp_read_dem
(
client
,
0x7e
);
if
(
val
<
0x07ff
)
break
;
v4l_dbg
(
1
,
client
,
"detection still in progress
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"detection still in progress
\n
"
);
}
}
for
(
i
=
0
;
msp_stdlist
[
i
].
name
!=
NULL
;
i
++
)
if
(
msp_stdlist
[
i
].
retval
==
val
)
break
;
v4l_dbg
(
1
,
client
,
"current standard: %s (0x%04x)
\n
"
,
v4l_dbg
(
1
,
msp_debug
,
client
,
"current standard: %s (0x%04x)
\n
"
,
msp_standard_std_name
(
val
),
val
);
state
->
main
=
msp_stdlist
[
i
].
main
;
state
->
second
=
msp_stdlist
[
i
].
second
;
state
->
std
=
val
;
if
(
amsound
&&
!
state
->
radio
&&
(
state
->
v4l2_std
&
V4L2_STD_SECAM
)
&&
if
(
msp_
amsound
&&
!
state
->
radio
&&
(
state
->
v4l2_std
&
V4L2_STD_SECAM
)
&&
(
val
!=
0x0009
))
{
/* autodetection has failed, let backup */
v4l_dbg
(
1
,
client
,
"autodetection failed,"
v4l_dbg
(
1
,
msp_debug
,
client
,
"autodetection failed,"
" switching to backup standard: %s (0x%04x)
\n
"
,
msp_stdlist
[
8
].
name
?
msp_stdlist
[
8
].
name
:
"unknown"
,
val
);
val
=
0x0009
;
...
...
@@ -798,13 +798,13 @@ int msp3410d_thread(void *data)
watch_stereo
(
client
);
}
}
v4l_dbg
(
1
,
client
,
"thread: exit
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"thread: exit
\n
"
);
return
0
;
}
/* ----------------------------------------------------------------------- */
/* msp34xxG + (autoselect no-thread)
*/
/* msp34xxG + (autoselect no-thread) */
/* this one uses both automatic standard detection and automatic sound */
/* select which are available in the newer G versions */
/* struct msp: only norm, acb and source are really used in this mode */
...
...
@@ -825,7 +825,7 @@ static void msp34xxg_set_source(struct i2c_client *client, int source)
*/
int
value
=
(
source
&
0x07
)
<<
8
|
(
source
==
0
?
0x30
:
0x20
);
v4l_dbg
(
1
,
client
,
"set source to %d (0x%x)
\n
"
,
source
,
value
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"set source to %d (0x%x)
\n
"
,
source
,
value
);
/* Loudspeaker Output */
msp_write_dsp
(
client
,
0x08
,
value
);
/* SCART1 DA Output */
...
...
@@ -840,7 +840,7 @@ static void msp34xxg_set_source(struct i2c_client *client, int source)
* 0x7f0 = forced mono mode
*/
/* a2 threshold for stereo/bilingual */
msp_write_dem
(
client
,
0x22
,
stereo_threshold
);
msp_write_dem
(
client
,
0x22
,
msp_stereo_thresh
);
state
->
source
=
source
;
}
...
...
@@ -897,28 +897,28 @@ int msp34xxg_thread(void *data)
struct
msp_state
*
state
=
i2c_get_clientdata
(
client
);
int
val
,
std
,
i
;
v4l_dbg
(
1
,
client
,
"msp34xxg daemon started
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"msp34xxg daemon started
\n
"
);
state
->
source
=
1
;
/* default */
for
(;;)
{
v4l_dbg
(
2
,
client
,
"msp34xxg thread: sleep
\n
"
);
v4l_dbg
(
2
,
msp_debug
,
client
,
"msp34xxg thread: sleep
\n
"
);
msp_sleep
(
state
,
-
1
);
v4l_dbg
(
2
,
client
,
"msp34xxg thread: wakeup
\n
"
);
v4l_dbg
(
2
,
msp_debug
,
client
,
"msp34xxg thread: wakeup
\n
"
);
restart:
v4l_dbg
(
1
,
client
,
"thread: restart scan
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"thread: restart scan
\n
"
);
state
->
restart
=
0
;
if
(
kthread_should_stop
())
break
;
/* setup the chip*/
msp34xxg_reset
(
client
);
std
=
standard
;
std
=
msp_
standard
;
if
(
std
!=
0x01
)
goto
unmute
;
/* watch autodetect */
v4l_dbg
(
1
,
client
,
"triggered autodetect, waiting for result
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"triggered autodetect, waiting for result
\n
"
);
for
(
i
=
0
;
i
<
10
;
i
++
)
{
if
(
msp_sleep
(
state
,
100
))
goto
restart
;
...
...
@@ -929,16 +929,16 @@ int msp34xxg_thread(void *data)
std
=
val
;
break
;
}
v4l_dbg
(
2
,
client
,
"detection still in progress
\n
"
);
v4l_dbg
(
2
,
msp_debug
,
client
,
"detection still in progress
\n
"
);
}
if
(
std
==
1
)
{
v4l_dbg
(
1
,
client
,
"detection still in progress after 10 tries. giving up.
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"detection still in progress after 10 tries. giving up.
\n
"
);
continue
;
}
unmute:
state
->
std
=
std
;
v4l_dbg
(
1
,
client
,
"current standard: %s (0x%04x)
\n
"
,
v4l_dbg
(
1
,
msp_debug
,
client
,
"current standard: %s (0x%04x)
\n
"
,
msp_standard_std_name
(
std
),
std
);
/* unmute: dispatch sound to scart output, set scart volume */
...
...
@@ -950,7 +950,7 @@ int msp34xxg_thread(void *data)
msp_write_dem
(
client
,
0x40
,
state
->
i2s_mode
);
}
v4l_dbg
(
1
,
client
,
"thread: exit
\n
"
);
v4l_dbg
(
1
,
msp_debug
,
client
,
"thread: exit
\n
"
);
return
0
;
}
...
...
@@ -976,7 +976,7 @@ void msp34xxg_detect_stereo(struct i2c_client *client)
* this is a problem, I'll handle SAP just like lang1/lang2.
*/
}
v4l_dbg
(
1
,
client
,
"status=0x%x, stereo=%d, bilingual=%d -> rxsubchans=%d
\n
"
,
v4l_dbg
(
1
,
msp_debug
,
client
,
"status=0x%x, stereo=%d, bilingual=%d -> rxsubchans=%d
\n
"
,
status
,
is_stereo
,
is_bilingual
,
state
->
rxsubchans
);
}
...
...
drivers/media/video/msp3400.h
浏览文件 @
593195f9
...
...
@@ -48,12 +48,12 @@ struct msp_matrix {
#define OPMODE_AUTOSELECT 2
/* use autodetect & autoselect (>= msp34xxG) */
/* module parameters */
extern
int
debug
;
extern
int
once
;
extern
int
amsound
;
extern
int
standard
;
extern
int
dolby
;
extern
int
stereo_threshold
;
extern
int
msp_
debug
;
extern
int
msp_
once
;
extern
int
msp_
amsound
;
extern
int
msp_
standard
;
extern
int
msp_
dolby
;
extern
int
msp_stereo_thresh
;
struct
msp_state
{
int
rev1
,
rev2
;
...
...
drivers/media/video/mt20xx.c
浏览文件 @
593195f9
...
...
@@ -21,7 +21,7 @@ static unsigned int radio_antenna = 0;
module_param
(
radio_antenna
,
int
,
0644
);
/* from tuner-core.c */
extern
int
debug
;
extern
int
tuner_
debug
;
/* ---------------------------------------------------------------------- */
...
...
@@ -404,7 +404,7 @@ static void mt2050_set_if_freq(struct i2c_client *c,unsigned int freq, unsigned
div2a
=
(
lo2
/
8
)
-
1
;
div2b
=
lo2
-
(
div2a
+
1
)
*
8
;
if
(
debug
>
1
)
{
if
(
tuner_
debug
>
1
)
{
tuner_dbg
(
"lo1 lo2 = %d %d
\n
"
,
lo1
,
lo2
);
tuner_dbg
(
"num1 num2 div1a div1b div2a div2b= %x %x %x %x %x %x
\n
"
,
num1
,
num2
,
div1a
,
div1b
,
div2a
,
div2b
);
...
...
@@ -420,7 +420,7 @@ static void mt2050_set_if_freq(struct i2c_client *c,unsigned int freq, unsigned
buf
[
5
]
=
div2a
;
if
(
num2
!=
0
)
buf
[
5
]
=
buf
[
5
]
|
0x40
;
if
(
debug
>
1
)
{
if
(
tuner_
debug
>
1
)
{
int
i
;
tuner_dbg
(
"bufs is: "
);
for
(
i
=
0
;
i
<
6
;
i
++
)
...
...
@@ -508,7 +508,7 @@ int microtune_init(struct i2c_client *c)
i2c_master_send
(
c
,
buf
,
1
);
i2c_master_recv
(
c
,
buf
,
21
);
if
(
debug
)
{
if
(
tuner_
debug
)
{
int
i
;
tuner_dbg
(
"MT20xx hexdump:"
);
for
(
i
=
0
;
i
<
21
;
i
++
)
{
...
...
drivers/media/video/mxb.c
浏览文件 @
593195f9
...
...
@@ -177,12 +177,11 @@ static int mxb_probe(struct saa7146_dev* dev)
return
-
ENODEV
;
}
mxb
=
(
struct
mxb
*
)
km
alloc
(
sizeof
(
struct
mxb
),
GFP_KERNEL
);
mxb
=
kz
alloc
(
sizeof
(
struct
mxb
),
GFP_KERNEL
);
if
(
NULL
==
mxb
)
{
DEB_D
((
"not enough kernel memory.
\n
"
));
return
-
ENOMEM
;
}
memset
(
mxb
,
0x0
,
sizeof
(
struct
mxb
));
mxb
->
i2c_adapter
=
(
struct
i2c_adapter
)
{
.
class
=
I2C_CLASS_TV_ANALOG
,
...
...
drivers/media/video/ovcamchip/ov6x20.c
浏览文件 @
593195f9
...
...
@@ -178,10 +178,9 @@ static int ov6x20_init(struct i2c_client *c)
if
(
rc
<
0
)
return
rc
;
ov
->
spriv
=
s
=
k
m
alloc
(
sizeof
*
s
,
GFP_KERNEL
);
ov
->
spriv
=
s
=
k
z
alloc
(
sizeof
*
s
,
GFP_KERNEL
);
if
(
!
s
)
return
-
ENOMEM
;
memset
(
s
,
0
,
sizeof
*
s
);
s
->
auto_brt
=
1
;
s
->
auto_exp
=
1
;
...
...
drivers/media/video/ovcamchip/ov6x30.c
浏览文件 @
593195f9
...
...
@@ -141,10 +141,9 @@ static int ov6x30_init(struct i2c_client *c)
if
(
rc
<
0
)
return
rc
;
ov
->
spriv
=
s
=
k
m
alloc
(
sizeof
*
s
,
GFP_KERNEL
);
ov
->
spriv
=
s
=
k
z
alloc
(
sizeof
*
s
,
GFP_KERNEL
);
if
(
!
s
)
return
-
ENOMEM
;
memset
(
s
,
0
,
sizeof
*
s
);
s
->
auto_brt
=
1
;
s
->
auto_exp
=
1
;
...
...
drivers/media/video/ovcamchip/ov76be.c
浏览文件 @
593195f9
...
...
@@ -105,10 +105,9 @@ static int ov76be_init(struct i2c_client *c)
if
(
rc
<
0
)
return
rc
;
ov
->
spriv
=
s
=
k
m
alloc
(
sizeof
*
s
,
GFP_KERNEL
);
ov
->
spriv
=
s
=
k
z
alloc
(
sizeof
*
s
,
GFP_KERNEL
);
if
(
!
s
)
return
-
ENOMEM
;
memset
(
s
,
0
,
sizeof
*
s
);
s
->
auto_brt
=
1
;
s
->
auto_exp
=
1
;
...
...
drivers/media/video/ovcamchip/ov7x10.c
浏览文件 @
593195f9
...
...
@@ -115,10 +115,9 @@ static int ov7x10_init(struct i2c_client *c)
if
(
rc
<
0
)
return
rc
;
ov
->
spriv
=
s
=
k
m
alloc
(
sizeof
*
s
,
GFP_KERNEL
);
ov
->
spriv
=
s
=
k
z
alloc
(
sizeof
*
s
,
GFP_KERNEL
);
if
(
!
s
)
return
-
ENOMEM
;
memset
(
s
,
0
,
sizeof
*
s
);
s
->
auto_brt
=
1
;
s
->
auto_exp
=
1
;
...
...
drivers/media/video/ovcamchip/ov7x20.c
浏览文件 @
593195f9
...
...
@@ -232,10 +232,9 @@ static int ov7x20_init(struct i2c_client *c)
if
(
rc
<
0
)
return
rc
;
ov
->
spriv
=
s
=
k
m
alloc
(
sizeof
*
s
,
GFP_KERNEL
);
ov
->
spriv
=
s
=
k
z
alloc
(
sizeof
*
s
,
GFP_KERNEL
);
if
(
!
s
)
return
-
ENOMEM
;
memset
(
s
,
0
,
sizeof
*
s
);
s
->
auto_brt
=
1
;
s
->
auto_exp
=
DFL_AUTO_EXP
;
...
...
drivers/media/video/ovcamchip/ovcamchip_core.c
浏览文件 @
593195f9
...
...
@@ -316,12 +316,11 @@ static int ovcamchip_attach(struct i2c_adapter *adap)
c
->
adapter
=
adap
;
strcpy
(
c
->
name
,
"OV????"
);
ov
=
k
m
alloc
(
sizeof
*
ov
,
GFP_KERNEL
);
ov
=
k
z
alloc
(
sizeof
*
ov
,
GFP_KERNEL
);
if
(
!
ov
)
{
rc
=
-
ENOMEM
;
goto
no_ov
;
}
memset
(
ov
,
0
,
sizeof
*
ov
);
i2c_set_clientdata
(
c
,
ov
);
rc
=
ovcamchip_detect
(
c
);
...
...
drivers/media/video/saa5246a.c
浏览文件 @
593195f9
...
...
@@ -83,13 +83,12 @@ static int saa5246a_attach(struct i2c_adapter *adap, int addr, int kind)
client_template
.
adapter
=
adap
;
client_template
.
addr
=
addr
;
memcpy
(
client
,
&
client_template
,
sizeof
(
*
client
));
t
=
k
m
alloc
(
sizeof
(
*
t
),
GFP_KERNEL
);
t
=
k
z
alloc
(
sizeof
(
*
t
),
GFP_KERNEL
);
if
(
t
==
NULL
)
{
kfree
(
client
);
return
-
ENOMEM
;
}
memset
(
t
,
0
,
sizeof
(
*
t
));
strlcpy
(
client
->
name
,
IF_NAME
,
I2C_NAME_SIZE
);
init_MUTEX
(
&
t
->
lock
);
...
...
drivers/media/video/saa5249.c
浏览文件 @
593195f9
...
...
@@ -151,13 +151,12 @@ static int saa5249_attach(struct i2c_adapter *adap, int addr, int kind)
client_template
.
adapter
=
adap
;
client_template
.
addr
=
addr
;
memcpy
(
client
,
&
client_template
,
sizeof
(
*
client
));
t
=
k
m
alloc
(
sizeof
(
*
t
),
GFP_KERNEL
);
t
=
k
z
alloc
(
sizeof
(
*
t
),
GFP_KERNEL
);
if
(
t
==
NULL
)
{
kfree
(
client
);
return
-
ENOMEM
;
}
memset
(
t
,
0
,
sizeof
(
*
t
));
strlcpy
(
client
->
name
,
IF_NAME
,
I2C_NAME_SIZE
);
init_MUTEX
(
&
t
->
lock
);
...
...
@@ -165,7 +164,7 @@ static int saa5249_attach(struct i2c_adapter *adap, int addr, int kind)
* Now create a video4linux device
*/
vd
=
(
struct
video_device
*
)
kmalloc
(
sizeof
(
struct
video_device
),
GFP_KERNEL
);
vd
=
kmalloc
(
sizeof
(
struct
video_device
),
GFP_KERNEL
);
if
(
vd
==
NULL
)
{
kfree
(
t
);
...
...
drivers/media/video/saa7110.c
浏览文件 @
593195f9
...
...
@@ -494,21 +494,19 @@ saa7110_detect_client (struct i2c_adapter *adapter,
I2C_FUNC_SMBUS_READ_BYTE
|
I2C_FUNC_SMBUS_WRITE_BYTE_DATA
))
return
0
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
client
==
0
)
return
-
ENOMEM
;
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
i2c_driver_saa7110
;
strlcpy
(
I2C_NAME
(
client
),
"saa7110"
,
sizeof
(
I2C_NAME
(
client
)));
decoder
=
k
m
alloc
(
sizeof
(
struct
saa7110
),
GFP_KERNEL
);
decoder
=
k
z
alloc
(
sizeof
(
struct
saa7110
),
GFP_KERNEL
);
if
(
decoder
==
0
)
{
kfree
(
client
);
return
-
ENOMEM
;
}
memset
(
decoder
,
0
,
sizeof
(
struct
saa7110
));
decoder
->
norm
=
VIDEO_MODE_PAL
;
decoder
->
input
=
0
;
decoder
->
enable
=
1
;
...
...
drivers/media/video/saa7111.c
浏览文件 @
593195f9
...
...
@@ -511,21 +511,19 @@ saa7111_detect_client (struct i2c_adapter *adapter,
if
(
!
i2c_check_functionality
(
adapter
,
I2C_FUNC_SMBUS_BYTE_DATA
))
return
0
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
client
==
0
)
return
-
ENOMEM
;
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
i2c_driver_saa7111
;
strlcpy
(
I2C_NAME
(
client
),
"saa7111"
,
sizeof
(
I2C_NAME
(
client
)));
decoder
=
k
m
alloc
(
sizeof
(
struct
saa7111
),
GFP_KERNEL
);
decoder
=
k
z
alloc
(
sizeof
(
struct
saa7111
),
GFP_KERNEL
);
if
(
decoder
==
NULL
)
{
kfree
(
client
);
return
-
ENOMEM
;
}
memset
(
decoder
,
0
,
sizeof
(
struct
saa7111
));
decoder
->
norm
=
VIDEO_MODE_NTSC
;
decoder
->
input
=
0
;
decoder
->
enable
=
1
;
...
...
drivers/media/video/saa7114.c
浏览文件 @
593195f9
...
...
@@ -852,21 +852,19 @@ saa7114_detect_client (struct i2c_adapter *adapter,
if
(
!
i2c_check_functionality
(
adapter
,
I2C_FUNC_SMBUS_BYTE_DATA
))
return
0
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
client
==
0
)
return
-
ENOMEM
;
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
i2c_driver_saa7114
;
strlcpy
(
I2C_NAME
(
client
),
"saa7114"
,
sizeof
(
I2C_NAME
(
client
)));
decoder
=
k
m
alloc
(
sizeof
(
struct
saa7114
),
GFP_KERNEL
);
decoder
=
k
z
alloc
(
sizeof
(
struct
saa7114
),
GFP_KERNEL
);
if
(
decoder
==
NULL
)
{
kfree
(
client
);
return
-
ENOMEM
;
}
memset
(
decoder
,
0
,
sizeof
(
struct
saa7114
));
decoder
->
norm
=
VIDEO_MODE_NTSC
;
decoder
->
input
=
-
1
;
decoder
->
enable
=
1
;
...
...
drivers/media/video/saa7115.c
浏览文件 @
593195f9
...
...
@@ -549,7 +549,7 @@ static int saa7115_set_audio_clock_freq(struct i2c_client *client, u32 freq)
u32
hz
;
u64
f
;
v4l_dbg
(
1
,
client
,
"set audio clock freq: %d
\n
"
,
freq
);
v4l_dbg
(
1
,
debug
,
client
,
"set audio clock freq: %d
\n
"
,
freq
);
/* sanity check */
if
(
freq
<
32000
||
freq
>
48000
)
...
...
@@ -670,10 +670,10 @@ static void saa7115_set_v4lstd(struct i2c_client *client, v4l2_std_id std)
// This works for NTSC-M, SECAM-L and the 50Hz PAL variants.
if
(
std
&
V4L2_STD_525_60
)
{
v4l_dbg
(
1
,
client
,
"decoder set standard 60 Hz
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"decoder set standard 60 Hz
\n
"
);
saa7115_writeregs
(
client
,
saa7115_cfg_60hz_video
);
}
else
{
v4l_dbg
(
1
,
client
,
"decoder set standard 50 Hz
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"decoder set standard 50 Hz
\n
"
);
saa7115_writeregs
(
client
,
saa7115_cfg_50hz_video
);
}
...
...
@@ -863,7 +863,7 @@ static int saa7115_set_v4lfmt(struct i2c_client *client, struct v4l2_format *fmt
pix
=
&
(
fmt
->
fmt
.
pix
);
v4l_dbg
(
1
,
client
,
"decoder set size
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"decoder set size
\n
"
);
/* FIXME need better bounds checking here */
if
((
pix
->
width
<
1
)
||
(
pix
->
width
>
1440
))
...
...
@@ -889,7 +889,7 @@ static int saa7115_set_v4lfmt(struct i2c_client *client, struct v4l2_format *fmt
HPSC
=
HPSC
?
HPSC
:
1
;
HFSC
=
(
int
)((
1024
*
720
)
/
(
HPSC
*
pix
->
width
));
v4l_dbg
(
1
,
client
,
"Hpsc: 0x%05x, Hfsc: 0x%05x
\n
"
,
HPSC
,
HFSC
);
v4l_dbg
(
1
,
debug
,
client
,
"Hpsc: 0x%05x, Hfsc: 0x%05x
\n
"
,
HPSC
,
HFSC
);
/* FIXME hardcodes to "Task B"
* write H prescaler integer */
saa7115_write
(
client
,
0xd0
,
(
u8
)
(
HPSC
&
0x3f
));
...
...
@@ -903,10 +903,10 @@ static int saa7115_set_v4lfmt(struct i2c_client *client, struct v4l2_format *fmt
saa7115_write
(
client
,
0xDD
,
(
u8
)
((
HFSC
>>
9
)
&
0xff
));
}
else
{
if
(
is_50hz
)
{
v4l_dbg
(
1
,
client
,
"Setting full 50hz width
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"Setting full 50hz width
\n
"
);
saa7115_writeregs
(
client
,
saa7115_cfg_50hz_fullres_x
);
}
else
{
v4l_dbg
(
1
,
client
,
"Setting full 60hz width
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"Setting full 60hz width
\n
"
);
saa7115_writeregs
(
client
,
saa7115_cfg_60hz_fullres_x
);
}
}
...
...
@@ -915,7 +915,7 @@ static int saa7115_set_v4lfmt(struct i2c_client *client, struct v4l2_format *fmt
if
(
pix
->
height
!=
Vsrc
)
{
VSCY
=
(
int
)((
1024
*
Vsrc
)
/
pix
->
height
);
v4l_dbg
(
1
,
client
,
"Vsrc: %d, Vscy: 0x%05x
\n
"
,
Vsrc
,
VSCY
);
v4l_dbg
(
1
,
debug
,
client
,
"Vsrc: %d, Vscy: 0x%05x
\n
"
,
Vsrc
,
VSCY
);
/* Correct Contrast and Luminance */
saa7115_write
(
client
,
0xd5
,
(
u8
)
(
64
*
1024
/
VSCY
));
...
...
@@ -929,10 +929,10 @@ static int saa7115_set_v4lfmt(struct i2c_client *client, struct v4l2_format *fmt
saa7115_write
(
client
,
0xe3
,
(
u8
)
((
VSCY
>>
8
)
&
0xff
));
}
else
{
if
(
is_50hz
)
{
v4l_dbg
(
1
,
client
,
"Setting full 50Hz height
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"Setting full 50Hz height
\n
"
);
saa7115_writeregs
(
client
,
saa7115_cfg_50hz_fullres_y
);
}
else
{
v4l_dbg
(
1
,
client
,
"Setting full 60hz height
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"Setting full 60hz height
\n
"
);
saa7115_writeregs
(
client
,
saa7115_cfg_60hz_fullres_y
);
}
}
...
...
@@ -1079,7 +1079,7 @@ static int saa7115_command(struct i2c_client *client, unsigned int cmd, void *ar
break
;
status
=
saa7115_read
(
client
,
0x1f
);
v4l_dbg
(
1
,
client
,
"status: 0x%02x
\n
"
,
status
);
v4l_dbg
(
1
,
debug
,
client
,
"status: 0x%02x
\n
"
,
status
);
vt
->
signal
=
((
status
&
(
1
<<
6
))
==
0
)
?
0xffff
:
0x0
;
break
;
}
...
...
@@ -1125,7 +1125,7 @@ static int saa7115_command(struct i2c_client *client, unsigned int cmd, void *ar
break
;
case
VIDIOC_S_INPUT
:
v4l_dbg
(
1
,
client
,
"decoder set input %d
\n
"
,
*
iarg
);
v4l_dbg
(
1
,
debug
,
client
,
"decoder set input %d
\n
"
,
*
iarg
);
/* inputs from 0-9 are available */
if
(
*
iarg
<
0
||
*
iarg
>
9
)
{
return
-
EINVAL
;
...
...
@@ -1133,7 +1133,7 @@ static int saa7115_command(struct i2c_client *client, unsigned int cmd, void *ar
if
(
state
->
input
==
*
iarg
)
break
;
v4l_dbg
(
1
,
client
,
"now setting %s input
\n
"
,
v4l_dbg
(
1
,
debug
,
client
,
"now setting %s input
\n
"
,
*
iarg
>=
6
?
"S-Video"
:
"Composite"
);
state
->
input
=
*
iarg
;
...
...
@@ -1150,7 +1150,7 @@ static int saa7115_command(struct i2c_client *client, unsigned int cmd, void *ar
case
VIDIOC_STREAMON
:
case
VIDIOC_STREAMOFF
:
v4l_dbg
(
1
,
client
,
"%s output
\n
"
,
v4l_dbg
(
1
,
debug
,
client
,
"%s output
\n
"
,
(
cmd
==
VIDIOC_STREAMON
)
?
"enable"
:
"disable"
);
if
(
state
->
enable
!=
(
cmd
==
VIDIOC_STREAMON
))
{
...
...
@@ -1164,7 +1164,7 @@ static int saa7115_command(struct i2c_client *client, unsigned int cmd, void *ar
break
;
case
VIDIOC_INT_RESET
:
v4l_dbg
(
1
,
client
,
"decoder RESET
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"decoder RESET
\n
"
);
saa7115_writeregs
(
client
,
saa7115_cfg_reset_scaler
);
break
;
...
...
@@ -1249,21 +1249,20 @@ static int saa7115_attach(struct i2c_adapter *adapter, int address, int kind)
if
(
!
i2c_check_functionality
(
adapter
,
I2C_FUNC_SMBUS_BYTE_DATA
))
return
0
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
client
==
0
)
return
-
ENOMEM
;
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
i2c_driver_saa7115
;
snprintf
(
client
->
name
,
sizeof
(
client
->
name
)
-
1
,
"saa7115"
);
v4l_dbg
(
1
,
client
,
"detecting saa7115 client on address 0x%x
\n
"
,
address
<<
1
);
v4l_dbg
(
1
,
debug
,
client
,
"detecting saa7115 client on address 0x%x
\n
"
,
address
<<
1
);
saa7115_write
(
client
,
0
,
5
);
chip_id
=
saa7115_read
(
client
,
0
)
&
0x0f
;
if
(
chip_id
!=
4
&&
chip_id
!=
5
)
{
v4l_dbg
(
1
,
client
,
"saa7115 not found
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"saa7115 not found
\n
"
);
kfree
(
client
);
return
0
;
}
...
...
@@ -1272,13 +1271,12 @@ static int saa7115_attach(struct i2c_adapter *adapter, int address, int kind)
}
v4l_info
(
client
,
"saa711%d found @ 0x%x (%s)
\n
"
,
chip_id
,
address
<<
1
,
adapter
->
name
);
state
=
k
m
alloc
(
sizeof
(
struct
saa7115_state
),
GFP_KERNEL
);
state
=
k
z
alloc
(
sizeof
(
struct
saa7115_state
),
GFP_KERNEL
);
i2c_set_clientdata
(
client
,
state
);
if
(
state
==
NULL
)
{
kfree
(
client
);
return
-
ENOMEM
;
}
memset
(
state
,
0
,
sizeof
(
struct
saa7115_state
));
state
->
std
=
V4L2_STD_NTSC
;
state
->
input
=
-
1
;
state
->
enable
=
1
;
...
...
@@ -1290,7 +1288,7 @@ static int saa7115_attach(struct i2c_adapter *adapter, int address, int kind)
state
->
ident
=
(
chip_id
==
4
)
?
V4L2_IDENT_SAA7114
:
V4L2_IDENT_SAA7115
;
state
->
audclk_freq
=
48000
;
v4l_dbg
(
1
,
client
,
"writing init values
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"writing init values
\n
"
);
/* init to 60hz/48khz */
saa7115_writeregs
(
client
,
saa7115_init_auto_input
);
...
...
@@ -1303,7 +1301,7 @@ static int saa7115_attach(struct i2c_adapter *adapter, int address, int kind)
i2c_attach_client
(
client
);
v4l_dbg
(
1
,
client
,
"status: (1E) 0x%02x, (1F) 0x%02x
\n
"
,
v4l_dbg
(
1
,
debug
,
client
,
"status: (1E) 0x%02x, (1F) 0x%02x
\n
"
,
saa7115_read
(
client
,
0x1e
),
saa7115_read
(
client
,
0x1f
));
return
0
;
...
...
drivers/media/video/saa711x.c
浏览文件 @
593195f9
...
...
@@ -487,20 +487,18 @@ saa711x_detect_client (struct i2c_adapter *adapter,
if
(
!
i2c_check_functionality
(
adapter
,
I2C_FUNC_SMBUS_BYTE_DATA
))
return
0
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
client
==
0
)
return
-
ENOMEM
;
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
i2c_driver_saa711x
;
strlcpy
(
I2C_NAME
(
client
),
"saa711x"
,
sizeof
(
I2C_NAME
(
client
)));
decoder
=
k
m
alloc
(
sizeof
(
struct
saa711x
),
GFP_KERNEL
);
decoder
=
k
z
alloc
(
sizeof
(
struct
saa711x
),
GFP_KERNEL
);
if
(
decoder
==
NULL
)
{
kfree
(
client
);
return
-
ENOMEM
;
}
memset
(
decoder
,
0
,
sizeof
(
struct
saa711x
));
decoder
->
norm
=
VIDEO_MODE_NTSC
;
decoder
->
input
=
0
;
decoder
->
enable
=
1
;
...
...
drivers/media/video/saa7127.c
浏览文件 @
593195f9
...
...
@@ -338,7 +338,7 @@ static int saa7127_set_vps(struct i2c_client *client, struct v4l2_sliced_vbi_dat
if
(
enable
&&
(
data
->
field
!=
0
||
data
->
line
!=
16
))
return
-
EINVAL
;
if
(
state
->
vps_enable
!=
enable
)
{
v4l_dbg
(
1
,
client
,
"Turn VPS Signal %s
\n
"
,
enable
?
"on"
:
"off"
);
v4l_dbg
(
1
,
debug
,
client
,
"Turn VPS Signal %s
\n
"
,
enable
?
"on"
:
"off"
);
saa7127_write
(
client
,
0x54
,
enable
<<
7
);
state
->
vps_enable
=
enable
;
}
...
...
@@ -350,7 +350,7 @@ static int saa7127_set_vps(struct i2c_client *client, struct v4l2_sliced_vbi_dat
state
->
vps_data
[
2
]
=
data
->
data
[
11
];
state
->
vps_data
[
3
]
=
data
->
data
[
12
];
state
->
vps_data
[
4
]
=
data
->
data
[
13
];
v4l_dbg
(
1
,
client
,
"Set VPS data %02x %02x %02x %02x %02x
\n
"
,
v4l_dbg
(
1
,
debug
,
client
,
"Set VPS data %02x %02x %02x %02x %02x
\n
"
,
state
->
vps_data
[
0
],
state
->
vps_data
[
1
],
state
->
vps_data
[
2
],
state
->
vps_data
[
3
],
state
->
vps_data
[
4
]);
...
...
@@ -373,7 +373,7 @@ static int saa7127_set_cc(struct i2c_client *client, struct v4l2_sliced_vbi_data
if
(
enable
&&
(
data
->
field
!=
0
||
data
->
line
!=
21
))
return
-
EINVAL
;
if
(
state
->
cc_enable
!=
enable
)
{
v4l_dbg
(
1
,
client
,
"Turn CC %s
\n
"
,
enable
?
"on"
:
"off"
);
v4l_dbg
(
1
,
debug
,
client
,
"Turn CC %s
\n
"
,
enable
?
"on"
:
"off"
);
saa7127_write
(
client
,
SAA7127_REG_CLOSED_CAPTION
,
(
state
->
xds_enable
<<
7
)
|
(
enable
<<
6
)
|
0x11
);
state
->
cc_enable
=
enable
;
...
...
@@ -381,7 +381,7 @@ static int saa7127_set_cc(struct i2c_client *client, struct v4l2_sliced_vbi_data
if
(
!
enable
)
return
0
;
v4l_dbg
(
2
,
client
,
"CC data: %04x
\n
"
,
cc
);
v4l_dbg
(
2
,
debug
,
client
,
"CC data: %04x
\n
"
,
cc
);
saa7127_write
(
client
,
SAA7127_REG_LINE_21_ODD_0
,
cc
&
0xff
);
saa7127_write
(
client
,
SAA7127_REG_LINE_21_ODD_1
,
cc
>>
8
);
state
->
cc_data
=
cc
;
...
...
@@ -399,7 +399,7 @@ static int saa7127_set_xds(struct i2c_client *client, struct v4l2_sliced_vbi_dat
if
(
enable
&&
(
data
->
field
!=
1
||
data
->
line
!=
21
))
return
-
EINVAL
;
if
(
state
->
xds_enable
!=
enable
)
{
v4l_dbg
(
1
,
client
,
"Turn XDS %s
\n
"
,
enable
?
"on"
:
"off"
);
v4l_dbg
(
1
,
debug
,
client
,
"Turn XDS %s
\n
"
,
enable
?
"on"
:
"off"
);
saa7127_write
(
client
,
SAA7127_REG_CLOSED_CAPTION
,
(
enable
<<
7
)
|
(
state
->
cc_enable
<<
6
)
|
0x11
);
state
->
xds_enable
=
enable
;
...
...
@@ -407,7 +407,7 @@ static int saa7127_set_xds(struct i2c_client *client, struct v4l2_sliced_vbi_dat
if
(
!
enable
)
return
0
;
v4l_dbg
(
2
,
client
,
"XDS data: %04x
\n
"
,
xds
);
v4l_dbg
(
2
,
debug
,
client
,
"XDS data: %04x
\n
"
,
xds
);
saa7127_write
(
client
,
SAA7127_REG_LINE_21_EVEN_0
,
xds
&
0xff
);
saa7127_write
(
client
,
SAA7127_REG_LINE_21_EVEN_1
,
xds
>>
8
);
state
->
xds_data
=
xds
;
...
...
@@ -424,7 +424,7 @@ static int saa7127_set_wss(struct i2c_client *client, struct v4l2_sliced_vbi_dat
if
(
enable
&&
(
data
->
field
!=
0
||
data
->
line
!=
23
))
return
-
EINVAL
;
if
(
state
->
wss_enable
!=
enable
)
{
v4l_dbg
(
1
,
client
,
"Turn WSS %s
\n
"
,
enable
?
"on"
:
"off"
);
v4l_dbg
(
1
,
debug
,
client
,
"Turn WSS %s
\n
"
,
enable
?
"on"
:
"off"
);
saa7127_write
(
client
,
0x27
,
enable
<<
7
);
state
->
wss_enable
=
enable
;
}
...
...
@@ -433,7 +433,7 @@ static int saa7127_set_wss(struct i2c_client *client, struct v4l2_sliced_vbi_dat
saa7127_write
(
client
,
0x26
,
data
->
data
[
0
]);
saa7127_write
(
client
,
0x27
,
0x80
|
(
data
->
data
[
1
]
&
0x3f
));
v4l_dbg
(
1
,
client
,
"WSS mode: %s
\n
"
,
wss_strs
[
data
->
data
[
0
]
&
0xf
]);
v4l_dbg
(
1
,
debug
,
client
,
"WSS mode: %s
\n
"
,
wss_strs
[
data
->
data
[
0
]
&
0xf
]);
state
->
wss_mode
=
(
data
->
data
[
1
]
&
0x3f
)
<<
8
|
data
->
data
[
0
];
return
0
;
}
...
...
@@ -445,11 +445,11 @@ static int saa7127_set_video_enable(struct i2c_client *client, int enable)
struct
saa7127_state
*
state
=
i2c_get_clientdata
(
client
);
if
(
enable
)
{
v4l_dbg
(
1
,
client
,
"Enable Video Output
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"Enable Video Output
\n
"
);
saa7127_write
(
client
,
0x2d
,
state
->
reg_2d
);
saa7127_write
(
client
,
0x61
,
state
->
reg_61
);
}
else
{
v4l_dbg
(
1
,
client
,
"Disable Video Output
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"Disable Video Output
\n
"
);
saa7127_write
(
client
,
0x2d
,
(
state
->
reg_2d
&
0xf0
));
saa7127_write
(
client
,
0x61
,
(
state
->
reg_61
|
0xc0
));
}
...
...
@@ -465,11 +465,11 @@ static int saa7127_set_std(struct i2c_client *client, v4l2_std_id std)
const
struct
i2c_reg_value
*
inittab
;
if
(
std
&
V4L2_STD_525_60
)
{
v4l_dbg
(
1
,
client
,
"Selecting 60 Hz video Standard
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"Selecting 60 Hz video Standard
\n
"
);
inittab
=
saa7127_init_config_60hz
;
state
->
reg_61
=
SAA7127_60HZ_DAC_CONTROL
;
}
else
{
v4l_dbg
(
1
,
client
,
"Selecting 50 Hz video Standard
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"Selecting 50 Hz video Standard
\n
"
);
inittab
=
saa7127_init_config_50hz
;
state
->
reg_61
=
SAA7127_50HZ_DAC_CONTROL
;
}
...
...
@@ -520,7 +520,7 @@ static int saa7127_set_output_type(struct i2c_client *client, int output)
default:
return
-
EINVAL
;
}
v4l_dbg
(
1
,
client
,
"Selecting %s output type
\n
"
,
output_strs
[
output
]);
v4l_dbg
(
1
,
debug
,
client
,
"Selecting %s output type
\n
"
,
output_strs
[
output
]);
/* Configure Encoder */
saa7127_write
(
client
,
0x2d
,
state
->
reg_2d
);
...
...
@@ -537,12 +537,12 @@ static int saa7127_set_input_type(struct i2c_client *client, int input)
switch
(
input
)
{
case
SAA7127_INPUT_TYPE_NORMAL
:
/* avia */
v4l_dbg
(
1
,
client
,
"Selecting Normal Encoder Input
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"Selecting Normal Encoder Input
\n
"
);
state
->
reg_3a_cb
=
0
;
break
;
case
SAA7127_INPUT_TYPE_TEST_IMAGE
:
/* color bar */
v4l_dbg
(
1
,
client
,
"Selecting Color Bar generator
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"Selecting Color Bar generator
\n
"
);
state
->
reg_3a_cb
=
0x80
;
break
;
...
...
@@ -689,17 +689,16 @@ static int saa7127_attach(struct i2c_adapter *adapter, int address, int kind)
if
(
!
i2c_check_functionality
(
adapter
,
I2C_FUNC_SMBUS_BYTE_DATA
))
return
0
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
client
==
0
)
return
-
ENOMEM
;
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
i2c_driver_saa7127
;
snprintf
(
client
->
name
,
sizeof
(
client
->
name
)
-
1
,
"saa7127"
);
v4l_dbg
(
1
,
client
,
"detecting saa7127 client on address 0x%x
\n
"
,
address
<<
1
);
v4l_dbg
(
1
,
debug
,
client
,
"detecting saa7127 client on address 0x%x
\n
"
,
address
<<
1
);
/* First test register 0: Bits 5-7 are a version ID (should be 0),
and bit 2 should also be 0.
...
...
@@ -708,11 +707,11 @@ static int saa7127_attach(struct i2c_adapter *adapter, int address, int kind)
0x1d after a reset and not expected to ever change. */
if
((
saa7127_read
(
client
,
0
)
&
0xe4
)
!=
0
||
(
saa7127_read
(
client
,
0x29
)
&
0x3f
)
!=
0x1d
)
{
v4l_dbg
(
1
,
client
,
"saa7127 not found
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"saa7127 not found
\n
"
);
kfree
(
client
);
return
0
;
}
state
=
k
m
alloc
(
sizeof
(
struct
saa7127_state
),
GFP_KERNEL
);
state
=
k
z
alloc
(
sizeof
(
struct
saa7127_state
),
GFP_KERNEL
);
if
(
state
==
NULL
)
{
kfree
(
client
);
...
...
@@ -720,11 +719,10 @@ static int saa7127_attach(struct i2c_adapter *adapter, int address, int kind)
}
i2c_set_clientdata
(
client
,
state
);
memset
(
state
,
0
,
sizeof
(
struct
saa7127_state
));
/* Configure Encoder */
v4l_dbg
(
1
,
client
,
"Configuring encoder
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"Configuring encoder
\n
"
);
saa7127_write_inittab
(
client
,
saa7127_init_config_common
);
saa7127_set_std
(
client
,
V4L2_STD_NTSC
);
saa7127_set_output_type
(
client
,
SAA7127_OUTPUT_TYPE_BOTH
);
...
...
drivers/media/video/saa7134/Kconfig
浏览文件 @
593195f9
...
...
@@ -15,7 +15,7 @@ config VIDEO_SAA7134
config VIDEO_SAA7134_ALSA
tristate "Philips SAA7134 DMA audio support"
depends on VIDEO_SAA7134 && SND
select SND_PCM
_OSS
select SND_PCM
---help---
This is a video4linux driver for direct (DMA) audio in
Philips SAA713x based TV cards using ALSA
...
...
drivers/media/video/saa7134/saa6752hs.c
浏览文件 @
593195f9
...
...
@@ -511,9 +511,8 @@ static int saa6752hs_attach(struct i2c_adapter *adap, int addr, int kind)
struct
saa6752hs_state
*
h
;
if
(
NULL
==
(
h
=
k
m
alloc
(
sizeof
(
*
h
),
GFP_KERNEL
)))
if
(
NULL
==
(
h
=
k
z
alloc
(
sizeof
(
*
h
),
GFP_KERNEL
)))
return
-
ENOMEM
;
memset
(
h
,
0
,
sizeof
(
*
h
));
h
->
client
=
client_template
;
h
->
params
=
param_defaults
;
h
->
client
.
adapter
=
adap
;
...
...
drivers/media/video/saa7134/saa7134-cards.c
浏览文件 @
593195f9
...
...
@@ -1666,7 +1666,7 @@ struct saa7134_board saa7134_boards[] = {
.
radio_type
=
UNSET
,
.
tuner_addr
=
ADDR_UNSET
,
.
radio_addr
=
ADDR_UNSET
,
.
tda9887_conf
=
TDA9887_PRESENT
|
TDA9887_INTERCARRIER
,
.
tda9887_conf
=
TDA9887_PRESENT
|
TDA9887_INTERCARRIER
|
TDA9887_PORT2_ACTIVE
,
.
mpeg
=
SAA7134_MPEG_DVB
,
.
inputs
=
{{
.
name
=
name_tv
,
...
...
drivers/media/video/saa7134/saa7134-core.c
浏览文件 @
593195f9
...
...
@@ -803,10 +803,9 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev,
struct
saa7134_mpeg_ops
*
mops
;
int
err
;
dev
=
k
m
alloc
(
sizeof
(
*
dev
),
GFP_KERNEL
);
dev
=
k
z
alloc
(
sizeof
(
*
dev
),
GFP_KERNEL
);
if
(
NULL
==
dev
)
return
-
ENOMEM
;
memset
(
dev
,
0
,
sizeof
(
*
dev
));
/* pci init */
dev
->
pci
=
pci_dev
;
...
...
drivers/media/video/saa7134/saa7134-video.c
浏览文件 @
593195f9
...
...
@@ -1264,10 +1264,9 @@ static int video_open(struct inode *inode, struct file *file)
v4l2_type_names
[
type
]);
/* allocate + initialize per filehandle data */
fh
=
k
m
alloc
(
sizeof
(
*
fh
),
GFP_KERNEL
);
fh
=
k
z
alloc
(
sizeof
(
*
fh
),
GFP_KERNEL
);
if
(
NULL
==
fh
)
return
-
ENOMEM
;
memset
(
fh
,
0
,
sizeof
(
*
fh
));
file
->
private_data
=
fh
;
fh
->
dev
=
dev
;
fh
->
radio
=
radio
;
...
...
drivers/media/video/saa7146.h
浏览文件 @
593195f9
...
...
@@ -73,7 +73,6 @@ struct saa7146
unsigned
int
nr
;
unsigned
long
irq
;
/* IRQ used by SAA7146 card */
unsigned
short
id
;
struct
pci_dev
*
dev
;
unsigned
char
revision
;
unsigned
char
boardcfg
[
64
];
/* 64 bytes of config from eeprom */
unsigned
long
saa7146_adr
;
/* bus address of IO mem from PCI BIOS */
...
...
drivers/media/video/saa7185.c
浏览文件 @
593195f9
...
...
@@ -408,21 +408,19 @@ saa7185_detect_client (struct i2c_adapter *adapter,
if
(
!
i2c_check_functionality
(
adapter
,
I2C_FUNC_SMBUS_BYTE_DATA
))
return
0
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
client
==
0
)
return
-
ENOMEM
;
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
i2c_driver_saa7185
;
strlcpy
(
I2C_NAME
(
client
),
"saa7185"
,
sizeof
(
I2C_NAME
(
client
)));
encoder
=
k
m
alloc
(
sizeof
(
struct
saa7185
),
GFP_KERNEL
);
encoder
=
k
z
alloc
(
sizeof
(
struct
saa7185
),
GFP_KERNEL
);
if
(
encoder
==
NULL
)
{
kfree
(
client
);
return
-
ENOMEM
;
}
memset
(
encoder
,
0
,
sizeof
(
struct
saa7185
));
encoder
->
norm
=
VIDEO_MODE_NTSC
;
encoder
->
enable
=
1
;
i2c_set_clientdata
(
client
,
encoder
);
...
...
drivers/media/video/saa7191.c
浏览文件 @
593195f9
...
...
@@ -571,18 +571,15 @@ static int saa7191_attach(struct i2c_adapter *adap, int addr, int kind)
printk
(
KERN_INFO
"Philips SAA7191 driver version %s
\n
"
,
SAA7191_MODULE_VERSION
);
client
=
k
m
alloc
(
sizeof
(
*
client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
*
client
),
GFP_KERNEL
);
if
(
!
client
)
return
-
ENOMEM
;
decoder
=
k
m
alloc
(
sizeof
(
*
decoder
),
GFP_KERNEL
);
decoder
=
k
z
alloc
(
sizeof
(
*
decoder
),
GFP_KERNEL
);
if
(
!
decoder
)
{
err
=
-
ENOMEM
;
goto
out_free_client
;
}
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
memset
(
decoder
,
0
,
sizeof
(
struct
saa7191
));
client
->
addr
=
addr
;
client
->
adapter
=
adap
;
client
->
driver
=
&
i2c_driver_saa7191
;
...
...
drivers/media/video/stradis.c
浏览文件 @
593195f9
此差异已折叠。
点击以展开。
drivers/media/video/tda7432.c
浏览文件 @
593195f9
...
...
@@ -227,8 +227,8 @@ static struct i2c_client client_template;
static
int
tda7432_write
(
struct
i2c_client
*
client
,
int
subaddr
,
int
val
)
{
unsigned
char
buffer
[
2
];
v4l_dbg
(
2
,
client
,
"In tda7432_write
\n
"
);
v4l_dbg
(
1
,
client
,
"Writing %d 0x%x
\n
"
,
subaddr
,
val
);
v4l_dbg
(
2
,
debug
,
client
,
"In tda7432_write
\n
"
);
v4l_dbg
(
1
,
debug
,
client
,
"Writing %d 0x%x
\n
"
,
subaddr
,
val
);
buffer
[
0
]
=
subaddr
;
buffer
[
1
]
=
val
;
if
(
2
!=
i2c_master_send
(
client
,
buffer
,
2
))
{
...
...
@@ -245,9 +245,9 @@ static int tda7432_set(struct i2c_client *client)
{
struct
tda7432
*
t
=
i2c_get_clientdata
(
client
);
unsigned
char
buf
[
16
];
v4l_dbg
(
2
,
client
,
"In tda7432_set
\n
"
);
v4l_dbg
(
2
,
debug
,
client
,
"In tda7432_set
\n
"
);
v4l_dbg
(
1
,
client
,
v4l_dbg
(
1
,
debug
,
client
,
"tda7432: 7432_set(0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x)
\n
"
,
t
->
input
,
t
->
volume
,
t
->
bass
,
t
->
treble
,
t
->
lf
,
t
->
lr
,
t
->
rf
,
t
->
rr
,
t
->
loud
);
buf
[
0
]
=
TDA7432_IN
;
...
...
@@ -271,7 +271,7 @@ static int tda7432_set(struct i2c_client *client)
static
void
do_tda7432_init
(
struct
i2c_client
*
client
)
{
struct
tda7432
*
t
=
i2c_get_clientdata
(
client
);
v4l_dbg
(
2
,
client
,
"In tda7432_init
\n
"
);
v4l_dbg
(
2
,
debug
,
client
,
"In tda7432_init
\n
"
);
t
->
input
=
TDA7432_STEREO_IN
|
/* Main (stereo) input */
TDA7432_BASS_SYM
|
/* Symmetric bass cut */
...
...
@@ -300,10 +300,9 @@ static int tda7432_attach(struct i2c_adapter *adap, int addr, int kind)
struct
tda7432
*
t
;
struct
i2c_client
*
client
;
t
=
k
m
alloc
(
sizeof
*
t
,
GFP_KERNEL
);
t
=
k
z
alloc
(
sizeof
*
t
,
GFP_KERNEL
);
if
(
!
t
)
return
-
ENOMEM
;
memset
(
t
,
0
,
sizeof
*
t
);
client
=
&
t
->
c
;
memcpy
(
client
,
&
client_template
,
sizeof
(
struct
i2c_client
));
...
...
@@ -340,7 +339,7 @@ static int tda7432_command(struct i2c_client *client,
unsigned
int
cmd
,
void
*
arg
)
{
struct
tda7432
*
t
=
i2c_get_clientdata
(
client
);
v4l_dbg
(
2
,
client
,
"In tda7432_command
\n
"
);
v4l_dbg
(
2
,
debug
,
client
,
"In tda7432_command
\n
"
);
if
(
debug
>
1
)
v4l_i2c_print_ioctl
(
client
,
cmd
);
...
...
drivers/media/video/tda9875.c
浏览文件 @
593195f9
...
...
@@ -232,10 +232,9 @@ static int tda9875_attach(struct i2c_adapter *adap, int addr, int kind)
struct
i2c_client
*
client
;
dprintk
(
"In tda9875_attach
\n
"
);
t
=
k
m
alloc
(
sizeof
*
t
,
GFP_KERNEL
);
t
=
k
z
alloc
(
sizeof
*
t
,
GFP_KERNEL
);
if
(
!
t
)
return
-
ENOMEM
;
memset
(
t
,
0
,
sizeof
*
t
);
client
=
&
t
->
c
;
memcpy
(
client
,
&
client_template
,
sizeof
(
struct
i2c_client
));
...
...
drivers/media/video/tda9887.c
浏览文件 @
593195f9
...
...
@@ -696,9 +696,8 @@ static int tda9887_attach(struct i2c_adapter *adap, int addr, int kind)
client_template
.
adapter
=
adap
;
client_template
.
addr
=
addr
;
if
(
NULL
==
(
t
=
k
m
alloc
(
sizeof
(
*
t
),
GFP_KERNEL
)))
if
(
NULL
==
(
t
=
k
z
alloc
(
sizeof
(
*
t
),
GFP_KERNEL
)))
return
-
ENOMEM
;
memset
(
t
,
0
,
sizeof
(
*
t
));
t
->
client
=
client_template
;
t
->
std
=
0
;
...
...
drivers/media/video/tea5767.c
浏览文件 @
593195f9
...
...
@@ -18,7 +18,7 @@
#define PREFIX "TEA5767 "
/* from tuner-core.c */
extern
int
debug
;
extern
int
tuner_
debug
;
/*****************************************************************************/
...
...
@@ -249,7 +249,7 @@ static void set_radio_freq(struct i2c_client *c, unsigned int frq)
if
(
5
!=
(
rc
=
i2c_master_send
(
c
,
buffer
,
5
)))
tuner_warn
(
"i2c i/o error: rc == %d (should be 5)
\n
"
,
rc
);
if
(
debug
)
{
if
(
tuner_
debug
)
{
if
(
5
!=
(
rc
=
i2c_master_recv
(
c
,
buffer
,
5
)))
tuner_warn
(
"i2c i/o error: rc == %d (should be 5)
\n
"
,
rc
);
else
...
...
drivers/media/video/tea6420.c
浏览文件 @
593195f9
...
...
@@ -99,11 +99,10 @@ static int tea6420_detect(struct i2c_adapter *adapter, int address, int kind)
}
/* allocate memory for client structure */
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
0
==
client
)
{
return
-
ENOMEM
;
}
memset
(
client
,
0x0
,
sizeof
(
struct
i2c_client
));
/* fill client structure */
memcpy
(
client
,
&
client_template
,
sizeof
(
struct
i2c_client
));
...
...
drivers/media/video/tuner-3036.c
浏览文件 @
593195f9
...
...
@@ -193,8 +193,7 @@ static struct i2c_client client_template =
static
int
__init
tuner3036_init
(
void
)
{
i2c_add_driver
(
&
i2c_driver_tuner
);
return
0
;
return
i2c_add_driver
(
&
i2c_driver_tuner
);
}
static
void
__exit
...
...
drivers/media/video/tuner-core.c
浏览文件 @
593195f9
...
...
@@ -41,8 +41,8 @@ static unsigned int no_autodetect = 0;
static
unsigned
int
show_i2c
=
0
;
/* insmod options used at runtime => read/write */
static
unsigned
int
tuner_debug
=
0
;
int
debug
=
0
;
static
unsigned
int
tuner_debug
_old
=
0
;
int
tuner_
debug
=
0
;
static
unsigned
int
tv_range
[
2
]
=
{
44
,
958
};
static
unsigned
int
radio_range
[
2
]
=
{
65
,
108
};
...
...
@@ -51,13 +51,13 @@ static char pal[] = "--";
static
char
secam
[]
=
"--"
;
static
char
ntsc
[]
=
"-"
;
module_param
(
addr
,
int
,
0444
);
module_param
(
no_autodetect
,
int
,
0444
);
module_param
(
show_i2c
,
int
,
0444
);
/* Note: tuner_debug is deprecated and will be removed in 2.6.17 */
module_param
(
tuner_debug
,
int
,
0444
);
module_param
(
debug
,
int
,
0644
);
module_param_named
(
tuner_debug
,
tuner_debug_old
,
int
,
0444
);
module_param_named
(
debug
,
tuner_debug
,
int
,
0644
);
module_param_string
(
pal
,
pal
,
sizeof
(
pal
),
0644
);
module_param_string
(
secam
,
secam
,
sizeof
(
secam
),
0644
);
module_param_string
(
ntsc
,
ntsc
,
sizeof
(
ntsc
),
0644
);
...
...
@@ -410,18 +410,17 @@ static int tuner_attach(struct i2c_adapter *adap, int addr, int kind)
client_template
.
adapter
=
adap
;
client_template
.
addr
=
addr
;
t
=
k
m
alloc
(
sizeof
(
struct
tuner
),
GFP_KERNEL
);
t
=
k
z
alloc
(
sizeof
(
struct
tuner
),
GFP_KERNEL
);
if
(
NULL
==
t
)
return
-
ENOMEM
;
memset
(
t
,
0
,
sizeof
(
struct
tuner
));
memcpy
(
&
t
->
i2c
,
&
client_template
,
sizeof
(
struct
i2c_client
));
i2c_set_clientdata
(
&
t
->
i2c
,
t
);
t
->
type
=
UNSET
;
t
->
radio_if2
=
10700
*
1000
;
/* 10.7MHz - FM radio */
t
->
audmode
=
V4L2_TUNER_MODE_STEREO
;
t
->
mode_mask
=
T_UNINITIALIZED
;
if
(
tuner_debug
)
{
debug
=
tuner_debug
;
if
(
tuner_debug
_old
)
{
tuner_debug
=
tuner_debug_old
;
printk
(
KERN_ERR
"tuner: tuner_debug is deprecated and will be removed in 2.6.17.
\n
"
);
printk
(
KERN_ERR
"tuner: use the debug option instead.
\n
"
);
}
...
...
@@ -552,7 +551,7 @@ static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg)
{
struct
tuner
*
t
=
i2c_get_clientdata
(
client
);
if
(
debug
>
1
)
if
(
tuner_
debug
>
1
)
v4l_i2c_print_ioctl
(
&
(
t
->
i2c
),
cmd
);
switch
(
cmd
)
{
...
...
drivers/media/video/tvaudio.c
浏览文件 @
593195f9
...
...
@@ -159,7 +159,7 @@ static int chip_write(struct CHIPSTATE *chip, int subaddr, int val)
unsigned
char
buffer
[
2
];
if
(
-
1
==
subaddr
)
{
v4l_dbg
(
1
,
&
chip
->
c
,
"%s: chip_write: 0x%x
\n
"
,
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"%s: chip_write: 0x%x
\n
"
,
chip
->
c
.
name
,
val
);
chip
->
shadow
.
bytes
[
1
]
=
val
;
buffer
[
0
]
=
val
;
...
...
@@ -169,7 +169,7 @@ static int chip_write(struct CHIPSTATE *chip, int subaddr, int val)
return
-
1
;
}
}
else
{
v4l_dbg
(
1
,
&
chip
->
c
,
"%s: chip_write: reg%d=0x%x
\n
"
,
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"%s: chip_write: reg%d=0x%x
\n
"
,
chip
->
c
.
name
,
subaddr
,
val
);
chip
->
shadow
.
bytes
[
subaddr
+
1
]
=
val
;
buffer
[
0
]
=
subaddr
;
...
...
@@ -204,7 +204,7 @@ static int chip_read(struct CHIPSTATE *chip)
chip
->
c
.
name
);
return
-
1
;
}
v4l_dbg
(
1
,
&
chip
->
c
,
"%s: chip_read: 0x%x
\n
"
,
chip
->
c
.
name
,
buffer
);
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"%s: chip_read: 0x%x
\n
"
,
chip
->
c
.
name
,
buffer
);
return
buffer
;
}
...
...
@@ -222,7 +222,7 @@ static int chip_read2(struct CHIPSTATE *chip, int subaddr)
v4l_warn
(
&
chip
->
c
,
"%s: I/O error (read2)
\n
"
,
chip
->
c
.
name
);
return
-
1
;
}
v4l_dbg
(
1
,
&
chip
->
c
,
"%s: chip_read2: reg%d=0x%x
\n
"
,
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"%s: chip_read2: reg%d=0x%x
\n
"
,
chip
->
c
.
name
,
subaddr
,
read
[
0
]);
return
read
[
0
];
}
...
...
@@ -235,7 +235,7 @@ static int chip_cmd(struct CHIPSTATE *chip, char *name, audiocmd *cmd)
return
0
;
/* update our shadow register set; print bytes if (debug > 0) */
v4l_dbg
(
1
,
&
chip
->
c
,
"%s: chip_cmd(%s): reg=%d, data:"
,
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"%s: chip_cmd(%s): reg=%d, data:"
,
chip
->
c
.
name
,
name
,
cmd
->
bytes
[
0
]);
for
(
i
=
1
;
i
<
cmd
->
count
;
i
++
)
{
if
(
debug
)
...
...
@@ -274,7 +274,7 @@ static int chip_thread(void *data)
daemonize
(
"%s"
,
chip
->
c
.
name
);
allow_signal
(
SIGTERM
);
v4l_dbg
(
1
,
&
chip
->
c
,
"%s: thread started
\n
"
,
chip
->
c
.
name
);
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"%s: thread started
\n
"
,
chip
->
c
.
name
);
for
(;;)
{
add_wait_queue
(
&
chip
->
wq
,
&
wait
);
...
...
@@ -286,7 +286,7 @@ static int chip_thread(void *data)
try_to_freeze
();
if
(
chip
->
done
||
signal_pending
(
current
))
break
;
v4l_dbg
(
1
,
&
chip
->
c
,
"%s: thread wakeup
\n
"
,
chip
->
c
.
name
);
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"%s: thread wakeup
\n
"
,
chip
->
c
.
name
);
/* don't do anything for radio or if mode != auto */
if
(
chip
->
radio
||
chip
->
mode
!=
0
)
...
...
@@ -299,7 +299,7 @@ static int chip_thread(void *data)
mod_timer
(
&
chip
->
wt
,
jiffies
+
2
*
HZ
);
}
v4l_dbg
(
1
,
&
chip
->
c
,
"%s: thread exiting
\n
"
,
chip
->
c
.
name
);
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"%s: thread exiting
\n
"
,
chip
->
c
.
name
);
complete_and_exit
(
&
chip
->
texit
,
0
);
return
0
;
}
...
...
@@ -312,7 +312,7 @@ static void generic_checkmode(struct CHIPSTATE *chip)
if
(
mode
==
chip
->
prevmode
)
return
;
v4l_dbg
(
1
,
&
chip
->
c
,
"%s: thread checkmode
\n
"
,
chip
->
c
.
name
);
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"%s: thread checkmode
\n
"
,
chip
->
c
.
name
);
chip
->
prevmode
=
mode
;
if
(
mode
&
VIDEO_SOUND_STEREO
)
...
...
@@ -359,7 +359,7 @@ static int tda9840_getmode(struct CHIPSTATE *chip)
if
(
val
&
TDA9840_ST_STEREO
)
mode
|=
VIDEO_SOUND_STEREO
;
v4l_dbg
(
1
,
&
chip
->
c
,
"tda9840_getmode(): raw chip read: %d, return: %d
\n
"
,
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"tda9840_getmode(): raw chip read: %d, return: %d
\n
"
,
val
,
mode
);
return
mode
;
}
...
...
@@ -655,7 +655,7 @@ static int tda9873_getmode(struct CHIPSTATE *chip)
mode
|=
VIDEO_SOUND_STEREO
;
if
(
val
&
TDA9873_DUAL
)
mode
|=
VIDEO_SOUND_LANG1
|
VIDEO_SOUND_LANG2
;
v4l_dbg
(
1
,
&
chip
->
c
,
"tda9873_getmode(): raw chip read: %d, return: %d
\n
"
,
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"tda9873_getmode(): raw chip read: %d, return: %d
\n
"
,
val
,
mode
);
return
mode
;
}
...
...
@@ -666,12 +666,12 @@ static void tda9873_setmode(struct CHIPSTATE *chip, int mode)
/* int adj_data = chip->shadow.bytes[TDA9873_AD+1] ; */
if
((
sw_data
&
TDA9873_INP_MASK
)
!=
TDA9873_INTERNAL
)
{
v4l_dbg
(
1
,
&
chip
->
c
,
"tda9873_setmode(): external input
\n
"
);
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"tda9873_setmode(): external input
\n
"
);
return
;
}
v4l_dbg
(
1
,
&
chip
->
c
,
"tda9873_setmode(): chip->shadow.bytes[%d] = %d
\n
"
,
TDA9873_SW
+
1
,
chip
->
shadow
.
bytes
[
TDA9873_SW
+
1
]);
v4l_dbg
(
1
,
&
chip
->
c
,
"tda9873_setmode(): sw_data = %d
\n
"
,
sw_data
);
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"tda9873_setmode(): chip->shadow.bytes[%d] = %d
\n
"
,
TDA9873_SW
+
1
,
chip
->
shadow
.
bytes
[
TDA9873_SW
+
1
]);
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"tda9873_setmode(): sw_data = %d
\n
"
,
sw_data
);
switch
(
mode
)
{
case
VIDEO_SOUND_MONO
:
...
...
@@ -692,7 +692,7 @@ static void tda9873_setmode(struct CHIPSTATE *chip, int mode)
}
chip_write
(
chip
,
TDA9873_SW
,
sw_data
);
v4l_dbg
(
1
,
&
chip
->
c
,
"tda9873_setmode(): req. mode %d; chip_write: %d
\n
"
,
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"tda9873_setmode(): req. mode %d; chip_write: %d
\n
"
,
mode
,
sw_data
);
}
...
...
@@ -831,7 +831,7 @@ static int tda9874a_setup(struct CHIPSTATE *chip)
chip_write
(
chip
,
TDA9874A_SDACOSR
,
(
tda9874a_mode
)
?
0x81
:
0x80
);
chip_write
(
chip
,
TDA9874A_AOSR
,
0x00
);
/* or 0x10 */
}
v4l_dbg
(
1
,
&
chip
->
c
,
"tda9874a_setup(): %s [0x%02X].
\n
"
,
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"tda9874a_setup(): %s [0x%02X].
\n
"
,
tda9874a_modelist
[
tda9874a_STD
].
name
,
tda9874a_STD
);
return
1
;
}
...
...
@@ -874,7 +874,7 @@ static int tda9874a_getmode(struct CHIPSTATE *chip)
mode
|=
VIDEO_SOUND_LANG1
|
VIDEO_SOUND_LANG2
;
}
v4l_dbg
(
1
,
&
chip
->
c
,
"tda9874a_getmode(): DSR=0x%X, NSR=0x%X, NECR=0x%X, return: %d.
\n
"
,
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"tda9874a_getmode(): DSR=0x%X, NSR=0x%X, NECR=0x%X, return: %d.
\n
"
,
dsr
,
nsr
,
necr
,
mode
);
return
mode
;
}
...
...
@@ -920,7 +920,7 @@ static void tda9874a_setmode(struct CHIPSTATE *chip, int mode)
chip_write
(
chip
,
TDA9874A_AOSR
,
aosr
);
chip_write
(
chip
,
TDA9874A_MDACOSR
,
mdacosr
);
v4l_dbg
(
1
,
&
chip
->
c
,
"tda9874a_setmode(): req. mode %d; AOSR=0x%X, MDACOSR=0x%X.
\n
"
,
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"tda9874a_setmode(): req. mode %d; AOSR=0x%X, MDACOSR=0x%X.
\n
"
,
mode
,
aosr
,
mdacosr
);
}
else
{
/* dic == 0x07 */
...
...
@@ -955,7 +955,7 @@ static void tda9874a_setmode(struct CHIPSTATE *chip, int mode)
chip_write
(
chip
,
TDA9874A_FMMR
,
fmmr
);
chip_write
(
chip
,
TDA9874A_AOSR
,
aosr
);
v4l_dbg
(
1
,
&
chip
->
c
,
"tda9874a_setmode(): req. mode %d; FMMR=0x%X, AOSR=0x%X.
\n
"
,
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"tda9874a_setmode(): req. mode %d; FMMR=0x%X, AOSR=0x%X.
\n
"
,
mode
,
fmmr
,
aosr
);
}
}
...
...
@@ -969,7 +969,7 @@ static int tda9874a_checkit(struct CHIPSTATE *chip)
if
(
-
1
==
(
sic
=
chip_read2
(
chip
,
TDA9874A_SIC
)))
return
0
;
v4l_dbg
(
1
,
&
chip
->
c
,
"tda9874a_checkit(): DIC=0x%X, SIC=0x%X.
\n
"
,
dic
,
sic
);
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"tda9874a_checkit(): DIC=0x%X, SIC=0x%X.
\n
"
,
dic
,
sic
);
if
((
dic
==
0x11
)
||
(
dic
==
0x07
))
{
v4l_info
(
&
chip
->
c
,
"found tda9874%s.
\n
"
,
(
dic
==
0x11
)
?
"a"
:
"h"
);
...
...
@@ -1184,7 +1184,7 @@ static int ta8874z_getmode(struct CHIPSTATE *chip)
}
else
if
(
!
(
val
&
TA8874Z_B0
)){
mode
|=
VIDEO_SOUND_STEREO
;
}
/* v4l_dbg(1, &chip->c, "ta8874z_getmode(): raw chip read: 0x%02x, return: 0x%02x\n", val, mode); */
/* v4l_dbg(1,
debug,
&chip->c, "ta8874z_getmode(): raw chip read: 0x%02x, return: 0x%02x\n", val, mode); */
return
mode
;
}
...
...
@@ -1197,7 +1197,7 @@ static void ta8874z_setmode(struct CHIPSTATE *chip, int mode)
{
int
update
=
1
;
audiocmd
*
t
=
NULL
;
v4l_dbg
(
1
,
&
chip
->
c
,
"ta8874z_setmode(): mode: 0x%02x
\n
"
,
mode
);
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"ta8874z_setmode(): mode: 0x%02x
\n
"
,
mode
);
switch
(
mode
){
case
VIDEO_SOUND_MONO
:
...
...
@@ -1468,17 +1468,16 @@ static int chip_attach(struct i2c_adapter *adap, int addr, int kind)
struct
CHIPSTATE
*
chip
;
struct
CHIPDESC
*
desc
;
chip
=
k
m
alloc
(
sizeof
(
*
chip
),
GFP_KERNEL
);
chip
=
k
z
alloc
(
sizeof
(
*
chip
),
GFP_KERNEL
);
if
(
!
chip
)
return
-
ENOMEM
;
memset
(
chip
,
0
,
sizeof
(
*
chip
));
memcpy
(
&
chip
->
c
,
&
client_template
,
sizeof
(
struct
i2c_client
));
chip
->
c
.
adapter
=
adap
;
chip
->
c
.
addr
=
addr
;
i2c_set_clientdata
(
&
chip
->
c
,
chip
);
/* find description for the chip */
v4l_dbg
(
1
,
&
chip
->
c
,
"chip found @ 0x%x
\n
"
,
addr
<<
1
);
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"chip found @ 0x%x
\n
"
,
addr
<<
1
);
for
(
desc
=
chiplist
;
desc
->
name
!=
NULL
;
desc
++
)
{
if
(
0
==
*
(
desc
->
insmodopt
))
continue
;
...
...
@@ -1490,12 +1489,12 @@ static int chip_attach(struct i2c_adapter *adap, int addr, int kind)
break
;
}
if
(
desc
->
name
==
NULL
)
{
v4l_dbg
(
1
,
&
chip
->
c
,
"no matching chip description found
\n
"
);
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"no matching chip description found
\n
"
);
return
-
EIO
;
}
v4l_info
(
&
chip
->
c
,
"%s found @ 0x%x (%s)
\n
"
,
desc
->
name
,
addr
<<
1
,
adap
->
name
);
if
(
desc
->
flags
)
{
v4l_dbg
(
1
,
&
chip
->
c
,
"matches:%s%s%s.
\n
"
,
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"matches:%s%s%s.
\n
"
,
(
desc
->
flags
&
CHIP_HAS_VOLUME
)
?
" volume"
:
""
,
(
desc
->
flags
&
CHIP_HAS_BASSTREBLE
)
?
" bass/treble"
:
""
,
(
desc
->
flags
&
CHIP_HAS_INPUTSEL
)
?
" audiomux"
:
""
);
...
...
@@ -1583,7 +1582,7 @@ static int chip_command(struct i2c_client *client,
struct
CHIPSTATE
*
chip
=
i2c_get_clientdata
(
client
);
struct
CHIPDESC
*
desc
=
chiplist
+
chip
->
type
;
v4l_dbg
(
1
,
&
chip
->
c
,
"%s: chip_command 0x%x
\n
"
,
chip
->
c
.
name
,
cmd
);
v4l_dbg
(
1
,
debug
,
&
chip
->
c
,
"%s: chip_command 0x%x
\n
"
,
chip
->
c
.
name
,
cmd
);
switch
(
cmd
)
{
case
AUDC_SET_INPUT
:
...
...
drivers/media/video/tveeprom.c
浏览文件 @
593195f9
...
...
@@ -719,8 +719,7 @@ tveeprom_command(struct i2c_client *client,
switch
(
cmd
)
{
case
0
:
buf
=
kmalloc
(
256
,
GFP_KERNEL
);
memset
(
buf
,
0
,
256
);
buf
=
kzalloc
(
256
,
GFP_KERNEL
);
tveeprom_read
(
client
,
buf
,
256
);
tveeprom_hauppauge_analog
(
client
,
&
eeprom
,
buf
);
kfree
(
buf
);
...
...
@@ -743,10 +742,9 @@ tveeprom_detect_client(struct i2c_adapter *adapter,
{
struct
i2c_client
*
client
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
NULL
==
client
)
return
-
ENOMEM
;
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
i2c_driver_tveeprom
;
...
...
drivers/media/video/tvp5150.c
浏览文件 @
593195f9
...
...
@@ -1074,12 +1074,11 @@ static int tvp5150_detect_client(struct i2c_adapter *adapter,
return
-
ENOMEM
;
memcpy
(
c
,
&
client_template
,
sizeof
(
struct
i2c_client
));
core
=
k
m
alloc
(
sizeof
(
struct
tvp5150
),
GFP_KERNEL
);
core
=
k
z
alloc
(
sizeof
(
struct
tvp5150
),
GFP_KERNEL
);
if
(
core
==
0
)
{
kfree
(
c
);
return
-
ENOMEM
;
}
memset
(
core
,
0
,
sizeof
(
struct
tvp5150
));
i2c_set_clientdata
(
c
,
core
);
rv
=
i2c_attach_client
(
c
);
...
...
drivers/media/video/v4l1-compat.c
浏览文件 @
593195f9
...
...
@@ -305,9 +305,8 @@ v4l_compat_translate_ioctl(struct inode *inode,
{
struct
video_capability
*
cap
=
arg
;
cap2
=
k
m
alloc
(
sizeof
(
*
cap2
),
GFP_KERNEL
);
cap2
=
k
z
alloc
(
sizeof
(
*
cap2
),
GFP_KERNEL
);
memset
(
cap
,
0
,
sizeof
(
*
cap
));
memset
(
cap2
,
0
,
sizeof
(
*
cap2
));
memset
(
&
fbuf2
,
0
,
sizeof
(
fbuf2
));
err
=
drv
(
inode
,
file
,
VIDIOC_QUERYCAP
,
cap2
);
...
...
@@ -422,9 +421,8 @@ v4l_compat_translate_ioctl(struct inode *inode,
{
struct
video_window
*
win
=
arg
;
fmt2
=
k
m
alloc
(
sizeof
(
*
fmt2
),
GFP_KERNEL
);
fmt2
=
k
z
alloc
(
sizeof
(
*
fmt2
),
GFP_KERNEL
);
memset
(
win
,
0
,
sizeof
(
*
win
));
memset
(
fmt2
,
0
,
sizeof
(
*
fmt2
));
fmt2
->
type
=
V4L2_BUF_TYPE_VIDEO_OVERLAY
;
err
=
drv
(
inode
,
file
,
VIDIOC_G_FMT
,
fmt2
);
...
...
@@ -461,8 +459,7 @@ v4l_compat_translate_ioctl(struct inode *inode,
struct
video_window
*
win
=
arg
;
int
err1
,
err2
;
fmt2
=
kmalloc
(
sizeof
(
*
fmt2
),
GFP_KERNEL
);
memset
(
fmt2
,
0
,
sizeof
(
*
fmt2
));
fmt2
=
kzalloc
(
sizeof
(
*
fmt2
),
GFP_KERNEL
);
fmt2
->
type
=
V4L2_BUF_TYPE_VIDEO_CAPTURE
;
drv
(
inode
,
file
,
VIDIOC_STREAMOFF
,
&
fmt2
->
type
);
err1
=
drv
(
inode
,
file
,
VIDIOC_G_FMT
,
fmt2
);
...
...
@@ -595,8 +592,7 @@ v4l_compat_translate_ioctl(struct inode *inode,
pict
->
whiteness
=
get_v4l_control
(
inode
,
file
,
V4L2_CID_WHITENESS
,
drv
);
fmt2
=
kmalloc
(
sizeof
(
*
fmt2
),
GFP_KERNEL
);
memset
(
fmt2
,
0
,
sizeof
(
*
fmt2
));
fmt2
=
kzalloc
(
sizeof
(
*
fmt2
),
GFP_KERNEL
);
fmt2
->
type
=
V4L2_BUF_TYPE_VIDEO_CAPTURE
;
err
=
drv
(
inode
,
file
,
VIDIOC_G_FMT
,
fmt2
);
if
(
err
<
0
)
{
...
...
@@ -622,8 +618,7 @@ v4l_compat_translate_ioctl(struct inode *inode,
set_v4l_control
(
inode
,
file
,
V4L2_CID_WHITENESS
,
pict
->
whiteness
,
drv
);
fmt2
=
kmalloc
(
sizeof
(
*
fmt2
),
GFP_KERNEL
);
memset
(
fmt2
,
0
,
sizeof
(
*
fmt2
));
fmt2
=
kzalloc
(
sizeof
(
*
fmt2
),
GFP_KERNEL
);
fmt2
->
type
=
V4L2_BUF_TYPE_VIDEO_CAPTURE
;
err
=
drv
(
inode
,
file
,
VIDIOC_G_FMT
,
fmt2
);
if
(
err
<
0
)
...
...
@@ -846,9 +841,8 @@ v4l_compat_translate_ioctl(struct inode *inode,
{
struct
video_mmap
*
mm
=
arg
;
fmt2
=
k
m
alloc
(
sizeof
(
*
fmt2
),
GFP_KERNEL
);
fmt2
=
k
z
alloc
(
sizeof
(
*
fmt2
),
GFP_KERNEL
);
memset
(
&
buf2
,
0
,
sizeof
(
buf2
));
memset
(
fmt2
,
0
,
sizeof
(
*
fmt2
));
fmt2
->
type
=
V4L2_BUF_TYPE_VIDEO_CAPTURE
;
err
=
drv
(
inode
,
file
,
VIDIOC_G_FMT
,
fmt2
);
...
...
@@ -942,8 +936,7 @@ v4l_compat_translate_ioctl(struct inode *inode,
{
struct
vbi_format
*
fmt
=
arg
;
fmt2
=
kmalloc
(
sizeof
(
*
fmt2
),
GFP_KERNEL
);
memset
(
fmt2
,
0
,
sizeof
(
*
fmt2
));
fmt2
=
kzalloc
(
sizeof
(
*
fmt2
),
GFP_KERNEL
);
fmt2
->
type
=
V4L2_BUF_TYPE_VBI_CAPTURE
;
err
=
drv
(
inode
,
file
,
VIDIOC_G_FMT
,
fmt2
);
...
...
@@ -975,8 +968,7 @@ v4l_compat_translate_ioctl(struct inode *inode,
break
;
}
fmt2
=
kmalloc
(
sizeof
(
*
fmt2
),
GFP_KERNEL
);
memset
(
fmt2
,
0
,
sizeof
(
*
fmt2
));
fmt2
=
kzalloc
(
sizeof
(
*
fmt2
),
GFP_KERNEL
);
fmt2
->
type
=
V4L2_BUF_TYPE_VBI_CAPTURE
;
fmt2
->
fmt
.
vbi
.
samples_per_line
=
fmt
->
samples_per_line
;
...
...
drivers/media/video/video-buf.c
浏览文件 @
593195f9
...
...
@@ -52,10 +52,9 @@ videobuf_vmalloc_to_sg(unsigned char *virt, int nr_pages)
struct
page
*
pg
;
int
i
;
sglist
=
k
malloc
(
sizeof
(
struct
scatterlist
)
*
nr_pages
,
GFP_KERNEL
);
sglist
=
k
calloc
(
nr_pages
,
sizeof
(
struct
scatterlist
)
,
GFP_KERNEL
);
if
(
NULL
==
sglist
)
return
NULL
;
memset
(
sglist
,
0
,
sizeof
(
struct
scatterlist
)
*
nr_pages
);
for
(
i
=
0
;
i
<
nr_pages
;
i
++
,
virt
+=
PAGE_SIZE
)
{
pg
=
vmalloc_to_page
(
virt
);
if
(
NULL
==
pg
)
...
...
@@ -80,10 +79,9 @@ videobuf_pages_to_sg(struct page **pages, int nr_pages, int offset)
if
(
NULL
==
pages
[
0
])
return
NULL
;
sglist
=
k
malloc
(
sizeof
(
*
sglist
)
*
nr_pages
,
GFP_KERNEL
);
sglist
=
k
calloc
(
nr_pages
,
sizeof
(
*
sglist
)
,
GFP_KERNEL
);
if
(
NULL
==
sglist
)
return
NULL
;
memset
(
sglist
,
0
,
sizeof
(
*
sglist
)
*
nr_pages
);
if
(
NULL
==
pages
[
0
])
goto
nopage
;
...
...
@@ -284,9 +282,8 @@ void* videobuf_alloc(unsigned int size)
{
struct
videobuf_buffer
*
vb
;
vb
=
k
m
alloc
(
size
,
GFP_KERNEL
);
vb
=
k
z
alloc
(
size
,
GFP_KERNEL
);
if
(
NULL
!=
vb
)
{
memset
(
vb
,
0
,
size
);
videobuf_dma_init
(
&
vb
->
dma
);
init_waitqueue_head
(
&
vb
->
done
);
vb
->
magic
=
MAGIC_BUFFER
;
...
...
drivers/media/video/videocodec.c
浏览文件 @
593195f9
...
...
@@ -124,17 +124,13 @@ videocodec_attach (struct videocodec_master *master)
if
(
res
==
0
)
{
dprintk
(
3
,
"videocodec_attach '%s'
\n
"
,
codec
->
name
);
ptr
=
(
struct
attached_list
*
)
kmalloc
(
sizeof
(
struct
attached_list
),
GFP_KERNEL
);
ptr
=
kzalloc
(
sizeof
(
struct
attached_list
),
GFP_KERNEL
);
if
(
!
ptr
)
{
dprintk
(
1
,
KERN_ERR
"videocodec_attach: no memory
\n
"
);
goto
out_kfree
;
}
memset
(
ptr
,
0
,
sizeof
(
struct
attached_list
));
ptr
->
codec
=
codec
;
a
=
h
->
list
;
...
...
@@ -249,14 +245,11 @@ videocodec_register (const struct videocodec *codec)
"videocodec: register '%s', type: %x, flags %lx, magic %lx
\n
"
,
codec
->
name
,
codec
->
type
,
codec
->
flags
,
codec
->
magic
);
ptr
=
(
struct
codec_list
*
)
kmalloc
(
sizeof
(
struct
codec_list
),
GFP_KERNEL
);
ptr
=
kzalloc
(
sizeof
(
struct
codec_list
),
GFP_KERNEL
);
if
(
!
ptr
)
{
dprintk
(
1
,
KERN_ERR
"videocodec_register: no memory
\n
"
);
return
-
ENOMEM
;
}
memset
(
ptr
,
0
,
sizeof
(
struct
codec_list
));
ptr
->
codec
=
codec
;
if
(
!
h
)
{
...
...
drivers/media/video/videodev.c
浏览文件 @
593195f9
...
...
@@ -52,10 +52,7 @@ struct video_device *video_device_alloc(void)
{
struct
video_device
*
vfd
;
vfd
=
kmalloc
(
sizeof
(
*
vfd
),
GFP_KERNEL
);
if
(
NULL
==
vfd
)
return
NULL
;
memset
(
vfd
,
0
,
sizeof
(
*
vfd
));
vfd
=
kzalloc
(
sizeof
(
*
vfd
),
GFP_KERNEL
);
return
vfd
;
}
...
...
drivers/media/video/vino.c
浏览文件 @
593195f9
...
...
@@ -4499,13 +4499,11 @@ static int vino_init(void)
dma_addr_t
dma_dummy_address
;
int
i
;
vino_drvdata
=
(
struct
vino_settings
*
)
kmalloc
(
sizeof
(
struct
vino_settings
),
GFP_KERNEL
);
vino_drvdata
=
kzalloc
(
sizeof
(
struct
vino_settings
),
GFP_KERNEL
);
if
(
!
vino_drvdata
)
{
vino_module_cleanup
(
vino_init_stage
);
return
-
ENOMEM
;
}
memset
(
vino_drvdata
,
0
,
sizeof
(
struct
vino_settings
));
vino_init_stage
++
;
/* create a dummy dma descriptor */
...
...
drivers/media/video/vpx3220.c
浏览文件 @
593195f9
...
...
@@ -621,13 +621,11 @@ vpx3220_detect_client (struct i2c_adapter *adapter,
(
adapter
,
I2C_FUNC_SMBUS_BYTE_DATA
|
I2C_FUNC_SMBUS_WORD_DATA
))
return
0
;
client
=
k
m
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
client
=
k
z
alloc
(
sizeof
(
struct
i2c_client
),
GFP_KERNEL
);
if
(
client
==
NULL
)
{
return
-
ENOMEM
;
}
memset
(
client
,
0
,
sizeof
(
struct
i2c_client
));
client
->
addr
=
address
;
client
->
adapter
=
adapter
;
client
->
driver
=
&
vpx3220_i2c_driver
;
...
...
@@ -675,12 +673,11 @@ vpx3220_detect_client (struct i2c_adapter *adapter,
sizeof
(
I2C_NAME
(
client
)));
}
decoder
=
k
m
alloc
(
sizeof
(
struct
vpx3220
),
GFP_KERNEL
);
decoder
=
k
z
alloc
(
sizeof
(
struct
vpx3220
),
GFP_KERNEL
);
if
(
decoder
==
NULL
)
{
kfree
(
client
);
return
-
ENOMEM
;
}
memset
(
decoder
,
0
,
sizeof
(
struct
vpx3220
));
decoder
->
norm
=
VIDEO_MODE_PAL
;
decoder
->
input
=
0
;
decoder
->
enable
=
1
;
...
...
drivers/media/video/wm8775.c
浏览文件 @
593195f9
此差异已折叠。
点击以展开。
drivers/media/video/zoran_card.c
浏览文件 @
593195f9
此差异已折叠。
点击以展开。
drivers/media/video/zoran_driver.c
浏览文件 @
593195f9
此差异已折叠。
点击以展开。
drivers/media/video/zr36016.c
浏览文件 @
593195f9
此差异已折叠。
点击以展开。
drivers/media/video/zr36050.c
浏览文件 @
593195f9
此差异已折叠。
点击以展开。
drivers/media/video/zr36060.c
浏览文件 @
593195f9
此差异已折叠。
点击以展开。
include/media/tuner.h
浏览文件 @
593195f9
此差异已折叠。
点击以展开。
include/media/v4l2-common.h
浏览文件 @
593195f9
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录