LCOV - code coverage report
Current view: top level - drivers/media/rc/keymaps - rc-kworld-plus-tv-analog.c (source / functions) Hit Total Coverage
Test: gcov_data_raspi2_real_modules_combined.info Lines: 2 5 40.0 %
Date: 2020-09-30 20:25:40 Functions: 1 2 50.0 %
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : // SPDX-License-Identifier: GPL-2.0+
       2                 :            : // kworld-plus-tv-analog.h - Keytable for kworld_plus_tv_analog Remote Controller
       3                 :            : //
       4                 :            : // keymap imported from ir-keymaps.c
       5                 :            : //
       6                 :            : // Copyright (c) 2010 by Mauro Carvalho Chehab
       7                 :            : 
       8                 :            : #include <media/rc-map.h>
       9                 :            : #include <linux/module.h>
      10                 :            : 
      11                 :            : /* Kworld Plus TV Analog Lite PCI IR
      12                 :            :    Mauro Carvalho Chehab <mchehab@kernel.org>
      13                 :            :  */
      14                 :            : 
      15                 :            : static struct rc_map_table kworld_plus_tv_analog[] = {
      16                 :            :         { 0x0c, KEY_MEDIA },            /* Kworld key */
      17                 :            :         { 0x16, KEY_CLOSECD },          /* -> ) */
      18                 :            :         { 0x1d, KEY_POWER2 },
      19                 :            : 
      20                 :            :         { 0x00, KEY_NUMERIC_1 },
      21                 :            :         { 0x01, KEY_NUMERIC_2 },
      22                 :            : 
      23                 :            :         /* Two keys have the same code: 3 and left */
      24                 :            :         { 0x02, KEY_NUMERIC_3 },
      25                 :            : 
      26                 :            :         /* Two keys have the same code: 4 and right */
      27                 :            :         { 0x03, KEY_NUMERIC_4 },
      28                 :            :         { 0x04, KEY_NUMERIC_5 },
      29                 :            :         { 0x05, KEY_NUMERIC_6 },
      30                 :            :         { 0x06, KEY_NUMERIC_7 },
      31                 :            :         { 0x07, KEY_NUMERIC_8 },
      32                 :            :         { 0x08, KEY_NUMERIC_9 },
      33                 :            :         { 0x0a, KEY_NUMERIC_0 },
      34                 :            : 
      35                 :            :         { 0x09, KEY_AGAIN },
      36                 :            :         { 0x14, KEY_MUTE },
      37                 :            : 
      38                 :            :         { 0x20, KEY_UP },
      39                 :            :         { 0x21, KEY_DOWN },
      40                 :            :         { 0x0b, KEY_ENTER },
      41                 :            : 
      42                 :            :         { 0x10, KEY_CHANNELUP },
      43                 :            :         { 0x11, KEY_CHANNELDOWN },
      44                 :            : 
      45                 :            :         /* Couldn't map key left/key right since those
      46                 :            :            conflict with '3' and '4' scancodes
      47                 :            :            I dunno what the original driver does
      48                 :            :          */
      49                 :            : 
      50                 :            :         { 0x13, KEY_VOLUMEUP },
      51                 :            :         { 0x12, KEY_VOLUMEDOWN },
      52                 :            : 
      53                 :            :         /* The lower part of the IR
      54                 :            :            There are several duplicated keycodes there.
      55                 :            :            Most of them conflict with digits.
      56                 :            :            Add mappings just to the unused scancodes.
      57                 :            :            Somehow, the original driver has a way to know,
      58                 :            :            but this doesn't seem to be on some GPIO.
      59                 :            :            Also, it is not related to the time between keyup
      60                 :            :            and keydown.
      61                 :            :          */
      62                 :            :         { 0x19, KEY_TIME},              /* Timeshift */
      63                 :            :         { 0x1a, KEY_STOP},
      64                 :            :         { 0x1b, KEY_RECORD},
      65                 :            : 
      66                 :            :         { 0x22, KEY_TEXT},
      67                 :            : 
      68                 :            :         { 0x15, KEY_AUDIO},             /* ((*)) */
      69                 :            :         { 0x0f, KEY_ZOOM},
      70                 :            :         { 0x1c, KEY_CAMERA},            /* snapshot */
      71                 :            : 
      72                 :            :         { 0x18, KEY_RED},               /* B */
      73                 :            :         { 0x23, KEY_GREEN},             /* C */
      74                 :            : };
      75                 :            : 
      76                 :            : static struct rc_map_list kworld_plus_tv_analog_map = {
      77                 :            :         .map = {
      78                 :            :                 .scan     = kworld_plus_tv_analog,
      79                 :            :                 .size     = ARRAY_SIZE(kworld_plus_tv_analog),
      80                 :            :                 .rc_proto = RC_PROTO_UNKNOWN,   /* Legacy IR type */
      81                 :            :                 .name     = RC_MAP_KWORLD_PLUS_TV_ANALOG,
      82                 :            :         }
      83                 :            : };
      84                 :            : 
      85                 :        207 : static int __init init_rc_map_kworld_plus_tv_analog(void)
      86                 :            : {
      87                 :        207 :         return rc_map_register(&kworld_plus_tv_analog_map);
      88                 :            : }
      89                 :            : 
      90                 :          0 : static void __exit exit_rc_map_kworld_plus_tv_analog(void)
      91                 :            : {
      92                 :          0 :         rc_map_unregister(&kworld_plus_tv_analog_map);
      93                 :          0 : }
      94                 :            : 
      95                 :            : module_init(init_rc_map_kworld_plus_tv_analog)
      96                 :            : module_exit(exit_rc_map_kworld_plus_tv_analog)
      97                 :            : 
      98                 :            : MODULE_LICENSE("GPL");
      99                 :            : MODULE_AUTHOR("Mauro Carvalho Chehab");

Generated by: LCOV version 1.14