mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 23:21:31 +00:00
media: lirc: always send timeout reports
Without timeout reports, it is impossible to decode many protocols since it is not known when the transmission ends. timeout reports are sent by default, but can be turned off. There is no reason to turn them off, and I cannot find any software which does this, so we can safely remove it. This makes the ioctl LIRC_SET_REC_TIMEOUT_REPORTS a no-op. Signed-off-by: Sean Young <sean@mess.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
9b4d7b5c81
commit
74747dda58
@ -33,6 +33,7 @@ ignore define LIRC_CAN_SET_REC_DUTY_CYCLE
|
|||||||
# Obsolete ioctls
|
# Obsolete ioctls
|
||||||
|
|
||||||
ignore ioctl LIRC_GET_LENGTH
|
ignore ioctl LIRC_GET_LENGTH
|
||||||
|
ignore ioctl LIRC_SET_REC_TIMEOUT_REPORTS
|
||||||
|
|
||||||
# rc protocols
|
# rc protocols
|
||||||
|
|
||||||
@ -73,6 +74,7 @@ ignore define PULSE_MASK
|
|||||||
|
|
||||||
ignore define LIRC_MODE2_SPACE
|
ignore define LIRC_MODE2_SPACE
|
||||||
ignore define LIRC_MODE2_PULSE
|
ignore define LIRC_MODE2_PULSE
|
||||||
|
ignore define LIRC_MODE2_TIMEOUT
|
||||||
|
|
||||||
ignore define LIRC_VALUE_MASK
|
ignore define LIRC_VALUE_MASK
|
||||||
ignore define LIRC_MODE2_MASK
|
ignore define LIRC_MODE2_MASK
|
||||||
|
@ -117,11 +117,9 @@ on the following table.
|
|||||||
|
|
||||||
``LIRC_MODE2_TIMEOUT``
|
``LIRC_MODE2_TIMEOUT``
|
||||||
|
|
||||||
If timeout reports are enabled with
|
When the timeout set with :ref:`lirc_set_rec_timeout` expires due
|
||||||
:ref:`lirc_set_rec_timeout_reports`, when the timeout set with
|
to no IR being detected, this packet will be sent, with the number
|
||||||
:ref:`lirc_set_rec_timeout` expires due to no IR being detected,
|
of microseconds with no IR.
|
||||||
this packet will be sent, with the number of microseconds with
|
|
||||||
no IR.
|
|
||||||
|
|
||||||
.. _lirc-mode-pulse:
|
.. _lirc-mode-pulse:
|
||||||
|
|
||||||
|
@ -22,6 +22,5 @@ LIRC Function Reference
|
|||||||
lirc-set-rec-carrier-range
|
lirc-set-rec-carrier-range
|
||||||
lirc-set-send-carrier
|
lirc-set-send-carrier
|
||||||
lirc-set-transmitter-mask
|
lirc-set-transmitter-mask
|
||||||
lirc-set-rec-timeout-reports
|
|
||||||
lirc-set-measure-carrier-mode
|
lirc-set-measure-carrier-mode
|
||||||
lirc-set-wideband-receiver
|
lirc-set-wideband-receiver
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
|
|
||||||
.. c:namespace:: RC
|
|
||||||
|
|
||||||
.. _lirc_set_rec_timeout_reports:
|
|
||||||
|
|
||||||
**********************************
|
|
||||||
ioctl LIRC_SET_REC_TIMEOUT_REPORTS
|
|
||||||
**********************************
|
|
||||||
|
|
||||||
Name
|
|
||||||
====
|
|
||||||
|
|
||||||
LIRC_SET_REC_TIMEOUT_REPORTS - enable or disable timeout reports for IR receive
|
|
||||||
|
|
||||||
Synopsis
|
|
||||||
========
|
|
||||||
|
|
||||||
.. c:macro:: LIRC_SET_REC_TIMEOUT_REPORTS
|
|
||||||
|
|
||||||
``int ioctl(int fd, LIRC_SET_REC_TIMEOUT_REPORTS, __u32 *enable)``
|
|
||||||
|
|
||||||
Arguments
|
|
||||||
=========
|
|
||||||
|
|
||||||
``fd``
|
|
||||||
File descriptor returned by open().
|
|
||||||
|
|
||||||
``enable``
|
|
||||||
enable = 1 means enable timeout report, enable = 0 means disable timeout
|
|
||||||
reports.
|
|
||||||
|
|
||||||
Description
|
|
||||||
===========
|
|
||||||
|
|
||||||
.. _lirc-mode2-timeout:
|
|
||||||
|
|
||||||
Enable or disable timeout reports for IR receive. By default, timeout reports
|
|
||||||
should be turned off.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
This ioctl is only valid for :ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>`.
|
|
||||||
|
|
||||||
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.
|
|
@ -102,8 +102,6 @@ void lirc_raw_event(struct rc_dev *dev, struct ir_raw_event ev)
|
|||||||
|
|
||||||
spin_lock_irqsave(&dev->lirc_fh_lock, flags);
|
spin_lock_irqsave(&dev->lirc_fh_lock, flags);
|
||||||
list_for_each_entry(fh, &dev->lirc_fh, list) {
|
list_for_each_entry(fh, &dev->lirc_fh, list) {
|
||||||
if (LIRC_IS_TIMEOUT(sample) && !fh->send_timeout_reports)
|
|
||||||
continue;
|
|
||||||
if (kfifo_put(&fh->rawir, sample))
|
if (kfifo_put(&fh->rawir, sample))
|
||||||
wake_up_poll(&fh->wait_poll, EPOLLIN | EPOLLRDNORM);
|
wake_up_poll(&fh->wait_poll, EPOLLIN | EPOLLRDNORM);
|
||||||
}
|
}
|
||||||
@ -166,7 +164,6 @@ static int lirc_open(struct inode *inode, struct file *file)
|
|||||||
|
|
||||||
fh->send_mode = LIRC_MODE_PULSE;
|
fh->send_mode = LIRC_MODE_PULSE;
|
||||||
fh->rc = dev;
|
fh->rc = dev;
|
||||||
fh->send_timeout_reports = true;
|
|
||||||
|
|
||||||
if (dev->driver_type == RC_DRIVER_SCANCODE)
|
if (dev->driver_type == RC_DRIVER_SCANCODE)
|
||||||
fh->rec_mode = LIRC_MODE_SCANCODE;
|
fh->rec_mode = LIRC_MODE_SCANCODE;
|
||||||
@ -570,8 +567,6 @@ static long lirc_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
|||||||
case LIRC_SET_REC_TIMEOUT_REPORTS:
|
case LIRC_SET_REC_TIMEOUT_REPORTS:
|
||||||
if (dev->driver_type != RC_DRIVER_IR_RAW)
|
if (dev->driver_type != RC_DRIVER_IR_RAW)
|
||||||
ret = -ENOTTY;
|
ret = -ENOTTY;
|
||||||
else
|
|
||||||
fh->send_timeout_reports = !!val;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -59,7 +59,6 @@ enum rc_filter_type {
|
|||||||
* @rc: rcdev for this lirc chardev
|
* @rc: rcdev for this lirc chardev
|
||||||
* @carrier_low: when setting the carrier range, first the low end must be
|
* @carrier_low: when setting the carrier range, first the low end must be
|
||||||
* set with an ioctl and then the high end with another ioctl
|
* set with an ioctl and then the high end with another ioctl
|
||||||
* @send_timeout_reports: report timeouts in lirc raw IR.
|
|
||||||
* @rawir: queue for incoming raw IR
|
* @rawir: queue for incoming raw IR
|
||||||
* @scancodes: queue for incoming decoded scancodes
|
* @scancodes: queue for incoming decoded scancodes
|
||||||
* @wait_poll: poll struct for lirc device
|
* @wait_poll: poll struct for lirc device
|
||||||
@ -72,7 +71,6 @@ struct lirc_fh {
|
|||||||
struct list_head list;
|
struct list_head list;
|
||||||
struct rc_dev *rc;
|
struct rc_dev *rc;
|
||||||
int carrier_low;
|
int carrier_low;
|
||||||
bool send_timeout_reports;
|
|
||||||
DECLARE_KFIFO_PTR(rawir, unsigned int);
|
DECLARE_KFIFO_PTR(rawir, unsigned int);
|
||||||
DECLARE_KFIFO_PTR(scancodes, struct lirc_scancode);
|
DECLARE_KFIFO_PTR(scancodes, struct lirc_scancode);
|
||||||
wait_queue_head_t wait_poll;
|
wait_queue_head_t wait_poll;
|
||||||
|
Loading…
Reference in New Issue
Block a user