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 <lkp@xxxxxxxxx> 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