summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/ttpci/av7110_ca.c
diff options
context:
space:
mode:
authorJohannes Stezenbach <devnull@localhost>2004-01-06 13:28:49 +0000
committerJohannes Stezenbach <devnull@localhost>2004-01-06 13:28:49 +0000
commit2dcefdc83dcc04e2c6f8d8697ff1405780a660f0 (patch)
treee0bfaf96cc182f2563becc6e940718135668cf8c /linux/drivers/media/dvb/ttpci/av7110_ca.c
parentca107fda10ccb2b4e93d1a18f070a3ed0ef57841 (diff)
downloadmediapointer-dvb-s2-2dcefdc83dcc04e2c6f8d8697ff1405780a660f0.tar.gz
mediapointer-dvb-s2-2dcefdc83dcc04e2c6f8d8697ff1405780a660f0.tar.bz2
whitespace / coding style
Diffstat (limited to 'linux/drivers/media/dvb/ttpci/av7110_ca.c')
-rw-r--r--linux/drivers/media/dvb/ttpci/av7110_ca.c377
1 files changed, 185 insertions, 192 deletions
diff --git a/linux/drivers/media/dvb/ttpci/av7110_ca.c b/linux/drivers/media/dvb/ttpci/av7110_ca.c
index 86af2ffc5..723edfc30 100644
--- a/linux/drivers/media/dvb/ttpci/av7110_ca.c
+++ b/linux/drivers/media/dvb/ttpci/av7110_ca.c
@@ -49,46 +49,44 @@ extern int av7110_debug;
void CI_handle(struct av7110 *av7110, u8 *data, u16 len)
{
- DEB_EE(("av7110: %p\n",av7110));
-
- if (len<3)
- return;
- switch (data[0]) {
- case CI_MSG_CI_INFO:
- if (data[2]!=1 && data[2]!=2)
- break;
- switch (data[1]) {
- case 0:
- av7110->ci_slot[data[2]-1].flags=0;
- break;
- case 1:
- av7110->ci_slot[data[2]-1].flags|=CA_CI_MODULE_PRESENT;
- break;
- case 2:
- av7110->ci_slot[data[2]-1].flags|=CA_CI_MODULE_READY;
- break;
- }
- break;
- case CI_SWITCH_PRG_REPLY:
- //av7110->ci_stat=data[1];
- break;
- default:
- break;
- }
+ DEB_EE(("av7110: %p\n", av7110));
+
+ if (len < 3)
+ return;
+ switch (data[0]) {
+ case CI_MSG_CI_INFO:
+ if (data[2] != 1 && data[2] != 2)
+ break;
+ switch (data[1]) {
+ case 0:
+ av7110->ci_slot[data[2] - 1].flags = 0;
+ break;
+ case 1:
+ av7110->ci_slot[data[2] - 1].flags |= CA_CI_MODULE_PRESENT;
+ break;
+ case 2:
+ av7110->ci_slot[data[2] - 1].flags |= CA_CI_MODULE_READY;
+ break;
+ }
+ break;
+ case CI_SWITCH_PRG_REPLY:
+ //av7110->ci_stat=data[1];
+ break;
+ default:
+ break;
+ }
}
void ci_get_data(struct dvb_ringbuffer *cibuf, u8 *data, int len)
{
- if (dvb_ringbuffer_free(cibuf) < len+2)
- return;
-
- DVB_RINGBUFFER_WRITE_BYTE(cibuf,len>>8);
- DVB_RINGBUFFER_WRITE_BYTE(cibuf,len&0xff);
+ if (dvb_ringbuffer_free(cibuf) < len + 2)
+ return;
- dvb_ringbuffer_write(cibuf,data,len,0);
-
- wake_up_interruptible(&cibuf->queue);
+ DVB_RINGBUFFER_WRITE_BYTE(cibuf, len >> 8);
+ DVB_RINGBUFFER_WRITE_BYTE(cibuf, len & 0xff);
+ dvb_ringbuffer_write(cibuf, data, len, 0);
+ wake_up_interruptible(&cibuf->queue);
}
@@ -98,46 +96,45 @@ void ci_get_data(struct dvb_ringbuffer *cibuf, u8 *data, int len)
int ci_ll_init(struct dvb_ringbuffer *cirbuf, struct dvb_ringbuffer *ciwbuf, int size)
{
- dvb_ringbuffer_init(cirbuf, vmalloc(size), size);
- dvb_ringbuffer_init(ciwbuf, vmalloc(size), size);
- return 0;
+ dvb_ringbuffer_init(cirbuf, vmalloc(size), size);
+ dvb_ringbuffer_init(ciwbuf, vmalloc(size), size);
+ return 0;
}
void ci_ll_flush(struct dvb_ringbuffer *cirbuf, struct dvb_ringbuffer *ciwbuf)
{
- dvb_ringbuffer_flush_spinlock_wakeup(cirbuf);
- dvb_ringbuffer_flush_spinlock_wakeup(ciwbuf);
+ dvb_ringbuffer_flush_spinlock_wakeup(cirbuf);
+ dvb_ringbuffer_flush_spinlock_wakeup(ciwbuf);
}
void ci_ll_release(struct dvb_ringbuffer *cirbuf, struct dvb_ringbuffer *ciwbuf)
{
- vfree(cirbuf->data);
- cirbuf->data=0;
- vfree(ciwbuf->data);
- ciwbuf->data=0;
+ vfree(cirbuf->data);
+ cirbuf->data = 0;
+ vfree(ciwbuf->data);
+ ciwbuf->data = 0;
}
-
int ci_ll_reset(struct dvb_ringbuffer *cibuf, struct file *file,
- int slots, ca_slot_info_t *slot)
+ int slots, ca_slot_info_t *slot)
{
int i;
- int len=0;
- u8 msg[8]={0x00,0x06,0,0x00,0xff,0x02,0x00,0x00};
+ int len = 0;
+ u8 msg[8] = { 0x00, 0x06, 0x00, 0x00, 0xff, 0x02, 0x00, 0x00 };
- for (i=0; i<2; i++) {
- if (slots & (1<<i))
- len+=8;
+ for (i = 0; i < 2; i++) {
+ if (slots & (1 << i))
+ len += 8;
}
if (dvb_ringbuffer_free(cibuf) < len)
return -EBUSY;
- for (i=0; i<2; i++) {
- if (slots & (1<<i)) {
- msg[2]=i;
- dvb_ringbuffer_write(cibuf,msg,8,0);
- slot[i].flags=0;
+ for (i = 0; i < 2; i++) {
+ if (slots & (1 << i)) {
+ msg[2] = i;
+ dvb_ringbuffer_write(cibuf, msg, 8, 0);
+ slot[i].flags = 0;
}
}
@@ -147,188 +144,185 @@ int ci_ll_reset(struct dvb_ringbuffer *cibuf, struct file *file,
static ssize_t ci_ll_write(struct dvb_ringbuffer *cibuf, struct file *file,
const char *buf, size_t count, loff_t *ppos)
{
- int free;
- int non_blocking=file->f_flags&O_NONBLOCK;
-
- if (count>2048)
- return -EINVAL;
- free=dvb_ringbuffer_free(cibuf);
- if (count+2>free) {
- if (non_blocking)
- return -EWOULDBLOCK;
- if (wait_event_interruptible(cibuf->queue,
- (dvb_ringbuffer_free(cibuf)>=count+2)))
- return 0;
- }
-
- DVB_RINGBUFFER_WRITE_BYTE(cibuf,count>>8);
- DVB_RINGBUFFER_WRITE_BYTE(cibuf,count&0xff);
-
- return dvb_ringbuffer_write(cibuf,buf,count,1);
+ int free;
+ int non_blocking = file->f_flags & O_NONBLOCK;
+
+ if (count > 2048)
+ return -EINVAL;
+ free = dvb_ringbuffer_free(cibuf);
+ if (count + 2 > free) {
+ if (non_blocking)
+ return -EWOULDBLOCK;
+ if (wait_event_interruptible(cibuf->queue,
+ (dvb_ringbuffer_free(cibuf) >= count + 2)))
+ return 0;
+ }
+
+ DVB_RINGBUFFER_WRITE_BYTE(cibuf, count >> 8);
+ DVB_RINGBUFFER_WRITE_BYTE(cibuf, count & 0xff);
+
+ return dvb_ringbuffer_write(cibuf, buf, count, 1);
}
static ssize_t ci_ll_read(struct dvb_ringbuffer *cibuf, struct file *file,
char *buf, size_t count, loff_t *ppos)
{
int avail;
- int non_blocking=file->f_flags&O_NONBLOCK;
+ int non_blocking = file->f_flags & O_NONBLOCK;
ssize_t len;
if (!cibuf->data || !count)
- return 0;
+ return 0;
if (non_blocking && (dvb_ringbuffer_empty(cibuf)))
- return -EWOULDBLOCK;
+ return -EWOULDBLOCK;
if (wait_event_interruptible(cibuf->queue,
!dvb_ringbuffer_empty(cibuf)))
return 0;
- avail=dvb_ringbuffer_avail(cibuf);
- if (avail<4)
+ avail = dvb_ringbuffer_avail(cibuf);
+ if (avail < 4)
return 0;
- len= DVB_RINGBUFFER_PEEK(cibuf,0)<<8;
- len|=DVB_RINGBUFFER_PEEK(cibuf,1);
- if (avail<len+2 || count<len)
+ len = DVB_RINGBUFFER_PEEK(cibuf, 0) << 8;
+ len |= DVB_RINGBUFFER_PEEK(cibuf, 1);
+ if (avail < len + 2 || count < len)
return -EINVAL;
- DVB_RINGBUFFER_SKIP(cibuf,2);
+ DVB_RINGBUFFER_SKIP(cibuf, 2);
- return dvb_ringbuffer_read(cibuf,buf,len,1);
+ return dvb_ringbuffer_read(cibuf, buf, len, 1);
}
static int dvb_ca_open(struct inode *inode, struct file *file)
{
- struct dvb_device *dvbdev=(struct dvb_device *) file->private_data;
- struct av7110 *av7110=(struct av7110 *) dvbdev->priv;
- int err=dvb_generic_open(inode, file);
+ struct dvb_device *dvbdev = (struct dvb_device *) file->private_data;
+ struct av7110 *av7110 = (struct av7110 *) dvbdev->priv;
+ int err = dvb_generic_open(inode, file);
- DEB_EE(("av7110: %p\n",av7110));
+ DEB_EE(("av7110: %p\n", av7110));
- if (err<0)
- return err;
- ci_ll_flush(&av7110->ci_rbuffer, &av7110->ci_wbuffer);
- return 0;
+ if (err < 0)
+ return err;
+ ci_ll_flush(&av7110->ci_rbuffer, &av7110->ci_wbuffer);
+ return 0;
}
static unsigned int dvb_ca_poll (struct file *file, poll_table *wait)
{
struct dvb_device *dvbdev = (struct dvb_device *) file->private_data;
- struct av7110 *av7110 = (struct av7110 *) dvbdev->priv;
- struct dvb_ringbuffer *rbuf = &av7110->ci_rbuffer;
- struct dvb_ringbuffer *wbuf = &av7110->ci_wbuffer;
- unsigned int mask = 0;
-
- DEB_EE(("av7110: %p\n",av7110));
+ struct av7110 *av7110 = (struct av7110 *) dvbdev->priv;
+ struct dvb_ringbuffer *rbuf = &av7110->ci_rbuffer;
+ struct dvb_ringbuffer *wbuf = &av7110->ci_wbuffer;
+ unsigned int mask = 0;
- poll_wait (file, &rbuf->queue, wait);
+ DEB_EE(("av7110: %p\n", av7110));
- if (!dvb_ringbuffer_empty(rbuf))
- mask |= POLLIN;
+ poll_wait(file, &rbuf->queue, wait);
+ if (!dvb_ringbuffer_empty(rbuf))
+ mask |= POLLIN;
+ if (dvb_ringbuffer_avail(wbuf) > 1024)
+ mask |= POLLOUT;
- if (dvb_ringbuffer_avail(wbuf)>1024)
- mask |= POLLOUT;
-
- return mask;
+ return mask;
}
static int dvb_ca_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, void *parg)
+ unsigned int cmd, void *parg)
{
- struct dvb_device *dvbdev=(struct dvb_device *) file->private_data;
- struct av7110 *av7110=(struct av7110 *) dvbdev->priv;
- unsigned long arg=(unsigned long) parg;
-
- DEB_EE(("av7110: %p\n",av7110));
-
- switch (cmd) {
- case CA_RESET:
- return ci_ll_reset(&av7110->ci_wbuffer, file, arg, &av7110->ci_slot[0]);
- break;
- case CA_GET_CAP:
- {
- ca_caps_t cap;
-
- cap.slot_num=2;
- cap.slot_type=(FW_CI_LL_SUPPORT(av7110->arm_app) ? CA_CI_LINK : CA_CI) | CA_DESCR;
- cap.descr_num=16;
- cap.descr_type=CA_ECD;
- memcpy(parg, &cap, sizeof(cap));
- }
- break;
-
- case CA_GET_SLOT_INFO:
- {
- ca_slot_info_t *info=(ca_slot_info_t *)parg;
-
- if (info->num>1)
- return -EINVAL;
- av7110->ci_slot[info->num].num = info->num;
- av7110->ci_slot[info->num].type = FW_CI_LL_SUPPORT(av7110->arm_app) ? CA_CI_LINK : CA_CI;
- memcpy(info, &av7110->ci_slot[info->num], sizeof(ca_slot_info_t));
- }
- break;
-
- case CA_GET_MSG:
- break;
-
- case CA_SEND_MSG:
- break;
-
- case CA_GET_DESCR_INFO:
- {
- ca_descr_info_t info;
-
- info.num=16;
- info.type=CA_ECD;
- memcpy (parg, &info, sizeof (info));
- }
- break;
-
- case CA_SET_DESCR:
- {
- ca_descr_t *descr=(ca_descr_t*) parg;
-
- if (descr->index>=16)
- return -EINVAL;
- if (descr->parity>1)
- return -EINVAL;
- outcom(av7110, COMTYPE_PIDFILTER, SetDescr, 5,
- (descr->index<<8)|descr->parity,
- (descr->cw[0]<<8)|descr->cw[1],
- (descr->cw[2]<<8)|descr->cw[3],
- (descr->cw[4]<<8)|descr->cw[5],
- (descr->cw[6]<<8)|descr->cw[7]);
- }
- break;
-
- default:
- return -EINVAL;
- }
- return 0;
+ struct dvb_device *dvbdev = (struct dvb_device *) file->private_data;
+ struct av7110 *av7110 = (struct av7110 *) dvbdev->priv;
+ unsigned long arg = (unsigned long) parg;
+
+ DEB_EE(("av7110: %p\n", av7110));
+
+ switch (cmd) {
+ case CA_RESET:
+ return ci_ll_reset(&av7110->ci_wbuffer, file, arg, &av7110->ci_slot[0]);
+ break;
+ case CA_GET_CAP:
+ {
+ ca_caps_t cap;
+
+ cap.slot_num = 2;
+ cap.slot_type = (FW_CI_LL_SUPPORT(av7110->arm_app) ?
+ CA_CI_LINK : CA_CI) | CA_DESCR;
+ cap.descr_num = 16;
+ cap.descr_type = CA_ECD;
+ memcpy(parg, &cap, sizeof(cap));
+ break;
+ }
+
+ case CA_GET_SLOT_INFO:
+ {
+ ca_slot_info_t *info=(ca_slot_info_t *)parg;
+
+ if (info->num > 1)
+ return -EINVAL;
+ av7110->ci_slot[info->num].num = info->num;
+ av7110->ci_slot[info->num].type = FW_CI_LL_SUPPORT(av7110->arm_app) ?
+ CA_CI_LINK : CA_CI;
+ memcpy(info, &av7110->ci_slot[info->num], sizeof(ca_slot_info_t));
+ break;
+ }
+
+ case CA_GET_MSG:
+ break;
+
+ case CA_SEND_MSG:
+ break;
+
+ case CA_GET_DESCR_INFO:
+ {
+ ca_descr_info_t info;
+
+ info.num = 16;
+ info.type = CA_ECD;
+ memcpy(parg, &info, sizeof (info));
+ break;
+ }
+
+ case CA_SET_DESCR:
+ {
+ ca_descr_t *descr = (ca_descr_t*) parg;
+
+ if (descr->index >= 16)
+ return -EINVAL;
+ if (descr->parity > 1)
+ return -EINVAL;
+ outcom(av7110, COMTYPE_PIDFILTER, SetDescr, 5,
+ (descr->index<<8)|descr->parity,
+ (descr->cw[0]<<8)|descr->cw[1],
+ (descr->cw[2]<<8)|descr->cw[3],
+ (descr->cw[4]<<8)|descr->cw[5],
+ (descr->cw[6]<<8)|descr->cw[7]);
+ break;
+ }
+
+ default:
+ return -EINVAL;
+ }
+ return 0;
}
static ssize_t dvb_ca_write(struct file *file, const char *buf,
- size_t count, loff_t *ppos)
+ size_t count, loff_t *ppos)
{
- struct dvb_device *dvbdev=(struct dvb_device *) file->private_data;
- struct av7110 *av7110=(struct av7110 *) dvbdev->priv;
+ struct dvb_device *dvbdev = (struct dvb_device *) file->private_data;
+ struct av7110 *av7110 = (struct av7110 *) dvbdev->priv;
- DEB_EE(("av7110: %p\n",av7110));
- return ci_ll_write(&av7110->ci_wbuffer, file, buf, count, ppos);
+ DEB_EE(("av7110: %p\n", av7110));
+ return ci_ll_write(&av7110->ci_wbuffer, file, buf, count, ppos);
}
-static ssize_t dvb_ca_read(struct file *file, char *buf, size_t count, loff_t *ppos)
+static ssize_t dvb_ca_read(struct file *file, char *buf,
+ size_t count, loff_t *ppos)
{
- struct dvb_device *dvbdev=(struct dvb_device *) file->private_data;
- struct av7110 *av7110=(struct av7110 *) dvbdev->priv;
+ struct dvb_device *dvbdev = (struct dvb_device *) file->private_data;
+ struct av7110 *av7110 = (struct av7110 *) dvbdev->priv;
- DEB_EE(("av7110: %p\n",av7110));
- return ci_ll_read(&av7110->ci_rbuffer, file, buf, count, ppos);
+ DEB_EE(("av7110: %p\n", av7110));
+ return ci_ll_read(&av7110->ci_rbuffer, file, buf, count, ppos);
}
-/******************************************************************************
- * driver registration
- ******************************************************************************/
-
static struct file_operations dvb_ca_fops = {
.owner = THIS_MODULE,
.read = dvb_ca_read,
@@ -359,10 +353,9 @@ void av7110_ca_unregister(struct av7110 *av7110)
dvb_unregister_device(av7110->ca_dev);
}
-
void av7110_ca_init(struct av7110* av7110)
{
- ci_ll_init(&av7110->ci_rbuffer, &av7110->ci_wbuffer, 8192);
+ ci_ll_init(&av7110->ci_rbuffer, &av7110->ci_wbuffer, 8192);
}
void av7110_ca_exit(struct av7110* av7110)