[PATCH][media] imon: infrared control stopped working in kernel 3.17

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

 



Hi,

with kernel 3.17 the imon remote control for device 15c2:0034 (built into the
Thermaltake DH102) does not work anymore, only the front panel buttons.

I digged through the changes made for imon.c and found the problem in
the following part of the commit 120703f9eb32033f0e39bdc552c0273c8ab45f33:

@@ -1579,7 +1579,10 @@ static void imon_incoming_packet(struct 
imon_context *ictx,
  		if (press_type == 0)
  			rc_keyup(ictx->rdev);
  		else {
-			rc_keydown(ictx->rdev, ictx->rc_scancode, ictx->rc_toggle);
+			if (ictx->rc_type == RC_BIT_RC6_MCE)
+				rc_keydown(ictx->rdev,
+					   ictx->rc_type == RC_BIT_RC6_MCE ? RC_TYPE_RC6_MCE : RC_TYPE_OTHER,
+					   ictx->rc_scancode, ictx->rc_toggle);
  			spin_lock_irqsave(&ictx->kc_lock, flags);
  			ictx->last_keycode = ictx->kc;
  			spin_unlock_irqrestore(&ictx->kc_lock, flags);

The if statement around rc_keydown handles only the RC6 protocol,
but the remote control is send via the RC_TYPE_OTHER protocol.

The following patch fixes this problem:

-----------------------------------------------------------------

With kernel 3.17 the imon remote control for device 15c2:0034 does not work anymore,
which uses the OTHER protocol. Only the front panel buttons which uses the RC6
protocol are working. This patch adds the missing comparison for the RC_BIT_OTHER.

Signed-off-by: Ulrich Eckhardt <uli@xxxxxxxxxxxxxxx>

diff --git a/drivers/media/rc/imon.c b/drivers/media/rc/imon.c
--- a/drivers/media/rc/imon.c
+++ b/drivers/media/rc/imon.c
@@ -1579,7 +1579,8 @@
                if (press_type == 0)
                        rc_keyup(ictx->rdev);
                else {
-                       if (ictx->rc_type == RC_BIT_RC6_MCE)
+                       if (ictx->rc_type == RC_BIT_RC6_MCE ||
+                           ictx->rc_type == RC_BIT_OTHER)
                                rc_keydown(ictx->rdev,
                                           ictx->rc_type == RC_BIT_RC6_MCE ? RC_TYPE_RC6_MCE : RC_TYPE_OTHER,
                                           ictx->rc_scancode, ictx->rc_toggle);




------------------------------------------------------------------

Best Regards
Uli
-- 
Ulrich Eckhardt                  http://www.uli-eckhardt.de

Ein Blitzableiter auf dem Kirchturm ist das denkbar stärkste 
Misstrauensvotum gegen den lieben Gott. (Karl Krauss)
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux