imon: infrared control stopped working in kernel 3.17
PATCH 1/1 imon: infrared control stopped working in kernel 3.17
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.
drivers/media/rc/imon.c +2 -1
@@ -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
Signature · 4 lines
Ulrich Eckhardt http://www.uli-eckhardt.de Ein Blitzableiter auf dem Kirchturm ist das denkbar stärkste Misstrauensvotum gegen den lieben Gott. (Karl Krauss)