V4L/DVB (9611): em28xx: experimental support for HVR-950 IR
[firefly-linux-kernel-4.4.55.git] / drivers / media / video / em28xx / em28xx-input.c
index afd67607c028e57bb2616ea5542d51d4666391f1..f724cae8b040d05179b6f3f2e9cc0d930618c5b8 100644 (file)
@@ -270,6 +270,11 @@ int em28xx_ir_init(struct em28xx *dev)
 
        /* detect & configure */
        switch (dev->model) {
+       case EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950:
+               ir_type          = IR_TYPE_OTHER;
+               ir_codes         = ir_codes_hauppauge_new;
+               ir->mask_keycode = 0x007f0000;
+               break;
        }
 
        if (NULL == ir_codes) {
@@ -277,10 +282,6 @@ int em28xx_ir_init(struct em28xx *dev)
                goto err_out_free;
        }
 
-       /* Get the current key status, to avoid adding an
-          unexistent key code */
-       ir->last_gpio    = ir->get_key(ir);
-
        /* init input device */
        snprintf(ir->name, sizeof(ir->name), "em28xx IR (%s)",
                                                dev->name);
@@ -301,6 +302,10 @@ int em28xx_ir_init(struct em28xx *dev)
        ir->dev = dev;
        dev->ir = ir;
 
+       /* Get the current key status, to avoid adding an
+          unexistent key code */
+       ir->last_gpio    = ir->get_key(ir);
+
        em28xx_ir_start(ir);
 
        /* all done */