[PATCH 1/7] lirc.4: LIRC_MODE_LIRCCODE has been replaced by LIRC_MODE_SCANCODE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



There are no drivers that support LIRC_MODE_LIRCCODE any more; those
drivers were in the kernel staging area, so they were never part
of the mainline kernel.

Signed-off-by: Sean Young <sean@xxxxxxxx>
---
 man4/lirc.4 | 90 +++++++++++++++++++++++++++--------------------------
 1 file changed, 46 insertions(+), 44 deletions(-)

diff --git a/man4/lirc.4 b/man4/lirc.4
index 0adf11b3e..58ea1193c 100644
--- a/man4/lirc.4
+++ b/man4/lirc.4
@@ -1,4 +1,5 @@
 .\" Copyright (c) 2015-2016, Alec Leamas
+.\" Copyright (c) 2018, Sean Young <sean@xxxxxxxx>
 .\"
 .\" %%%LICENSE_START(GPLv2+_DOC_FULL)
 .\" This is free documentation; you can redistribute it and/or
@@ -33,12 +34,13 @@ When receiving data, the driver works in two different modes depending
 on the underlying hardware.
 .PP
 Some hardware (typically TV-cards) decodes the IR signal internally
-and just provides decoded button presses as integer values.
-Drivers for this kind of hardware work in
-.BR LIRC_MODE_LIRCCODE
+and provide decoded button presses as scancode values. Drivers for this
+kind of hardware work in
+.BR LIRC_MODE_SCANCODE
 mode.
 Such hardware usually does not support sending IR signals.
-Furthermore, it usually only works with a specific remote which is
+Furthermore, they can only decode a limited set of IR protocols, usually
+only the protocol of the specific remote which is
 bundled with, for example, a TV-card.
 .PP
 Other hardware provides a stream of pulse/space durations.
@@ -47,18 +49,20 @@ Such drivers work in
 mode.
 Sometimes, this kind of hardware also supports
 sending IR data.
-Such hardware can be used with (almost) any kind of remote.
+Such hardware can be used with (almost) any kind of remote. This type
+of hardware can also be used in
+.BR LIRC_MODE_SCANCODE
+mode, in which case the kernel IR decoders will decode the IR. These
+decoders can be written in bpf(2) and attached to the lirc device.
 .PP
 The \fBLIRC_GET_REC_MODE\fR ioctl (see below) allows probing for the
 mode.
 .\"
-.SS Reading input with the LIRC_MODE_MODE2 drivers
+.SS Reading input with the LIRC_MODE_MODE2 mode
 .PP
 In the \fBLIRC_MODE_MODE2 mode\fR, the data returned by
 .BR read (2)
-provides 32-bit values representing a space or a pulse duration, by
-convention typed as
-.IR lirc_t .
+provides 32-bit values representing a space or a pulse duration.
 The time of the duration (microseconds) is encoded in the lower 24 bits.
 The upper 8 bit reflects the type of package:
 .TP 4
@@ -74,26 +78,22 @@ Value reflects a frequency (Hz); see the
 ioctl.
 .TP 4
 .BR LIRC_MODE2_TIMEOUT .
+Value reflects a space duration (microseconds).
 The package reflects a timeout; see the
 .B LIRC_SET_REC_TIMEOUT_REPORTS
 ioctl.
 .\"
-.SS Reading input with the LIRC_MODE_LIRCCODE drivers
+.SS Reading input with the LIRC_MODE_SCANCODE mode
 .PP
-In the \fBLIRC_MODE_LIRCCODE\fR
+In the \fBLIRC_MODE_SCANCODE\fR
 mode, the data returned by
 .BR read (2)
-reflects decoded button presses.
-The length of each packet can be retrieved using
-the \fBLIRC_GET_LENGTH\fR ioctl.
-Reads must be done in blocks matching
-the bit count returned by the \fBLIRC_GET_LENGTH\fR ioctl, rounded
-up so it matches full bytes.
+reflects decoded button presses, in the struct \fBlirc_scancode\fR. The
+scancode is stored in the \fBscancode\fR field, and the IR protocol
+in \fBrc_proto\fR. This field has on the values of the \fBenum rc_proto\fR.
 .\"
