- 15 2月, 2018 1 次提交
-
-
由 Sean Young 提交于
This comment is no longer relevant. Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
- 23 1月, 2018 1 次提交
-
-
由 Sean Young 提交于
The IR rc6 encoder sends the header using manchester encoding using 0 bits, which causes the following: UBSAN: Undefined behaviour in drivers/media/rc/rc-ir-raw.c:247:6 shift exponent 4294967295 is too large for 64-bit type 'long long unsigned int' So, allow the leader code to send a pulse and space and remove the unused pulse_space_start field. Cc: Antti Seppälä <a.seppala@gmail.com> Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
- 19 12月, 2017 1 次提交
-
-
由 Mauro Carvalho Chehab 提交于
The agreed format is to use /* */ comments inside header files. Unfortunately, I ended by using // on a few ones. Reported-by: NAndi Shyti <andi.shyti@samsung.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
- 14 12月, 2017 8 次提交
-
-
由 Sean Young 提交于
Since removing the lirc kapi, ir-lirc-codec.c only contains lirc fops so the file name is no longer correct. By moving its content into lirc_dev.c the ugly extern struct lirc_fops is not longer needed, and everything lirc related is in one file. Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Sean Young 提交于
This implements LIRC_MODE_SCANCODE reading from the lirc device. The scancode can be read from the input device too, but with this interface you get the rc protocol, keycode, toggle and repeat status in addition to just the scancode. int main() { int fd, mode, rc; fd = open("/dev/lirc0", O_RDWR); mode = LIRC_MODE_SCANCODE; if (ioctl(fd, LIRC_SET_REC_MODE, &mode)) { // kernel too old or lirc does not support transmit } struct lirc_scancode scancode; while (read(fd, &scancode, sizeof(scancode)) == sizeof(scancode)) { printf("protocol:%d scancode:0x%x toggle:%d repeat:%d\n", scancode.rc_proto, scancode.scancode, !!(scancode.flags & LIRC_SCANCODE_FLAG_TOGGLE), !!(scancode.flags & LIRC_SCANCODE_FLAG_REPEAT)); } close(fd); } Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Sean Young 提交于
rc-core has replaced the lirc kapi many years ago, and now with the last driver ported to rc-core, we can finally remove it. Note this has no effect on userspace. All future IR drivers should use the rc-core api. Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Sean Young 提交于
Ensure we reject an attempt to transmit invalid scancodes. Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Sean Young 提交于
The lirc user interface exists as a raw decoder, which does not make much sense for transmit-only devices. In addition, we want to have lirc char devices for devices which do not use raw IR, i.e. scancode only devices. Note that rc-code, lirc_dev, ir-lirc-codec are now calling functions of each other, so they've been merged into one module rc-core to avoid circular dependencies. Since ir-lirc-codec no longer exists as separate codec module, there is no need for RC_DRIVER_IR_RAW_TX type drivers to call ir_raw_event_register(). Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Sean Young 提交于
When sending scancodes, load the encoder if we need it. Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Sean Young 提交于
If the lirc device supports it, set the carrier for the protocol. Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Sean Young 提交于
This introduces a new lirc mode: scancode. Any device which can send raw IR can now also send scancodes. int main() { int mode, fd = open("/dev/lirc0", O_RDWR); mode = LIRC_MODE_SCANCODE; if (ioctl(fd, LIRC_SET_SEND_MODE, &mode)) { // kernel too old or lirc does not support transmit } struct lirc_scancode scancode = { .scancode = 0x1e3d, .rc_proto = RC_PROTO_RC5, }; write(fd, &scancode, sizeof(scancode)); close(fd); } The other fields of lirc_scancode must be set to 0. Note that toggle (rc5, rc6) and repeats (nec) are not implemented. Nor is there a method for holding down a key for a period. Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
- 11 12月, 2017 1 次提交
-
-
由 Mauro Carvalho Chehab 提交于
As we're now using SPDX identifiers, on the several media drivers I wrote, add the proper SPDX, identifying the license I meant. As we're now using the short license, it doesn't make sense to keep the original license text. Also, fix MODULE_LICENSE to properly identify GPL v2. Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com> Reviewed-by: NPhilippe Ombredanne <pombredanne@nexb.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
- 05 10月, 2017 1 次提交
-
-
由 David Härdeman 提交于
This is in preparation for the later patches which do away with struct irctl entirely. Signed-off-by: NDavid Härdeman <david@hardeman.nu> Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
-
- 20 8月, 2017 3 次提交
-
-
由 Sean Young 提交于
RC_TYPE is confusing and it's just the protocol. So rename it. Suggested-by: NHans Verkuil <hans.verkuil@cisco.com> Signed-off-by: NSean Young <sean@mess.org> Acked-by: NHans Verkuil <hans.verkuil@cisco.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Sean Young 提交于
Since commit 12749b198fa4 ("[media] rc: saa7134: add trailing space for timely decoding"), the workaround of inserting reset events is no longer needed. Note that the initial reset is not needed either; other rc-core drivers that don't use ir_raw_event_store_edge() never call this at all. Verified on a HVR-1150 and Raspberry Pi. Fixes: 3f5c4c73 ("[media] rc: fix ghost keypresses with certain hw") Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Sean Young 提交于
The gpio-ir-recv driver does many wakeups (once per edge); the saa7134 driver has special handling to only wakeup 15ms after the first edge. Make this part of rc-core so gpio-ir-recv also benefits from this (so a rc-5 keypress now causes 3 wakeups rather than 24). Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
- 14 6月, 2017 1 次提交
-
-
由 David Härdeman 提交于
The device core infrastructure is based on the presumption that once a driver calls device_add(), it must be ready to accept userspace interaction. This requires splitting rc_setup_rx_device() into two functions and reorganizing rc_register_device() so that as much work as possible is performed before calling device_add(). Signed-off-by: NDavid Härdeman <david@hardeman.nu> Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
- 24 3月, 2017 1 次提交
-
-
由 Sean Young 提交于
Split the protocol into two variants, one for keyboard and one for mouse data. Note that the mce_kbd protocol cannot be used on the igorplugusb, since the IR is too long. Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
- 30 1月, 2017 5 次提交
-
-
由 Sean Young 提交于
Add the capability to encode Sony scancodes as raw events. Sony uses pulse length rather than pulse distance. Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 James Hogan 提交于
Add IR encoding helper for pulse-distance modulation as used by the NEC protocol. Signed-off-by: NJames Hogan <james@albanarts.com> Signed-off-by: NSean Young <sean@mess.org> Cc: Antti Seppälä <a.seppala@gmail.com> Cc: David Härdeman <david@hardeman.nu> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Antti Seppälä 提交于
Adding a simple Manchester encoder to rc-core. Manchester coding is used by at least RC-5 and RC-6 protocols and their variants. Signed-off-by: NAntti Seppälä <a.seppala@gmail.com> Signed-off-by: NJames Hogan <james@albanarts.com> Signed-off-by: NSean Young <sean@mess.org> Cc: David Härdeman <david@hardeman.nu> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 James Hogan 提交于
Add a callback to raw ir handlers for encoding and modulating a scancode to a set of raw events. This could be used for transmit, or for converting a wakeup scancode to a form that is more suitable for raw hardware wake up filters. Signed-off-by: NJames Hogan <james@albanarts.com> Signed-off-by: NAntti Seppälä <a.seppala@gmail.com> Signed-off-by: NSean Young <sean@mess.org> Cc: David Härdeman <david@hardeman.nu> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
由 Heiner Kallweit 提交于
I think we can get rid of the spinlock protecting the kthread from being interrupted by a wakeup in certain parts. Even with the current implementation of the kthread the only lost wakeup scenario could happen if the wakeup occurs between the kfifo_len check and setting the state to TASK_INTERRUPTIBLE. In the changed version we could lose a wakeup if it occurs between processing the fifo content and setting the state to TASK_INTERRUPTIBLE. This scenario is covered by an additional check for available events in the fifo and setting the state to TASK_RUNNING in this case. In addition the changed version flushes the kfifo before ending when the kthread is stopped. With this patch we gain: - Get rid of the spinlock - Simplify code - Don't grep / release the mutex for each individual event but just once for the complete fifo content. This reduces overhead if a driver e.g. triggers processing after writing the content of a hw fifo to the kfifo. Signed-off-by: NHeiner Kallweit <hkallweit1@gmail.com> Signed-off-by: NSean Young <sean@mess.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
-
- 25 1月, 2016 1 次提交
-
-
由 Heiner Kallweit 提交于
The FIFO is used for ir_raw_event records, however for some historic reason the FIFO is used on a per byte basis. IMHO this adds unneeded complexity. Therefore set up the FIFO for ir_raw_event records. This also allows to define the FIFO statically as part of ir_raw_event_ctrl instead of having to allocate the FIFO dynamically. In addition: - When writing into the FIFO and it's full return ENOSPC instead of ENOMEM thus making it easier to tell between "FIFO full" and "Dynamic memory allocation failed" when the error is propagated to a higher level. Also add an error message. - When reading from the FIFO check whether it's empty. This is not strictly needed here but kfifo_out is annotated "must check" anyway. Successfully tested it with the nuvoton-cir driver. Signed-off-by: NHeiner Kallweit <hkallweit1@gmail.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
-
- 04 12月, 2015 1 次提交
-
-
由 Heiner Kallweit 提交于
Now that that the decoder modules are loaded on-demand we can move loading the lirc module to rc_register_device directly and remove unneeded functions and comments. Signed-off-by: NHeiner Kallweit <hkallweit1@gmail.com>
-
- 19 11月, 2015 1 次提交
-
-
由 Heiner Kallweit 提交于
Remove code for unconditional decoder module loading (except lirc). Signed-off-by: NHeiner Kallweit <hkallweit1@gmail.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
-
- 19 8月, 2015 3 次提交
-
-
由 David Härdeman 提交于
This reverts commit 9869da5b. The current code is not mature enough, the API should allow a single protocol to be specified. Also, the current code contains heuristics that will depend on module load order. Signed-off-by: NDavid Härdeman <david@hardeman.nu> Acked-by: NAntti Seppälä <a.seppala@gmail.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
-
由 David Härdeman 提交于
This reverts commit 1d971d92. The current code is not mature enough, the API should allow a single protocol to be specified. Also, the current code contains heuristics that will depend on module load order. Signed-off-by: NDavid Härdeman <david@hardeman.nu> Acked-by: NAntti Seppälä <a.seppala@gmail.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
-
由 David Härdeman 提交于
This reverts commit 0d830b2d. The current code is not mature enough, the API should allow a single protocol to be specified. Also, the current code contains heuristics that will depend on module load order. Signed-off-by: NDavid Härdeman <david@hardeman.nu> Acked-by: NAntti Seppälä <a.seppala@gmail.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
-
- 15 5月, 2015 3 次提交
-
-
由 James Hogan 提交于
Add support in rc-core for drivers which implement the wakeup scancode filter by encoding the scancode using the raw IR encoders. This is by way of rc_dev::encode_wakeup which should be set to true to make the allowed wakeup protocols the same as the set of raw IR encoders. As well as updating the sysfs interface to know which wakeup protocols are allowed for encode_wakeup drivers, also ensure that the IR decoders/encoders are loaded when an encode_wakeup driver is registered. Signed-off-by: NJames Hogan <james@albanarts.com> Signed-off-by: NAntti Seppälä <a.seppala@gmail.com> Cc: David Härdeman <david@hardeman.nu> Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
-
由 Antti Seppälä 提交于
Adding a simple Manchester encoder to rc-core. Manchester coding is used by at least RC-5 and RC-6 protocols and their variants. Signed-off-by: NAntti Seppälä <a.seppala@gmail.com> Signed-off-by: NJames Hogan <james@albanarts.com> Cc: David Härdeman <david@hardeman.nu> Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
-
由 James Hogan 提交于
Add a callback to raw ir handlers for encoding and modulating a scancode to a set of raw events. This could be used for transmit, or for converting a wakeup scancode filter to a form that is more suitable for raw hardware wake up filters. Signed-off-by: NJames Hogan <james@albanarts.com> Signed-off-by: NAntti Seppälä <a.seppala@gmail.com> Cc: David Härdeman <david@hardeman.nu> Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
-
- 27 7月, 2014 1 次提交
-
-
由 Marcel J.E. Mol 提交于
This protocol is found on Dreambox remotes [m.chehab@samsung.com: CodingStyle fixes and conflict fix] Signed-off-by: NMarcel Mol <marcel@mesa.nl> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
- 26 7月, 2014 1 次提交
-
-
由 David Härdeman 提交于
Now that the protocol is part of the scancode, it is pretty easy to merge the rc5 and streamzap decoders. An additional advantage is that the decoder is now stricter as it waits for the trailing silence before determining that a command is a valid rc5/streamzap command (which avoids collisions that I've seen with e.g. Sony protocols). Signed-off-by: NDavid Härdeman <david@hardeman.nu> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
- 07 2月, 2014 1 次提交
-
-
由 Mauro Carvalho Chehab 提交于
There are several left overs with my old email address. Remove their occurrences and add myself at CREDITS, to allow people to be able to reach me on my new addresses. Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
- 06 2月, 2014 1 次提交
-
-
由 James Hogan 提交于
Commit 1d184b0b ([media] media: rc: add raw decoder for Sharp protocol) added a new raw IR decoder for the sharp protocol, but didn't add the code to load the module at init as is done for other raw decoders, so add that code now. Signed-off-by: NJames Hogan <james.hogan@imgtec.com> Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
- 05 2月, 2014 1 次提交
-
-
由 James Hogan 提交于
Add a raw decoder for the Sharp protocol. It uses a pulse distance modulation with a pulse of 320us and a bit period of 2ms for a logical 1 and 1ms for a logical 0. The first part of the message consists of a 5-bit address, an 8-bit command, and two other bits, followed by a 40ms gap before the echo message which is an inverted version of the main message except for the address bits. Signed-off-by: NJames Hogan <james.hogan@imgtec.com> Cc: Mauro Carvalho Chehab <m.chehab@samsung.com> Cc: linux-media@vger.kernel.org Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
-
- 23 3月, 2013 1 次提交
-
-
由 David Härdeman 提交于
store_protocols() treats dev->rc_map.rc_type as a bitmap which is wrong for two reasons. First of all, it is pretty bogus to change the protocol type of the keymap just because the hardware has been asked to decode a different protocol. Second, dev->rc_map.rc_type is an enum (i.e. a single protocol) as pointed out by James Hogan <james.hogan@imgtec.com>. Fix both issues by introducing a separate enabled_protocols member to struct rc_dev. Signed-off-by: NDavid Härdeman <david@hardeman.nu> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
- 28 12月, 2012 1 次提交
-
-
由 Konstantin Khlebnikov 提交于
During modiles initialization rc-core schedules work which calls request_module() several times to load ir-*-decoder modules, but it does not wait or cancel this work on module unloading. rc-core should use request_module_nowait() instead, because it anyway cannot load modules synchronously or cancel/wait pending work on unloading, because this leads to deadlock on modules_mutex between several "modprobe" processes. Signed-off-by: NKonstantin Khlebnikov <khlebnikov@openvz.org> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
- 08 3月, 2012 1 次提交
-
-
由 James Hogan 提交于
Raw IR events are passed to the raw event thread through a kfifo. The size of the event struct is 12 bytes, and space for 512 events is reserved in the kfifo (6144 bytes), however this is rounded down to 4096 bytes (the next power of 2) by __kfifo_alloc(). 4096 bytes is not divisible by 12 therefore if the fifo fills up a third of a record will be written in the end of the kfifo by ir_raw_event_store() because the recsize of the fifo is 0 (it doesn't have records). When this is read by ir_raw_event_thread() a corrupted or partial record will be read, and in the case of a partial record the BUG_ON(retval != sizeof(ev)) gets hit too. According to samples/kfifo/record-example.c struct kfifo_rec_ptr_1 can handle records of a length between 0 and 255 bytes, so change struct ir_raw_event_ctrl to use that instead of struct kfifo. Signed-off-by: NJames Hogan <james.hogan@imgtec.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-