diff options
author | Michael Hanson <hansonorders@verizon.net> | 2010-11-09 01:43:59 (GMT) |
---|---|---|
committer | Michael Hanson <hansonorders@verizon.net> | 2010-11-09 01:43:59 (GMT) |
commit | 6b218299785aedd78128a9c7831aff1a6eefdcb8 (patch) | |
tree | 79f48e3bac89f7120496e6b3021072212fa6a780 /abs/core/lirc-utils/lirc_patch | |
parent | f33c5716af099ce4d779cf67f65204f11b551ed6 (diff) | |
parent | e40ac065f9a09f99b37e898b8684d70a0984f399 (diff) | |
download | linhes_pkgbuild-6b218299785aedd78128a9c7831aff1a6eefdcb8.zip linhes_pkgbuild-6b218299785aedd78128a9c7831aff1a6eefdcb8.tar.gz linhes_pkgbuild-6b218299785aedd78128a9c7831aff1a6eefdcb8.tar.bz2 |
Merge branch 'testing' of knoppmyth.net:linhes_pkgbuild into testing
Diffstat (limited to 'abs/core/lirc-utils/lirc_patch')
-rw-r--r-- | abs/core/lirc-utils/lirc_patch | 270 |
1 files changed, 0 insertions, 270 deletions
diff --git a/abs/core/lirc-utils/lirc_patch b/abs/core/lirc-utils/lirc_patch deleted file mode 100644 index 021ad50..0000000 --- a/abs/core/lirc-utils/lirc_patch +++ /dev/null @@ -1,270 +0,0 @@ -diff -ruaN lirc-0.8.6.orig//drivers/lirc_dev/lirc_dev.h lirc-0.8.6/drivers/lirc_dev/lirc_dev.h ---- lirc-0.8.6.orig//drivers/lirc_dev/lirc_dev.h 2009-03-15 09:34:00.000000000 +0000 -+++ lirc-0.8.6/drivers/lirc_dev/lirc_dev.h 2010-08-04 02:20:07.000000000 +0000 -@@ -4,7 +4,7 @@ - * (L) by Artur Lipowski <alipowski@interia.pl> - * This code is licensed under GNU GPL - * -- * $Id: lirc_dev.h,v 1.37 2009/03/15 09:34:00 lirc Exp $ -+ * $Id: lirc_dev.h,v 1.39 2010/01/23 16:28:07 lirc Exp $ - * - */ - -@@ -30,14 +30,19 @@ - - struct lirc_buffer { - wait_queue_head_t wait_poll; -- spinlock_t lock; -+ spinlock_t fifo_lock; - unsigned int chunk_size; - unsigned int size; /* in chunks */ - /* Using chunks instead of bytes pretends to simplify boundary checking - * And should allow for some performance fine tunning later */ - #ifdef LIRC_HAVE_KFIFO -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) - struct kfifo *fifo; - #else -+ struct kfifo fifo; -+ u8 fifo_initialized; -+#endif -+#else - unsigned int fill; /* in chunks */ - int head, tail; /* in chunks */ - unsigned char *data; -@@ -47,12 +52,12 @@ - static inline void lirc_buffer_lock(struct lirc_buffer *buf, - unsigned long *flags) - { -- spin_lock_irqsave(&buf->lock, *flags); -+ spin_lock_irqsave(&buf->fifo_lock, *flags); - } - static inline void lirc_buffer_unlock(struct lirc_buffer *buf, - unsigned long *flags) - { -- spin_unlock_irqrestore(&buf->lock, *flags); -+ spin_unlock_irqrestore(&buf->fifo_lock, *flags); - } - static inline void _lirc_buffer_clear(struct lirc_buffer *buf) - { -@@ -64,10 +69,21 @@ - static inline void lirc_buffer_clear(struct lirc_buffer *buf) - { - #ifdef LIRC_HAVE_KFIFO -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) - if (buf->fifo) - kfifo_reset(buf->fifo); - #else - unsigned long flags; -+ -+ if (buf->fifo_initialized) { -+ spin_lock_irqsave(&buf->fifo_lock, flags); -+ kfifo_reset(&buf->fifo); -+ spin_unlock_irqrestore(&buf->fifo_lock, flags); -+ } -+#endif -+#else -+ unsigned long flags; -+ - lirc_buffer_lock(buf, &flags); - _lirc_buffer_clear(buf); - lirc_buffer_unlock(buf, &flags); -@@ -77,31 +93,47 @@ - unsigned int chunk_size, - unsigned int size) - { -+ int ret = 0; -+ - init_waitqueue_head(&buf->wait_poll); -- spin_lock_init(&buf->lock); -+ spin_lock_init(&buf->fifo_lock); - #ifndef LIRC_HAVE_KFIFO - _lirc_buffer_clear(buf); - #endif - buf->chunk_size = chunk_size; - buf->size = size; - #ifdef LIRC_HAVE_KFIFO -- buf->fifo = kfifo_alloc(size*chunk_size, GFP_KERNEL, &buf->lock); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) -+ buf->fifo = kfifo_alloc(size*chunk_size, GFP_KERNEL, &buf->fifo_lock); - if (!buf->fifo) - return -ENOMEM; - #else -+ ret = kfifo_alloc(&buf->fifo, size * chunk_size, GFP_KERNEL); -+ if (ret == 0) -+ buf->fifo_initialized = 1; -+#endif -+#else - buf->data = kmalloc(size*chunk_size, GFP_KERNEL); - if (buf->data == NULL) - return -ENOMEM; - memset(buf->data, 0, size*chunk_size); - #endif -- return 0; -+ -+ return ret; - } - static inline void lirc_buffer_free(struct lirc_buffer *buf) - { - #ifdef LIRC_HAVE_KFIFO -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) - if (buf->fifo) - kfifo_free(buf->fifo); - #else -+ if (buf->fifo_initialized) { -+ kfifo_free(&buf->fifo); -+ buf->fifo_initialized = 0; -+ } -+#endif -+#else - kfree(buf->data); - buf->data = NULL; - buf->head = 0; -@@ -111,6 +143,25 @@ - buf->size = 0; - #endif - } -+ -+#ifdef LIRC_HAVE_KFIFO -+static inline int lirc_buffer_len(struct lirc_buffer *buf) -+{ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) -+ return kfifo_len(buf->fifo); -+#else -+ int len; -+ unsigned long flags; -+ -+ spin_lock_irqsave(&buf->fifo_lock, flags); -+ len = kfifo_len(&buf->fifo); -+ spin_unlock_irqrestore(&buf->fifo_lock, flags); -+ -+ return len; -+#endif -+} -+#endif -+ - #ifndef LIRC_HAVE_KFIFO - static inline int _lirc_buffer_full(struct lirc_buffer *buf) - { -@@ -120,7 +171,7 @@ - static inline int lirc_buffer_full(struct lirc_buffer *buf) - { - #ifdef LIRC_HAVE_KFIFO -- return kfifo_len(buf->fifo) == buf->size * buf->chunk_size; -+ return lirc_buffer_len(buf) == buf->size * buf->chunk_size; - #else - unsigned long flags; - int ret; -@@ -139,7 +190,7 @@ - static inline int lirc_buffer_empty(struct lirc_buffer *buf) - { - #ifdef LIRC_HAVE_KFIFO -- return !kfifo_len(buf->fifo); -+ return !lirc_buffer_len(buf); - #else - unsigned long flags; - int ret; -@@ -158,7 +209,7 @@ - static inline int lirc_buffer_available(struct lirc_buffer *buf) - { - #ifdef LIRC_HAVE_KFIFO -- return buf->size - (kfifo_len(buf->fifo) / buf->chunk_size); -+ return buf->size - (lirc_buffer_len(buf) / buf->chunk_size); - #else - unsigned long flags; - int ret; -@@ -177,21 +228,30 @@ - buf->fill -= 1; - } - #endif --static inline void lirc_buffer_read(struct lirc_buffer *buf, -- unsigned char *dest) -+static inline unsigned int lirc_buffer_read(struct lirc_buffer *buf, -+ unsigned char *dest) - { -+ unsigned int ret = 0; -+ - #ifdef LIRC_HAVE_KFIFO -- if (kfifo_len(buf->fifo) >= buf->chunk_size) -- kfifo_get(buf->fifo, dest, buf->chunk_size); -+ if (lirc_buffer_len(buf) >= buf->chunk_size) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) -+ ret = kfifo_get(buf->fifo, dest, buf->chunk_size); -+#else -+ ret = kfifo_out_locked(&buf->fifo, dest, buf->chunk_size, -+ &buf->fifo_lock); -+#endif - #else - unsigned long flags; - lirc_buffer_lock(buf, &flags); - _lirc_buffer_read_1(buf, dest); - lirc_buffer_unlock(buf, &flags); - #endif -+ -+ return ret; - } - #ifndef LIRC_HAVE_KFIFO --static inline void _lirc_buffer_write_1(struct lirc_buffer *buf, -+static inline _lirc_buffer_write_1(struct lirc_buffer *buf, - unsigned char *orig) - { - memcpy(&buf->data[buf->tail*buf->chunk_size], orig, buf->chunk_size); -@@ -199,17 +259,26 @@ - buf->fill++; - } - #endif --static inline void lirc_buffer_write(struct lirc_buffer *buf, -- unsigned char *orig) -+static inline unsigned int lirc_buffer_write(struct lirc_buffer *buf, -+ unsigned char *orig) - { -+ unsigned int ret = 0; -+ - #ifdef LIRC_HAVE_KFIFO -- kfifo_put(buf->fifo, orig, buf->chunk_size); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) -+ ret = kfifo_put(buf->fifo, orig, buf->chunk_size); -+#else -+ ret = kfifo_in_locked(&buf->fifo, orig, buf->chunk_size, -+ &buf->fifo_lock); -+#endif - #else - unsigned long flags; - lirc_buffer_lock(buf, &flags); - _lirc_buffer_write_1(buf, orig); - lirc_buffer_unlock(buf, &flags); - #endif -+ -+ return ret; - } - #ifndef LIRC_HAVE_KFIFO - static inline void _lirc_buffer_write_n(struct lirc_buffer *buf, -@@ -234,17 +303,26 @@ - buf->fill += count; - } - #endif --static inline void lirc_buffer_write_n(struct lirc_buffer *buf, -- unsigned char *orig, int count) -+static inline unsigned int lirc_buffer_write_n(struct lirc_buffer *buf, -+ unsigned char *orig, int count) - { -+ unsigned int ret = 0; -+ - #ifdef LIRC_HAVE_KFIFO -- kfifo_put(buf->fifo, orig, count * buf->chunk_size); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) -+ ret = kfifo_put(buf->fifo, orig, count * buf->chunk_size); -+#else -+ ret = kfifo_in_locked(&buf->fifo, orig, count * buf->chunk_size, -+ &buf->fifo_lock); -+#endif - #else - unsigned long flags; - lirc_buffer_lock(buf, &flags); - _lirc_buffer_write_n(buf, orig, count); - lirc_buffer_unlock(buf, &flags); - #endif -+ -+ return ret; - } - - struct lirc_driver { |