media: lirc: add module alias for lirc_dev
Subsystems (3)
Sean Young
maintainerPATCH 1/3 media: lirc: add module alias for lirc_dev
Since commit a60d64b15c20 ("media: lirc: lirc interface should not be a raw decoder"), there is no lirc_dev module any more. On Ubuntu 16.10, the /etc/init.d/lirc startup script attempts to load the lirc_dev module.
Since this module does not exist any more, this script fails. Add an alias so the correct module is loaded.
--- drivers/media/rc/lirc_dev.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/media/rc/lirc_dev.c +2 -0
@@ -815,3 +815,5 @@ void __exit lirc_dev_exit(void)class_destroy (lirc_class);unregister_chrdev_region (lirc_base_dev,RC_DEV_MAX ); } + +MODULE_ALIAS ("lirc_dev" );
Signature · 1 line
2.14.3
Sean Young
maintainerPATCH 2/3 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.
--- Documentation/media/uapi/rc/lirc-get-features.rst | 22 +++++++++++----------- drivers/media/rc/lirc_dev.c | 4 ++-- 2 files changed, 13 insertions(+), 13 deletions(-)
Documentation/media/uapi/rc/lirc-get-features.rst +11 -11
@@ -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:
@@ -181,11 +186,6 @@ LIRC features .. _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 ============
drivers/media/rc/lirc_dev.c +2 -2
@@ -402,13 +402,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)
Signature · 1 line
2.14.3
Sean Young
maintainerPATCH 3/3 media: lirc: lirc mode ioctls deal with current mode
In reply to Sean YoungThe ioctl change the current mode or return the current mode; they do not tell you which modes are possible (use the lirc features ioctl for that).
--- Documentation/media/uapi/rc/lirc-get-rec-mode.rst | 42 ++++++++++++++++------ Documentation/media/uapi/rc/lirc-get-send-mode.rst | 38 +++++++++++++++----- 2 files changed, 62 insertions(+), 18 deletions(-)
Documentation/media/uapi/rc/lirc-get-rec-mode.rst +32 -10
@@ -10,15 +10,15 @@ ioctls LIRC_GET_REC_MODE and LIRC_SET_REC_MODE Name ==== -LIRC_GET_REC_MODE/LIRC_SET_REC_MODE - Get/set supported receive modes. +LIRC_GET_REC_MODE/LIRC_SET_REC_MODE - Get/set current receive mode. Synopsis ======== -.. c:function:: int ioctl( int fd, LIRC_GET_REC_MODE, __u32 rx_modes) +.. c:function:: int ioctl( int fd, LIRC_GET_REC_MODE, __u32 *mode) :name: LIRC_GET_REC_MODE -.. c:function:: int ioctl( int fd, LIRC_SET_REC_MODE, __u32 rx_modes) +.. c:function:: int ioctl( int fd, LIRC_SET_REC_MODE, __u32 *mode) :name: LIRC_SET_REC_MODE Arguments
@@ -27,19 +27,41 @@ Arguments ``fd`` File descriptor returned by open(). -``rx_modes`` - Bitmask with the supported transmit modes. +``mode`` + Mode used for receive. Description =========== -Get/set supported receive modes. Only :ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>` -and :ref:`LIRC_MODE_SCANCODE <lirc-mode-scancode>` are supported. +Get and set the current receive mode. Only +:ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>` and +:ref:`LIRC_MODE_SCANCODE <lirc-mode-scancode>` are supported. Use :ref:`lirc_get_features` to find out which modes the driver supports. Return Value ============ -On success 0 is returned, on error -1 and the ``errno`` variable is set -appropriately. The generic error codes are described at the -:ref:`Generic Error Codes <gen-errors>` chapter. +.. tabularcolumns:: |p{2.5cm}|p{15.0cm}| + +.. flat-table:: + :header-rows: 0 + :stub-columns: 0 + + + - .. row 1 + + - ``ENODEV`` + + - Device not available. + + - .. row 2 + + - ``ENOTTY`` + + - Device does not support receiving. + + - .. row 3 + + - ``EINVAL`` + + - Invalid mode or invalid mode for this device.
Documentation/media/uapi/rc/lirc-get-send-mode.rst +30 -8
@@ -10,15 +10,15 @@ ioctls LIRC_GET_SEND_MODE and LIRC_SET_SEND_MODE Name ==== -LIRC_GET_SEND_MODE/LIRC_SET_SEND_MODE - Get/set supported transmit mode. +LIRC_GET_SEND_MODE/LIRC_SET_SEND_MODE - Get/set current transmit mode. Synopsis ======== -.. c:function:: int ioctl( int fd, LIRC_GET_SEND_MODE, __u32 *tx_modes ) +.. c:function:: int ioctl( int fd, LIRC_GET_SEND_MODE, __u32 *mode ) :name: LIRC_GET_SEND_MODE -.. c:function:: int ioctl( int fd, LIRC_SET_SEND_MODE, __u32 *tx_modes ) +.. c:function:: int ioctl( int fd, LIRC_SET_SEND_MODE, __u32 *mode ) :name: LIRC_SET_SEND_MODE Arguments
@@ -27,8 +27,8 @@ Arguments ``fd`` File descriptor returned by open(). -``tx_modes`` - Bitmask with the supported transmit modes. +``mode`` + The mode used for transmitting. Description
@@ -44,6 +44,28 @@ modes the driver supports. Return Value ============ -On success 0 is returned, on error -1 and the ``errno`` variable is set -appropriately. The generic error codes are described at the -:ref:`Generic Error Codes <gen-errors>` chapter. + +.. tabularcolumns:: |p{2.5cm}|p{15.0cm}| + +.. flat-table:: + :header-rows: 0 + :stub-columns: 0 + + + - .. row 1 + + - ``ENODEV`` + + - Device not available. + + - .. row 2 + + - ``ENOTTY`` + + - Device does not support transmitting. + + - .. row 3 + + - ``EINVAL`` + + - Invalid mode or invalid mode for this device.
Signature · 1 line
2.14.3