-.SS Sending data
+.SS Writing output with the LIRC_MODE_PULSE mode
 .PP
-When sending data, only the \fBLIRC_MODE_PULSE\fR
-mode is supported.
 The data written to the character device using
 .BR write (2)
 is a pulse/space sequence of integer values.
@@ -109,6 +109,16 @@ If more data is provided than the hardware can send, the
 call fails with the error
 .BR EINVAL
 .\"
+.SS Writing output with the LIRC_MODE_SCANCODE mode
+.PP
+The data written to the character devices must be a single struct
+\fBlirc_scancode\fR. The \fBscancode\fR and \fBrc_proto\fR fields must
+filled in, all other fields must be 0. The kernel IR encoders will
+convert the scancode to pulses and spaces.
+.BR write (2)
+call fails with the error
+.BR EINVAL
+The protocol or scancode is invalid, or the lirc device cannot transmit.
 .SH IOCTL COMMANDS
 .PP
 The complete list of ioctl commands is maintained in the kernel
@@ -159,9 +169,9 @@ Return the receive mode, which will be one of:
 .BR LIRC_MODE_MODE2 " (\fIvoid\fP)"
 The driver returns a sequence of pulse/space durations.
 .TP
-.BR LIRC_MODE_LIRCCODE
-The driver returns integer values, each of which represents a decoded
-button press.
+.BR LIRC_MODE_SCANCODE
+The driver returns struct lirc_scancode values, each of which represents
+a decoded button press.
 .RE
 .PP
 If a device returns an error code for
@@ -180,27 +190,24 @@ failed.
 Set the receive mode.
 .IR val
 is either
-.BR LIRC_MODE_LIRCCODE
+.BR LIRC_MODE_SCANCODE
 or
 .BR LIRC_MODE_MODE2 .
 .TP
-.BR LIRC_GET_LENGTH " (\fIvoid\fP)"
-Return the length of the returned codes for
-.BR LIRC_MODE_LIRCCODE -type
-drivers, otherwise fail with the error
-.BR ENOIOCTLCMD .
-.TP
 .BR LIRC_GET_SEND_MODE " (\fIvoid\fP)"
 Return the send mode.
-Currently, only
 .BR LIRC_MODE_PULSE
+or
+.BR LIRC_MODE_SCANCODE
 is supported.
 .TP
 .BR LIRC_SET_SEND_MODE " (\fIint\fP)"
 Set the send mode.
-Currently serves no purpose since only
-.BR LIRC_MODE_PULSE
-is supported.
+.IR val
+is either
+.BR LIRC_MODE_SCANCODE
+or
+.BR LIRC_MODE_PULSE.
 .TP
 .BR LIRC_SET_SEND_CARRIER " (\fIint\fP)"
 Set the modulation frequency.
@@ -318,9 +325,9 @@ The following bits may be returned in the mask:
 The driver is capable of receiving using
 .BR LIRC_MODE_MODE2 .
 .TP
-.BR LIRC_CAN_REC_LIRCCODE
+.BR LIRC_CAN_REC_SCANCODE
 The driver is capable of receiving using
-.BR LIRC_MODE_LIRCCODE .
+.BR LIRC_MODE_SCANCODE .
 .TP
 .BR LIRC_CAN_SET_SEND_CARRIER
 The driver supports changing the modulation frequency using
@@ -364,14 +371,9 @@ The driver supports learning mode using
 .TP
 .BR LIRC_CAN_SEND_PULSE
 The driver supports sending using
-.BR LIRC_MODE_PULSE .
-.TP
-.BR LIRC_CAN_SEND_LIRCCODE
-The driver supports sending.
-(This is uncommon, since
-.BR LIRCCODE
-drivers reflect hardware like TV-cards which usually dos not support
-sending.)
+.BR LIRC_MODE_PULSE
+or
+.BR LIRC_MODE_SCANCODE
 .\"
 .SH BUGS
 Using these devices requires the kernel source header file
-- 
2.17.2




[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux