media: rc: add ioctl to get the current timeout

Since the kernel now modifies the timeout, make it possible to retrieve
the current value.

Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
Sean Young 2018-03-23 16:59:52 -04:00 committed by Mauro Carvalho Chehab
parent a86d6df84a
commit 95d1544eb6
4 changed files with 23 additions and 5 deletions

View File

@ -17,6 +17,7 @@ LIRC Function Reference
lirc-get-rec-resolution
lirc-set-send-duty-cycle
lirc-get-timeout
lirc-get-rec-timeout
lirc-set-rec-timeout
lirc-set-rec-carrier
lirc-set-rec-carrier-range

View File

@ -1,19 +1,23 @@
.. -*- coding: utf-8; mode: rst -*-
.. _lirc_set_rec_timeout:
.. _lirc_get_rec_timeout:
**************************
ioctl LIRC_SET_REC_TIMEOUT
**************************
***************************************************
ioctl LIRC_GET_REC_TIMEOUT and LIRC_SET_REC_TIMEOUT
***************************************************
Name
====
LIRC_SET_REC_TIMEOUT - sets the integer value for IR inactivity timeout.
LIRC_GET_REC_TIMEOUT/LIRC_SET_REC_TIMEOUT - Get/set the integer value for IR inactivity timeout.
Synopsis
========
.. c:function:: int ioctl( int fd, LIRC_GET_REC_TIMEOUT, __u32 *timeout )
:name: LIRC_GET_REC_TIMEOUT
.. c:function:: int ioctl( int fd, LIRC_SET_REC_TIMEOUT, __u32 *timeout )
:name: LIRC_SET_REC_TIMEOUT
@ -30,7 +34,7 @@ Arguments
Description
===========
Sets the integer value for IR inactivity timeout.
Get and set the integer value for IR inactivity timeout.
If supported by the hardware, setting it to 0 disables all hardware timeouts
and data should be reported as soon as possible. If the exact value

View File

@ -575,6 +575,13 @@ static long ir_lirc_ioctl(struct file *file, unsigned int cmd,
}
break;
case LIRC_GET_REC_TIMEOUT:
if (!dev->timeout)
ret = -ENOTTY;
else
val = DIV_ROUND_UP(dev->timeout, 1000);
break;
case LIRC_SET_REC_TIMEOUT_REPORTS:
if (!dev->timeout)
ret = -ENOTTY;

View File

@ -133,6 +133,12 @@
#define LIRC_SET_WIDEBAND_RECEIVER _IOW('i', 0x00000023, __u32)
/*
* Return the recording timeout, which is either set by
* the ioctl LIRC_SET_REC_TIMEOUT or by the kernel after setting the protocols.
*/
#define LIRC_GET_REC_TIMEOUT _IOR('i', 0x00000024, __u32)
/*
* struct lirc_scancode - decoded scancode with protocol for use with
* LIRC_MODE_SCANCODE