aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Young <sean@mess.org>2017-12-28 19:58:26 +0000
committerSean Young <sean@mess.org>2018-01-05 15:13:14 +0000
commitbd312d461b488cc1284c407d585e22b64536c6d8 (patch)
tree0f130caec3e2b32d8fda0b7ec0cabbce9a1a86d3
parent75ceaa75e20ca700c4cf95c56a166cc2b0627e8f (diff)
media: lirc: lirc daemon fails to detect raw IR device
Since commit 9b6192589be7 ("media: lirc: implement scancode sending"), and commit de142c324106 ("media: lirc: implement reading scancode") the lirc features ioctl for raw IR devices advertises two modes for sending and receiving. The lirc daemon now fails to detect a raw IR device, both for transmit and receive. To fix this, do not advertise the scancode mode in the lirc features for raw IR devices (however do keep it for scancode devices). The mode can still be used via the LIRC_SET_{REC,SEND}_MODE ioctl. Signed-off-by: Sean Young <sean@mess.org>
-rw-r--r--Documentation/media/uapi/rc/lirc-get-features.rst24
-rw-r--r--drivers/media/rc/lirc_dev.c4
2 files changed, 13 insertions, 15 deletions
diff --git a/Documentation/media/uapi/rc/lirc-get-features.rst b/Documentation/media/uapi/rc/lirc-get-features.rst
index 3ee44067de63..889a8807037b 100644
--- a/Documentation/media/uapi/rc/lirc-get-features.rst
+++ b/Documentation/media/uapi/rc/lirc-get-features.rst
@@ -55,8 +55,11 @@ LIRC features
``LIRC_CAN_REC_MODE2``
- The driver is capable of receiving using
- :ref:`LIRC_MODE_MODE2 <lirc-mode-MODE2>`.
+ This is raw IR driver for receiving. This means that
+ :ref:`LIRC_MODE_MODE2 <lirc-mode-MODE2>` is used. This also implies
+ that :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported,
+ as long as the kernel is recent enough. Use the
+ :ref:`lirc_set_rec_mode` to switch modes.
.. _LIRC-CAN-REC-LIRCCODE:
@@ -68,9 +71,8 @@ LIRC features
``LIRC_CAN_REC_SCANCODE``
- The driver is capable of receiving using
- :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>`.
-
+ This is a scancode driver for receiving. This means that
+ :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is used.
.. _LIRC-CAN-SET-SEND-CARRIER:
@@ -164,7 +166,10 @@ LIRC features
``LIRC_CAN_SEND_PULSE``
The driver supports sending (also called as IR blasting or IR TX) using
- :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>`.
+ :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>`. This implies that
+ :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported for
+ transmit, as long as the kernel is recent enough. Use the
+ :ref:`lirc_set_send_mode` to switch modes.
.. _LIRC-CAN-SEND-MODE2:
@@ -179,13 +184,6 @@ LIRC features
Unused. Kept just to avoid breaking uAPI.
-.. _LIRC-CAN-SEND-SCANCODE:
-
-``LIRC_CAN_SEND_SCANCODE``
-
- The driver supports sending (also called as IR blasting or IR TX) using
- :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>`.
-
Return Value
============
diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c
index 13ef0475d901..6ef5b24eb1d8 100644
--- a/drivers/media/rc/lirc_dev.c
+++ b/drivers/media/rc/lirc_dev.c
@@ -403,13 +403,13 @@ static long ir_lirc_ioctl(struct file *file, unsigned int cmd,
val |= LIRC_CAN_REC_SCANCODE;
if (dev->driver_type == RC_DRIVER_IR_RAW) {
- val |= LIRC_CAN_REC_MODE2 | LIRC_CAN_REC_SCANCODE;
+ val |= LIRC_CAN_REC_MODE2;
if (dev->rx_resolution)
val |= LIRC_CAN_GET_REC_RESOLUTION;
}
if (dev->tx_ir) {
- val |= LIRC_CAN_SEND_PULSE | LIRC_CAN_SEND_SCANCODE;
+ val |= LIRC_CAN_SEND_PULSE;
if (dev->s_tx_mask)
val |= LIRC_CAN_SET_TRANSMITTER_MASK;
if (dev->s_tx_carrier)

Privacy Policy