mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
V4L/DVB (3218): Whitespace cleanups
- minor whitespace cleanups Signed-off-by: Michael Krufky <mkrufky@m1k.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
This commit is contained in:
parent
41d70c26c6
commit
50c25fff53
@ -243,7 +243,7 @@ sub nxt2002 {
|
|||||||
my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
|
my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
|
||||||
|
|
||||||
checkstandard();
|
checkstandard();
|
||||||
|
|
||||||
wgetfile($sourcefile, $url);
|
wgetfile($sourcefile, $url);
|
||||||
unzip($sourcefile, $tmpdir);
|
unzip($sourcefile, $tmpdir);
|
||||||
verify("$tmpdir/SkyNETU.sys", $hash);
|
verify("$tmpdir/SkyNETU.sys", $hash);
|
||||||
|
@ -332,6 +332,7 @@ static int fops_mmap(struct file *file, struct vm_area_struct * vma)
|
|||||||
BUG();
|
BUG();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return videobuf_mmap_mapper(q,vma);
|
return videobuf_mmap_mapper(q,vma);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -500,9 +500,9 @@ static ssize_t vbi_read(struct file *file, char __user *data, size_t count, loff
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct saa7146_use_ops saa7146_vbi_uops = {
|
struct saa7146_use_ops saa7146_vbi_uops = {
|
||||||
.init = vbi_init,
|
.init = vbi_init,
|
||||||
.open = vbi_open,
|
.open = vbi_open,
|
||||||
.release = vbi_close,
|
.release = vbi_close,
|
||||||
.irq_done = vbi_irq_done,
|
.irq_done = vbi_irq_done,
|
||||||
.read = vbi_read,
|
.read = vbi_read,
|
||||||
};
|
};
|
||||||
|
@ -151,8 +151,8 @@ static int try_win(struct saa7146_dev *dev, struct v4l2_window *win)
|
|||||||
|
|
||||||
if (V4L2_FIELD_ANY == field) {
|
if (V4L2_FIELD_ANY == field) {
|
||||||
field = (win->w.height > maxh/2)
|
field = (win->w.height > maxh/2)
|
||||||
? V4L2_FIELD_INTERLACED
|
? V4L2_FIELD_INTERLACED
|
||||||
: V4L2_FIELD_TOP;
|
: V4L2_FIELD_TOP;
|
||||||
}
|
}
|
||||||
switch (field) {
|
switch (field) {
|
||||||
case V4L2_FIELD_TOP:
|
case V4L2_FIELD_TOP:
|
||||||
@ -1114,10 +1114,6 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case VIDIOC_OVERLAY:
|
case VIDIOC_OVERLAY:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
int on = *(int *)arg;
|
int on = *(int *)arg;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
@ -1359,7 +1355,6 @@ static void buffer_queue(struct videobuf_queue *q, struct videobuf_buffer *vb)
|
|||||||
saa7146_buffer_queue(fh->dev,&vv->video_q,buf);
|
saa7146_buffer_queue(fh->dev,&vv->video_q,buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void buffer_release(struct videobuf_queue *q, struct videobuf_buffer *vb)
|
static void buffer_release(struct videobuf_queue *q, struct videobuf_buffer *vb)
|
||||||
{
|
{
|
||||||
struct file *file = q->priv_data;
|
struct file *file = q->priv_data;
|
||||||
|
@ -298,7 +298,7 @@ static int flexcop_fe_request_firmware(struct dvb_frontend* fe, const struct fir
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int lgdt3303_pll_set(struct dvb_frontend* fe,
|
static int lgdt3303_pll_set(struct dvb_frontend* fe,
|
||||||
struct dvb_frontend_parameters* params)
|
struct dvb_frontend_parameters* params)
|
||||||
{
|
{
|
||||||
struct flexcop_device *fc = fe->dvb->priv;
|
struct flexcop_device *fc = fe->dvb->priv;
|
||||||
u8 buf[4];
|
u8 buf[4];
|
||||||
|
@ -283,16 +283,17 @@ static int handle_dst_tag(struct dst_state *state, struct ca_msg *p_ca_message,
|
|||||||
hw_buffer->msg[4] = 0x03;
|
hw_buffer->msg[4] = 0x03;
|
||||||
hw_buffer->msg[5] = length & 0xff;
|
hw_buffer->msg[5] = length & 0xff;
|
||||||
hw_buffer->msg[6] = 0x00;
|
hw_buffer->msg[6] = 0x00;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Need to compute length for EN50221 section 8.3.2, for the time being
|
* Need to compute length for EN50221 section 8.3.2, for the time being
|
||||||
* assuming 8.3.2 is not applicable
|
* assuming 8.3.2 is not applicable
|
||||||
*/
|
*/
|
||||||
memcpy(&hw_buffer->msg[7], &p_ca_message->msg[4], length);
|
memcpy(&hw_buffer->msg[7], &p_ca_message->msg[4], length);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int write_to_8820(struct dst_state *state, struct ca_msg *hw_buffer, u8 length, u8 reply)
|
static int write_to_8820(struct dst_state *state, struct ca_msg *hw_buffer, u8 length, u8 reply)
|
||||||
{
|
{
|
||||||
if ((dst_put_ci(state, hw_buffer->msg, length, hw_buffer->msg, reply)) < 0) {
|
if ((dst_put_ci(state, hw_buffer->msg, length, hw_buffer->msg, reply)) < 0) {
|
||||||
|
@ -21,35 +21,35 @@ config DVB_CINERGYT2_TUNING
|
|||||||
config DVB_CINERGYT2_STREAM_URB_COUNT
|
config DVB_CINERGYT2_STREAM_URB_COUNT
|
||||||
int "Number of queued USB Request Blocks for Highspeed Stream Transfers"
|
int "Number of queued USB Request Blocks for Highspeed Stream Transfers"
|
||||||
depends on DVB_CINERGYT2_TUNING
|
depends on DVB_CINERGYT2_TUNING
|
||||||
default "32"
|
default "32"
|
||||||
help
|
help
|
||||||
USB Request Blocks for Highspeed Stream transfers are scheduled in
|
USB Request Blocks for Highspeed Stream transfers are scheduled in
|
||||||
a queue for the Host Controller.
|
a queue for the Host Controller.
|
||||||
|
|
||||||
Usually the default value is a safe choice.
|
Usually the default value is a safe choice.
|
||||||
|
|
||||||
You may increase this number if you are using this device in a
|
You may increase this number if you are using this device in a
|
||||||
Server Environment with many high-traffic USB Highspeed devices
|
Server Environment with many high-traffic USB Highspeed devices
|
||||||
sharing the same USB bus.
|
sharing the same USB bus.
|
||||||
|
|
||||||
|
|
||||||
config DVB_CINERGYT2_STREAM_BUF_SIZE
|
config DVB_CINERGYT2_STREAM_BUF_SIZE
|
||||||
int "Size of URB Stream Buffers for Highspeed Transfers"
|
int "Size of URB Stream Buffers for Highspeed Transfers"
|
||||||
depends on DVB_CINERGYT2_TUNING
|
depends on DVB_CINERGYT2_TUNING
|
||||||
default "512"
|
default "512"
|
||||||
help
|
help
|
||||||
Should be a multiple of native buffer size of 512 bytes.
|
Should be a multiple of native buffer size of 512 bytes.
|
||||||
Default value is a safe choice.
|
Default value is a safe choice.
|
||||||
|
|
||||||
You may increase this number if you are using this device in a
|
You may increase this number if you are using this device in a
|
||||||
Server Environment with many high-traffic USB Highspeed devices
|
Server Environment with many high-traffic USB Highspeed devices
|
||||||
sharing the same USB bus.
|
sharing the same USB bus.
|
||||||
|
|
||||||
|
|
||||||
config DVB_CINERGYT2_QUERY_INTERVAL
|
config DVB_CINERGYT2_QUERY_INTERVAL
|
||||||
int "Status update interval [milliseconds]"
|
int "Status update interval [milliseconds]"
|
||||||
depends on DVB_CINERGYT2_TUNING
|
depends on DVB_CINERGYT2_TUNING
|
||||||
default "250"
|
default "250"
|
||||||
help
|
help
|
||||||
This is the interval for status readouts from the demodulator.
|
This is the interval for status readouts from the demodulator.
|
||||||
You may try lower values if you need more responsive signal quality
|
You may try lower values if you need more responsive signal quality
|
||||||
@ -64,9 +64,9 @@ config DVB_CINERGYT2_QUERY_INTERVAL
|
|||||||
config DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE
|
config DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE
|
||||||
bool "Register the onboard IR Remote Control Receiver as Input Device"
|
bool "Register the onboard IR Remote Control Receiver as Input Device"
|
||||||
depends on DVB_CINERGYT2_TUNING
|
depends on DVB_CINERGYT2_TUNING
|
||||||
default "yes"
|
default "yes"
|
||||||
help
|
help
|
||||||
Enable this option if you want to use the onboard Infrared Remote
|
Enable this option if you want to use the onboard Infrared Remote
|
||||||
Control Receiver as Linux-Input device.
|
Control Receiver as Linux-Input device.
|
||||||
|
|
||||||
Right now only the keycode table for the default Remote Control
|
Right now only the keycode table for the default Remote Control
|
||||||
@ -77,7 +77,7 @@ config DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE
|
|||||||
config DVB_CINERGYT2_RC_QUERY_INTERVAL
|
config DVB_CINERGYT2_RC_QUERY_INTERVAL
|
||||||
int "Infrared Remote Controller update interval [milliseconds]"
|
int "Infrared Remote Controller update interval [milliseconds]"
|
||||||
depends on DVB_CINERGYT2_TUNING && DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE
|
depends on DVB_CINERGYT2_TUNING && DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE
|
||||||
default "50"
|
default "50"
|
||||||
help
|
help
|
||||||
If you have a very fast-repeating remote control you can try lower
|
If you have a very fast-repeating remote control you can try lower
|
||||||
values, for normal consumer receivers the default value should be
|
values, for normal consumer receivers the default value should be
|
||||||
|
@ -5,7 +5,7 @@ config DVB_CORE
|
|||||||
help
|
help
|
||||||
DVB core utility functions for device handling, software fallbacks etc.
|
DVB core utility functions for device handling, software fallbacks etc.
|
||||||
Say Y when you have a DVB card and want to use it. Say Y if your want
|
Say Y when you have a DVB card and want to use it. Say Y if your want
|
||||||
to build your drivers outside the kernel, but need the DVB core. All
|
to build your drivers outside the kernel, but need the DVB core. All
|
||||||
in-kernel drivers will select this automatically if needed.
|
in-kernel drivers will select this automatically if needed.
|
||||||
If unsure say N.
|
If unsure say N.
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
dvb-core-objs = dvbdev.o dmxdev.o dvb_demux.o dvb_filter.o \
|
dvb-core-objs = dvbdev.o dmxdev.o dvb_demux.o dvb_filter.o \
|
||||||
dvb_ca_en50221.o dvb_frontend.o \
|
dvb_ca_en50221.o dvb_frontend.o \
|
||||||
dvb_net.o dvb_ringbuffer.o
|
dvb_net.o dvb_ringbuffer.o
|
||||||
|
|
||||||
obj-$(CONFIG_DVB_CORE) += dvb-core.o
|
obj-$(CONFIG_DVB_CORE) += dvb-core.o
|
||||||
|
@ -409,16 +409,16 @@ static u8 *skip_pes_header(u8 **bufp)
|
|||||||
|
|
||||||
if ((inbuf[6] & 0xc0) == 0x80){ /* mpeg2 */
|
if ((inbuf[6] & 0xc0) == 0x80){ /* mpeg2 */
|
||||||
if (buf[7] & PTS_ONLY)
|
if (buf[7] & PTS_ONLY)
|
||||||
pts = buf+9;
|
pts = buf+9;
|
||||||
else pts = NULL;
|
else pts = NULL;
|
||||||
buf = inbuf + 9 + inbuf[8];
|
buf = inbuf + 9 + inbuf[8];
|
||||||
} else { /* mpeg1 */
|
} else { /* mpeg1 */
|
||||||
for (buf = inbuf + 6; *buf == 0xff; buf++)
|
for (buf = inbuf + 6; *buf == 0xff; buf++)
|
||||||
if (buf == inbuf + 6 + 16) {
|
if (buf == inbuf + 6 + 16) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((*buf & 0xc0) == 0x40)
|
if ((*buf & 0xc0) == 0x40)
|
||||||
buf += 2;
|
buf += 2;
|
||||||
skip = mpeg1_skip_table [*buf >> 4];
|
skip = mpeg1_skip_table [*buf >> 4];
|
||||||
if (skip == 5 || skip == 10) pts = buf;
|
if (skip == 5 || skip == 10) pts = buf;
|
||||||
else pts = NULL;
|
else pts = NULL;
|
||||||
@ -529,9 +529,9 @@ static void init_mpg_picture( struct mpg_picture *pic, int chan, int32_t field_t
|
|||||||
pic->picture_header = 0;
|
pic->picture_header = 0;
|
||||||
pic->sequence_header_data
|
pic->sequence_header_data
|
||||||
= ( INIT_HORIZONTAL_SIZE << 20 )
|
= ( INIT_HORIZONTAL_SIZE << 20 )
|
||||||
| ( INIT_VERTICAL_SIZE << 8 )
|
| ( INIT_VERTICAL_SIZE << 8 )
|
||||||
| ( INIT_ASPECT_RATIO << 4 )
|
| ( INIT_ASPECT_RATIO << 4 )
|
||||||
| ( INIT_FRAME_RATE );
|
| ( INIT_FRAME_RATE );
|
||||||
pic->mpeg1_flag = 0;
|
pic->mpeg1_flag = 0;
|
||||||
pic->vinfo.horizontal_size
|
pic->vinfo.horizontal_size
|
||||||
= INIT_DISP_HORIZONTAL_SIZE;
|
= INIT_DISP_HORIZONTAL_SIZE;
|
||||||
|
@ -112,10 +112,10 @@ ssize_t dvb_ringbuffer_read(struct dvb_ringbuffer *rbuf, u8 *buf, size_t len, in
|
|||||||
split = (rbuf->pread + len > rbuf->size) ? rbuf->size - rbuf->pread : 0;
|
split = (rbuf->pread + len > rbuf->size) ? rbuf->size - rbuf->pread : 0;
|
||||||
if (split > 0) {
|
if (split > 0) {
|
||||||
if (!usermem)
|
if (!usermem)
|
||||||
memcpy(buf, rbuf->data+rbuf->pread, split);
|
memcpy(buf, rbuf->data+rbuf->pread, split);
|
||||||
else
|
else
|
||||||
if (copy_to_user(buf, rbuf->data+rbuf->pread, split))
|
if (copy_to_user(buf, rbuf->data+rbuf->pread, split))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
buf += split;
|
buf += split;
|
||||||
todo -= split;
|
todo -= split;
|
||||||
rbuf->pread = 0;
|
rbuf->pread = 0;
|
||||||
@ -124,7 +124,7 @@ ssize_t dvb_ringbuffer_read(struct dvb_ringbuffer *rbuf, u8 *buf, size_t len, in
|
|||||||
memcpy(buf, rbuf->data+rbuf->pread, todo);
|
memcpy(buf, rbuf->data+rbuf->pread, todo);
|
||||||
else
|
else
|
||||||
if (copy_to_user(buf, rbuf->data+rbuf->pread, todo))
|
if (copy_to_user(buf, rbuf->data+rbuf->pread, todo))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
rbuf->pread = (rbuf->pread + todo) % rbuf->size;
|
rbuf->pread = (rbuf->pread + todo) % rbuf->size;
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ ssize_t dvb_ringbuffer_pkt_write(struct dvb_ringbuffer *rbuf, u8* buf, size_t le
|
|||||||
}
|
}
|
||||||
|
|
||||||
ssize_t dvb_ringbuffer_pkt_read(struct dvb_ringbuffer *rbuf, size_t idx,
|
ssize_t dvb_ringbuffer_pkt_read(struct dvb_ringbuffer *rbuf, size_t idx,
|
||||||
int offset, u8* buf, size_t len, int usermem)
|
int offset, u8* buf, size_t len, int usermem)
|
||||||
{
|
{
|
||||||
size_t todo;
|
size_t todo;
|
||||||
size_t split;
|
size_t split;
|
||||||
@ -183,10 +183,10 @@ ssize_t dvb_ringbuffer_pkt_read(struct dvb_ringbuffer *rbuf, size_t idx,
|
|||||||
split = ((idx + len) > rbuf->size) ? rbuf->size - idx : 0;
|
split = ((idx + len) > rbuf->size) ? rbuf->size - idx : 0;
|
||||||
if (split > 0) {
|
if (split > 0) {
|
||||||
if (!usermem)
|
if (!usermem)
|
||||||
memcpy(buf, rbuf->data+idx, split);
|
memcpy(buf, rbuf->data+idx, split);
|
||||||
else
|
else
|
||||||
if (copy_to_user(buf, rbuf->data+idx, split))
|
if (copy_to_user(buf, rbuf->data+idx, split))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
buf += split;
|
buf += split;
|
||||||
todo -= split;
|
todo -= split;
|
||||||
idx = 0;
|
idx = 0;
|
||||||
@ -195,7 +195,7 @@ ssize_t dvb_ringbuffer_pkt_read(struct dvb_ringbuffer *rbuf, size_t idx,
|
|||||||
memcpy(buf, rbuf->data+idx, todo);
|
memcpy(buf, rbuf->data+idx, todo);
|
||||||
else
|
else
|
||||||
if (copy_to_user(buf, rbuf->data+idx, todo))
|
if (copy_to_user(buf, rbuf->data+idx, todo))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
@ -209,12 +209,12 @@ void dvb_ringbuffer_pkt_dispose(struct dvb_ringbuffer *rbuf, size_t idx)
|
|||||||
// clean up disposed packets
|
// clean up disposed packets
|
||||||
while(dvb_ringbuffer_avail(rbuf) > DVB_RINGBUFFER_PKTHDRSIZE) {
|
while(dvb_ringbuffer_avail(rbuf) > DVB_RINGBUFFER_PKTHDRSIZE) {
|
||||||
if (DVB_RINGBUFFER_PEEK(rbuf, 2) == PKT_DISPOSED) {
|
if (DVB_RINGBUFFER_PEEK(rbuf, 2) == PKT_DISPOSED) {
|
||||||
pktlen = DVB_RINGBUFFER_PEEK(rbuf, 0) << 8;
|
pktlen = DVB_RINGBUFFER_PEEK(rbuf, 0) << 8;
|
||||||
pktlen |= DVB_RINGBUFFER_PEEK(rbuf, 1);
|
pktlen |= DVB_RINGBUFFER_PEEK(rbuf, 1);
|
||||||
DVB_RINGBUFFER_SKIP(rbuf, pktlen + DVB_RINGBUFFER_PKTHDRSIZE);
|
DVB_RINGBUFFER_SKIP(rbuf, pktlen + DVB_RINGBUFFER_PKTHDRSIZE);
|
||||||
} else {
|
} else {
|
||||||
// first packet is not disposed, so we stop cleaning now
|
// first packet is not disposed, so we stop cleaning now
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -242,8 +242,8 @@ ssize_t dvb_ringbuffer_pkt_next(struct dvb_ringbuffer *rbuf, size_t idx, size_t*
|
|||||||
curpktstatus = rbuf->data[(idx + 2) % rbuf->size];
|
curpktstatus = rbuf->data[(idx + 2) % rbuf->size];
|
||||||
|
|
||||||
if (curpktstatus == PKT_READY) {
|
if (curpktstatus == PKT_READY) {
|
||||||
*pktlen = curpktlen;
|
*pktlen = curpktlen;
|
||||||
return idx;
|
return idx;
|
||||||
}
|
}
|
||||||
|
|
||||||
consumed += curpktlen + DVB_RINGBUFFER_PKTHDRSIZE;
|
consumed += curpktlen + DVB_RINGBUFFER_PKTHDRSIZE;
|
||||||
|
@ -106,7 +106,7 @@ extern void dvb_ringbuffer_flush_spinlock_wakeup(struct dvb_ringbuffer *rbuf);
|
|||||||
** returns number of bytes transferred or -EFAULT
|
** returns number of bytes transferred or -EFAULT
|
||||||
*/
|
*/
|
||||||
extern ssize_t dvb_ringbuffer_read(struct dvb_ringbuffer *rbuf, u8 *buf,
|
extern ssize_t dvb_ringbuffer_read(struct dvb_ringbuffer *rbuf, u8 *buf,
|
||||||
size_t len, int usermem);
|
size_t len, int usermem);
|
||||||
|
|
||||||
|
|
||||||
/* write routines & macros */
|
/* write routines & macros */
|
||||||
@ -121,7 +121,7 @@ extern ssize_t dvb_ringbuffer_read(struct dvb_ringbuffer *rbuf, u8 *buf,
|
|||||||
** returns number of bytes transferred or -EFAULT
|
** returns number of bytes transferred or -EFAULT
|
||||||
*/
|
*/
|
||||||
extern ssize_t dvb_ringbuffer_write(struct dvb_ringbuffer *rbuf, const u8 *buf,
|
extern ssize_t dvb_ringbuffer_write(struct dvb_ringbuffer *rbuf, const u8 *buf,
|
||||||
size_t len);
|
size_t len);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -133,7 +133,7 @@ extern ssize_t dvb_ringbuffer_write(struct dvb_ringbuffer *rbuf, const u8 *buf,
|
|||||||
* returns Number of bytes written, or -EFAULT, -ENOMEM, -EVINAL.
|
* returns Number of bytes written, or -EFAULT, -ENOMEM, -EVINAL.
|
||||||
*/
|
*/
|
||||||
extern ssize_t dvb_ringbuffer_pkt_write(struct dvb_ringbuffer *rbuf, u8* buf,
|
extern ssize_t dvb_ringbuffer_pkt_write(struct dvb_ringbuffer *rbuf, u8* buf,
|
||||||
size_t len);
|
size_t len);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read from a packet in the ringbuffer. Note: unlike dvb_ringbuffer_read(), this
|
* Read from a packet in the ringbuffer. Note: unlike dvb_ringbuffer_read(), this
|
||||||
@ -149,7 +149,7 @@ extern ssize_t dvb_ringbuffer_pkt_write(struct dvb_ringbuffer *rbuf, u8* buf,
|
|||||||
* returns Number of bytes read, or -EFAULT.
|
* returns Number of bytes read, or -EFAULT.
|
||||||
*/
|
*/
|
||||||
extern ssize_t dvb_ringbuffer_pkt_read(struct dvb_ringbuffer *rbuf, size_t idx,
|
extern ssize_t dvb_ringbuffer_pkt_read(struct dvb_ringbuffer *rbuf, size_t idx,
|
||||||
int offset, u8* buf, size_t len, int usermem);
|
int offset, u8* buf, size_t len, int usermem);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dispose of a packet in the ring buffer.
|
* Dispose of a packet in the ring buffer.
|
||||||
|
@ -92,10 +92,10 @@ static int dvb_device_open(struct inode *inode, struct file *file)
|
|||||||
old_fops = file->f_op;
|
old_fops = file->f_op;
|
||||||
file->f_op = fops_get(dvbdev->fops);
|
file->f_op = fops_get(dvbdev->fops);
|
||||||
if(file->f_op->open)
|
if(file->f_op->open)
|
||||||
err = file->f_op->open(inode,file);
|
err = file->f_op->open(inode,file);
|
||||||
if (err) {
|
if (err) {
|
||||||
fops_put(file->f_op);
|
fops_put(file->f_op);
|
||||||
file->f_op = fops_get(old_fops);
|
file->f_op = fops_get(old_fops);
|
||||||
}
|
}
|
||||||
fops_put(old_fops);
|
fops_put(old_fops);
|
||||||
return err;
|
return err;
|
||||||
@ -356,18 +356,18 @@ int dvb_usercopy(struct inode *inode, struct file *file,
|
|||||||
case _IOC_WRITE:
|
case _IOC_WRITE:
|
||||||
case (_IOC_WRITE | _IOC_READ):
|
case (_IOC_WRITE | _IOC_READ):
|
||||||
if (_IOC_SIZE(cmd) <= sizeof(sbuf)) {
|
if (_IOC_SIZE(cmd) <= sizeof(sbuf)) {
|
||||||
parg = sbuf;
|
parg = sbuf;
|
||||||
} else {
|
} else {
|
||||||
/* too big to allocate from stack */
|
/* too big to allocate from stack */
|
||||||
mbuf = kmalloc(_IOC_SIZE(cmd),GFP_KERNEL);
|
mbuf = kmalloc(_IOC_SIZE(cmd),GFP_KERNEL);
|
||||||
if (NULL == mbuf)
|
if (NULL == mbuf)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
parg = mbuf;
|
parg = mbuf;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = -EFAULT;
|
err = -EFAULT;
|
||||||
if (copy_from_user(parg, (void __user *)arg, _IOC_SIZE(cmd)))
|
if (copy_from_user(parg, (void __user *)arg, _IOC_SIZE(cmd)))
|
||||||
goto out;
|
goto out;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -384,7 +384,7 @@ int dvb_usercopy(struct inode *inode, struct file *file,
|
|||||||
case _IOC_READ:
|
case _IOC_READ:
|
||||||
case (_IOC_WRITE | _IOC_READ):
|
case (_IOC_WRITE | _IOC_READ):
|
||||||
if (copy_to_user((void __user *)arg, parg, _IOC_SIZE(cmd)))
|
if (copy_to_user((void __user *)arg, parg, _IOC_SIZE(cmd)))
|
||||||
err = -EFAULT;
|
err = -EFAULT;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ we simply define out own dvb_usercopy(), which will hopefully become
|
|||||||
generic_usercopy() someday... */
|
generic_usercopy() someday... */
|
||||||
|
|
||||||
extern int dvb_usercopy(struct inode *inode, struct file *file,
|
extern int dvb_usercopy(struct inode *inode, struct file *file,
|
||||||
unsigned int cmd, unsigned long arg,
|
unsigned int cmd, unsigned long arg,
|
||||||
int (*func)(struct inode *inode, struct file *file,
|
int (*func)(struct inode *inode, struct file *file,
|
||||||
unsigned int cmd, void *arg));
|
unsigned int cmd, void *arg));
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ static int vp702x_fe_get_frontend(struct dvb_frontend* fe,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int vp702x_fe_send_diseqc_msg (struct dvb_frontend* fe,
|
static int vp702x_fe_send_diseqc_msg (struct dvb_frontend* fe,
|
||||||
struct dvb_diseqc_master_cmd *m)
|
struct dvb_diseqc_master_cmd *m)
|
||||||
{
|
{
|
||||||
struct vp702x_fe_state *st = fe->demodulator_priv;
|
struct vp702x_fe_state *st = fe->demodulator_priv;
|
||||||
u8 cmd[8],ibuf[10];
|
u8 cmd[8],ibuf[10];
|
||||||
|
@ -56,18 +56,18 @@ comment "DVB-T (terrestrial) frontends"
|
|||||||
depends on DVB_CORE
|
depends on DVB_CORE
|
||||||
|
|
||||||
config DVB_SP8870
|
config DVB_SP8870
|
||||||
tristate "Spase sp8870 based"
|
tristate "Spase sp8870 based"
|
||||||
depends on DVB_CORE
|
depends on DVB_CORE
|
||||||
select FW_LOADER
|
select FW_LOADER
|
||||||
help
|
help
|
||||||
A DVB-T tuner module. Say Y when you want to support this frontend.
|
A DVB-T tuner module. Say Y when you want to support this frontend.
|
||||||
|
|
||||||
This driver needs external firmware. Please use the command
|
This driver needs external firmware. Please use the command
|
||||||
"<kerneldir>/Documentation/dvb/get_dvb_firmware sp8870" to
|
"<kerneldir>/Documentation/dvb/get_dvb_firmware sp8870" to
|
||||||
download/extract it, and then copy it to /usr/lib/hotplug/firmware.
|
download/extract it, and then copy it to /usr/lib/hotplug/firmware.
|
||||||
|
|
||||||
config DVB_SP887X
|
config DVB_SP887X
|
||||||
tristate "Spase sp887x based"
|
tristate "Spase sp887x based"
|
||||||
depends on DVB_CORE
|
depends on DVB_CORE
|
||||||
select FW_LOADER
|
select FW_LOADER
|
||||||
help
|
help
|
||||||
@ -84,10 +84,10 @@ config DVB_CX22700
|
|||||||
A DVB-T tuner module. Say Y when you want to support this frontend.
|
A DVB-T tuner module. Say Y when you want to support this frontend.
|
||||||
|
|
||||||
config DVB_CX22702
|
config DVB_CX22702
|
||||||
tristate "Conexant cx22702 demodulator (OFDM)"
|
tristate "Conexant cx22702 demodulator (OFDM)"
|
||||||
depends on DVB_CORE
|
depends on DVB_CORE
|
||||||
help
|
help
|
||||||
A DVB-T tuner module. Say Y when you want to support this frontend.
|
A DVB-T tuner module. Say Y when you want to support this frontend.
|
||||||
|
|
||||||
config DVB_L64781
|
config DVB_L64781
|
||||||
tristate "LSI L64781"
|
tristate "LSI L64781"
|
||||||
@ -104,7 +104,7 @@ config DVB_TDA1004X
|
|||||||
|
|
||||||
This driver needs external firmware. Please use the commands
|
This driver needs external firmware. Please use the commands
|
||||||
"<kerneldir>/Documentation/dvb/get_dvb_firmware tda10045",
|
"<kerneldir>/Documentation/dvb/get_dvb_firmware tda10045",
|
||||||
"<kerneldir>/Documentation/dvb/get_dvb_firmware tda10046" to
|
"<kerneldir>/Documentation/dvb/get_dvb_firmware tda10046" to
|
||||||
download/extract them, and then copy them to /usr/lib/hotplug/firmware.
|
download/extract them, and then copy them to /usr/lib/hotplug/firmware.
|
||||||
|
|
||||||
config DVB_NXT6000
|
config DVB_NXT6000
|
||||||
@ -146,13 +146,13 @@ config DVB_VES1820
|
|||||||
tristate "VLSI VES1820 based"
|
tristate "VLSI VES1820 based"
|
||||||
depends on DVB_CORE
|
depends on DVB_CORE
|
||||||
help
|
help
|
||||||
A DVB-C tuner module. Say Y when you want to support this frontend.
|
A DVB-C tuner module. Say Y when you want to support this frontend.
|
||||||
|
|
||||||
config DVB_TDA10021
|
config DVB_TDA10021
|
||||||
tristate "Philips TDA10021 based"
|
tristate "Philips TDA10021 based"
|
||||||
depends on DVB_CORE
|
depends on DVB_CORE
|
||||||
help
|
help
|
||||||
A DVB-C tuner module. Say Y when you want to support this frontend.
|
A DVB-C tuner module. Say Y when you want to support this frontend.
|
||||||
|
|
||||||
config DVB_STV0297
|
config DVB_STV0297
|
||||||
tristate "ST STV0297 based"
|
tristate "ST STV0297 based"
|
||||||
|
@ -55,7 +55,7 @@ static int debug;
|
|||||||
|
|
||||||
static struct {u8 reg; u8 data;} cx24110_regdata[]=
|
static struct {u8 reg; u8 data;} cx24110_regdata[]=
|
||||||
/* Comments beginning with @ denote this value should
|
/* Comments beginning with @ denote this value should
|
||||||
be the default */
|
be the default */
|
||||||
{{0x09,0x01}, /* SoftResetAll */
|
{{0x09,0x01}, /* SoftResetAll */
|
||||||
{0x09,0x00}, /* release reset */
|
{0x09,0x00}, /* release reset */
|
||||||
{0x01,0xe8}, /* MSB of code rate 27.5MS/s */
|
{0x01,0xe8}, /* MSB of code rate 27.5MS/s */
|
||||||
@ -66,26 +66,26 @@ static struct {u8 reg; u8 data;} cx24110_regdata[]=
|
|||||||
{0x07,0x01}, /* @ Fclk, i.e. sampling clock, 60MHz */
|
{0x07,0x01}, /* @ Fclk, i.e. sampling clock, 60MHz */
|
||||||
{0x0a,0x00}, /* @ partial chip disables, do not set */
|
{0x0a,0x00}, /* @ partial chip disables, do not set */
|
||||||
{0x0b,0x01}, /* set output clock in gapped mode, start signal low
|
{0x0b,0x01}, /* set output clock in gapped mode, start signal low
|
||||||
active for first byte */
|
active for first byte */
|
||||||
{0x0c,0x11}, /* no parity bytes, large hold time, serial data out */
|
{0x0c,0x11}, /* no parity bytes, large hold time, serial data out */
|
||||||
{0x0d,0x6f}, /* @ RS Sync/Unsync thresholds */
|
{0x0d,0x6f}, /* @ RS Sync/Unsync thresholds */
|
||||||
{0x10,0x40}, /* chip doc is misleading here: write bit 6 as 1
|
{0x10,0x40}, /* chip doc is misleading here: write bit 6 as 1
|
||||||
to avoid starting the BER counter. Reset the
|
to avoid starting the BER counter. Reset the
|
||||||
CRC test bit. Finite counting selected */
|
CRC test bit. Finite counting selected */
|
||||||
{0x15,0xff}, /* @ size of the limited time window for RS BER
|
{0x15,0xff}, /* @ size of the limited time window for RS BER
|
||||||
estimation. It is <value>*256 RS blocks, this
|
estimation. It is <value>*256 RS blocks, this
|
||||||
gives approx. 2.6 sec at 27.5MS/s, rate 3/4 */
|
gives approx. 2.6 sec at 27.5MS/s, rate 3/4 */
|
||||||
{0x16,0x00}, /* @ enable all RS output ports */
|
{0x16,0x00}, /* @ enable all RS output ports */
|
||||||
{0x17,0x04}, /* @ time window allowed for the RS to sync */
|
{0x17,0x04}, /* @ time window allowed for the RS to sync */
|
||||||
{0x18,0xae}, /* @ allow all standard DVB code rates to be scanned
|
{0x18,0xae}, /* @ allow all standard DVB code rates to be scanned
|
||||||
for automatically */
|
for automatically */
|
||||||
/* leave the current code rate and normalization
|
/* leave the current code rate and normalization
|
||||||
registers as they are after reset... */
|
registers as they are after reset... */
|
||||||
{0x21,0x10}, /* @ during AutoAcq, search each viterbi setting
|
{0x21,0x10}, /* @ during AutoAcq, search each viterbi setting
|
||||||
only once */
|
only once */
|
||||||
{0x23,0x18}, /* @ size of the limited time window for Viterbi BER
|
{0x23,0x18}, /* @ size of the limited time window for Viterbi BER
|
||||||
estimation. It is <value>*65536 channel bits, i.e.
|
estimation. It is <value>*65536 channel bits, i.e.
|
||||||
approx. 38ms at 27.5MS/s, rate 3/4 */
|
approx. 38ms at 27.5MS/s, rate 3/4 */
|
||||||
{0x24,0x24}, /* do not trigger Viterbi CRC test. Finite count window */
|
{0x24,0x24}, /* do not trigger Viterbi CRC test. Finite count window */
|
||||||
/* leave front-end AGC parameters at default values */
|
/* leave front-end AGC parameters at default values */
|
||||||
/* leave decimation AGC parameters at default values */
|
/* leave decimation AGC parameters at default values */
|
||||||
|
@ -574,11 +574,11 @@ static struct dvb_frontend_ops nxt6000_ops = {
|
|||||||
.symbol_rate_max = 9360000, /* FIXME */
|
.symbol_rate_max = 9360000, /* FIXME */
|
||||||
.symbol_rate_tolerance = 4000,
|
.symbol_rate_tolerance = 4000,
|
||||||
.caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
|
.caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
|
||||||
FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 |
|
FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 |
|
||||||
FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | FE_CAN_FEC_AUTO |
|
FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | FE_CAN_FEC_AUTO |
|
||||||
FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO |
|
FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO |
|
||||||
FE_CAN_TRANSMISSION_MODE_AUTO | FE_CAN_GUARD_INTERVAL_AUTO |
|
FE_CAN_TRANSMISSION_MODE_AUTO | FE_CAN_GUARD_INTERVAL_AUTO |
|
||||||
FE_CAN_HIERARCHY_AUTO,
|
FE_CAN_HIERARCHY_AUTO,
|
||||||
},
|
},
|
||||||
|
|
||||||
.release = nxt6000_release,
|
.release = nxt6000_release,
|
||||||
|
@ -521,8 +521,8 @@ static void s5h1420_setfec_inversion(struct s5h1420_state* state,
|
|||||||
|
|
||||||
case FEC_3_4:
|
case FEC_3_4:
|
||||||
s5h1420_writereg(state, 0x30, 0x04);
|
s5h1420_writereg(state, 0x30, 0x04);
|
||||||
s5h1420_writereg(state, 0x31, 0x12 | inversion);
|
s5h1420_writereg(state, 0x31, 0x12 | inversion);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FEC_5_6:
|
case FEC_5_6:
|
||||||
s5h1420_writereg(state, 0x30, 0x08);
|
s5h1420_writereg(state, 0x30, 0x08);
|
||||||
|
@ -581,7 +581,7 @@ static struct dvb_frontend_ops sp887x_ops = {
|
|||||||
.caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
|
.caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
|
||||||
FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
|
FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
|
||||||
FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
|
FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
|
||||||
FE_CAN_RECOVER
|
FE_CAN_RECOVER
|
||||||
},
|
},
|
||||||
|
|
||||||
.release = sp887x_release,
|
.release = sp887x_release,
|
||||||
|
@ -95,7 +95,7 @@ static u8 tda10021_readreg (struct tda10021_state* state, u8 reg)
|
|||||||
u8 b0 [] = { reg };
|
u8 b0 [] = { reg };
|
||||||
u8 b1 [] = { 0 };
|
u8 b1 [] = { 0 };
|
||||||
struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 1 },
|
struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 1 },
|
||||||
{ .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 1 } };
|
{ .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 1 } };
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = i2c_transfer (state->i2c, msg, 2);
|
ret = i2c_transfer (state->i2c, msg, 2);
|
||||||
@ -434,7 +434,7 @@ static struct dvb_frontend_ops tda10021_ops = {
|
|||||||
.frequency_max = 858000000,
|
.frequency_max = 858000000,
|
||||||
.symbol_rate_min = (XIN/2)/64, /* SACLK/64 == (XIN/2)/64 */
|
.symbol_rate_min = (XIN/2)/64, /* SACLK/64 == (XIN/2)/64 */
|
||||||
.symbol_rate_max = (XIN/2)/4, /* SACLK/4 */
|
.symbol_rate_max = (XIN/2)/4, /* SACLK/4 */
|
||||||
#if 0
|
#if 0
|
||||||
.frequency_tolerance = ???,
|
.frequency_tolerance = ???,
|
||||||
.symbol_rate_tolerance = ???, /* ppm */ /* == 8% (spec p. 5) */
|
.symbol_rate_tolerance = ???, /* ppm */ /* == 8% (spec p. 5) */
|
||||||
#endif
|
#endif
|
||||||
|
@ -289,10 +289,10 @@ static int tda10046h_set_bandwidth(struct tda1004x_state *state,
|
|||||||
case BANDWIDTH_6_MHZ:
|
case BANDWIDTH_6_MHZ:
|
||||||
if (tda10046_clk53m)
|
if (tda10046_clk53m)
|
||||||
tda1004x_write_buf(state, TDA10046H_TIME_WREF1, bandwidth_6mhz_53M,
|
tda1004x_write_buf(state, TDA10046H_TIME_WREF1, bandwidth_6mhz_53M,
|
||||||
sizeof(bandwidth_6mhz_53M));
|
sizeof(bandwidth_6mhz_53M));
|
||||||
else
|
else
|
||||||
tda1004x_write_buf(state, TDA10046H_TIME_WREF1, bandwidth_6mhz_48M,
|
tda1004x_write_buf(state, TDA10046H_TIME_WREF1, bandwidth_6mhz_48M,
|
||||||
sizeof(bandwidth_6mhz_48M));
|
sizeof(bandwidth_6mhz_48M));
|
||||||
if (state->config->if_freq == TDA10046_FREQ_045) {
|
if (state->config->if_freq == TDA10046_FREQ_045) {
|
||||||
tda1004x_write_byteI(state, TDA10046H_FREQ_PHY2_MSB, 0x0a);
|
tda1004x_write_byteI(state, TDA10046H_FREQ_PHY2_MSB, 0x0a);
|
||||||
tda1004x_write_byteI(state, TDA10046H_FREQ_PHY2_LSB, 0xab);
|
tda1004x_write_byteI(state, TDA10046H_FREQ_PHY2_LSB, 0xab);
|
||||||
@ -302,10 +302,10 @@ static int tda10046h_set_bandwidth(struct tda1004x_state *state,
|
|||||||
case BANDWIDTH_7_MHZ:
|
case BANDWIDTH_7_MHZ:
|
||||||
if (tda10046_clk53m)
|
if (tda10046_clk53m)
|
||||||
tda1004x_write_buf(state, TDA10046H_TIME_WREF1, bandwidth_7mhz_53M,
|
tda1004x_write_buf(state, TDA10046H_TIME_WREF1, bandwidth_7mhz_53M,
|
||||||
sizeof(bandwidth_7mhz_53M));
|
sizeof(bandwidth_7mhz_53M));
|
||||||
else
|
else
|
||||||
tda1004x_write_buf(state, TDA10046H_TIME_WREF1, bandwidth_7mhz_48M,
|
tda1004x_write_buf(state, TDA10046H_TIME_WREF1, bandwidth_7mhz_48M,
|
||||||
sizeof(bandwidth_7mhz_48M));
|
sizeof(bandwidth_7mhz_48M));
|
||||||
if (state->config->if_freq == TDA10046_FREQ_045) {
|
if (state->config->if_freq == TDA10046_FREQ_045) {
|
||||||
tda1004x_write_byteI(state, TDA10046H_FREQ_PHY2_MSB, 0x0c);
|
tda1004x_write_byteI(state, TDA10046H_FREQ_PHY2_MSB, 0x0c);
|
||||||
tda1004x_write_byteI(state, TDA10046H_FREQ_PHY2_LSB, 0x00);
|
tda1004x_write_byteI(state, TDA10046H_FREQ_PHY2_LSB, 0x00);
|
||||||
@ -315,10 +315,10 @@ static int tda10046h_set_bandwidth(struct tda1004x_state *state,
|
|||||||
case BANDWIDTH_8_MHZ:
|
case BANDWIDTH_8_MHZ:
|
||||||
if (tda10046_clk53m)
|
if (tda10046_clk53m)
|
||||||
tda1004x_write_buf(state, TDA10046H_TIME_WREF1, bandwidth_8mhz_53M,
|
tda1004x_write_buf(state, TDA10046H_TIME_WREF1, bandwidth_8mhz_53M,
|
||||||
sizeof(bandwidth_8mhz_53M));
|
sizeof(bandwidth_8mhz_53M));
|
||||||
else
|
else
|
||||||
tda1004x_write_buf(state, TDA10046H_TIME_WREF1, bandwidth_8mhz_48M,
|
tda1004x_write_buf(state, TDA10046H_TIME_WREF1, bandwidth_8mhz_48M,
|
||||||
sizeof(bandwidth_8mhz_48M));
|
sizeof(bandwidth_8mhz_48M));
|
||||||
if (state->config->if_freq == TDA10046_FREQ_045) {
|
if (state->config->if_freq == TDA10046_FREQ_045) {
|
||||||
tda1004x_write_byteI(state, TDA10046H_FREQ_PHY2_MSB, 0x0d);
|
tda1004x_write_byteI(state, TDA10046H_FREQ_PHY2_MSB, 0x0d);
|
||||||
tda1004x_write_byteI(state, TDA10046H_FREQ_PHY2_LSB, 0x55);
|
tda1004x_write_byteI(state, TDA10046H_FREQ_PHY2_LSB, 0x55);
|
||||||
|
@ -8,7 +8,7 @@ config DVB_PLUTO2
|
|||||||
Support for PCI cards based on the Pluto2 FPGA like the Satelco
|
Support for PCI cards based on the Pluto2 FPGA like the Satelco
|
||||||
Easywatch Mobile Terrestrial DVB-T Receiver.
|
Easywatch Mobile Terrestrial DVB-T Receiver.
|
||||||
|
|
||||||
Since these cards have no MPEG decoder onboard, they transmit
|
Since these cards have no MPEG decoder onboard, they transmit
|
||||||
only compressed MPEG data over the PCI bus, so you need
|
only compressed MPEG data over the PCI bus, so you need
|
||||||
an external software decoder to watch TV on your computer.
|
an external software decoder to watch TV on your computer.
|
||||||
|
|
||||||
|
@ -18,9 +18,9 @@ config DVB_AV7110
|
|||||||
This driver only supports the fullfeatured cards with
|
This driver only supports the fullfeatured cards with
|
||||||
onboard MPEG2 decoder.
|
onboard MPEG2 decoder.
|
||||||
|
|
||||||
This driver needs an external firmware. Please use the script
|
This driver needs an external firmware. Please use the script
|
||||||
"<kerneldir>/Documentation/dvb/get_dvb_firmware av7110" to
|
"<kerneldir>/Documentation/dvb/get_dvb_firmware av7110" to
|
||||||
download/extract it, and then copy it to /usr/lib/hotplug/firmware.
|
download/extract it, and then copy it to /usr/lib/hotplug/firmware.
|
||||||
|
|
||||||
Say Y if you own such a card and want to use it.
|
Say Y if you own such a card and want to use it.
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ EXTRA_CFLAGS = -Idrivers/media/dvb/dvb-core/ -Idrivers/media/dvb/frontends/
|
|||||||
hostprogs-y := fdump
|
hostprogs-y := fdump
|
||||||
|
|
||||||
ifdef CONFIG_DVB_AV7110_FIRMWARE
|
ifdef CONFIG_DVB_AV7110_FIRMWARE
|
||||||
$(obj)/av7110.o: $(obj)/fdump $(obj)/av7110_firm.h
|
$(obj)/av7110.o: $(obj)/fdump $(obj)/av7110_firm.h
|
||||||
|
|
||||||
$(obj)/av7110_firm.h:
|
$(obj)/av7110_firm.h:
|
||||||
$(obj)/fdump $(CONFIG_DVB_AV7110_FIRMWARE_FILE) dvb_ttpci_fw $@
|
$(obj)/fdump $(CONFIG_DVB_AV7110_FIRMWARE_FILE) dvb_ttpci_fw $@
|
||||||
|
@ -2259,7 +2259,7 @@ static int frontend_init(struct av7110 *av7110)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Try the grundig 29504-451
|
// Try the grundig 29504-451
|
||||||
av7110->fe = tda8083_attach(&grundig_29504_451_config, &av7110->i2c_adap);
|
av7110->fe = tda8083_attach(&grundig_29504_451_config, &av7110->i2c_adap);
|
||||||
if (av7110->fe) {
|
if (av7110->fe) {
|
||||||
av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd;
|
av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd;
|
||||||
av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst;
|
av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst;
|
||||||
@ -2285,12 +2285,12 @@ static int frontend_init(struct av7110 *av7110)
|
|||||||
case 0x0001: // Hauppauge/TT Nexus-T premium rev1.X
|
case 0x0001: // Hauppauge/TT Nexus-T premium rev1.X
|
||||||
|
|
||||||
// ALPS TDLB7
|
// ALPS TDLB7
|
||||||
av7110->fe = sp8870_attach(&alps_tdlb7_config, &av7110->i2c_adap);
|
av7110->fe = sp8870_attach(&alps_tdlb7_config, &av7110->i2c_adap);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x0002: // Hauppauge/TT DVB-C premium rev2.X
|
case 0x0002: // Hauppauge/TT DVB-C premium rev2.X
|
||||||
|
|
||||||
av7110->fe = ves1820_attach(&alps_tdbe2_config, &av7110->i2c_adap, read_pwm(av7110));
|
av7110->fe = ves1820_attach(&alps_tdbe2_config, &av7110->i2c_adap, read_pwm(av7110));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x0006: /* Fujitsu-Siemens DVB-S rev 1.6 */
|
case 0x0006: /* Fujitsu-Siemens DVB-S rev 1.6 */
|
||||||
|
@ -1206,9 +1206,9 @@ int av7110_osd_capability(struct av7110 *av7110, osd_cap_t *cap)
|
|||||||
switch (cap->cmd) {
|
switch (cap->cmd) {
|
||||||
case OSD_CAP_MEMSIZE:
|
case OSD_CAP_MEMSIZE:
|
||||||
if (FW_4M_SDRAM(av7110->arm_app))
|
if (FW_4M_SDRAM(av7110->arm_app))
|
||||||
cap->val = 1000000;
|
cap->val = 1000000;
|
||||||
else
|
else
|
||||||
cap->val = 92000;
|
cap->val = 92000;
|
||||||
return 0;
|
return 0;
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@ -275,7 +275,7 @@ static int ciintf_poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int open
|
|||||||
// that is unreliable however, so try and read from IO memory
|
// that is unreliable however, so try and read from IO memory
|
||||||
if (!cam_present)
|
if (!cam_present)
|
||||||
{
|
{
|
||||||
saa7146_setgpio(budget_av->budget.dev, 1, SAA7146_GPIO_OUTLO);
|
saa7146_setgpio(budget_av->budget.dev, 1, SAA7146_GPIO_OUTLO);
|
||||||
if (ttpci_budget_debiread(&budget_av->budget, DEBICICAM, 0, 1, 0, 1) != -ETIMEDOUT)
|
if (ttpci_budget_debiread(&budget_av->budget, DEBICICAM, 0, 1, 0, 1) != -ETIMEDOUT)
|
||||||
{
|
{
|
||||||
cam_present = 1;
|
cam_present = 1;
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
Holger Waechtler Convergence
|
Holger Waechtler Convergence
|
||||||
|
|
||||||
Copyright (C) 2002-2003 Ralph Metzler <rjkm@metzlerbros.de>
|
Copyright (C) 2002-2003 Ralph Metzler <rjkm@metzlerbros.de>
|
||||||
Metzler Brothers Systementwicklung GbR
|
Metzler Brothers Systementwicklung GbR
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -10,7 +10,7 @@ config DVB_TTUSB_BUDGET
|
|||||||
Support for external USB adapters designed by Technotrend and
|
Support for external USB adapters designed by Technotrend and
|
||||||
produced by Hauppauge, shipped under the brand name 'Nova-USB'.
|
produced by Hauppauge, shipped under the brand name 'Nova-USB'.
|
||||||
|
|
||||||
These devices don't have a MPEG decoder built in, so you need
|
These devices don't have a MPEG decoder built in, so you need
|
||||||
an external software decoder to watch TV.
|
an external software decoder to watch TV.
|
||||||
|
|
||||||
Say Y if you own such a device and want to use it.
|
Say Y if you own such a device and want to use it.
|
||||||
|
@ -8,14 +8,14 @@ config DVB_TTUSB_DEC
|
|||||||
produced by Hauppauge, shipped under the brand name 'DEC2000-t'
|
produced by Hauppauge, shipped under the brand name 'DEC2000-t'
|
||||||
and 'DEC3000-s'.
|
and 'DEC3000-s'.
|
||||||
|
|
||||||
Even if these devices have a MPEG decoder built in, they transmit
|
Even if these devices have a MPEG decoder built in, they transmit
|
||||||
only compressed MPEG data over the USB bus, so you need
|
only compressed MPEG data over the USB bus, so you need
|
||||||
an external software decoder to watch TV on your computer.
|
an external software decoder to watch TV on your computer.
|
||||||
|
|
||||||
This driver needs external firmware. Please use the commands
|
This driver needs external firmware. Please use the commands
|
||||||
"<kerneldir>/Documentation/dvb/get_dvb_firmware dec2000t",
|
"<kerneldir>/Documentation/dvb/get_dvb_firmware dec2000t",
|
||||||
"<kerneldir>/Documentation/dvb/get_dvb_firmware dec2540t",
|
"<kerneldir>/Documentation/dvb/get_dvb_firmware dec2540t",
|
||||||
"<kerneldir>/Documentation/dvb/get_dvb_firmware dec3000s",
|
"<kerneldir>/Documentation/dvb/get_dvb_firmware dec3000s",
|
||||||
download/extract them, and then copy them to /usr/lib/hotplug/firmware.
|
download/extract them, and then copy them to /usr/lib/hotplug/firmware.
|
||||||
|
|
||||||
Say Y if you own such a device and want to use it.
|
Say Y if you own such a device and want to use it.
|
||||||
|
@ -1182,7 +1182,7 @@ static void ttusb_dec_init_tasklet(struct ttusb_dec *dec)
|
|||||||
(unsigned long)dec);
|
(unsigned long)dec);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ttusb_init_rc(struct ttusb_dec *dec)
|
static int ttusb_init_rc( struct ttusb_dec *dec)
|
||||||
{
|
{
|
||||||
struct input_dev *input_dev;
|
struct input_dev *input_dev;
|
||||||
u8 b[] = { 0x00, 0x01 };
|
u8 b[] = { 0x00, 0x01 };
|
||||||
@ -1203,13 +1203,12 @@ static int ttusb_init_rc(struct ttusb_dec *dec)
|
|||||||
input_dev->keycode = rc_keys;
|
input_dev->keycode = rc_keys;
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(rc_keys); i++)
|
for (i = 0; i < ARRAY_SIZE(rc_keys); i++)
|
||||||
set_bit(rc_keys[i], input_dev->keybit);
|
set_bit(rc_keys[i], input_dev->keybit);
|
||||||
|
|
||||||
input_register_device(input_dev);
|
input_register_device(input_dev);
|
||||||
|
|
||||||
if (usb_submit_urb(dec->irq_urb, GFP_KERNEL))
|
if (usb_submit_urb(dec->irq_urb, GFP_KERNEL))
|
||||||
printk("%s: usb_submit_urb failed\n",__FUNCTION__);
|
printk("%s: usb_submit_urb failed\n",__FUNCTION__);
|
||||||
|
|
||||||
/* enable irq pipe */
|
/* enable irq pipe */
|
||||||
ttusb_dec_send_command(dec,0xb0,sizeof(b),b,NULL,NULL);
|
ttusb_dec_send_command(dec,0xb0,sizeof(b),b,NULL,NULL);
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ static void video_release(struct class_device *cd)
|
|||||||
struct video_device *vfd = container_of(cd, struct video_device, class_dev);
|
struct video_device *vfd = container_of(cd, struct video_device, class_dev);
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
/* needed until all drivers are fixed */
|
/* needed until all drivers are fixed */
|
||||||
if (!vfd->release)
|
if (!vfd->release)
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
@ -339,11 +339,11 @@ int video_register_device(struct video_device *vfd, int type, int nr)
|
|||||||
if (vfd->dev)
|
if (vfd->dev)
|
||||||
vfd->class_dev.dev = vfd->dev;
|
vfd->class_dev.dev = vfd->dev;
|
||||||
vfd->class_dev.class = &video_class;
|
vfd->class_dev.class = &video_class;
|
||||||
vfd->class_dev.devt = MKDEV(VIDEO_MAJOR, vfd->minor);
|
vfd->class_dev.devt = MKDEV(VIDEO_MAJOR, vfd->minor);
|
||||||
strlcpy(vfd->class_dev.class_id, vfd->devfs_name + 4, BUS_ID_SIZE);
|
strlcpy(vfd->class_dev.class_id, vfd->devfs_name + 4, BUS_ID_SIZE);
|
||||||
class_device_register(&vfd->class_dev);
|
class_device_register(&vfd->class_dev);
|
||||||
class_device_create_file(&vfd->class_dev,
|
class_device_create_file(&vfd->class_dev,
|
||||||
&class_device_attr_name);
|
&class_device_attr_name);
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
/* needed until all drivers are fixed */
|
/* needed until all drivers are fixed */
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/ioctl.h>
|
#include <linux/ioctl.h>
|
||||||
|
Loading…
Reference in New Issue
Block a user