Hi pretoriano80,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linuxtv-media/master]
[cannot apply to v5.3-rc8 next-20190904]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/pretoriano80/media-rc-Add-support-for-another-0xffdc-device/20190914-235639
base:   git://linuxtv.org/media_tree.git master
config: i386-randconfig-g003-201937 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-11) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

   drivers/media/rc/imon.c: In function 'imon_get_ffdc_type':
>> drivers/media/rc/imon.c:1894:19: warning: this statement may fall through 
>> [-Wimplicit-fallthrough=]
      ictx->dev_descr = (struct imon_usb_dev_descr *) &imon_ultrabay_table;
      ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/rc/imon.c:1895:2: note: here
     default:
     ^~~~~~~

vim +1894 drivers/media/rc/imon.c

  1825  
  1826  /*
  1827   * The 0x15c2:0xffdc device ID was used for umpteen different imon
  1828   * devices, and all of them constantly spew interrupts, even when there
  1829   * is no actual data to report. However, byte 6 of this buffer looks 
like
  1830   * its unique across device variants, so we're trying to key off that to
  1831   * figure out which display type (if any) and what IR protocol the 
device
  1832   * actually supports. These devices have their IR protocol hard-coded 
into
  1833   * their firmware, they can't be changed on the fly like the newer 
hardware.
  1834   */
  1835  static void imon_get_ffdc_type(struct imon_context *ictx)
  1836  {
  1837          u8 ffdc_cfg_byte = ictx->usb_rx_buf[6];
  1838          u8 detected_display_type = IMON_DISPLAY_TYPE_NONE;
  1839          u64 allowed_protos = RC_PROTO_BIT_IMON;
  1840  
  1841          switch (ffdc_cfg_byte) {
  1842          /* iMON Knob, no display, iMON IR + vol knob */
  1843          case 0x21:
  1844                  dev_info(ictx->dev, "0xffdc iMON Knob, iMON IR");
  1845                  ictx->display_supported = false;
  1846                  break;
  1847          /* iMON 2.4G LT (usb stick), no display, iMON RF */
  1848          case 0x4e:
  1849                  dev_info(ictx->dev, "0xffdc iMON 2.4G LT, iMON RF");
  1850                  ictx->display_supported = false;
  1851                  ictx->rf_device = true;
  1852                  break;
  1853          /* iMON VFD, no IR (does have vol knob tho) */
  1854          case 0x35:
  1855                  dev_info(ictx->dev, "0xffdc iMON VFD + knob, no IR");
  1856                  detected_display_type = IMON_DISPLAY_TYPE_VFD;
  1857                  break;
  1858          /* iMON VFD, iMON IR */
  1859          case 0x24:
  1860          case 0x30:
  1861          case 0x85:
  1862                  dev_info(ictx->dev, "0xffdc iMON VFD, iMON IR");
  1863                  detected_display_type = IMON_DISPLAY_TYPE_VFD;
  1864                  break;
  1865          /* iMON VFD, MCE IR */
  1866          case 0x46:
  1867          case 0x9e:
  1868                  dev_info(ictx->dev, "0xffdc iMON VFD, MCE IR");
  1869                  detected_display_type = IMON_DISPLAY_TYPE_VFD;
  1870                  allowed_protos = RC_PROTO_BIT_RC6_MCE;
  1871                  break;
  1872          /* iMON VFD, iMON or MCE IR */
  1873          case 0x7e:
  1874                  dev_info(ictx->dev, "0xffdc iMON VFD, iMON or MCE IR");
  1875                  detected_display_type = IMON_DISPLAY_TYPE_VFD;
  1876                  allowed_protos |= RC_PROTO_BIT_RC6_MCE;
  1877                  break;
  1878          /* iMON LCD, MCE IR */
  1879          case 0x9f:
  1880                  dev_info(ictx->dev, "0xffdc iMON LCD, MCE IR");
  1881                  detected_display_type = IMON_DISPLAY_TYPE_LCD;
  1882                  allowed_protos = RC_PROTO_BIT_RC6_MCE;
  1883                  break;
  1884          /* no display, iMON IR */
  1885          case 0x26:
  1886                  dev_info(ictx->dev, "0xffdc iMON Inside, iMON IR");
  1887                  ictx->display_supported = false;
  1888                  break;
  1889          /* Soundgraph iMON UltraBay */
  1890          case 0x98:
  1891                  dev_info(ictx->dev, "0xffdc iMON UltraBay, LCD + IR");
  1892                  detected_display_type = IMON_DISPLAY_TYPE_LCD;
  1893                  allowed_protos = RC_PROTO_BIT_IMON | 
RC_PROTO_BIT_RC6_MCE;
> 1894                  ictx->dev_descr = (struct imon_usb_dev_descr *) 
> &imon_ultrabay_table;
  1895          default:
  1896                  dev_info(ictx->dev, "Unknown 0xffdc device, defaulting 
to VFD and iMON IR");
  1897                  detected_display_type = IMON_DISPLAY_TYPE_VFD;
  1898                  /*
  1899                   * We don't know which one it is, allow user to set the
  1900                   * RC6 one from userspace if IMON wasn't correct.
  1901                   */
  1902                  allowed_protos |= RC_PROTO_BIT_RC6_MCE;
  1903                  break;
  1904          }
  1905  
  1906          printk(KERN_CONT " (id 0x%02x)\n", ffdc_cfg_byte);
  1907  
  1908          ictx->display_type = detected_display_type;
  1909          ictx->rc_proto = allowed_protos;
  1910  }
  1911  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to