]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blobdiff - drivers/media/dvb/dvb-core/dvb_ringbuffer.c
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-serial
[mirror_ubuntu-hirsute-kernel.git] / drivers / media / dvb / dvb-core / dvb_ringbuffer.c
index 283c6e9339a4651b5b6c954e124d7e38025a1d0a..9878183ba3f0d8cc751cfbd968b3c7c9aa5d5d3b 100644 (file)
@@ -26,7 +26,6 @@
 
 
 
-#define __KERNEL_SYSCALLS__
 #include <linux/errno.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -45,6 +44,7 @@ void dvb_ringbuffer_init(struct dvb_ringbuffer *rbuf, void *data, size_t len)
        rbuf->pread=rbuf->pwrite=0;
        rbuf->data=data;
        rbuf->size=len;
+       rbuf->error=0;
 
        init_waitqueue_head(&rbuf->queue);
 
@@ -87,6 +87,7 @@ ssize_t dvb_ringbuffer_avail(struct dvb_ringbuffer *rbuf)
 void dvb_ringbuffer_flush(struct dvb_ringbuffer *rbuf)
 {
        rbuf->pread = rbuf->pwrite;
+       rbuf->error = 0;
 }
 
 
@@ -112,10 +113,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;
        if (split > 0) {
                if (!usermem)
-                       memcpy(buf, rbuf->data+rbuf->pread, split);
+                       memcpy(buf, rbuf->data+rbuf->pread, split);
                else
-                       if (copy_to_user(buf, rbuf->data+rbuf->pread, split))
-                               return -EFAULT;
+                       if (copy_to_user(buf, rbuf->data+rbuf->pread, split))
+                               return -EFAULT;
                buf += split;
                todo -= split;
                rbuf->pread = 0;
@@ -124,7 +125,7 @@ ssize_t dvb_ringbuffer_read(struct dvb_ringbuffer *rbuf, u8 *buf, size_t len, in
                memcpy(buf, rbuf->data+rbuf->pread, todo);
        else
                if (copy_to_user(buf, rbuf->data+rbuf->pread, todo))
-                       return -EFAULT;
+                       return -EFAULT;
 
        rbuf->pread = (rbuf->pread + todo) % rbuf->size;
 
@@ -167,7 +168,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,
-                               int offset, u8* buf, size_t len, int usermem)
+                               int offset, u8* buf, size_t len, int usermem)
 {
        size_t todo;
        size_t split;
@@ -183,10 +184,10 @@ ssize_t dvb_ringbuffer_pkt_read(struct dvb_ringbuffer *rbuf, size_t idx,
        split = ((idx + len) > rbuf->size) ? rbuf->size - idx : 0;
        if (split > 0) {
                if (!usermem)
-                       memcpy(buf, rbuf->data+idx, split);
+                       memcpy(buf, rbuf->data+idx, split);
                else
-                       if (copy_to_user(buf, rbuf->data+idx, split))
-                               return -EFAULT;
+                       if (copy_to_user(buf, rbuf->data+idx, split))
+                               return -EFAULT;
                buf += split;
                todo -= split;
                idx = 0;
@@ -195,7 +196,7 @@ ssize_t dvb_ringbuffer_pkt_read(struct dvb_ringbuffer *rbuf, size_t idx,
                memcpy(buf, rbuf->data+idx, todo);
        else
                if (copy_to_user(buf, rbuf->data+idx, todo))
-                       return -EFAULT;
+                       return -EFAULT;
 
        return len;
 }
@@ -209,12 +210,12 @@ void dvb_ringbuffer_pkt_dispose(struct dvb_ringbuffer *rbuf, size_t idx)
        // clean up disposed packets
        while(dvb_ringbuffer_avail(rbuf) > DVB_RINGBUFFER_PKTHDRSIZE) {
                if (DVB_RINGBUFFER_PEEK(rbuf, 2) == PKT_DISPOSED) {
-                       pktlen = DVB_RINGBUFFER_PEEK(rbuf, 0) << 8;
-                       pktlen |= DVB_RINGBUFFER_PEEK(rbuf, 1);
-                       DVB_RINGBUFFER_SKIP(rbuf, pktlen + DVB_RINGBUFFER_PKTHDRSIZE);
+                       pktlen = DVB_RINGBUFFER_PEEK(rbuf, 0) << 8;
+                       pktlen |= DVB_RINGBUFFER_PEEK(rbuf, 1);
+                       DVB_RINGBUFFER_SKIP(rbuf, pktlen + DVB_RINGBUFFER_PKTHDRSIZE);
                } else {
-                       // first packet is not disposed, so we stop cleaning now
-                       break;
+                       // first packet is not disposed, so we stop cleaning now
+                       break;
                }
        }
 }
@@ -242,8 +243,8 @@ ssize_t dvb_ringbuffer_pkt_next(struct dvb_ringbuffer *rbuf, size_t idx, size_t*
                curpktstatus = rbuf->data[(idx + 2) % rbuf->size];
 
                if (curpktstatus == PKT_READY) {
-                       *pktlen = curpktlen;
-                       return idx;
+                       *pktlen = curpktlen;
+                       return idx;
                }
 
                consumed += curpktlen + DVB_RINGBUFFER_PKTHDRSIZE;