Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1513797 > unrolled thread
| Started by | Andi Shyti <andi.shyti@samsung.com> |
|---|---|
| First post | 2016-11-02 11:50 +0100 |
| Last post | 2016-11-02 21:00 +0100 |
| Articles | 5 — 4 participants |
Back to article view | Back to linux.kernel
[PATCH v3 0/6] Add support for IR transmitters Andi Shyti <andi.shyti@samsung.com> - 2016-11-02 11:50 +0100
[PATCH v3 3/6] [media] rc-core: add support for IR raw transmitters Andi Shyti <andi.shyti@samsung.com> - 2016-11-02 11:50 +0100
Re: [PATCH v3 3/6] [media] rc-core: add support for IR raw transmitters kbuild test robot <lkp@intel.com> - 2016-11-02 13:40 +0100
Re: [PATCH v3 0/6] Add support for IR transmitters Sean Young <sean@mess.org> - 2016-11-02 18:30 +0100
Re: [PATCH v3 0/6] Add support for IR transmitters Heiner Kallweit <hkallweit1@gmail.com> - 2016-11-02 21:00 +0100
| From | Andi Shyti <andi.shyti@samsung.com> |
|---|---|
| Date | 2016-11-02 11:50 +0100 |
| Subject | [PATCH v3 0/6] Add support for IR transmitters |
| Message-ID | <sz1hf-56k-5@gated-at.bofh.it> |
Hi,
The main goal is to add support in the rc framework for IR
transmitters, which currently is only supported by lirc but that
is not the preferred way.
The last patch adds support for an IR transmitter driven by
the MOSI line of an SPI controller, it's the case of the Samsung
TM2(e) board which support is currently ongoing.
The last patch adds support for an IR transmitter driven by
the MOSI line of an SPI controller, it's the case of the Samsung
TM2(e) board which support is currently ongoing.
Thanks Sean for your prompt reviews.
Andi
Changelog from version 1:
The RFC is now PATCH. The main difference is that this version
doesn't try to add the any bit streaming protocol and doesn't
modify any LIRC interface specification.
patch 1: updates all the drivers using rc_allocate_device
patch 2: fixed errors and warning reported from the kbuild test
robot
patch 5: this patch has been dropped and replaced with a new one
which avoids waiting for transmitters.
patch 6: added new properties to the dts specification
patch 7: the driver uses the pulse/space input and converts it to
a bit stream.
Changelog from version 2:
The original patch number 5 has been abandoned because it was not
bringing much benenfit.
patch 1: rebased on the new kernel.
patch 3: removed the sysfs attribute protocol for transmitters
patch 5: the binding has been moved to the leds section instead
of the media. Fixed all the comments from Rob
patch 6: fixed all the comments from Sean added also Sean's
review.
Andi Shyti (6):
[media] rc-main: assign driver type during allocation
[media] rc-main: split setup and unregister functions
[media] rc-core: add support for IR raw transmitters
[media] rc-ir-raw: do not generate any receiving thread for raw
transmitters
Documentation: bindings: add documentation for ir-spi device driver
[media] rc: add support for IR LEDs driven through SPI
.../devicetree/bindings/leds/spi-ir-led.txt | 29 +++
drivers/hid/hid-picolcd_cir.c | 3 +-
drivers/media/common/siano/smsir.c | 3 +-
drivers/media/i2c/ir-kbd-i2c.c | 2 +-
drivers/media/pci/bt8xx/bttv-input.c | 2 +-
drivers/media/pci/cx23885/cx23885-input.c | 11 +-
drivers/media/pci/cx88/cx88-input.c | 3 +-
drivers/media/pci/dm1105/dm1105.c | 3 +-
drivers/media/pci/mantis/mantis_input.c | 2 +-
drivers/media/pci/saa7134/saa7134-input.c | 2 +-
drivers/media/pci/smipcie/smipcie-ir.c | 3 +-
drivers/media/pci/ttpci/budget-ci.c | 2 +-
drivers/media/rc/Kconfig | 9 +
drivers/media/rc/Makefile | 1 +
drivers/media/rc/ati_remote.c | 3 +-
drivers/media/rc/ene_ir.c | 3 +-
drivers/media/rc/fintek-cir.c | 3 +-
drivers/media/rc/gpio-ir-recv.c | 3 +-
drivers/media/rc/igorplugusb.c | 3 +-
drivers/media/rc/iguanair.c | 3 +-
drivers/media/rc/img-ir/img-ir-hw.c | 2 +-
drivers/media/rc/img-ir/img-ir-raw.c | 3 +-
drivers/media/rc/imon.c | 3 +-
drivers/media/rc/ir-hix5hd2.c | 3 +-
drivers/media/rc/ir-spi.c | 205 +++++++++++++++++++++
drivers/media/rc/ite-cir.c | 3 +-
drivers/media/rc/mceusb.c | 3 +-
drivers/media/rc/meson-ir.c | 3 +-
drivers/media/rc/nuvoton-cir.c | 3 +-
drivers/media/rc/rc-ir-raw.c | 17 +-
drivers/media/rc/rc-loopback.c | 3 +-
drivers/media/rc/rc-main.c | 181 ++++++++++--------
drivers/media/rc/redrat3.c | 3 +-
drivers/media/rc/st_rc.c | 3 +-
drivers/media/rc/streamzap.c | 3 +-
drivers/media/rc/sunxi-cir.c | 3 +-
drivers/media/rc/ttusbir.c | 3 +-
drivers/media/rc/winbond-cir.c | 3 +-
drivers/media/usb/au0828/au0828-input.c | 3 +-
drivers/media/usb/cx231xx/cx231xx-input.c | 2 +-
drivers/media/usb/dvb-usb-v2/dvb_usb_core.c | 3 +-
drivers/media/usb/dvb-usb/dvb-usb-remote.c | 3 +-
drivers/media/usb/em28xx/em28xx-input.c | 2 +-
drivers/media/usb/tm6000/tm6000-input.c | 3 +-
drivers/staging/media/cec/cec-core.c | 3 +-
include/media/rc-core.h | 13 +-
46 files changed, 409 insertions(+), 163 deletions(-)
create mode 100644 Documentation/devicetree/bindings/leds/spi-ir-led.txt
create mode 100644 drivers/media/rc/ir-spi.c
--
2.10.1
[toc] | [next] | [standalone]
| From | Andi Shyti <andi.shyti@samsung.com> |
|---|---|
| Date | 2016-11-02 11:50 +0100 |
| Subject | [PATCH v3 3/6] [media] rc-core: add support for IR raw transmitters |
| Message-ID | <sz1hf-56k-19@gated-at.bofh.it> |
| In reply to | #1513797 |
IR raw transmitter driver type is specified in the enum
rc_driver_type as RC_DRIVER_IR_RAW_TX which includes all those
devices that transmit raw stream of bit to a receiver.
The data are provided by userspace applications, therefore they
don't need any input device allocation, but still they need to be
registered as raw devices.
Suggested-by: Sean Young <sean@mess.org>
Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
---
drivers/media/rc/rc-main.c | 42 +++++++++++++++++++++++++-----------------
include/media/rc-core.h | 9 ++++++---
2 files changed, 31 insertions(+), 20 deletions(-)
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
index 7ab1b32..0d2f440 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
@@ -1363,20 +1363,24 @@ struct rc_dev *rc_allocate_device(enum rc_driver_type type)
if (!dev)
return NULL;
- dev->input_dev = input_allocate_device();
- if (!dev->input_dev) {
- kfree(dev);
- return NULL;
- }
+ if (type != RC_DRIVER_IR_RAW_TX) {
+ dev->input_dev = input_allocate_device();
+ if (!dev->input_dev) {
+ kfree(dev);
+ return NULL;
+ }
+
+ dev->input_dev->getkeycode = ir_getkeycode;
+ dev->input_dev->setkeycode = ir_setkeycode;
+ input_set_drvdata(dev->input_dev, dev);
- dev->input_dev->getkeycode = ir_getkeycode;
- dev->input_dev->setkeycode = ir_setkeycode;
- input_set_drvdata(dev->input_dev, dev);
+ setup_timer(&dev->timer_keyup, ir_timer_keyup,
+ (unsigned long)dev);
- spin_lock_init(&dev->rc_map.lock);
- spin_lock_init(&dev->keylock);
+ spin_lock_init(&dev->rc_map.lock);
+ spin_lock_init(&dev->keylock);
+ }
mutex_init(&dev->lock);
- setup_timer(&dev->timer_keyup, ir_timer_keyup, (unsigned long)dev);
dev->dev.type = &rc_dev_type;
dev->dev.class = &rc_class;
@@ -1476,7 +1480,7 @@ static int rc_setup_rx_device(struct rc_dev *dev)
static void rc_free_rx_device(struct rc_dev *dev)
{
- if (!dev)
+ if (!dev || dev->driver_type == RC_DRIVER_IR_RAW_TX)
return;
ir_free_table(&dev->rc_map);
@@ -1506,7 +1510,8 @@ int rc_register_device(struct rc_dev *dev)
atomic_set(&dev->initialized, 0);
dev->dev.groups = dev->sysfs_groups;
- dev->sysfs_groups[attr++] = &rc_dev_protocol_attr_grp;
+ if (dev->driver_type != RC_DRIVER_IR_RAW_TX)
+ dev->sysfs_groups[attr++] = &rc_dev_protocol_attr_grp;
if (dev->s_filter)
dev->sysfs_groups[attr++] = &rc_dev_filter_attr_grp;
if (dev->s_wakeup_filter)
@@ -1524,11 +1529,14 @@ int rc_register_device(struct rc_dev *dev)
dev->input_name ?: "Unspecified device", path ?: "N/A");
kfree(path);
- rc = rc_setup_rx_device(dev);
- if (rc)
- goto out_dev;
+ if (dev->driver_type != RC_DRIVER_IR_RAW_TX) {
+ rc = rc_setup_rx_device(dev);
+ if (rc)
+ goto out_dev;
+ }
- if (dev->driver_type == RC_DRIVER_IR_RAW) {
+ if (dev->driver_type == RC_DRIVER_IR_RAW ||
+ dev->driver_type == RC_DRIVER_IR_RAW_TX) {
if (!raw_init) {
request_module_nowait("ir-lirc-codec");
raw_init = true;
diff --git a/include/media/rc-core.h b/include/media/rc-core.h
index f8ca557..b6f7419 100644
--- a/include/media/rc-core.h
+++ b/include/media/rc-core.h
@@ -32,13 +32,16 @@ do { \
/**
* enum rc_driver_type - type of the RC output
*
- * @RC_DRIVER_SCANCODE: Driver or hardware generates a scancode
- * @RC_DRIVER_IR_RAW: Driver or hardware generates pulse/space sequences.
- * It needs a Infra-Red pulse/space decoder
+ * @RC_DRIVER_SCANCODE: Driver or hardware generates a scancode
+ * @RC_DRIVER_IR_RAW: Driver or hardware generates pulse/space sequences.
+ * It needs a Infra-Red pulse/space decoder
+ * @RC_DRIVER_IR_RAW_TX: Device transmitter only,
+ driver requires pulse/space data sequence.
*/
enum rc_driver_type {
RC_DRIVER_SCANCODE = 0,
RC_DRIVER_IR_RAW,
+ RC_DRIVER_IR_RAW_TX,
};
/**
--
2.10.1
[toc] | [prev] | [next] | [standalone]
| From | kbuild test robot <lkp@intel.com> |
|---|---|
| Date | 2016-11-02 13:40 +0100 |
| Subject | Re: [PATCH v3 3/6] [media] rc-core: add support for IR raw transmitters |
| Message-ID | <sz2ZH-6kU-3@gated-at.bofh.it> |
| In reply to | #1513801 |
[Multipart message — attachments visible in raw view] — view raw
Hi Andi,
[auto build test WARNING on hid/for-next]
[also build test WARNING on v4.9-rc3]
[cannot apply to linuxtv-media/master next-20161028]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Andi-Shyti/Add-support-for-IR-transmitters/20161102-184657
base: https://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid.git for-next
reproduce: make htmldocs
All warnings (new ones prefixed by >>):
make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
include/linux/init.h:1: warning: no structured comments found
include/linux/workqueue.h:392: warning: No description found for parameter '...'
include/linux/workqueue.h:392: warning: Excess function parameter 'args' description in 'alloc_workqueue'
include/linux/workqueue.h:413: warning: No description found for parameter '...'
include/linux/workqueue.h:413: warning: Excess function parameter 'args' description in 'alloc_ordered_workqueue'
include/linux/kthread.h:26: warning: No description found for parameter '...'
kernel/sys.c:1: warning: no structured comments found
drivers/dma-buf/seqno-fence.c:1: warning: no structured comments found
include/linux/fence-array.h:61: warning: No description found for parameter 'fence'
include/sound/core.h:324: warning: No description found for parameter '...'
include/sound/core.h:335: warning: No description found for parameter '...'
include/sound/core.h:388: warning: No description found for parameter '...'
include/media/media-entity.h:1054: warning: No description found for parameter '...'
>> include/media/rc-core.h:39: warning: bad line: driver requires pulse/space data sequence.
include/net/mac80211.h:2148: WARNING: Inline literal start-string without end-string.
include/net/mac80211.h:2153: WARNING: Inline literal start-string without end-string.
include/net/mac80211.h:3202: ERROR: Unexpected indentation.
include/net/mac80211.h:3205: WARNING: Block quote ends without a blank line; unexpected unindent.
include/net/mac80211.h:3207: ERROR: Unexpected indentation.
include/net/mac80211.h:3208: WARNING: Block quote ends without a blank line; unexpected unindent.
include/net/mac80211.h:1435: WARNING: Inline emphasis start-string without end-string.
include/net/mac80211.h:1172: WARNING: Inline literal start-string without end-string.
include/net/mac80211.h:1173: WARNING: Inline literal start-string without end-string.
include/net/mac80211.h:814: ERROR: Unexpected indentation.
include/net/mac80211.h:815: WARNING: Block quote ends without a blank line; unexpected unindent.
include/net/mac80211.h:820: ERROR: Unexpected indentation.
include/net/mac80211.h:821: WARNING: Block quote ends without a blank line; unexpected unindent.
include/net/mac80211.h:2489: ERROR: Unexpected indentation.
include/net/mac80211.h:1768: ERROR: Unexpected indentation.
include/net/mac80211.h:1772: WARNING: Block quote ends without a blank line; unexpected unindent.
include/net/mac80211.h:1746: WARNING: Inline emphasis start-string without end-string.
kernel/sched/fair.c:7252: WARNING: Inline emphasis start-string without end-string.
kernel/time/timer.c:1230: ERROR: Unexpected indentation.
kernel/time/timer.c:1232: ERROR: Unexpected indentation.
kernel/time/timer.c:1233: WARNING: Block quote ends without a blank line; unexpected unindent.
include/linux/wait.h:121: WARNING: Block quote ends without a blank line; unexpected unindent.
include/linux/wait.h:124: ERROR: Unexpected indentation.
include/linux/wait.h:126: WARNING: Block quote ends without a blank line; unexpected unindent.
kernel/time/hrtimer.c:1021: WARNING: Block quote ends without a blank line; unexpected unindent.
kernel/signal.c:317: WARNING: Inline literal start-string without end-string.
drivers/base/firmware_class.c:1348: WARNING: Bullet list ends without a blank line; unexpected unindent.
drivers/message/fusion/mptbase.c:5054: WARNING: Definition list ends without a blank line; unexpected unindent.
drivers/tty/serial/serial_core.c:1893: WARNING: Definition list ends without a blank line; unexpected unindent.
include/linux/spi/spi.h:369: ERROR: Unexpected indentation.
WARNING: dvipng command 'dvipng' cannot be run (needed for math display), check the imgmath_dvipng setting
vim +39 include/media/rc-core.h
23 #include <media/rc-map.h>
24
25 extern int rc_core_debug;
26 #define IR_dprintk(level, fmt, ...) \
27 do { \
28 if (rc_core_debug >= level) \
29 printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); \
30 } while (0)
31
32 /**
33 * enum rc_driver_type - type of the RC output
34 *
35 * @RC_DRIVER_SCANCODE: Driver or hardware generates a scancode
36 * @RC_DRIVER_IR_RAW: Driver or hardware generates pulse/space sequences.
37 * It needs a Infra-Red pulse/space decoder
38 * @RC_DRIVER_IR_RAW_TX: Device transmitter only,
> 39 driver requires pulse/space data sequence.
40 */
41 enum rc_driver_type {
42 RC_DRIVER_SCANCODE = 0,
43 RC_DRIVER_IR_RAW,
44 RC_DRIVER_IR_RAW_TX,
45 };
46
47 /**
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[toc] | [prev] | [next] | [standalone]
| From | Sean Young <sean@mess.org> |
|---|---|
| Date | 2016-11-02 18:30 +0100 |
| Message-ID | <sz7wl-Mi-9@gated-at.bofh.it> |
| In reply to | #1513797 |
On Wed, Nov 02, 2016 at 07:40:04PM +0900, Andi Shyti wrote: > The main goal is to add support in the rc framework for IR > transmitters, which currently is only supported by lirc but that > is not the preferred way. > > The last patch adds support for an IR transmitter driven by > the MOSI line of an SPI controller, it's the case of the Samsung > TM2(e) board which support is currently ongoing. > > The last patch adds support for an IR transmitter driven by > the MOSI line of an SPI controller, it's the case of the Samsung > TM2(e) board which support is currently ongoing. Looks great! For the whole series: Reviewed-by: Sean Young <sean@mess.org> Thanks, Sean
[toc] | [prev] | [next] | [standalone]
| From | Heiner Kallweit <hkallweit1@gmail.com> |
|---|---|
| Date | 2016-11-02 21:00 +0100 |
| Message-ID | <sz9Rw-26z-17@gated-at.bofh.it> |
| In reply to | #1513797 |
Am 02.11.2016 um 11:40 schrieb Andi Shyti: > Hi, > > The main goal is to add support in the rc framework for IR > transmitters, which currently is only supported by lirc but that > is not the preferred way. > > The last patch adds support for an IR transmitter driven by > the MOSI line of an SPI controller, it's the case of the Samsung > TM2(e) board which support is currently ongoing. > > The last patch adds support for an IR transmitter driven by > the MOSI line of an SPI controller, it's the case of the Samsung > TM2(e) board which support is currently ongoing. > > Thanks Sean for your prompt reviews. > > Andi > > Changelog from version 1: > > The RFC is now PATCH. The main difference is that this version > doesn't try to add the any bit streaming protocol and doesn't > modify any LIRC interface specification. > > patch 1: updates all the drivers using rc_allocate_device > patch 2: fixed errors and warning reported from the kbuild test > robot > patch 5: this patch has been dropped and replaced with a new one > which avoids waiting for transmitters. > patch 6: added new properties to the dts specification > patch 7: the driver uses the pulse/space input and converts it to > a bit stream. > > > Changelog from version 2: > > The original patch number 5 has been abandoned because it was not > bringing much benenfit. > > patch 1: rebased on the new kernel. > patch 3: removed the sysfs attribute protocol for transmitters > patch 5: the binding has been moved to the leds section instead > of the media. Fixed all the comments from Rob > patch 6: fixed all the comments from Sean added also Sean's > review. > > Andi Shyti (6): > [media] rc-main: assign driver type during allocation > [media] rc-main: split setup and unregister functions > [media] rc-core: add support for IR raw transmitters > [media] rc-ir-raw: do not generate any receiving thread for raw > transmitters > Documentation: bindings: add documentation for ir-spi device driver > [media] rc: add support for IR LEDs driven through SPI > Hi Andi, at least patches 1 and 2 conflict with recent extensions. See commits ddbf7d5a698c "rc: core: add managed versions of rc_allocate_device and rc_register_device" and b6f3ece38733 "[media] rc: nuvoton: use managed versions of rc_allocate_device and rc_register_device". It would be good if you could rebase your patch set on top of the latest master branch of media tree. Most likely you will have to make changes to the recently introduced managed versions of rc_allocate_device and rc_register_device. Rgds, Heiner
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web