From a493a7b5c385242d6f31c64240f3f1d98b8c8b2b Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Sat, 6 Nov 2010 18:42:56 +0000
Subject: lirc-utils: update to 0.8.7 ref #574 ref #647 ref #599

---
 abs/core/lirc-utils/PKGBUILD            | 103 ++++---
 abs/core/lirc-utils/kernel-2.6.33.patch | 475 --------------------------------
 abs/core/lirc-utils/lirc_patch          | 270 ------------------
 abs/core/lirc-utils/lircd               |   1 +
 4 files changed, 52 insertions(+), 797 deletions(-)
 delete mode 100644 abs/core/lirc-utils/kernel-2.6.33.patch
 delete mode 100644 abs/core/lirc-utils/lirc_patch

diff --git a/abs/core/lirc-utils/PKGBUILD b/abs/core/lirc-utils/PKGBUILD
index 9eff254..2a87688 100644
--- a/abs/core/lirc-utils/PKGBUILD
+++ b/abs/core/lirc-utils/PKGBUILD
@@ -1,79 +1,78 @@
-# $Id: PKGBUILD 56261 2009-10-20 19:13:10Z hugo $
-# Maintainer: Paul Mattal <paul@archlinux.org>
+# $Id: PKGBUILD 97719 2010-11-01 14:41:14Z tpowa $
+# Maintainer:
+# Contributor: Paul Mattal <paul@archlinux.org>
 
 pkgname=lirc-utils
-pkgver=0.8.6
-pkgrel=4
+pkgver=0.8.7
+pkgrel=1
 pkgdesc="Linux Infrared Remote Control utils"
 arch=('i686' 'x86_64')
 url="http://www.lirc.org/"
 license=('GPL')
-_kernver=2.6.34-ARCH
-depends=('alsa-lib' 'libusb' 'libx11' 'libsm' 'python' 'libftdi')
-makedepends=('help2man')
+_kernver=2.6.36-LinHES
+depends=('alsa-lib' 'libusb' 'libx11' 'libsm' 'python2' 'libftdi')
+makedepends=('help2man' 'kernel26-headers')
 replaces=('lirc+pctv')
-backup=('etc/conf.d/lircd.conf' 'etc/conf.d/lircmd.conf' 'etc/lirc/lircd.conf')
+backup=('etc/conf.d/lircd.conf' 'etc/conf.d/irexec.conf')
 options=('!libtool' '!makeflags')
