This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/v4l-utils.git tree:

Subject: v4l-utils: sync with latest kernel headers.
Author:  Hans Verkuil <hans.verk...@cisco.com>
Date:    Wed Dec 5 10:41:47 2012 +0100

I had to make quite a few changes due to the introduction of the uapi
directory, lots of paths had to be changed.

Signed-off-by: Hans Verkuil <hans.verk...@cisco.com>

 Makefile.am                                   |   16 +-
 contrib/freebsd/Makefile.am                   |    2 +-
 contrib/freebsd/bsdify.sh                     |    2 +-
 contrib/freebsd/include/linux/dvb/dmx.h       |    7 +-
 contrib/freebsd/include/linux/dvb/version.h   |    2 +-
 contrib/freebsd/include/linux/dvb/video.h     |    6 +-
 contrib/freebsd/include/linux/input.h         |  514 +------------------------
 contrib/freebsd/include/linux/uinput.h        |   66 +---
 contrib/freebsd/include/linux/videodev2.h     |   49 +++-
 contrib/freebsd/patches/dvb-dmx-header.diff   |   17 +-
 contrib/freebsd/patches/dvb-video-header.diff |   14 +-
 contrib/freebsd/patches/input-header.diff     |   16 +-
 contrib/freebsd/patches/series                |    1 +
 contrib/freebsd/patches/uinput-header.diff    |   10 +
 contrib/freebsd/patches/videodev2-header.diff |   21 +-
 include/linux/videodev2.h                     |   47 ++-
 lib/libdvbv5/gen_dvb_structs.pl               |    2 +-
 utils/keytable/Makefile.am                    |    4 +-
 utils/keytable/rc_keymaps/imon_mce            |    2 +-
 utils/keytable/rc_keymaps/rc6_mce             |    2 +-
 utils/keytable/rc_maps.cfg                    |  164 ++++----
 21 files changed, 251 insertions(+), 713 deletions(-)

---

http://git.linuxtv.org/v4l-utils.git?a=commitdiff;h=fe2aa5f767eba7276978a82cf62349a3cd1ff937

diff --git a/Makefile.am b/Makefile.am
index 32582f1..491c83d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -12,18 +12,18 @@ EXTRA_DIST = include README.lib README.lib-multi-threading
 # custom targets
 
 sync-with-kernel:
