media: sharp: fix sharp encoding
authorSean Young <sean@mess.org>
Fri, 6 Oct 2023 11:54:25 +0000 (12:54 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 28 Nov 2023 17:20:12 +0000 (17:20 +0000)
commit 4f7efc71891462ab7606da7039f480d7c1584a13 upstream.

The Sharp protocol[1] encoding has incorrect timings for bit space.

[1] https://www.sbprojects.net/knowledge/ir/sharp.php

Fixes: d35afc5fe097 ("[media] rc: ir-sharp-decoder: Add encode capability")
Cc: stable@vger.kernel.org
Reported-by: Joe Ferner <joe.m.ferner@gmail.com>
Closes: https://sourceforge.net/p/lirc/mailman/message/38604507/
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/rc/ir-sharp-decoder.c

index 3d8488c..3311099 100644 (file)
@@ -15,7 +15,9 @@
 #define SHARP_UNIT             40  /* us */
 #define SHARP_BIT_PULSE                (8    * SHARP_UNIT) /* 320us */
 #define SHARP_BIT_0_PERIOD     (25   * SHARP_UNIT) /* 1ms (680us space) */
-#define SHARP_BIT_1_PERIOD     (50   * SHARP_UNIT) /* 2ms (1680ms space) */
+#define SHARP_BIT_1_PERIOD     (50   * SHARP_UNIT) /* 2ms (1680us space) */
+#define SHARP_BIT_0_SPACE      (17   * SHARP_UNIT) /* 680us space */
+#define SHARP_BIT_1_SPACE      (42   * SHARP_UNIT) /* 1680us space */
 #define SHARP_ECHO_SPACE       (1000 * SHARP_UNIT) /* 40 ms */
 #define SHARP_TRAILER_SPACE    (125  * SHARP_UNIT) /* 5 ms (even longer) */
 
@@ -168,8 +170,8 @@ static const struct ir_raw_timings_pd ir_sharp_timings = {
        .header_pulse  = 0,
        .header_space  = 0,
        .bit_pulse     = SHARP_BIT_PULSE,
-       .bit_space[0]  = SHARP_BIT_0_PERIOD,
-       .bit_space[1]  = SHARP_BIT_1_PERIOD,
+       .bit_space[0]  = SHARP_BIT_0_SPACE,
+       .bit_space[1]  = SHARP_BIT_1_SPACE,
        .trailer_pulse = SHARP_BIT_PULSE,
        .trailer_space = SHARP_ECHO_SPACE,
        .msb_first     = 1,