diff --git a/linux-2.6-lirc-ioctl-compat-fixups.patch b/linux-2.6-lirc-ioctl-compat-fixups.patch index eec5a22..50481cd 100644 --- a/linux-2.6-lirc-ioctl-compat-fixups.patch +++ b/linux-2.6-lirc-ioctl-compat-fixups.patch @@ -1,3 +1,59 @@ +This patch rolls up the following commits pending merge in the v4l-dvb tree: + +commit 7ce3b9f7bdb40837e15af89bb9d623c207ac9586 +Author: Jarod Wilson +Date: Sat Oct 9 14:17:03 2010 -0400 + + lirc_dev: fixup error messages w/missing newlines + + Signed-off-by: Jarod Wilson + +commit d1af871dadaf58580490431a335ea122a9b00d92 +Author: Jarod Wilson +Date: Sat Oct 9 14:07:06 2010 -0400 + + lirc: wire up .compat_ioctl to main ioctl handler + + As pointed out (and tested) by Joris van Rantwijk, we do actually need + to wire up .compat_ioctl for 32-bit lirc userspace to work with 64-bit + lirc kernelspace. Do it. And add a check to make sure we get a valid + irctl in the ioctl handler. + + Signed-off-by: Jarod Wilson + +commit 8dea589f4dc51b0363555a53fee128965a0548d4 +Author: Jarod Wilson +Date: Fri Oct 8 16:24:21 2010 -0400 + + IR/lirc: further ioctl portability fixups + + From: Joris van Rantwijk + + ----8<---- + I tested lirc_serial and found that it works fine. + Except the LIRC ioctls do not work in my 64-bit-kernel/32-bit-user + setup. I added compat_ioctl entries in the drivers to fix this. + + While doing so, I noticed inconsistencies in the argument type of + the LIRC ioctls. All ioctls are declared in lirc.h as having argument + type __u32, however there are a few places where the driver calls + get_user/put_user with an unsigned long argument. + + The patch below changes lirc_dev and lirc_serial to use __u32 for all + ioctl arguments, and adds compat_ioctl entries. + It should probably also be done in the other low-level drivers, + but I don't have hardware to test those. + ----8<---- + + I've dropped the .compat_ioctl addition from Joris' original patch, + as I swear the non-compat definition should now work for both 32-bit + and 64-bit userspace. Technically, I think we still need/want a + Signed-off-by: from Joris here. Joris? (And sorry for the lengthy delay + in getting a reply to you). + + Signed-off-by: Jarod Wilson + +--- drivers/media/IR/ir-lirc-codec.c | 13 +++++++---- drivers/media/IR/lirc_dev.c | 36 ++++++++++++++++++++---------- drivers/staging/lirc/lirc_igorplugusb.c | 2 +- diff --git a/linux-2.6-v4l-dvb-ir-core-update-2.patch b/linux-2.6-v4l-dvb-ir-core-update-2.patch index f21aa7a..012167d 100644 --- a/linux-2.6-v4l-dvb-ir-core-update-2.patch +++ b/linux-2.6-v4l-dvb-ir-core-update-2.patch @@ -1,3 +1,216 @@ +This patch rolls up the following v4l-dvb upstream commits: + +commit 9b44ed200f1584f029da82e60e1f284d1d8de3da +Author: Maxim Levitsky +Date: Sat Jul 31 11:59:26 2010 -0300 + + V4L/DVB: IR: Port ene driver to new IR subsystem and enable it + + Signed-off-by: Maxim Levitsky + Signed-off-by: Mauro Carvalho Chehab + +commit 46192437f6d17c49f37bef73c97a14f2ed278db0 +Author: Maxim Levitsky +Date: Sat Jul 31 11:59:25 2010 -0300 + + V4L/DVB: STAGING: remove lirc_ene0100 driver + + Add latest unported version of this driver to media/IR. + Next patch will port it to ir core. + + Signed-off-by: Maxim Levitsky + Signed-off-by: Mauro Carvalho Chehab + +commit abf84383ecadc8ada1963f9976e887c6f0b1bad9 +Author: Joe Perches +Date: Mon Jul 12 17:50:03 2010 -0300 + + V4L/DVB: drivers/media: Remove unnecessary casts of private_data + + Signed-off-by: Joe Perches + Acked-by: Jarod Wilson + Acked-by: Laurent Pinchart + Signed-off-by: Mauro Carvalho Chehab + +commit 26699e3cf2ce4938112ddf60e084feaf4ce435b5 +Author: Maxim Levitsky +Date: Sat Jul 31 11:59:20 2010 -0300 + + V4L/DVB: IR: NECX: support repeat + + This adds support for repeat detecting for NECX variant + Tested with uneversal remote + + Signed-off-by: Maxim Levitsky + Signed-off-by: Mauro Carvalho Chehab + +commit 7f01033b288bb86d4f9d2885966d2c255f3659c1 +Author: Maxim Levitsky +Date: Sat Jul 31 11:59:19 2010 -0300 + + V4L/DVB: IR: nec decoder: fix repeat + + Repeat space is 4 units, not 8. + Current code would never trigger a repeat. + + However that isn't true for NECX, so repeat there + must be handled differently. + + Signed-off-by: Maxim Levitsky + Reviewed-by: Andy Walls + Signed-off-by: Mauro Carvalho Chehab + +commit 54f7413aa4ce44d18c7f9744e37ff64c4668daa6 +Author: Maxim Levitsky +Date: Sat Jul 31 11:59:18 2010 -0300 + + V4L/DVB: IR: JVC: make repeat work + + Currently, jvc decoder will attempt misdetect next press as a repeat + of last keypress, therefore second keypress isn't detected. + + Signed-off-by: Maxim Levitsky + Signed-off-by: Mauro Carvalho Chehab + +commit 951c6835be77d1baf619f7960c2beb22eea36947 +Author: Maxim Levitsky +Date: Sat Jul 31 11:59:24 2010 -0300 + + V4L/DVB: IR: report unknown scancodes the in-kernel decoders found + + This way it is possible to use evtest to create keymap for unknown remote. + + Signed-off-by: Maxim Levitsky + Signed-off-by: Mauro Carvalho Chehab + +commit 3879b56940f84f3b90fb77ad5860083930be4bac +Author: Maxim Levitsky +Date: Sat Jul 31 11:59:23 2010 -0300 + + V4L/DVB: IR: extend interfaces to support more device settings + + LIRC: add new IOCTL that enables learning mode (wide band receiver) + Still missing features: carrier report & timeout reports. + Will need to pack these into ir_raw_event + + Signed-off-by: Maxim Levitsky + Signed-off-by: Mauro Carvalho Chehab + +commit 2f5fb55510cf309cd749f1af85e26274f9e360ab +Author: Maxim Levitsky +Date: Sat Jul 31 11:59:22 2010 -0300 + + V4L/DVB: IR: add helper function for hardware with small o/b buffer + + Some ir input devices have small buffer, and interrupt the host + each time it is full (or half full) + + Add a helper that automaticly handles timeouts, and also + automaticly merges samples of same time (space-space) + Such samples might be placed by hardware because size of + sample in the buffer is small (a byte for example). + + Also remove constness from ir_dev_props, because it now contains timeout + settings that driver might want to change + + Signed-off-by: Maxim Levitsky + Acked-by: Jarod Wilson + Signed-off-by: Mauro Carvalho Chehab + +commit 0f3f74ce40f25e80e3733e5d5293251568b03d83 +Author: Maxim Levitsky +Date: Sat Jul 31 11:59:21 2010 -0300 + + V4L/DVB: IR: Allow not to compile keymaps in + + Currently, ir device registration fails if keymap requested by driver is not found. + Fix that by always compiling in the empty keymap, and using it as a failback. + + Signed-off-by: Maxim Levitsky + Acked-by: Jarod Wilson + Signed-off-by: Mauro Carvalho Chehab + +commit daad37e3a9e0b9366da8eecb3e64bd47ac831938 +Author: Maxim Levitsky +Date: Sat Jul 31 11:59:17 2010 -0300 + + V4L/DVB: IR: replace workqueue with kthread + + It is perfectly possible to have ir_raw_event_work + running concurently on two cpus, thus we must protect + it from that situation. + + This stems from the fact that if hardware sends short packets of samples + we might end up queueing the work item more times that nessesary. + + Such job isn't well suited for a workqueue, so use a kernel thread. + + Signed-off-by: Maxim Levitsky + Signed-off-by: Mauro Carvalho Chehab + +commit 7c4be7bab7bb06974d649835cac66b5df984047f +Author: Maxim Levitsky +Date: Sat Jul 31 11:59:16 2010 -0300 + + V4L/DVB: IR: replace spinlock with mutex + + Some handlers (lirc for example) allocates memory on initialization, + doing so in atomic context is cumbersome. + Fixes warning about sleeping function in atomic context. + + Signed-off-by: Maxim Levitsky + Signed-off-by: Mauro Carvalho Chehab + +commit 211ed16e58b2fdf0335e47546b252398b47e7790 +Author: Maxim Levitsky +Date: Sat Jul 31 11:59:15 2010 -0300 + + V4L/DVB: IR: minor fixes + + * lirc: Don't propagate reset event to userspace + * lirc: Remove strange logic from lirc that would make first sample always be pulse + * Make TO_US macro actualy print what it should. + + Signed-off-by: Maxim Levitsky + Signed-off-by: Mauro Carvalho Chehab + +commit d8ffb6454250115ca0636d8481030466c1e3fdec +Author: Maxim Levitsky +Date: Sat Jul 31 11:59:14 2010 -0300 + + V4L/DVB: IR: Kconfig fixes + + Move IR drives below separate menu. + This allows to disable them. + Also correct a typo. + + Signed-off-by: Maxim Levitsky + Signed-off-by: Mauro Carvalho Chehab + +commit 5af935cc96a291f90799bf6a2587d87329a91699 +Author: Mauro Carvalho Chehab +Date: Sun Aug 1 08:02:35 2010 -0300 + + V4L/DVB: dib0700: break keytable into NEC and RC-5 variants + + Instead of having one big keytable with 2 protocols inside, break it + into two separate tables, being one for NEC and another for RC-5 variants, + and properly identify what variant should be used at the boards entries. + + Signed-off-by: Mauro Carvalho Chehab + +commit 50b9d21ae2ac1b85be46f1ee5aa1b5e588622361 +Author: Jarod Wilson +Date: Fri Aug 27 18:21:14 2010 -0300 + + V4L/DVB: mceusb: add two new ASUS device IDs + + Reported in lirc sf.net tracker and on lirc mailing list + + Signed-off-by: Jarod Wilson + Signed-off-by: Mauro Carvalho Chehab + + diff -Naurp linux-2.6.35/drivers/media/IR/ene_ir.c linux-2.6.35.new/drivers/media/IR/ene_ir.c --- linux-2.6.35/drivers/media/IR/ene_ir.c 1969-12-31 19:00:00.000000000 -0500 +++ linux-2.6.35.new/drivers/media/IR/ene_ir.c 2010-09-09 23:21:49.000000000 -0400 diff --git a/linux-2.6-v4l-dvb-ir-core-update-3.patch b/linux-2.6-v4l-dvb-ir-core-update-3.patch index 2710fc4..29dc644 100644 --- a/linux-2.6-v4l-dvb-ir-core-update-3.patch +++ b/linux-2.6-v4l-dvb-ir-core-update-3.patch @@ -1,3 +1,218 @@ +This patch rolls up the following upstream v4l-dvb tree commits: + +commit 48f1bba604f1a5a312368bad822d2c03198a3ec3 +Author: Jarod Wilson +Date: Fri Sep 17 18:12:31 2010 -0300 + + V4L/DVB: IR/lirc_dev: check for valid irctl in unregister path + + Prompted by Red Hat bugzilla #633023 + + Signed-off-by: Jarod Wilson + Signed-off-by: Mauro Carvalho Chehab + +commit e156b731596795714f1428c4ec00fe9f5468e083 +Author: Jarod Wilson +Date: Wed Sep 15 00:28:41 2010 -0300 + + V4L/DVB: IR/imon: set up mce-only devices w/mce keytable + + Currently, they get set up with the pad keytable, which they can't + actually use at all. Also add another variant of volume scancodes from + another 0xffdc device, and properly set up the 0x9e 0xffdc device as an + iMON VFD w/MCE proto IR. + + Based on data and a prior patch from Anders Eriksson on the lirc list. + + Signed-off-by: Jarod Wilson + Signed-off-by: Mauro Carvalho Chehab + +commit 08d23a4d7bf43cd7246f6546ddeab8c25d5d4e45 +Author: Jarod Wilson +Date: Wed Sep 15 15:56:03 2010 -0300 + + V4L/DVB: IR/imon: protect ictx's kc and last_keycode w/spinlock + + Lest we get our keycodes wrong... Thus far, in practice, I've not found + it to actually matter, but its one of the issues raised in + https://bugzilla.kernel.org/show_bug.cgi?id=16351 that wasn't addressed + by converting to using native IR keydown/up functions. + + Signed-off-by: Jarod Wilson + Signed-off-by: Mauro Carvalho Chehab + +commit 4d2acb4e7a23d47b8792bce34cf874da24193ce2 +Author: David Härdeman +Date: Wed Sep 15 15:42:07 2010 -0300 + + V4L/DVB: imon: split mouse events to a separate input dev + + This is a stab at separating the mouse (and front panel/knob) events + out to a separate input device. This is necessary in preparation for + the next patch which makes the rc-core input dev opaque to rc + drivers. + + I can't verify the correctness of the patch beyond the fact that it + compiles without warnings. The driver has resisted most of my + attempts at understanding it properly...for example, the double calls + to le64_to_cpu() and be64_to_cpu() which are applied in + imon_incoming_packet() and imon_panel_key_lookup() would amount + to a bswab64() call, irregardless of the cpu endianness, and I think + the code wouldn't have worked on a big-endian machine... + + - Minor alterations to apply with minimal core IR changes + - Use timer for imon keys too, since its entirely possible for the + receiver to miss release codes (either by way of another key being + pressed while the first is held or by the remote pointing away from + the recevier when the key is release. yes, I know, its ugly). + - Bump driver version number, since this is a fairly significant change + (for the much much better). + Tested successfully w/an imon knob receiver. + + Signed-off-by: David Härdeman + Signed-off-by: Jarod Wilson + Signed-off-by: Mauro Carvalho Chehab + +commit 04c9c7d7135d0504638e02603dafa714e8d58945 +Author: Jarod Wilson +Date: Wed Sep 15 15:31:12 2010 -0300 + + V4L/DVB: IR: export ir_keyup so imon driver can use it directly + + The imon driver currently reimplements its own version of ir_keyup + (along with key release timer functionality also already present in the + core IR code). A follow-up imon patch will make use of ir_keyup and the + IR stack's key release code. + + Trivial extraction from David Härdeman's pending rc-core merge and + device interface abstraction patchset to facilitate merging a patch + based on his imon input dev split patch ahead of the larger churn, which + is slated for post-2.6.37-rc1 (after Dmitry's large keycode patches are + merged in mainline). + + Signed-off-by: Jarod Wilson + Signed-off-by: Mauro Carvalho Chehab + +Also includes the following patches pending v4l-dvb merge: + +commit 4032fc38fc2839871acd03a42d8d85ef1a43e2ff +Author: Jarod Wilson +Date: Fri Oct 8 15:23:56 2010 -0400 + + IR/Kconfig: sort hardware entries alphabetically + + Signed-off-by: Jarod Wilson + +commit fc6507cb31f7f91d451726c89df7b59c566f62b8 +Author: Jarod Wilson +Date: Fri Oct 8 15:16:23 2010 -0400 + + nuvoton-cir: add proper rx fifo overrun handling + + Per discussion with Andy Walls on irc, rx fifo overruns are not all that + uncommon on a busy system, and the initial posting of the nuvoton-cir + driver doesn't handle them well enough. With this addition, we'll drain + the hw fifo, attempt to process any ir pulse trains completed with that + flush, then we'll issue a hw rx fifo clear and reset the raw ir sample + kfifo and start over collecting raw ir data. + + Also slightly refactors the cir interrupt enabling so that we always get + consistent flags set and only have to modify them in one place, should + they need to be altered. + + Signed-off-by: Jarod Wilson + +commit 6728577395dac7238f3900096ab7236b95e8516f +Author: Jarod Wilson +Date: Thu Oct 7 16:50:34 2010 -0400 + + IR: add driver for Nuvoton w836x7hg integrated CIR + + This is a new ir-core pnp driver for the Nuvoton w836x7hg integrated CIR + function. The chip is found on at least the ASRock ION 330HT boxes and + apparently, on a number of Intel DP55-series motherboards: + + http://www.asrock.com/nettop/overview.asp?Model=ION%20330HT + http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=17685&lang=eng + + This driver was made possible by a hardware donation from Nuvoton, along + with sample code (in the form of an lirc driver) and datasheet, so huge + thanks to them for supporting this effort. Note that this driver + constitutes a massive rewrite, porting from the lirc interfaces to the + ir-core interfaces, and restructuring the driver to look more like Maxim + Levitsky's ene_ir driver (as well as generally making it look more like + kernel code). + + There's some work left to be done on this driver, to fully support the + range of functionality possible, but receive and IR power-on/wake are + both functional (may require setting wake key under another OS atm). The + hardware I've got (one of the ASRock boxes) only supports RX, so TX is + completely untested as of yet. Certain RX parameters, like sample + resolution and RX IRQ sample length trigger level could possibly stand + to be made tweakable via modparams or sysfs nodes, but the current + values work well enough for me w/an MCE RC6A remote. + + The original lirc driver carried support for the Windows MCE IR + keyboard/mouse device, which I plan to add back generically, in a way + that should be usable by any raw IR receiver (or at least by this driver + and the mceusb driver). + + Suspend and resume have also been tested, the power button on my remote + can be used to wake the machine, and CIR functionality resumes just + fine. Module unload/reload has also been tested, though not extensively + or repetitively. Also tested to work with the lirc bridge plugin for + userspace decoding. + + Signed-off-by: Jarod Wilson + +commit 3551d7d1ab34408eb6ae228d200243723c151db0 +Author: Maxim Levitsky +Date: Mon Sep 6 18:26:10 2010 -0300 + + V4L/DVB: IR: extend MCE keymap + + These keys are found on remote bundled with + Toshiba Qosmio F50-10q. + + Found and tested by, Sami R + + Signed-off-by: Maxim Levitsky + Acked-by: Jarod Wilson + Signed-off-by: Mauro Carvalho Chehab + +commit e081b5aead012579740501220624cafc35f22510 +Author: Maxim Levitsky +Date: Mon Sep 6 18:26:09 2010 -0300 + + V4L/DVB: IR: fix keys beeing stuck down forever + + The logic in ir_timer_keyup was inverted. + + In case that values aren't equal, + the meaning of the time_is_after_eq_jiffies(ir->keyup_jiffies) is that + ir->keyup_jiffies is after the the jiffies or equally that + that jiffies are before the the ir->keyup_jiffies which is + exactly the situation we want to avoid (that the timeout is in the future) + Confusing Eh? + + Signed-off-by: Maxim Levitsky + Acked-by: Jarod Wilson + Signed-off-by: Mauro Carvalho Chehab + +commit 30e18408adbdd840756fea541245b833dc764196 +Author: Maxim Levitsky +Date: Mon Sep 6 18:26:08 2010 -0300 + + V4L/DVB: IR: fix duty cycle capability + + Due to typo lirc bridge enabled wrong capability. + + Signed-off-by: Maxim Levitsky + Acked-by: Jarod Wilson + Signed-off-by: Mauro Carvalho Chehab + + +--- drivers/media/IR/Kconfig | 27 +- drivers/media/IR/Makefile | 1 + drivers/media/IR/imon.c | 583 +++++++++++-------- @@ -1038,6 +1253,16 @@ index 7961d59..59510cd 100644 /** * ir_timer_keyup() - generates a keyup event after a timeout +@@ -319,7 +319,7 @@ static void ir_timer_keyup(unsigned long cookie) + * a keyup event might follow immediately after the keydown. + */ + spin_lock_irqsave(&ir->keylock, flags); +- if (time_is_after_eq_jiffies(ir->keyup_jiffies)) ++ if (time_is_before_eq_jiffies(ir->keyup_jiffies)) + ir_keyup(ir); + spin_unlock_irqrestore(&ir->keylock, flags); + } + diff --git a/drivers/media/IR/nuvoton-cir.c b/drivers/media/IR/nuvoton-cir.c new file mode 100644 index 0000000..fdb280e @@ -2707,3 +2932,38 @@ index eb7fddf..4dd43d4 100644 u32 ir_g_keycode_from_table(struct input_dev *input_dev, u32 scancode); /* From ir-raw-event.c */ +diff --git a/drivers/media/IR/keymaps/rc-rc6-mce.c b/drivers/media/IR/keymaps/rc-rc6-mce.c +index 64264f7..39557ad 100644 +--- a/drivers/media/IR/keymaps/rc-rc6-mce.c ++++ b/drivers/media/IR/keymaps/rc-rc6-mce.c +@@ -19,6 +19,7 @@ static struct ir_scancode rc6_mce[] = { + + { 0x800f0416, KEY_PLAY }, + { 0x800f0418, KEY_PAUSE }, ++ { 0x800f046e, KEY_PLAYPAUSE }, + { 0x800f0419, KEY_STOP }, + { 0x800f0417, KEY_RECORD }, + +@@ -37,6 +38,8 @@ static struct ir_scancode rc6_mce[] = { + { 0x800f0411, KEY_VOLUMEDOWN }, + { 0x800f0412, KEY_CHANNELUP }, + { 0x800f0413, KEY_CHANNELDOWN }, ++ { 0x800f043a, KEY_BRIGHTNESSUP }, ++ { 0x800f0480, KEY_BRIGHTNESSDOWN }, + + { 0x800f0401, KEY_NUMERIC_1 }, + { 0x800f0402, KEY_NUMERIC_2 }, +diff --git a/drivers/media/IR/ir-lirc-codec.c b/drivers/media/IR/ir-lirc-codec.c +index 77b5946..e63f757 100644 +--- a/drivers/media/IR/ir-lirc-codec.c ++++ b/drivers/media/IR/ir-lirc-codec.c +@@ -267,7 +267,7 @@ static int ir_lirc_register(struct input_dev *input_dev) + features |= LIRC_CAN_SET_SEND_CARRIER; + + if (ir_dev->props->s_tx_duty_cycle) +- features |= LIRC_CAN_SET_REC_DUTY_CYCLE; ++ features |= LIRC_CAN_SET_SEND_DUTY_CYCLE; + } + + if (ir_dev->props->s_rx_carrier_range) +