-       @if [ ! -f $(KERNEL_DIR)/include/linux/videodev2.h -o \
-             ! -f $(KERNEL_DIR)/include/linux/v4l2-controls.h -o \
-             ! -f $(KERNEL_DIR)/include/linux/v4l2-common.h -o \
-             ! -f $(KERNEL_DIR)/include/linux/ivtv.h -o \
+       @if [ ! -f $(KERNEL_DIR)/include/uapi/linux/videodev2.h -o \
+             ! -f $(KERNEL_DIR)/include/uapi/linux/v4l2-controls.h -o \
+             ! -f $(KERNEL_DIR)/include/uapi/linux/v4l2-common.h -o \
+             ! -f $(KERNEL_DIR)/include/uapi/linux/ivtv.h -o \
              ! -f $(KERNEL_DIR)/include/media/v4l2-chip-ident.h ]; then \
          echo "Error you must set KERNEL_DIR to point to an extracted kernel 
source dir"; \
          exit 1; \
        fi
-       cp -a $(KERNEL_DIR)/include/linux/videodev2.h 
$(top_srcdir)/include/linux
-       cp -a $(KERNEL_DIR)/include/linux/v4l2-controls.h 
$(top_srcdir)/include/linux
-       cp -a $(KERNEL_DIR)/include/linux/v4l2-common.h 
$(top_srcdir)/include/linux
-       cp -a $(KERNEL_DIR)/include/linux/ivtv.h $(top_srcdir)/include/linux
+       cp -a $(KERNEL_DIR)/include/uapi/linux/videodev2.h 
$(top_srcdir)/include/linux
+       cp -a $(KERNEL_DIR)/include/uapi/linux/v4l2-controls.h 
$(top_srcdir)/include/linux
+       cp -a $(KERNEL_DIR)/include/uapi/linux/v4l2-common.h 
$(top_srcdir)/include/linux
+       cp -a $(KERNEL_DIR)/include/uapi/linux/ivtv.h 
$(top_srcdir)/include/linux
        cp -a $(KERNEL_DIR)/include/media/v4l2-chip-ident.h 
$(top_srcdir)/include/media
 
        $(MAKE) -C utils/keytable $@
diff --git a/contrib/freebsd/Makefile.am b/contrib/freebsd/Makefile.am
index e23d161..45856bc 100644
--- a/contrib/freebsd/Makefile.am
+++ b/contrib/freebsd/Makefile.am
@@ -8,7 +8,7 @@ sync-with-kernel:
 
        for i in input.h ivtv.h uinput.h videodev2.h v4l2-controls.h 
v4l2-common.h 
dvb/{audio.h,ca.h,dmx.h,frontend.h,net.h,osd.h,version.h,video.h}; do \
            mkdir -p include/linux/$$(dirname $$i); \
-           cp $(KERNEL_DIR)/include/linux/$$i include/linux/$$i; \
+           cp $(KERNEL_DIR)/include/uapi/linux/$$i include/linux/$$i; \
        done
 
        mkdir -p include/media
diff --git a/contrib/freebsd/bsdify.sh b/contrib/freebsd/bsdify.sh
index bbe29bb..6547b61 100755
--- a/contrib/freebsd/bsdify.sh
+++ b/contrib/freebsd/bsdify.sh
@@ -30,7 +30,7 @@ rm -rf include .pc
 
 for i in input.h ivtv.h uinput.h videodev2.h v4l2-controls.h v4l2-common.h 
dvb/{audio.h,ca.h,dmx.h,frontend.h,net.h,osd.h,version.h,video.h}; do
     mkdir -p include/linux/$(dirname $i)
-    cp $KERNEL_DIR/include/linux/$i include/linux/$i
+    cp $KERNEL_DIR/include/uapi/linux/$i include/linux/$i
 done
 
 mkdir -p include/media
diff --git a/contrib/freebsd/include/linux/dvb/dmx.h 
b/contrib/freebsd/include/linux/dvb/dmx.h
index 1c48e6b..4b3fee8 100644
--- a/contrib/freebsd/include/linux/dvb/dmx.h
+++ b/contrib/freebsd/include/linux/dvb/dmx.h
@@ -21,13 +21,14 @@
  *
  */
 
-#ifndef _DVBDMX_H_
-#define _DVBDMX_H_
+#ifndef _UAPI_DVBDMX_H_
+#define _UAPI_DVBDMX_H_
 
 #include <stdint.h>
 #include <sys/types.h>
 #include <time.h>
 
+
 #define DMX_FILTER_SIZE 16
 
 typedef enum
@@ -150,4 +151,4 @@ struct dmx_stc {
 #define DMX_ADD_PID              _IOW('o', 51, uint16_t)
 #define DMX_REMOVE_PID           _IOW('o', 52, uint16_t)
 
-#endif /*_DVBDMX_H_*/
+#endif /* _UAPI_DVBDMX_H_ */
diff --git a/contrib/freebsd/include/linux/dvb/version.h 
b/contrib/freebsd/include/linux/dvb/version.h
index 20e5eac..827cce7 100644
--- a/contrib/freebsd/include/linux/dvb/version.h
+++ b/contrib/freebsd/include/linux/dvb/version.h
@@ -24,6 +24,6 @@
 #define _DVBVERSION_H_
 
 #define DVB_API_VERSION 5
-#define DVB_API_VERSION_MINOR 8
+#define DVB_API_VERSION_MINOR 9
 
 #endif /*_DVBVERSION_H_*/
diff --git a/contrib/freebsd/include/linux/dvb/video.h 
b/contrib/freebsd/include/linux/dvb/video.h
index acd2cc0..55d919e 100644
--- a/contrib/freebsd/include/linux/dvb/video.h
+++ b/contrib/freebsd/include/linux/dvb/video.h
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef _DVBVIDEO_H_
-#define _DVBVIDEO_H_
+#ifndef _UAPI_DVBVIDEO_H_
+#define _UAPI_DVBVIDEO_H_
 
 #include <sys/types.h>
 #include <stdint.h>
@@ -269,4 +269,4 @@ typedef uint16_t video_attributes_t;
 #define VIDEO_COMMAND             _IOWR('o', 59, struct video_command)
 #define VIDEO_TRY_COMMAND         _IOWR('o', 60, struct video_command)
 
-#endif /*_DVBVIDEO_H_*/
+#endif /* _UAPI_DVBVIDEO_H_ */
diff --git a/contrib/freebsd/include/linux/input.h 
b/contrib/freebsd/include/linux/input.h
index 48b04be..1016fef 100644
--- a/contrib/freebsd/include/linux/input.h
+++ b/contrib/freebsd/include/linux/input.h
@@ -1,6 +1,3 @@
-#ifndef _INPUT_H
-#define _INPUT_H
-
 /*
  * Copyright (c) 1999-2002 Vojtech Pavlik
  *
@@ -8,11 +5,10 @@
  * under the terms of the GNU General Public License version 2 as published by
  * the Free Software Foundation.
  */
+#ifndef _UAPI_INPUT_H
+#define _UAPI_INPUT_H
 
-#ifdef __KERNEL__
-#include <linux/time.h>
-#include <linux/list.h>
-#else
+#ifndef __KERNEL__
 #include <stdint.h>
 #include <sys/time.h>
 #include <sys/ioctl.h>
@@ -56,6 +52,7 @@ typedef int8_t __s8;
 #endif
 #endif
 
+
 /*
  * The event structure itself
  */
@@ -854,11 +851,6 @@ struct input_keymap_entry {
 #define ABS_MT_TOOL_X          0x3c    /* Center X tool position */
 #define ABS_MT_TOOL_Y          0x3d    /* Center Y tool position */
 
-#ifdef __KERNEL__
-/* Implementation details, userspace should not care about these */
-#define ABS_MT_FIRST           ABS_MT_TOUCH_MAJOR
-#define ABS_MT_LAST            ABS_MT_TOOL_Y
-#endif
 
 #define ABS_MAX                        0x3f
 #define ABS_CNT                        (ABS_MAX+1)
@@ -1194,500 +1186,4 @@ struct ff_effect {
 #define FF_MAX         0x7f
 #define FF_CNT         (FF_MAX+1)
 
-#ifdef __KERNEL__
-
-/*
- * In-kernel definitions.
- */
-
-#include <linux/device.h>
-#include <linux/fs.h>
-#include <linux/timer.h>
-#include <linux/mod_devicetable.h>
-
-/**
- * struct input_dev - represents an input device
- * @name: name of the device
- * @phys: physical path to the device in the system hierarchy
- * @uniq: unique identification code for the device (if device has it)
- * @id: id of the device (struct input_id)
- * @propbit: bitmap of device properties and quirks
- * @evbit: bitmap of types of events supported by the device (EV_KEY,
- *     EV_REL, etc.)
- * @keybit: bitmap of keys/buttons this device has
- * @relbit: bitmap of relative axes for the device
- * @absbit: bitmap of absolute axes for the device
- * @mscbit: bitmap of miscellaneous events supported by the device
- * @ledbit: bitmap of leds present on the device
- * @sndbit: bitmap of sound effects supported by the device
- * @ffbit: bitmap of force feedback effects supported by the device
- * @swbit: bitmap of switches present on the device
- * @hint_events_per_packet: average number of events generated by the
- *     device in a packet (between EV_SYN/SYN_REPORT events). Used by
- *     event handlers to estimate size of the buffer needed to hold
- *     events.
- * @keycodemax: size of keycode table
- * @keycodesize: size of elements in keycode table
- * @keycode: map of scancodes to keycodes for this device
- * @getkeycode: optional legacy method to retrieve current keymap.
- * @setkeycode: optional method to alter current keymap, used to implement
- *     sparse keymaps. If not supplied default mechanism will be used.
- *     The method is being called while holding event_lock and thus must
- *     not sleep
- * @ff: force feedback structure associated with the device if device
- *     supports force feedback effects
- * @repeat_key: stores key code of the last key pressed; used to implement
- *     software autorepeat
- * @timer: timer for software autorepeat
- * @rep: current values for autorepeat parameters (delay, rate)
- * @mt: pointer to array of struct input_mt_slot holding current values
- *     of tracked contacts
- * @mtsize: number of MT slots the device uses
- * @slot: MT slot currently being transmitted
- * @trkid: stores MT tracking ID for the current contact
- * @absinfo: array of &struct input_absinfo elements holding information
- *     about absolute axes (current value, min, max, flat, fuzz,
- *     resolution)
- * @key: reflects current state of device's keys/buttons
- * @led: reflects current state of device's LEDs
- * @snd: reflects current state of sound effects
- * @sw: reflects current state of device's switches
- * @open: this method is called when the very first user calls
- *     input_open_device(). The driver must prepare the device
- *     to start generating events (start polling thread,
- *     request an IRQ, submit URB, etc.)
- * @close: this method is called when the very last user calls
- *     input_close_device().
- * @flush: purges the device. Most commonly used to get rid of force
- *     feedback effects loaded into the device when disconnecting
- *     from it
- * @event: event handler for events sent _to_ the device, like EV_LED
- *     or EV_SND. The device is expected to carry out the requested
- *     action (turn on a LED, play sound, etc.) The call is protected
- *     by @event_lock and must not sleep
- * @grab: input handle that currently has the device grabbed (via
- *     EVIOCGRAB ioctl). When a handle grabs a device it becomes sole
- *     recipient for all input events coming from the device
- * @event_lock: this spinlock is is taken when input core receives
- *     and processes a new event for the device (in input_event()).
- *     Code that accesses and/or modifies parameters of a device
- *     (such as keymap or absmin, absmax, absfuzz, etc.) after device
- *     has been registered with input core must take this lock.
- * @mutex: serializes calls to open(), close() and flush() methods
- * @users: stores number of users (input handlers) that opened this
- *     device. It is used by input_open_device() and input_close_device()
- *     to make sure that dev->open() is only called when the first
- *     user opens device and dev->close() is called when the very
- *     last user closes the device
- * @going_away: marks devices that are in a middle of unregistering and
- *     causes input_open_device*() fail with -ENODEV.
- * @sync: set to %true when there were no new events since last EV_SYN
- * @dev: driver model's view of this device
- * @h_list: list of input handles associated with the device. When
- *     accessing the list dev->mutex must be held
- * @node: used to place the device onto input_dev_list
- */
-struct input_dev {
-       const char *name;
-       const char *phys;
-       const char *uniq;
-       struct input_id id;
-
-       unsigned long propbit[BITS_TO_LONGS(INPUT_PROP_CNT)];
-
-       unsigned long evbit[BITS_TO_LONGS(EV_CNT)];
-       unsigned long keybit[BITS_TO_LONGS(KEY_CNT)];
-       unsigned long relbit[BITS_TO_LONGS(REL_CNT)];
-       unsigned long absbit[BITS_TO_LONGS(ABS_CNT)];
-       unsigned long mscbit[BITS_TO_LONGS(MSC_CNT)];
-       unsigned long ledbit[BITS_TO_LONGS(LED_CNT)];
-       unsigned long sndbit[BITS_TO_LONGS(SND_CNT)];
-       unsigned long ffbit[BITS_TO_LONGS(FF_CNT)];
-       unsigned long swbit[BITS_TO_LONGS(SW_CNT)];
-
-       unsigned int hint_events_per_packet;
-
-       unsigned int keycodemax;
-       unsigned int keycodesize;
-       void *keycode;
-
-       int (*setkeycode)(struct input_dev *dev,
-                         const struct input_keymap_entry *ke,
-                         unsigned int *old_keycode);
-       int (*getkeycode)(struct input_dev *dev,
-                         struct input_keymap_entry *ke);
-
-       struct ff_device *ff;
-
-       unsigned int repeat_key;
-       struct timer_list timer;
-
-       int rep[REP_CNT];
-
-       struct input_mt_slot *mt;
-       int mtsize;
-       int slot;
-       int trkid;
-
-       struct input_absinfo *absinfo;
-
-       unsigned long key[BITS_TO_LONGS(KEY_CNT)];
-       unsigned long led[BITS_TO_LONGS(LED_CNT)];
-       unsigned long snd[BITS_TO_LONGS(SND_CNT)];
-       unsigned long sw[BITS_TO_LONGS(SW_CNT)];
-
-       int (*open)(struct input_dev *dev);
-       void (*close)(struct input_dev *dev);
-       int (*flush)(struct input_dev *dev, struct file *file);
-       int (*event)(struct input_dev *dev, unsigned int type, unsigned int 
code, int value);
-
-       struct input_handle __rcu *grab;
-
-       spinlock_t event_lock;
-       struct mutex mutex;
-
-       unsigned int users;
-       bool going_away;
-
-       bool sync;
-
-       struct device dev;
-
-       struct list_head        h_list;
-       struct list_head        node;
-};
-#define to_input_dev(d) container_of(d, struct input_dev, dev)
-
-/*
- * Verify that we are in sync with input_device_id mod_devicetable.h #defines
- */
-
-#if EV_MAX != INPUT_DEVICE_ID_EV_MAX
-#error "EV_MAX and INPUT_DEVICE_ID_EV_MAX do not match"
-#endif
-
-#if KEY_MIN_INTERESTING != INPUT_DEVICE_ID_KEY_MIN_INTERESTING
-#error "KEY_MIN_INTERESTING and INPUT_DEVICE_ID_KEY_MIN_INTERESTING do not 
match"
-#endif
-
-#if KEY_MAX != INPUT_DEVICE_ID_KEY_MAX
-#error "KEY_MAX and INPUT_DEVICE_ID_KEY_MAX do not match"
-#endif
-
-#if REL_MAX != INPUT_DEVICE_ID_REL_MAX
-#error "REL_MAX and INPUT_DEVICE_ID_REL_MAX do not match"
-#endif
-
-#if ABS_MAX != INPUT_DEVICE_ID_ABS_MAX
-#error "ABS_MAX and INPUT_DEVICE_ID_ABS_MAX do not match"
-#endif
-
-#if MSC_MAX != INPUT_DEVICE_ID_MSC_MAX
-#error "MSC_MAX and INPUT_DEVICE_ID_MSC_MAX do not match"
-#endif
-
-#if LED_MAX != INPUT_DEVICE_ID_LED_MAX
-#error "LED_MAX and INPUT_DEVICE_ID_LED_MAX do not match"
-#endif
-
-#if SND_MAX != INPUT_DEVICE_ID_SND_MAX
-#error "SND_MAX and INPUT_DEVICE_ID_SND_MAX do not match"
-#endif
-
-#if FF_MAX != INPUT_DEVICE_ID_FF_MAX
-#error "FF_MAX and INPUT_DEVICE_ID_FF_MAX do not match"
-#endif
-
-#if SW_MAX != INPUT_DEVICE_ID_SW_MAX
-#error "SW_MAX and INPUT_DEVICE_ID_SW_MAX do not match"
-#endif
-
-#define INPUT_DEVICE_ID_MATCH_DEVICE \
-       (INPUT_DEVICE_ID_MATCH_BUS | INPUT_DEVICE_ID_MATCH_VENDOR | 
INPUT_DEVICE_ID_MATCH_PRODUCT)
-#define INPUT_DEVICE_ID_MATCH_DEVICE_AND_VERSION \
-       (INPUT_DEVICE_ID_MATCH_DEVICE | INPUT_DEVICE_ID_MATCH_VERSION)
-
-struct input_handle;
-
-/**
- * struct input_handler - implements one of interfaces for input devices
- * @private: driver-specific data
- * @event: event handler. This method is being called by input core with
- *     interrupts disabled and dev->event_lock spinlock held and so
- *     it may not sleep
- * @filter: similar to @event; separates normal event handlers from
- *     "filters".
- * @match: called after comparing device's id with handler's id_table
- *     to perform fine-grained matching between device and handler
- * @connect: called when attaching a handler to an input device
- * @disconnect: disconnects a handler from input device
- * @start: starts handler for given handle. This function is called by
- *     input core right after connect() method and also when a process
- *     that "grabbed" a device releases it
- * @fops: file operations this driver implements
- * @minor: beginning of range of 32 minors for devices this driver
- *     can provide
- * @name: name of the handler, to be shown in /proc/bus/input/handlers
- * @id_table: pointer to a table of input_device_ids this driver can
- *     handle
- * @h_list: list of input handles associated with the handler
- * @node: for placing the driver onto input_handler_list
- *
- * Input handlers attach to input devices and create input handles. There
- * are likely several handlers attached to any given input device at the
- * same time. All of them will get their copy of input event generated by
- * the device.
- *
- * The very same structure is used to implement input filters. Input core
- * allows filters to run first and will not pass event to regular handlers
- * if any of the filters indicate that the event should be filtered (by
- * returning %true from their filter() method).
- *
- * Note that input core serializes calls to connect() and disconnect()
- * methods.
- */
-struct input_handler {
-
-       void *private;
-
-       void (*event)(struct input_handle *handle, unsigned int type, unsigned 
int code, int value);
-       bool (*filter)(struct input_handle *handle, unsigned int type, unsigned 
int code, int value);
-       bool (*match)(struct input_handler *handler, struct input_dev *dev);
-       int (*connect)(struct input_handler *handler, struct input_dev *dev, 
const struct input_device_id *id);
-       void (*disconnect)(struct input_handle *handle);
-       void (*start)(struct input_handle *handle);
-
-       const struct file_operations *fops;
-       int minor;
-       const char *name;
-
-       const struct input_device_id *id_table;
-
-       struct list_head        h_list;
-       struct list_head        node;
-};
-
-/**
- * struct input_handle - links input device with an input handler
- * @private: handler-specific data
- * @open: counter showing whether the handle is 'open', i.e. should deliver
- *     events from its device
- * @name: name given to the handle by handler that created it
- * @dev: input device the handle is attached to
- * @handler: handler that works with the device through this handle
- * @d_node: used to put the handle on device's list of attached handles
- * @h_node: used to put the handle on handler's list of handles from which
- *     it gets events
- */
-struct input_handle {
-
-       void *private;
-
-       int open;
-       const char *name;
-
-       struct input_dev *dev;
-       struct input_handler *handler;
-
-       struct list_head        d_node;
-       struct list_head        h_node;
-};
-
-struct input_dev *input_allocate_device(void);
-void input_free_device(struct input_dev *dev);
-
-static inline struct input_dev *input_get_device(struct input_dev *dev)
-{
-       return dev ? to_input_dev(get_device(&dev->dev)) : NULL;
-}
-
-static inline void input_put_device(struct input_dev *dev)
-{
-       if (dev)
-               put_device(&dev->dev);
-}
-
-static inline void *input_get_drvdata(struct input_dev *dev)
-{
-       return dev_get_drvdata(&dev->dev);
-}
-
-static inline void input_set_drvdata(struct input_dev *dev, void *data)
-{
-       dev_set_drvdata(&dev->dev, data);
-}
-
-int __must_check input_register_device(struct input_dev *);
-void input_unregister_device(struct input_dev *);
-
-void input_reset_device(struct input_dev *);
-
-int __must_check input_register_handler(struct input_handler *);
-void input_unregister_handler(struct input_handler *);
-
-int input_handler_for_each_handle(struct input_handler *, void *data,
-                                 int (*fn)(struct input_handle *, void *));
-
-int input_register_handle(struct input_handle *);
-void input_unregister_handle(struct input_handle *);
-
-int input_grab_device(struct input_handle *);
-void input_release_device(struct input_handle *);
-
-int input_open_device(struct input_handle *);
-void input_close_device(struct input_handle *);
-
-int input_flush_device(struct input_handle *handle, struct file *file);
-
-void input_event(struct input_dev *dev, unsigned int type, unsigned int code, 
int value);
-void input_inject_event(struct input_handle *handle, unsigned int type, 
unsigned int code, int value);
-
-static inline void input_report_key(struct input_dev *dev, unsigned int code, 
int value)
-{
-       input_event(dev, EV_KEY, code, !!value);
-}
-
-static inline void input_report_rel(struct input_dev *dev, unsigned int code, 
int value)
-{
-       input_event(dev, EV_REL, code, value);
-}
-
-static inline void input_report_abs(struct input_dev *dev, unsigned int code, 
int value)
-{
-       input_event(dev, EV_ABS, code, value);
-}
-
-static inline void input_report_ff_status(struct input_dev *dev, unsigned int 
code, int value)
-{
-       input_event(dev, EV_FF_STATUS, code, value);
-}
-
-static inline void input_report_switch(struct input_dev *dev, unsigned int 
code, int value)
-{
-       input_event(dev, EV_SW, code, !!value);
-}
-
-static inline void input_sync(struct input_dev *dev)
-{
-       input_event(dev, EV_SYN, SYN_REPORT, 0);
-}
-
-static inline void input_mt_sync(struct input_dev *dev)
-{
-       input_event(dev, EV_SYN, SYN_MT_REPORT, 0);
-}
-
-void input_set_capability(struct input_dev *dev, unsigned int type, unsigned 
int code);
-
-/**
- * input_set_events_per_packet - tell handlers about the driver event rate
- * @dev: the input device used by the driver
- * @n_events: the average number of events between calls to input_sync()
- *
- * If the event rate sent from a device is unusually large, use this
- * function to set the expected event rate. This will allow handlers
- * to set up an appropriate buffer size for the event stream, in order
- * to minimize information loss.
- */
-static inline void input_set_events_per_packet(struct input_dev *dev, int 
n_events)
-{
-       dev->hint_events_per_packet = n_events;
-}
-
-void input_alloc_absinfo(struct input_dev *dev);
-void input_set_abs_params(struct input_dev *dev, unsigned int axis,
-                         int min, int max, int fuzz, int flat);
-
-#define INPUT_GENERATE_ABS_ACCESSORS(_suffix, _item)                   \
-static inline int input_abs_get_##_suffix(struct input_dev *dev,       \
-                                         unsigned int axis)            \
-{                                                                      \
-       return dev->absinfo ? dev->absinfo[axis]._item : 0;             \
-}                                                                      \
-                                                                       \
-static inline void input_abs_set_##_suffix(struct input_dev *dev,      \
-                                          unsigned int axis, int val)  \
-{                                                                      \
-       input_alloc_absinfo(dev);                                       \
-       if (dev->absinfo)                                               \
-               dev->absinfo[axis]._item = val;                         \
-}
-
-INPUT_GENERATE_ABS_ACCESSORS(val, value)
-INPUT_GENERATE_ABS_ACCESSORS(min, minimum)
-INPUT_GENERATE_ABS_ACCESSORS(max, maximum)
-INPUT_GENERATE_ABS_ACCESSORS(fuzz, fuzz)
-INPUT_GENERATE_ABS_ACCESSORS(flat, flat)
-INPUT_GENERATE_ABS_ACCESSORS(res, resolution)
-
-int input_scancode_to_scalar(const struct input_keymap_entry *ke,
-                            unsigned int *scancode);
-
-int input_get_keycode(struct input_dev *dev, struct input_keymap_entry *ke);
-int input_set_keycode(struct input_dev *dev,
-                     const struct input_keymap_entry *ke);
-
-extern struct class input_class;
-
-/**
- * struct ff_device - force-feedback part of an input device
- * @upload: Called to upload an new effect into device
- * @erase: Called to erase an effect from device
- * @playback: Called to request device to start playing specified effect
- * @set_gain: Called to set specified gain
- * @set_autocenter: Called to auto-center device
- * @destroy: called by input core when parent input device is being
- *     destroyed
- * @private: driver-specific data, will be freed automatically
- * @ffbit: bitmap of force feedback capabilities truly supported by
- *     device (not emulated like ones in input_dev->ffbit)
- * @mutex: mutex for serializing access to the device
- * @max_effects: maximum number of effects supported by device
- * @effects: pointer to an array of effects currently loaded into device
- * @effect_owners: array of effect owners; when file handle owning
- *     an effect gets closed the effect is automatically erased
- *
- * Every force-feedback device must implement upload() and playback()
- * methods; erase() is optional. set_gain() and set_autocenter() need
- * only be implemented if driver sets up FF_GAIN and FF_AUTOCENTER
- * bits.
- *
- * Note that playback(), set_gain() and set_autocenter() are called with
- * dev->event_lock spinlock held and interrupts off and thus may not
- * sleep.
- */
-struct ff_device {
-       int (*upload)(struct input_dev *dev, struct ff_effect *effect,
-                     struct ff_effect *old);
-       int (*erase)(struct input_dev *dev, int effect_id);
-
-       int (*playback)(struct input_dev *dev, int effect_id, int value);
-       void (*set_gain)(struct input_dev *dev, u16 gain);
-       void (*set_autocenter)(struct input_dev *dev, u16 magnitude);
-
-       void (*destroy)(struct ff_device *);
-
-       void *private;
-
-       unsigned long ffbit[BITS_TO_LONGS(FF_CNT)];
-
-       struct mutex mutex;
-
-       int max_effects;
-       struct ff_effect *effects;
-       struct file *effect_owners[];
-};
-
-int input_ff_create(struct input_dev *dev, unsigned int max_effects);
-void input_ff_destroy(struct input_dev *dev);
-
-int input_ff_event(struct input_dev *dev, unsigned int type, unsigned int 
code, int value);
-
-int input_ff_upload(struct input_dev *dev, struct ff_effect *effect, struct 
file *file);
-int input_ff_erase(struct input_dev *dev, int effect_id, struct file *file);
-
-int input_ff_create_memless(struct input_dev *dev, void *data,
-               int (*play_effect)(struct input_dev *, void *, struct ff_effect 
*));
-
-#endif
-#endif
+#endif /* _UAPI_INPUT_H */
diff --git a/contrib/freebsd/include/linux/uinput.h 
b/contrib/freebsd/include/linux/uinput.h
index 2aa2881..687e3ce 100644
--- a/contrib/freebsd/include/linux/uinput.h
+++ b/contrib/freebsd/include/linux/uinput.h
@@ -1,5 +1,3 @@
-#ifndef __UINPUT_H_
-#define __UINPUT_H_
 /*
  *  User level driver support for input subsystem
  *
@@ -31,62 +29,25 @@
  *     0.1     20/06/2002
  *             - first public version
  */
+#ifndef _UAPI__UINPUT_H_
+#define _UAPI__UINPUT_H_
 
 #include <linux/input.h>
 
 #define UINPUT_VERSION         3
 
-#ifdef __KERNEL__
-#define UINPUT_NAME            "uinput"
-#define UINPUT_BUFFER_SIZE     16
-#define UINPUT_NUM_REQUESTS    16
-
-enum uinput_state { UIST_NEW_DEVICE, UIST_SETUP_COMPLETE, UIST_CREATED };
-
-struct uinput_request {
-       int                     id;
-       int                     code;   /* UI_FF_UPLOAD, UI_FF_ERASE */
-
-       int                     retval;
-       struct completion       done;
-
-       union {
-               int             effect_id;
-               struct {
-                       struct ff_effect *effect;
-                       struct ff_effect *old;
-               } upload;
-       } u;
-};
-
-struct uinput_device {
-       struct input_dev        *dev;
-       struct mutex            mutex;
-       enum uinput_state       state;
-       wait_queue_head_t       waitq;
-       unsigned char           ready;
-       unsigned char           head;
-       unsigned char           tail;
-       struct input_event      buff[UINPUT_BUFFER_SIZE];
-       unsigned int            ff_effects_max;
-
-       struct uinput_request   *requests[UINPUT_NUM_REQUESTS];
-       wait_queue_head_t       requests_waitq;
-       spinlock_t              requests_lock;
-};
-#endif /* __KERNEL__ */
 
 struct uinput_ff_upload {
-       int                     request_id;
-       int                     retval;
+       uint32_t                        request_id;
+       int32_t                 retval;
        struct ff_effect        effect;
        struct ff_effect        old;
 };
 
 struct uinput_ff_erase {
-       int                     request_id;
-       int                     retval;
-       int                     effect_id;
+       uint32_t                        request_id;
+       int32_t                 retval;
+       uint32_t                        effect_id;
 };
 
 /* ioctl */
@@ -166,11 +127,10 @@ struct uinput_ff_erase {
 struct uinput_user_dev {
        char name[UINPUT_MAX_NAME_SIZE];
        struct input_id id;
-       int ff_effects_max;
-       int absmax[ABS_CNT];
-       int absmin[ABS_CNT];
-       int absfuzz[ABS_CNT];
-       int absflat[ABS_CNT];
+       uint32_t ff_effects_max;
+       int32_t absmax[ABS_CNT];
+       int32_t absmin[ABS_CNT];
+       int32_t absfuzz[ABS_CNT];
+       int32_t absflat[ABS_CNT];
 };
-#endif /* __UINPUT_H_ */
-
+#endif /* _UAPI__UINPUT_H_ */
diff --git a/contrib/freebsd/include/linux/videodev2.h 
b/contrib/freebsd/include/linux/videodev2.h
index 9198b9e..36f4183 100644
--- a/contrib/freebsd/include/linux/videodev2.h
+++ b/contrib/freebsd/include/linux/videodev2.h
@@ -53,9 +53,10 @@
  *              Hans Verkuil <hverk...@xs4all.nl>
  *             et al.
  */
-#ifndef __LINUX_VIDEODEV2_H
-#define __LINUX_VIDEODEV2_H
+#ifndef _UAPI__LINUX_VIDEODEV2_H
+#define _UAPI__LINUX_VIDEODEV2_H
 
+#ifndef __KERNEL__
 #include <stdint.h>
 #include <sys/time.h>
 #include <sys/types.h>
@@ -90,6 +91,11 @@ typedef int8_t __s8;
 #endif
 #endif
 
+#else
+#include <linux/compiler.h>
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#endif
 #include <linux/v4l2-common.h>
 #include <linux/v4l2-controls.h>
 
@@ -214,6 +220,7 @@ enum v4l2_memory {
        V4L2_MEMORY_MMAP             = 1,
        V4L2_MEMORY_USERPTR          = 2,
        V4L2_MEMORY_OVERLAY          = 3,
+       V4L2_MEMORY_DMABUF           = 4,
 };
 
 /* see also http://vektor.theorem.ca/graphics/ycbcr/ */
@@ -630,6 +637,8 @@ struct v4l2_requestbuffers {
  *                     should be passed to mmap() called on the video node)
  * @userptr:           when memory is V4L2_MEMORY_USERPTR, a userspace pointer
  *                     pointing to this plane
+ * @fd:                        when memory is V4L2_MEMORY_DMABUF, a userspace 
file
+ *                     descriptor associated with this plane
  * @data_offset:       offset in the plane to the start of data; usually 0,
  *                     unless there is a header in front of the data
  *
@@ -644,6 +653,7 @@ struct v4l2_plane {
        union {
                uint32_t                mem_offset;
                unsigned long   userptr;
+               int32_t         fd;
        } m;
        uint32_t                        data_offset;
        uint32_t                        reserved[11];
@@ -668,6 +678,8 @@ struct v4l2_plane {
  *             (or a "cookie" that should be passed to mmap() as offset)
  * @userptr:   for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR;
  *             a userspace pointer pointing to this buffer
+ * @fd:                for non-multiplanar buffers with memory == 
V4L2_MEMORY_DMABUF;
+ *             a userspace file descriptor associated with this buffer
  * @planes:    for multiplanar buffers; userspace pointer to the array of plane
  *             info structs for this buffer
  * @length:    size in bytes of the buffer (NOT its payload) for single-plane
@@ -694,6 +706,7 @@ struct v4l2_buffer {
                uint32_t           offset;
                unsigned long   userptr;
                struct v4l2_plane *planes;
+               int32_t         fd;
        } m;
        uint32_t                        length;
        uint32_t                        reserved2;
@@ -715,6 +728,33 @@ struct v4l2_buffer {
 #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE      0x0800
 #define V4L2_BUF_FLAG_NO_CACHE_CLEAN           0x1000
 
+/**
+ * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor
+ *
+ * @index:     id number of the buffer
+ * @type:      enum v4l2_buf_type; buffer type (type == *_MPLANE for
+ *             multiplanar buffers);
+ * @plane:     index of the plane to be exported, 0 for single plane queues
+ * @flags:     flags for newly created file, currently only O_CLOEXEC is
+ *             supported, refer to manual of open syscall for more details
+ * @fd:                file descriptor associated with DMABUF (set by driver)
+ *
+ * Contains data used for exporting a video buffer as DMABUF file descriptor.
+ * The buffer is identified by a 'cookie' returned by VIDIOC_QUERYBUF
+ * (identical to the cookie used to mmap() the buffer to userspace). All
+ * reserved fields must be set to zero. The field reserved0 is expected to
+ * become a structure 'type' allowing an alternative layout of the structure
+ * content. Therefore this field should not be used for any other extensions.
+ */
+struct v4l2_exportbuffer {
+       uint32_t                type; /* enum v4l2_buf_type */
+       uint32_t                index;
+       uint32_t                plane;
+       uint32_t                flags;
+       int32_t         fd;
+       uint32_t                reserved[11];
+};
+
 /*
  *     O V E R L A Y   P R E V I E W
  */
@@ -765,7 +805,7 @@ struct v4l2_window {
 struct v4l2_captureparm {
        uint32_t                   capability;    /*  Supported modes */
        uint32_t                   capturemode;   /*  Current mode */
-       struct v4l2_fract  timeperframe;  /*  Time per frame in .1us units */
+       struct v4l2_fract  timeperframe;  /*  Time per frame in seconds */
        uint32_t                   extendedmode;  /*  Driver-specific 
extensions */
        uint32_t              readbuffers;   /*  # of buffers for read */
        uint32_t                   reserved[4];
@@ -1916,6 +1956,7 @@ struct v4l2_create_buffers {
 #define VIDIOC_S_FBUF           _IOW('V', 11, struct v4l2_framebuffer)
 #define VIDIOC_OVERLAY          _IOW('V', 14, int)
 #define VIDIOC_QBUF            _IOWR('V', 15, struct v4l2_buffer)
+#define VIDIOC_EXPBUF          _IOWR('V', 16, struct v4l2_exportbuffer)
 #define VIDIOC_DQBUF           _IOWR('V', 17, struct v4l2_buffer)
 #define VIDIOC_STREAMON                 _IOW('V', 18, int)
 #define VIDIOC_STREAMOFF        _IOW('V', 19, int)
@@ -2023,4 +2064,4 @@ struct v4l2_create_buffers {
 
 #define BASE_VIDIOC_PRIVATE    192             /* 192-255 are private */
 
-#endif /* __LINUX_VIDEODEV2_H */
+#endif /* _UAPI__LINUX_VIDEODEV2_H */
diff --git a/contrib/freebsd/patches/dvb-dmx-header.diff 
b/contrib/freebsd/patches/dvb-dmx-header.diff
index 6e871da..b86cb8f 100644
--- a/contrib/freebsd/patches/dvb-dmx-header.diff
+++ b/contrib/freebsd/patches/dvb-dmx-header.diff
@@ -1,18 +1,15 @@
---- a/include/linux/dvb/dmx.h
-+++ b/include/linux/dvb/dmx.h
-@@ -24,13 +24,9 @@
- #ifndef _DVBDMX_H_
- #define _DVBDMX_H_
+--- freebsd/include/linux/dvb/dmx.h.orig       2012-12-05 10:26:23.000000000 
+0100
++++ freebsd/include/linux/dvb/dmx.h    2012-12-05 10:27:35.989684418 +0100
+@@ -24,10 +24,9 @@
+ #ifndef _UAPI_DVBDMX_H_
+ #define _UAPI_DVBDMX_H_
  
 -#include <linux/types.h>
--#ifdef __KERNEL__
--#include <linux/time.h>
--#else
+-#ifndef __KERNEL__
 +#include <stdint.h>
 +#include <sys/types.h>
  #include <time.h>
 -#endif
--
  
- #define DMX_FILTER_SIZE 16
  
+ #define DMX_FILTER_SIZE 16
diff --git a/contrib/freebsd/patches/dvb-video-header.diff 
b/contrib/freebsd/patches/dvb-video-header.diff
index 6d7b225..7d9fc0e 100644
--- a/contrib/freebsd/patches/dvb-video-header.diff
+++ b/contrib/freebsd/patches/dvb-video-header.diff
@@ -1,13 +1,11 @@
---- a/include/linux/dvb/video.h
-+++ b/include/linux/dvb/video.h
-@@ -24,13 +24,9 @@
- #ifndef _DVBVIDEO_H_
- #define _DVBVIDEO_H_
+--- freebsd/include/linux/dvb/video.h.orig     2012-12-05 10:28:14.000000000 
+0100
++++ freebsd/include/linux/dvb/video.h  2012-12-05 10:29:13.054783858 +0100
+@@ -24,11 +24,9 @@
+ #ifndef _UAPI_DVBVIDEO_H_
+ #define _UAPI_DVBVIDEO_H_
  
 -#include <linux/types.h>
--#ifdef __KERNEL__
--#include <linux/compiler.h>
--#else
+-#ifndef __KERNEL__
 +#include <sys/types.h>
  #include <stdint.h>
  #include <time.h>
diff --git a/contrib/freebsd/patches/input-header.diff 
b/contrib/freebsd/patches/input-header.diff
index dcf10f5..db1194c 100644
--- a/contrib/freebsd/patches/input-header.diff
+++ b/contrib/freebsd/patches/input-header.diff
@@ -1,9 +1,11 @@
---- a/include/linux/input.h
-+++ b/include/linux/input.h
-@@ -13,11 +13,48 @@
- #include <linux/time.h>
- #include <linux/list.h>
- #else
+--- freebsd/include/linux/input.h.orig 2012-12-05 10:18:56.000000000 +0100
++++ freebsd/include/linux/input.h      2012-12-05 10:22:11.228350200 +0100
+@@ -8,13 +8,49 @@
+ #ifndef _UAPI_INPUT_H
+ #define _UAPI_INPUT_H
+ 
+-
+ #ifndef __KERNEL__
 +#include <stdint.h>
  #include <sys/time.h>
  #include <sys/ioctl.h>
@@ -47,5 +49,5 @@
  #endif
 +#endif
  
+ 
  /*
-  * The event structure itself
diff --git a/contrib/freebsd/patches/series b/contrib/freebsd/patches/series
index 991accf..a78be3e 100644
--- a/contrib/freebsd/patches/series
+++ b/contrib/freebsd/patches/series
@@ -1,4 +1,5 @@
 input-header.diff
+uinput-header.diff
 ivtv-header.diff
 videodev2-header.diff
 dvb-audio-header.diff
diff --git a/contrib/freebsd/patches/uinput-header.diff 
b/contrib/freebsd/patches/uinput-header.diff
new file mode 100644
index 0000000..a92f7d5
--- /dev/null
+++ b/contrib/freebsd/patches/uinput-header.diff
@@ -0,0 +1,10 @@
+--- freebsd/include/linux/uinput.h.orig        2012-12-05 10:38:23.417354136 
+0100
++++ freebsd/include/linux/uinput.h     2012-12-05 10:38:27.832358799 +0100
+@@ -32,7 +32,6 @@
+ #ifndef _UAPI__UINPUT_H_
+ #define _UAPI__UINPUT_H_
+ 
+-#include <linux/types.h>
+ #include <linux/input.h>
+ 
+ #define UINPUT_VERSION                3
diff --git a/contrib/freebsd/patches/videodev2-header.diff 
b/contrib/freebsd/patches/videodev2-header.diff
index 8e43677..f440e65 100644
--- a/contrib/freebsd/patches/videodev2-header.diff
+++ b/contrib/freebsd/patches/videodev2-header.diff
@@ -1,12 +1,9 @@
---- a/include/linux/videodev2.h
-+++ b/include/linux/videodev2.h
-@@ -56,14 +56,40 @@
- #ifndef __LINUX_VIDEODEV2_H
- #define __LINUX_VIDEODEV2_H
+--- freebsd/include/linux/videodev2.h.orig     2012-12-05 10:23:08.000000000 
+0100
++++ freebsd/include/linux/videodev2.h  2012-12-05 10:25:46.864570965 +0100
+@@ -57,11 +57,45 @@
+ #define _UAPI__LINUX_VIDEODEV2_H
  
--#ifdef __KERNEL__
--#include <linux/time.h>     /* need struct timeval */
--#else
+ #ifndef __KERNEL__
 +#include <stdint.h>
  #include <sys/time.h>
 +#include <sys/types.h>
@@ -30,9 +27,6 @@
 +#ifndef __s64
 +typedef int64_t __s64;
  #endif
--#include <linux/compiler.h>
--#include <linux/ioctl.h>
--#include <linux/types.h>
 +#ifndef __s32
 +typedef int32_t __s32;
 +#endif
@@ -44,6 +38,11 @@
 +#endif
 +#endif
 +
++#else
+ #include <linux/compiler.h>
+ #include <linux/ioctl.h>
+ #include <linux/types.h>
++#endif
  #include <linux/v4l2-common.h>
  #include <linux/v4l2-controls.h>
  
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index 873adbe..3cf3e94 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -53,12 +53,10 @@
  *              Hans Verkuil <hverk...@xs4all.nl>
  *             et al.
  */
-#ifndef __LINUX_VIDEODEV2_H
-#define __LINUX_VIDEODEV2_H
+#ifndef _UAPI__LINUX_VIDEODEV2_H
+#define _UAPI__LINUX_VIDEODEV2_H
 
-#ifdef __KERNEL__
-#include <linux/time.h>     /* need struct timeval */
-#else
+#ifndef __KERNEL__
 #include <sys/time.h>
 #endif
 #include <linux/compiler.h>
@@ -188,6 +186,7 @@ enum v4l2_memory {
        V4L2_MEMORY_MMAP             = 1,
        V4L2_MEMORY_USERPTR          = 2,
        V4L2_MEMORY_OVERLAY          = 3,
+       V4L2_MEMORY_DMABUF           = 4,
 };
 
 /* see also http://vektor.theorem.ca/graphics/ycbcr/ */
@@ -604,6 +603,8 @@ struct v4l2_requestbuffers {
  *                     should be passed to mmap() called on the video node)
  * @userptr:           when memory is V4L2_MEMORY_USERPTR, a userspace pointer
  *                     pointing to this plane
+ * @fd:                        when memory is V4L2_MEMORY_DMABUF, a userspace 
file
+ *                     descriptor associated with this plane
  * @data_offset:       offset in the plane to the start of data; usually 0,
  *                     unless there is a header in front of the data
  *
@@ -618,6 +619,7 @@ struct v4l2_plane {
        union {
                __u32           mem_offset;
                unsigned long   userptr;
+               __s32           fd;
        } m;
        __u32                   data_offset;
        __u32                   reserved[11];
@@ -642,6 +644,8 @@ struct v4l2_plane {
  *             (or a "cookie" that should be passed to mmap() as offset)
  * @userptr:   for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR;
  *             a userspace pointer pointing to this buffer
+ * @fd:                for non-multiplanar buffers with memory == 
V4L2_MEMORY_DMABUF;
+ *             a userspace file descriptor associated with this buffer
  * @planes:    for multiplanar buffers; userspace pointer to the array of plane
  *             info structs for this buffer
  * @length:    size in bytes of the buffer (NOT its payload) for single-plane
@@ -668,6 +672,7 @@ struct v4l2_buffer {
                __u32           offset;
                unsigned long   userptr;
                struct v4l2_plane *planes;
+               __s32           fd;
        } m;
        __u32                   length;
        __u32                   reserved2;
@@ -689,6 +694,33 @@ struct v4l2_buffer {
 #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE      0x0800
 #define V4L2_BUF_FLAG_NO_CACHE_CLEAN           0x1000
 
+/**
+ * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor
+ *
+ * @index:     id number of the buffer
+ * @type:      enum v4l2_buf_type; buffer type (type == *_MPLANE for
+ *             multiplanar buffers);
+ * @plane:     index of the plane to be exported, 0 for single plane queues
+ * @flags:     flags for newly created file, currently only O_CLOEXEC is
+ *             supported, refer to manual of open syscall for more details
+ * @fd:                file descriptor associated with DMABUF (set by driver)
+ *
+ * Contains data used for exporting a video buffer as DMABUF file descriptor.
+ * The buffer is identified by a 'cookie' returned by VIDIOC_QUERYBUF
+ * (identical to the cookie used to mmap() the buffer to userspace). All
+ * reserved fields must be set to zero. The field reserved0 is expected to
+ * become a structure 'type' allowing an alternative layout of the structure
+ * content. Therefore this field should not be used for any other extensions.
+ */
+struct v4l2_exportbuffer {
+       __u32           type; /* enum v4l2_buf_type */
+       __u32           index;
+       __u32           plane;
+       __u32           flags;
+       __s32           fd;
+       __u32           reserved[11];
+};
+
 /*
  *     O V E R L A Y   P R E V I E W
  */
@@ -739,7 +771,7 @@ struct v4l2_window {
 struct v4l2_captureparm {
        __u32              capability;    /*  Supported modes */
        __u32              capturemode;   /*  Current mode */
-       struct v4l2_fract  timeperframe;  /*  Time per frame in .1us units */
+       struct v4l2_fract  timeperframe;  /*  Time per frame in seconds */
        __u32              extendedmode;  /*  Driver-specific extensions */
        __u32              readbuffers;   /*  # of buffers for read */
        __u32              reserved[4];
@@ -1890,6 +1922,7 @@ struct v4l2_create_buffers {
 #define VIDIOC_S_FBUF           _IOW('V', 11, struct v4l2_framebuffer)
 #define VIDIOC_OVERLAY          _IOW('V', 14, int)
 #define VIDIOC_QBUF            _IOWR('V', 15, struct v4l2_buffer)
+#define VIDIOC_EXPBUF          _IOWR('V', 16, struct v4l2_exportbuffer)
 #define VIDIOC_DQBUF           _IOWR('V', 17, struct v4l2_buffer)
 #define VIDIOC_STREAMON                 _IOW('V', 18, int)
 #define VIDIOC_STREAMOFF        _IOW('V', 19, int)
@@ -1997,4 +2030,4 @@ struct v4l2_create_buffers {
 
 #define BASE_VIDIOC_PRIVATE    192             /* 192-255 are private */
 
-#endif /* __LINUX_VIDEODEV2_H */
+#endif /* _UAPI__LINUX_VIDEODEV2_H */
diff --git a/lib/libdvbv5/gen_dvb_structs.pl b/lib/libdvbv5/gen_dvb_structs.pl
index 8962d41..80e2642 100755
--- a/lib/libdvbv5/gen_dvb_structs.pl
+++ b/lib/libdvbv5/gen_dvb_structs.pl
@@ -468,7 +468,7 @@ sub output_arrays($$$$$)
   }
 }
 
-my $fe_file = "$dir/linux/dvb/frontend.h";
+my $fe_file = "$dir/uapi/linux/dvb/frontend.h";
 
 copy $fe_file, "../include/dvb-frontend.h";
 
diff --git a/utils/keytable/Makefile.am b/utils/keytable/Makefile.am
index 886d800..d1ebc80 100644
--- a/utils/keytable/Makefile.am
+++ b/utils/keytable/Makefile.am
@@ -14,7 +14,7 @@ install-data-local:
        $(install_sh) -d "$(DESTDIR)$(keytableuserdir)"
 
 sync-with-kernel:
-       @if [ ! -f $(KERNEL_DIR)/include/linux/input.h ]; then \
+       @if [ ! -f $(KERNEL_DIR)/include/uapi/linux/input.h ]; then \
          echo "Error you must set KERNEL_DIR to point to an extracted kernel 
source dir"; \
          exit 1; \
        fi
@@ -22,7 +22,7 @@ sync-with-kernel:
        @printf "struct parse_key {\n\tchar *name;\n\tunsigned int value;\n} " 
> $(srcdir)/parse.h
        @printf "keynames[] = {\n" >> $(srcdir)/parse.h
 
-       @more $(KERNEL_DIR)/include/linux/input.h | perl -n \
+       @more $(KERNEL_DIR)/include/uapi/linux/input.h | perl -n \
        -e 'if (m/^\#define\s+(KEY_[^\s]+)\s+(0x[\d\w]+|[\d]+)/) ' \
        -e '{ printf "\t{\"%s\", %s},\n",$$1,$$2; }' \
        -e 'if (m/^\#define\s+(BTN_[^\s]+)\s+(0x[\d\w]+|[\d]+)/) ' \
diff --git a/utils/keytable/rc_keymaps/imon_mce 
b/utils/keytable/rc_keymaps/imon_mce
index 00dbde0..a2d1f1f 100644
--- a/utils/keytable/rc_keymaps/imon_mce
+++ b/utils/keytable/rc_keymaps/imon_mce
@@ -1,4 +1,4 @@
-# table imon_mce, type: RC6
+# table imon_mce, type: RC6_MCE
 0x800ff415 KEY_REWIND
 0x800ff414 KEY_FASTFORWARD
 0x800ff41b KEY_PREVIOUS
diff --git a/utils/keytable/rc_keymaps/rc6_mce 
b/utils/keytable/rc_keymaps/rc6_mce
index 0ef6f43..ed56d93 100644
--- a/utils/keytable/rc_keymaps/rc6_mce
+++ b/utils/keytable/rc_keymaps/rc6_mce
@@ -1,4 +1,4 @@
-# table rc6_mce, type: RC6
+# table rc6_mce, type: RC6_MCE
 0x800f0400 KEY_NUMERIC_0
 0x800f0401 KEY_NUMERIC_1
 0x800f0402 KEY_NUMERIC_2
diff --git a/utils/keytable/rc_maps.cfg b/utils/keytable/rc_maps.cfg
index 567b8e0..89ba3f2 100644
--- a/utils/keytable/rc_maps.cfg
+++ b/utils/keytable/rc_maps.cfg
@@ -30,103 +30,103 @@
 # devices supported by the linux kernel
 
 #driver table                    file
-*      rc-nec-terratec-cinergy-xs nec_terratec_cinergy_xs
-*      rc-purpletv              purpletv
-*      rc-gotview7135           gotview7135
-*      rc-apac-viewcomp         apac_viewcomp
-*      rc-pinnacle-color        pinnacle_color
-*      rc-avermedia-cardbus     avermedia_cardbus
+*      rc-terratec-slim-2       terratec_slim_2
+*      rc-adstech-dvb-t-pci     adstech_dvb_t_pci
+*      rc-ati-tv-wonder-hd-600  ati_tv_wonder_hd_600
+*      rc-behold-columbus       behold_columbus
+*      rc-encore-enltv2         encore_enltv2
+*      rc-tt-1500               tt_1500
+*      rc-tevii-nec             tevii_nec
+*      rc-eztv                  eztv
+*      rc-iodata-bctv7e         iodata_bctv7e
+*      rc-pctv-sedna            pctv_sedna
 *      rc-pinnacle-pctv-hd      pinnacle_pctv_hd
-*      rc-kworld-plus-tv-analog kworld_plus_tv_analog
-*      rc-azurewave-ad-tu700    azurewave_ad_tu700
+*      rc-hauppauge             hauppauge
+*      rc-rc6-mce               rc6_mce
+*      rc-cinergy-1400          cinergy_1400
 *      rc-digitalnow-tinytwin   digitalnow_tinytwin
-*      rc-fusionhdtv-mce        fusionhdtv_mce
-*      rc-pixelview-new         pixelview_new
-*      rc-genius-tvgo-a11mce    genius_tvgo_a11mce
-*      rc-dm1105-nec            dm1105_nec
-*      rc-lme2510               lme2510
+*      rc-it913x-v2             it913x_v2
+*      rc-budget-ci-old         budget_ci_old
 *      rc-encore-enltv          encore_enltv
-*      rc-winfast-usbii-deluxe  winfast_usbii_deluxe
+*      rc-pixelview-new         pixelview_new
+*      rc-leadtek-y04g0051      leadtek_y04g0051
+*      rc-kaiomy                kaiomy
+*      rc-digittrade            digittrade
+*      rc-videomate-k100        videomate_k100
+*      rc-msi-tvanywhere-plus   msi_tvanywhere_plus
+*      rc-avermedia-rm-ks       avermedia_rm_ks
 *      rc-anysee                anysee
-*      rc-rc6-mce               rc6_mce
-*      rc-adstech-dvb-t-pci     adstech_dvb_t_pci
-*      rc-kworld-pc150u         kworld_pc150u
-*      rc-iodata-bctv7e         iodata_bctv7e
-*      rc-msi-digivox-iii       msi_digivox_iii
 *      rc-medion-x10-digitainer medion_x10_digitainer
 *      rc-avermedia-m733a-rm-k6 avermedia_m733a_rm_k6
-*      rc-behold                behold
-*      rc-technisat-usb2        technisat_usb2
-*      rc-tt-1500               tt_1500
-*      rc-pctv-sedna            pctv_sedna
-*      rc-nebula                nebula
-*      rc-pv951                 pv951
-*      rc-budget-ci-old         budget_ci_old
-*      rc-terratec-slim-2       terratec_slim_2
-*      rc-medion-x10            medion_x10
-*      rc-pinnacle-grey         pinnacle_grey
-*      rc-tbs-nec               tbs_nec
-*      rc-avermedia             avermedia
-*      rc-medion-x10-or2x       medion_x10_or2x
-*      rc-dib0700-rc5           dib0700_rc5
-*      rc-dntv-live-dvb-t       dntv_live_dvb_t
-*      rc-tevii-nec             tevii_nec
-*      rc-cinergy               cinergy
-*      rc-dntv-live-dvbt-pro    dntv_live_dvbt_pro
-*      rc-norwood               norwood
-*      rc-msi-digivox-ii        msi_digivox_ii
-*      rc-asus-pc39             asus_pc39
-*      rc-npgtech               npgtech
-*      rc-powercolor-real-angel powercolor_real_angel
-*      rc-streamzap             streamzap
-*      rc-twinhan1027           twinhan_vp1027_dvbs
-*      rc-ati-x10               ati_x10
+*      rc-proteus-2309          proteus_2309
+*      rc-fusionhdtv-mce        fusionhdtv_mce
 *      rc-kworld-315u           kworld_315u
-*      rc-eztv                  eztv
-*      rc-ati-tv-wonder-hd-600  ati_tv_wonder_hd_600
-*      rc-alink-dtu-m           alink_dtu_m
+*      rc-dntv-live-dvb-t       dntv_live_dvb_t
 *      rc-pixelview             pixelview
-*      rc-msi-tvanywhere        msi_tvanywhere
-*      rc-videomate-k100        videomate_k100
-*      rc-trekstor              trekstor
+*      rc-nebula                nebula
 *      rc-avertv-303            avertv_303
-*      rc-videomate-s350        videomate_s350
-*      rc-em-terratec           em_terratec
-*      rc-videomate-tv-pvr      videomate_tv_pvr
-*      rc-dib0700-nec           dib0700_nec
-*      rc-flydvb                flydvb
-*      rc-behold-columbus       behold_columbus
-*      rc-real-audio-220-32-keys real_audio_220_32_keys
 *      rc-imon-pad              imon_pad
-*      rc-encore-enltv-fm53     encore_enltv_fm53
-*      rc-it913x-v2             it913x_v2
 *      rc-avermedia-dvbt        avermedia_dvbt
-*      rc-kaiomy                kaiomy
-*      rc-manli                 manli
+*      rc-gotview7135           gotview7135
+*      rc-flydvb                flydvb
+*      rc-avermedia             avermedia
+*      rc-pinnacle-grey         pinnacle_grey
+*      rc-purpletv              purpletv
+*      rc-behold                behold
+*      rc-dib0700-nec           dib0700_nec
+*      rc-msi-digivox-iii       msi_digivox_iii
+*      rc-kworld-pc150u         kworld_pc150u
 *      rc-flyvideo              flyvideo
-*      rc-hauppauge             hauppauge
-*      rc-leadtek-y04g0051      leadtek_y04g0051
-*      rc-gadmei-rm008z         gadmei_rm008z
-*      rc-evga-indtube          evga_indtube
-*      rc-msi-tvanywhere-plus   msi_tvanywhere_plus
-*      rc-tivo                  tivo
-*      rc-total-media-in-hand   total_media_in_hand
-*      rc-avermedia-m135a       avermedia_m135a
-*      rc-asus-ps3-100          asus_ps3_100
-*      rc-snapstream-firefly    snapstream_firefly
-*      rc-encore-enltv2         encore_enltv2
-*      rc-terratec-cinergy-xs   terratec_cinergy_xs
-*      rc-pixelview-002t        pixelview_002t
-*      rc-pixelview-mk12        pixelview_mk12
-*      rc-imon-mce              imon_mce
-*      rc-cinergy-1400          cinergy_1400
-*      rc-proteus-2309          proteus_2309
-*      rc-digittrade            digittrade
-*      rc-it913x-v1             it913x_v1
+*      rc-alink-dtu-m           alink_dtu_m
 *      rc-avermedia-a16d        avermedia_a16d
-*      rc-avermedia-rm-ks       avermedia_rm_ks
 *      rc-terratec-slim         terratec_slim
+*      rc-genius-tvgo-a11mce    genius_tvgo_a11mce
+*      rc-winfast-usbii-deluxe  winfast_usbii_deluxe
+*      rc-pixelview-mk12        pixelview_mk12
+*      rc-streamzap             streamzap
+*      rc-ati-x10               ati_x10
+*      rc-technisat-usb2        technisat_usb2
+*      rc-it913x-v1             it913x_v1
+*      rc-terratec-cinergy-xs   terratec_cinergy_xs
+*      rc-avermedia-m135a       avermedia_m135a
+*      rc-tivo                  tivo
+*      rc-norwood               norwood
+*      rc-imon-mce              imon_mce
+*      rc-asus-pc39             asus_pc39
+*      rc-videomate-tv-pvr      videomate_tv_pvr
+*      rc-dib0700-rc5           dib0700_rc5
+*      rc-nec-terratec-cinergy-xs nec_terratec_cinergy_xs
+*      rc-pixelview-002t        pixelview_002t
+*      rc-em-terratec           em_terratec
+*      rc-apac-viewcomp         apac_viewcomp
+*      rc-lme2510               lme2510
+*      rc-encore-enltv-fm53     encore_enltv_fm53
+*      rc-kworld-plus-tv-analog kworld_plus_tv_analog
+*      rc-twinhan1027           twinhan_vp1027_dvbs
+*      rc-pv951                 pv951
+*      rc-gadmei-rm008z         gadmei_rm008z
+*      rc-asus-ps3-100          asus_ps3_100
+*      rc-msi-tvanywhere        msi_tvanywhere
+*      rc-manli                 manli
+*      rc-cinergy               cinergy
+*      rc-dntv-live-dvbt-pro    dntv_live_dvbt_pro
+*      rc-avermedia-cardbus     avermedia_cardbus
+*      rc-azurewave-ad-tu700    azurewave_ad_tu700
+*      rc-dm1105-nec            dm1105_nec
 *      rc-winfast               winfast
+*      rc-videomate-s350        videomate_s350
+*      rc-npgtech               npgtech
+*      rc-powercolor-real-angel powercolor_real_angel
+*      rc-total-media-in-hand   total_media_in_hand
+*      rc-msi-digivox-ii        msi_digivox_ii
+*      rc-pinnacle-color        pinnacle_color
+*      rc-real-audio-220-32-keys real_audio_220_32_keys
+*      rc-medion-x10            medion_x10
+*      rc-snapstream-firefly    snapstream_firefly
+*      rc-evga-indtube          evga_indtube
+*      rc-tbs-nec               tbs_nec
+*      rc-medion-x10-or2x       medion_x10_or2x
+*      rc-trekstor              trekstor
 # *    *                        a800                 # found in a800.c
 # *    *                        af9005               # found in af9005-remote.c
 # *    *                        cinergyt2            # found in 
cinergyT2-core.c

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to