-source=(http://downloads.sourceforge.net/sourceforge/lirc/lirc-$pkgver.tar.bz2
-	lircd lircmd lirc.logrotate lircd.conf irexec.conf irexecd kernel-2.6.33.patch)
+source=("http://downloads.sourceforge.net/lirc/lirc-${pkgver}.tar.bz2"
+	lircd lircmd lirc.logrotate lircd.conf irexec.conf irexecd)
+md5sums=('fb1dcddbc8ca3d03c7f3a2d40cf28b71'
+         '680ea3732ab367c0b24a5acb566d5446'
+         '85f7fdac55e5256967241864049bf5e9'
+         '3deb02604b37811d41816e9b4385fcc3'
+         '5b1f8c9cd788a39a6283f93302ce5c6e'
+         'f0c0ac930326168035f0c8e24357ae55'
+         '618ca4f666341d6ade8c616ce59f4d1b')
 
 build() {
-	# configure
-	cd ${srcdir}/lirc-$pkgver || return 1
-
-	patch -p0 < ../kernel-2.6.33.patch || return 1
-
-      # Disabling lirc_gpio driver as it does no longer work Kernel 2.6.22+
-	sed -i -e "s:lirc_gpio\.o::" drivers/lirc_gpio/Makefile.am || return 1
+	cd "${srcdir}/lirc-${pkgver}"
 
-	autoreconf || return 1
-	libtoolize || return 1
+	autoreconf
+	libtoolize
 
-	./configure --enable-sandboxed --prefix=/usr \
-	--with-driver=all --with-kerneldir=/usr/src/linux-${_kernver} \
-	--with-moduledir=/lib/modules/${_kernver}/kernel/drivers/misc \
-	--with-transmitter \
-		|| return 1
+	./configure --enable-sandboxed \
+	  --prefix=/usr \
+	  --with-driver=all \
+	  --with-kerneldir=/usr/src/linux-${_kernver} \
+	  --with-moduledir=/lib/modules/${_kernver}/kernel/drivers/misc \
+	  --with-transmitter
 	# disable parallel and bt829
         # because of incompatibility with smp systems
         sed -i -e "s:lirc_parallel::" -e "s:lirc_bt829::" \
-		Makefile drivers/Makefile drivers/*/Makefile tools/Makefile \
-                || return 1
+		Makefile drivers/Makefile drivers/*/Makefile tools/Makefile
+	# lirc_i2c  lirc_igorplugusb  lirc_imon  lirc_it87  lirc_ite8709
+        # lirc_sasem  lirc_serial  lirc_sir lirc_ttusbir lirc_zilog
+        # because part of kernel 2.6.36 staging tree
+        sed -i -e "s:lirc_i2c::" -e "s:lirc_igorplugusb::" -e "s:lirc_imon::" \
+		-e "s:lirc_it87::" -e "s:lirc_ite8709::" -e "s:lirc_sasem::" \
+		-e "s:lirc_serial::" -e "s:lirc_sir::" -e "s:lirc_ttusbir::" \
+		-e "s:lirc_zilog::" Makefile drivers/Makefile drivers/*/Makefile tools/Makefile
+	# Disabling lirc_gpio driver as it does no longer work Kernel 2.6.22+
+	sed -i -e "s:lirc_gpio\.o::" drivers/lirc_gpio/Makefile.am
 
-  	# build
-	make || return 1
-	make DESTDIR=${pkgdir} install || return 1
-	mkdir -p ${pkgdir}/usr/share/lirc ${pkgdir}/etc/rc.d \
-		|| return 1
-	cp ${srcdir}/{lircd,lircmd,irexecd} ${pkgdir}/etc/rc.d/ \
-		|| return 1
-	cp -rp remotes ${pkgdir}/usr/share/lirc || return 1
-	chmod -R go-w ${pkgdir}/usr/share/lirc/ || return 1
+	make
+}
 
+package() {
+	cd "${srcdir}/lirc-${pkgver}"
+	make DESTDIR="${pkgdir}" install
+	install -d "${pkgdir}/usr/share/lirc" "${pkgdir}/etc/rc.d"
+	cp "${srcdir}"/{lircd,lircmd,irexecd} "${pkgdir}/etc/rc.d"
+	cp -rp remotes "${pkgdir}/usr/share/lirc"
+	chmod -R go-w "${pkgdir}/usr/share/lirc/"
 
 	# install the logrotate config
-    	install -D -m644 ${srcdir}/lirc.logrotate \
-        	${pkgdir}/etc/logrotate.d/lirc || return 1
+    	install -Dm644 "${srcdir}/lirc.logrotate" "${pkgdir}/etc/logrotate.d/lirc"
     
 	# install conf.d file
-	install -D -m644 ${srcdir}/lircd.conf \
-        	${pkgdir}/etc/conf.d/lircd.conf || return 1
+	install -Dm644 "${srcdir}/lircd.conf" "${pkgdir}/etc/conf.d/lircd.conf"
 
 	# install conf.d file
-        install -D -m644 ${srcdir}/irexec.conf \
-                ${pkgdir}/etc/conf.d/irexec.conf || return 1
+        install -Dm644 "${srcdir}/irexec.conf" "${pkgdir}/etc/conf.d/irexec.conf"
 
-	install -d -m755 ${pkgdir}/etc/lirc || return 1
-	install -d -m755 ${pkgdir}/var/run/lirc || return 1
+	install -d "${pkgdir}/etc/lirc"
 
 	# remove built modules
-	rm -r ${pkgdir}/lib/
+	rm -r "${pkgdir}/lib/"
 }
-md5sums=('4ca24da6f5e7c2dcea74878c27a4a3f7'
-         '310f718169b16b6afa6615fa53a0ef21'
-         '85f7fdac55e5256967241864049bf5e9'
-         '3deb02604b37811d41816e9b4385fcc3'
-         '5b1f8c9cd788a39a6283f93302ce5c6e'
-         'f0c0ac930326168035f0c8e24357ae55'
-         '618ca4f666341d6ade8c616ce59f4d1b'
-         'f029698154cf32bc51e5e69879d53a12')
diff --git a/abs/core/lirc-utils/kernel-2.6.33.patch b/abs/core/lirc-utils/kernel-2.6.33.patch
deleted file mode 100644
index 7827e00..0000000
--- a/abs/core/lirc-utils/kernel-2.6.33.patch
+++ /dev/null
@@ -1,475 +0,0 @@
---- drivers/lirc_dev/lirc_dev.h	2009/03/15 09:34:00	1.37 lirc-0_8_6
-+++ drivers/lirc_dev/lirc_dev.h	2009/12/28 15:21:17	1.38
-@@ -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.38 2009/12/28 15:21:17 jarodwilson 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)
- {
-@@ -63,11 +68,20 @@
- #endif
- static inline void lirc_buffer_clear(struct lirc_buffer *buf)
- {
-+	unsigned long flags;
-+
- #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
- 	lirc_buffer_lock(buf, &flags);
- 	_lirc_buffer_clear(buf);
- 	lirc_buffer_unlock(buf, &flags);
-@@ -77,31 +91,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 +141,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 +169,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 +188,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 +207,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 +226,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 +257,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 +301,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 {
---- drivers/lirc_dev/lirc_dev.c.old	2009-08-31 12:57:55.000000000 -0400
-+++ drivers/lirc_dev/lirc_dev.c	2010-03-07 01:40:17.000000000 -0500
-@@ -32,7 +32,11 @@
- #error "**********************************************************"
- #endif
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
- #include <linux/autoconf.h>
-+#else
-+#include <generated/autoconf.h>
-+#endif
- #include <linux/module.h>
- #include <linux/kernel.h>
- #include <linux/sched.h>
---- drivers/lirc_sir/lirc_sir.c.old	2009-07-09 18:24:23.000000000 -0400
-+++ drivers/lirc_sir/lirc_sir.c	2010-03-07 01:40:17.000000000 -0500
-@@ -45,7 +45,11 @@
- # include <config.h>
- #endif
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
- #include <linux/autoconf.h>
-+#else
-+#include <generated/autoconf.h>
-+#endif
- #if !defined(CONFIG_SERIAL_MODULE)
- #if !defined(LIRC_ON_SA1100)
- #warning "******************************************"
---- drivers/lirc_serial/lirc_serial.c.old	2009-03-15 05:34:00.000000000 -0400
-+++ drivers/lirc_serial/lirc_serial.c	2010-03-07 01:40:17.000000000 -0500
-@@ -60,7 +60,11 @@
- #error "**********************************************************"
- #endif
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
- #include <linux/autoconf.h>
-+#else
-+#include <generated/autoconf.h>
-+#endif
- 
- #if defined(CONFIG_SERIAL) || defined(CONFIG_SERIAL_8250)
- #warning "******************************************"
---- drivers/lirc_bt829/lirc_bt829.c.old	2009-03-09 14:54:17.000000000 -0400
-+++ drivers/lirc_bt829/lirc_bt829.c	2010-03-07 01:40:17.000000000 -0500
-@@ -22,7 +22,11 @@
- #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)
- #error "This driver needs kernel version 2.4.0 or higher"
- #endif
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
- #include <linux/autoconf.h>
-+#else
-+#include <generated/autoconf.h>
-+#endif
- #include <linux/kernel.h>
- #include <linux/module.h>
- #include <linux/threads.h>
---- drivers/lirc_sasem/lirc_sasem.c.old	2009-02-28 05:27:10.000000000 -0500
-+++ drivers/lirc_sasem/lirc_sasem.c	2010-03-07 01:40:17.000000000 -0500
-@@ -41,7 +41,11 @@
- #error "*** Sorry, this driver requires kernel version 2.4.22 or higher"
- #endif
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
- #include <linux/autoconf.h>
-+#else
-+#include <generated/autoconf.h>
-+#endif
- 
- #include <linux/errno.h>
- #include <linux/init.h>
---- drivers/lirc_igorplugusb/lirc_igorplugusb.c.old	2009-08-02 05:54:10.000000000 -0400
-+++ drivers/lirc_igorplugusb/lirc_igorplugusb.c	2010-03-07 01:40:17.000000000 -0500
-@@ -47,7 +47,11 @@
- #error "*******************************************************"
- #endif
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
- #include <linux/autoconf.h>
-+#else
-+#include <generated/autoconf.h>
-+#endif
- #include <linux/module.h>
- #include <linux/kernel.h>
- #include <linux/kmod.h>
---- drivers/lirc_imon/lirc_imon.c.old	2009-09-11 00:56:18.000000000 -0400
-+++ drivers/lirc_imon/lirc_imon.c	2010-03-07 01:40:17.000000000 -0500
-@@ -30,7 +30,11 @@
- #error "*** Sorry, this driver requires a 2.6 kernel"
- #endif
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
- #include <linux/autoconf.h>
-+#else
-+#include <generated/autoconf.h>
-+#endif
- 
- #include <linux/errno.h>
- #include <linux/init.h>
---- drivers/lirc_it87/lirc_it87.c.old	2009-06-01 08:21:31.000000000 -0400
-+++ drivers/lirc_it87/lirc_it87.c	2010-03-07 01:40:17.000000000 -0500
-@@ -36,7 +36,11 @@
- 
- #include <linux/version.h>
- #include <linux/module.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
- #include <linux/autoconf.h>
-+#else
-+#include <generated/autoconf.h>
-+#endif
- #include <linux/sched.h>
- #include <linux/errno.h>
- #include <linux/signal.h>
---- drivers/lirc_streamzap/lirc_streamzap.c.old	2009-03-15 05:34:00.000000000 -0400
-+++ drivers/lirc_streamzap/lirc_streamzap.c	2010-03-07 01:40:17.000000000 -0500
-@@ -35,7 +35,11 @@
- #error "Sorry, this driver needs kernel version 2.4.0 or higher"
- #error "*******************************************************"
- #endif
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
- #include <linux/autoconf.h>
-+#else
-+#include <generated/autoconf.h>
-+#endif
- #include <linux/kernel.h>
- #include <linux/errno.h>
- #include <linux/init.h>
---- drivers/lirc_atiusb/lirc_atiusb.c.old	2009-03-10 20:21:46.000000000 -0400
-+++ drivers/lirc_atiusb/lirc_atiusb.c	2010-03-07 01:40:17.000000000 -0500
-@@ -43,7 +43,11 @@
- #error "*******************************************************"
- #endif
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
- #include <linux/autoconf.h>
-+#else
-+#include <generated/autoconf.h>
-+#endif
- 
- #include <linux/kernel.h>
- #include <linux/errno.h>
---- drivers/lirc_parallel/lirc_parallel.c.old	2009-03-08 15:22:28.000000000 -0400
-+++ drivers/lirc_parallel/lirc_parallel.c	2010-03-07 01:40:17.000000000 -0500
-@@ -34,7 +34,11 @@
- #error "**********************************************************"
- #endif
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
- #include <linux/autoconf.h>
-+#else
-+#include <generated/autoconf.h>
-+#endif
- #ifdef CONFIG_SMP
- #error "--- Sorry, this driver is not SMP safe. ---"
- #endif
-@@ -43,7 +47,11 @@
- #include <linux/sched.h>
- #include <linux/errno.h>
- #include <linux/signal.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
- #include <linux/autoconf.h>
-+#else
-+#include <generated/autoconf.h>
-+#endif
- #include <linux/fs.h>
- #include <linux/kernel.h>
- #include <linux/ioport.h>
---- drivers/lirc_wpc8769l/lirc_wpc8769l.c.old	2009-03-15 05:34:01.000000000 -0400
-+++ drivers/lirc_wpc8769l/lirc_wpc8769l.c	2010-03-07 01:40:17.000000000 -0500
-@@ -37,7 +37,11 @@
- #error "**********************************************************"
- #endif
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
- #include <linux/autoconf.h>
-+#else
-+#include <generated/autoconf.h>
-+#endif
- 
- #include <linux/module.h>
- #include <linux/errno.h>
---- drivers/lirc_mceusb/lirc_mceusb.c.old	2009-09-02 10:04:02.000000000 -0400
-+++ drivers/lirc_mceusb/lirc_mceusb.c	2010-03-07 01:40:17.000000000 -0500
-@@ -52,7 +52,11 @@
- #error "Sorry, this driver needs kernel version 2.6.5 or higher"
- #error "*******************************************************"
- #endif
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
- #include <linux/autoconf.h>
-+#else
-+#include <generated/autoconf.h>
-+#endif
- #include <linux/kernel.h>
- #include <linux/errno.h>
- #include <linux/init.h>
---- drivers/lirc_i2c/lirc_i2c.c	2009/08/30 16:59:53	1.70
-+++ drivers/lirc_i2c/lirc_i2c.c	2009/12/15 05:37:00	1.71
-@@ -399,8 +399,8 @@
- 		.name	= "i2c ir driver",
- 	},
- #endif
--	.id		= I2C_DRIVERID_EXP3, /* FIXME */
- #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
-+	.id		= I2C_DRIVERID_EXP3, /* FIXME */
- 	.attach_adapter	= ir_probe,
- 	.detach_client	= ir_remove,
- #else
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 {
diff --git a/abs/core/lirc-utils/lircd b/abs/core/lirc-utils/lircd
index 27e5af3..603b7e9 100755
--- a/abs/core/lirc-utils/lircd
+++ b/abs/core/lirc-utils/lircd
@@ -10,6 +10,7 @@ LIRCD_SOCKET=/var/run/lirc/lircd
 case "$1" in
   start)
     stat_busy "Starting LIRC Daemon"
+   [ ! -d /var/run/lirc ] && install -d /var/run/lirc &>/dev/null
     rm -f $LIRCD_SOCKET && ln -s $LIRCD_SOCKET $LIRCD_SYMLINKFILE
     if [ $? -ne 0 ]; then
       stat_fail
-- 
cgit v0.12