Subversion Repositories KardasA Overlay

Rev

Blame | Last modification | View Log | RSS feed

--- a/drivers/kcompat.h 2008-01-13 11:26:28.000000000 +0100
+++ b/drivers/kcompat.h 2008-05-14 18:37:49.000000000 +0200
@@ -36,10 +36,10 @@
        class_simple_destroy(cls);
 }
 
-#define lirc_class_device_create(cs, parent, dev, device, fmt, args...) \
-       class_simple_device_add(cs, dev, device, fmt, ## args)
+#define lirc_device_create(cs, parent, dev, fmt, args...) \
+       class_simple_device_add(cs, dev, parent, fmt, ## args)
 
-static inline void class_device_destroy(lirc_class_t *cls, dev_t devt)
+static inline void lirc_device_destroy(lirc_class_t *cls, dev_t devt)
 {
        class_simple_device_remove(devt);
 }
@@ -48,20 +48,40 @@
 
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15)
 
-#define lirc_class_device_create(cs, parent, dev, device, fmt, args...) \
-       class_device_create(cs, dev, device, fmt, ## args)
+#define lirc_device_create(cs, parent, dev, fmt, args...) \
+       class_device_create(cs, dev, parent, fmt, ## args)
 
 #else /* >= 2.6.15 */
 
-#define lirc_class_device_create class_device_create
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
+
+#define lirc_device_create(cs, parent, dev, fmt, args...) \
+       class_device_create(cs, NULL, dev, parent, fmt, ## args)
+
+#else /* >= 2.6.26 */
+
+#define lirc_device_create device_create
+
+#endif /* >= 2.6.26 */
+
 #define LIRC_DEVFS_PREFIX
 
-#endif
+#endif /* >= 2.6.15 */
 
 typedef struct class lirc_class_t;
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
+
+#define lirc_device_destroy class_device_destroy
+
+#else
+
+#define lirc_device_destroy device_destroy
+
 #endif
 
+#endif /* >= 2.6.13 */
+
 #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
 #define LIRC_HAVE_DEVFS
 #define LIRC_HAVE_DEVFS_24
@@ -133,8 +153,8 @@
 #ifndef LIRC_HAVE_SYSFS
 #define class_destroy(x) do { } while (0)
 #define class_create(x, y) NULL
-#define class_device_destroy(x, y) do { } while (0)
-#define lirc_class_device_create(x, y, z, xx, yy, zz) 0
+#define lirc_class_destroy(x, y) do { } while (0)
+#define lirc_class_create(x, y, z, xx, yy, zz) 0
 #define IS_ERR(x) 0
 typedef struct class_simple
 {
--- a/drivers/lirc_dev/lirc_dev.c       2008-01-13 11:45:02.000000000 +0100
+++ b/drivers/lirc_dev/lirc_dev.c       2008-05-14 18:37:49.000000000 +0200
@@ -145,7 +145,8 @@
 #ifdef LIRC_HAVE_DEVFS_26
        devfs_remove(DEV_LIRC "/%u", ir->p.minor);
 #endif
-       class_device_destroy(lirc_class, MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
+       lirc_device_destroy(lirc_class,
+                           MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
 
        if (ir->buf != ir->p.rbuf) {
                lirc_buffer_free(ir->buf);
@@ -400,9 +401,9 @@
                        S_IFCHR|S_IRUSR|S_IWUSR,
                        DEV_LIRC "/%u", ir->p.minor);
 #endif
-       (void) lirc_class_device_create(lirc_class, NULL,
-                                       MKDEV(IRCTL_DEV_MAJOR, ir->p.minor),
-                                       ir->p.dev, "lirc%u", ir->p.minor);
+       (void) lirc_device_create(lirc_class, ir->p.dev,
+                                 MKDEV(IRCTL_DEV_MAJOR, ir->p.minor),
+                                 "lirc%u", ir->p.minor);
 
        if (p->sample_rate || p->get_queue) {
                /* try to fire up polling thread */
@@ -441,7 +442,8 @@
        return minor;
 
 out_sysfs:
-       class_device_destroy(lirc_class, MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
+       lirc_device_destroy(lirc_class,
+                           MKDEV(IRCTL_DEV_MAJOR, ir->p.minor));
 #ifdef LIRC_HAVE_DEVFS_24
        devfs_unregister(ir->devfs_handle);
 #endif