vserver 1.9.5.x5
[linux-2.6.git] / drivers / media / dvb / ttpci / av7110_ca.c
index 2d169d6..0bd0da2 100644 (file)
 #include <linux/byteorder/swabb.h>
 #include <linux/smp_lock.h>
 
-#define DEBUG_VARIABLE av7110_debug
-extern int av7110_debug;
-
-#include "dvb_i2c.h"
 #include "av7110.h"
 #include "av7110_hw.h"
-#include "dvb_functions.h"
 
 
 void CI_handle(struct av7110 *av7110, u8 *data, u16 len)
 {
-       DEB_EE(("av7110: %p\n", av7110));
+       dprintk(8, "av7110:%p\n",av7110);
 
        if (len < 3)
                return;
@@ -94,20 +89,20 @@ void ci_get_data(struct dvb_ringbuffer *cibuf, u8 *data, int len)
  * CI link layer file ops
  ******************************************************************************/
 
-int ci_ll_init(struct dvb_ringbuffer *cirbuf, struct dvb_ringbuffer *ciwbuf, int size)
+static 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;
 }
 
-void ci_ll_flush(struct dvb_ringbuffer *cirbuf, struct dvb_ringbuffer *ciwbuf)
+static void ci_ll_flush(struct dvb_ringbuffer *cirbuf, struct dvb_ringbuffer *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)
+static void ci_ll_release(struct dvb_ringbuffer *cirbuf, struct dvb_ringbuffer *ciwbuf)
 {
        vfree(cirbuf->data);
        cirbuf->data = NULL;
@@ -115,7 +110,7 @@ void ci_ll_release(struct dvb_ringbuffer *cirbuf, struct dvb_ringbuffer *ciwbuf)
        ciwbuf->data = NULL;
 }
 
-int ci_ll_reset(struct dvb_ringbuffer *cibuf, struct file *file,
+static int ci_ll_reset(struct dvb_ringbuffer *cibuf, struct file *file,
                int slots, ca_slot_info_t *slot)
 {
        int i;
@@ -212,7 +207,7 @@ static int dvb_ca_open(struct inode *inode, struct file *file)
        struct av7110 *av7110 = (struct av7110 *) dvbdev->priv;
        int err = dvb_generic_open(inode, file);
 
-       DEB_EE(("av7110: %p\n", av7110));
+       dprintk(8, "av7110:%p\n",av7110);
 
        if (err < 0)
                return err;
@@ -228,13 +223,16 @@ static unsigned int dvb_ca_poll (struct file *file, poll_table *wait)
        struct dvb_ringbuffer *wbuf = &av7110->ci_wbuffer;
        unsigned int mask = 0;
 
-       DEB_EE(("av7110: %p\n", av7110));
+       dprintk(8, "av7110:%p\n",av7110);
 
        poll_wait(file, &rbuf->queue, wait);
+       poll_wait(file, &wbuf->queue, wait);
+
        if (!dvb_ringbuffer_empty(rbuf))
-               mask |= POLLIN;
-       if (dvb_ringbuffer_avail(wbuf) > 1024)
-               mask |= POLLOUT;
+               mask |= (POLLIN | POLLRDNORM);
+
+       if (dvb_ringbuffer_free(wbuf) > 1024)
+               mask |= (POLLOUT | POLLWRNORM);
 
        return mask;
 }
@@ -246,7 +244,7 @@ static int dvb_ca_ioctl(struct inode *inode, struct file *file,
        struct av7110 *av7110 = (struct av7110 *) dvbdev->priv;
        unsigned long arg = (unsigned long) parg;
 
-       DEB_EE(("av7110: %p\n", av7110));
+       dprintk(8, "av7110:%p\n",av7110);
 
        switch (cmd) {
        case CA_RESET:
@@ -323,7 +321,7 @@ static ssize_t dvb_ca_write(struct file *file, const char __user *buf,
        struct dvb_device *dvbdev = (struct dvb_device *) file->private_data;
        struct av7110 *av7110 = (struct av7110 *) dvbdev->priv;
 
-       DEB_EE(("av7110: %p\n", av7110));
+       dprintk(8, "av7110:%p\n",av7110);
        return ci_ll_write(&av7110->ci_wbuffer, file, buf, count, ppos);
 }
 
@@ -333,7 +331,7 @@ static ssize_t dvb_ca_read(struct file *file, char __user *buf,
        struct dvb_device *dvbdev = (struct dvb_device *) file->private_data;
        struct av7110 *av7110 = (struct av7110 *) dvbdev->priv;
 
-       DEB_EE(("av7110: %p\n", av7110));
+       dprintk(8, "av7110:%p\n",av7110);
        return ci_ll_read(&av7110->ci_rbuffer, file, buf, count, ppos);
 }