Hi Sean, I love your patch! Yet something to improve: [auto build test ERROR on media-tree/master] [also build test ERROR on next-20220121] [cannot apply to sunxi/sunxi/for-next v5.16] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Sean-Young/media-rc-core-rename-ir_raw_event_reset-to-ir_raw_event_overflow/20220121-001937 base: git://linuxtv.org/media_tree.git master config: hexagon-randconfig-r041-20220120 (https://download.01.org/0day-ci/archive/20220121/202201211605.1ccb0HNg-lkp@xxxxxxxxx/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project f7b7138a62648f4019c55e4671682af1f851f295) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/5b0115b915832b54ebe085c923d73209b1abb364 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Sean-Young/media-rc-core-rename-ir_raw_event_reset-to-ir_raw_event_overflow/20220121-001937 git checkout 5b0115b915832b54ebe085c923d73209b1abb364 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/media/rc/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): >> drivers/media/rc/mtk-cir.c:220:2: error: implicit declaration of function 'ir_raw_event_reset' [-Werror,-Wimplicit-function-declaration] ir_raw_event_reset(ir->rc); ^ drivers/media/rc/mtk-cir.c:220:2: note: did you mean 'ir_raw_event_store'? include/media/rc-core.h:317:5: note: 'ir_raw_event_store' declared here int ir_raw_event_store(struct rc_dev *dev, struct ir_raw_event *ev); ^ 1 error generated. vim +/ir_raw_event_reset +220 drivers/media/rc/mtk-cir.c 6691e7b9a57c24 Sean Wang 2017-01-13 202 6691e7b9a57c24 Sean Wang 2017-01-13 203 static irqreturn_t mtk_ir_irq(int irqno, void *dev_id) 6691e7b9a57c24 Sean Wang 2017-01-13 204 { 6691e7b9a57c24 Sean Wang 2017-01-13 205 struct mtk_ir *ir = dev_id; 6691e7b9a57c24 Sean Wang 2017-01-13 206 u8 wid = 0; 6691e7b9a57c24 Sean Wang 2017-01-13 207 u32 i, j, val; 183e19f5b9ee18 Sean Young 2018-08-21 208 struct ir_raw_event rawir = {}; 6691e7b9a57c24 Sean Wang 2017-01-13 209 6691e7b9a57c24 Sean Wang 2017-01-13 210 /* 6691e7b9a57c24 Sean Wang 2017-01-13 211 * Reset decoder state machine explicitly is required 6691e7b9a57c24 Sean Wang 2017-01-13 212 * because 1) the longest duration for space MTK IR hardware 6691e7b9a57c24 Sean Wang 2017-01-13 213 * could record is not safely long. e.g 12ms if rx resolution 6691e7b9a57c24 Sean Wang 2017-01-13 214 * is 46us by default. There is still the risk to satisfying 6691e7b9a57c24 Sean Wang 2017-01-13 215 * every decoder to reset themselves through long enough 6691e7b9a57c24 Sean Wang 2017-01-13 216 * trailing spaces and 2) the IRQ handler guarantees that 6691e7b9a57c24 Sean Wang 2017-01-13 217 * start of IR message is always contained in and starting 50c3c1ba171f3f Sean Wang 2017-06-30 218 * from register mtk_chkdata_reg(ir, i). 6691e7b9a57c24 Sean Wang 2017-01-13 219 */ 6691e7b9a57c24 Sean Wang 2017-01-13 @220 ir_raw_event_reset(ir->rc); 6691e7b9a57c24 Sean Wang 2017-01-13 221 6691e7b9a57c24 Sean Wang 2017-01-13 222 /* First message must be pulse */ 6691e7b9a57c24 Sean Wang 2017-01-13 223 rawir.pulse = false; 6691e7b9a57c24 Sean Wang 2017-01-13 224 6691e7b9a57c24 Sean Wang 2017-01-13 225 /* Handle all pulse and space IR controller captures */ 6691e7b9a57c24 Sean Wang 2017-01-13 226 for (i = 0 ; i < MTK_CHKDATA_SZ ; i++) { 50c3c1ba171f3f Sean Wang 2017-06-30 227 val = mtk_r32(ir, mtk_chkdata_reg(ir, i)); 6691e7b9a57c24 Sean Wang 2017-01-13 228 dev_dbg(ir->dev, "@reg%d=0x%08x\n", i, val); 6691e7b9a57c24 Sean Wang 2017-01-13 229 6691e7b9a57c24 Sean Wang 2017-01-13 230 for (j = 0 ; j < 4 ; j++) { 6691e7b9a57c24 Sean Wang 2017-01-13 231 wid = (val & (MTK_WIDTH_MASK << j * 8)) >> j * 8; 6691e7b9a57c24 Sean Wang 2017-01-13 232 rawir.pulse = !rawir.pulse; 6691e7b9a57c24 Sean Wang 2017-01-13 233 rawir.duration = wid * (MTK_IR_SAMPLE + 1); 6691e7b9a57c24 Sean Wang 2017-01-13 234 ir_raw_event_store_with_filter(ir->rc, &rawir); 6691e7b9a57c24 Sean Wang 2017-01-13 235 } 6691e7b9a57c24 Sean Wang 2017-01-13 236 } 6691e7b9a57c24 Sean Wang 2017-01-13 237 6691e7b9a57c24 Sean Wang 2017-01-13 238 /* 6691e7b9a57c24 Sean Wang 2017-01-13 239 * The maximum number of edges the IR controller can 6691e7b9a57c24 Sean Wang 2017-01-13 240 * hold is MTK_CHKDATA_SZ * 4. So if received IR messages 6691e7b9a57c24 Sean Wang 2017-01-13 241 * is over the limit, the last incomplete IR message would 6691e7b9a57c24 Sean Wang 2017-01-13 242 * be appended trailing space and still would be sent into 6691e7b9a57c24 Sean Wang 2017-01-13 243 * ir-rc-raw to decode. That helps it is possible that it 6691e7b9a57c24 Sean Wang 2017-01-13 244 * has enough information to decode a scancode even if the 6691e7b9a57c24 Sean Wang 2017-01-13 245 * trailing end of the message is missing. 6691e7b9a57c24 Sean Wang 2017-01-13 246 */ 6691e7b9a57c24 Sean Wang 2017-01-13 247 if (!MTK_IR_END(wid, rawir.pulse)) { 6691e7b9a57c24 Sean Wang 2017-01-13 248 rawir.pulse = false; 6691e7b9a57c24 Sean Wang 2017-01-13 249 rawir.duration = MTK_MAX_SAMPLES * (MTK_IR_SAMPLE + 1); 6691e7b9a57c24 Sean Wang 2017-01-13 250 ir_raw_event_store_with_filter(ir->rc, &rawir); 6691e7b9a57c24 Sean Wang 2017-01-13 251 } 6691e7b9a57c24 Sean Wang 2017-01-13 252 6691e7b9a57c24 Sean Wang 2017-01-13 253 ir_raw_event_handle(ir->rc); 6691e7b9a57c24 Sean Wang 2017-01-13 254 6691e7b9a57c24 Sean Wang 2017-01-13 255 /* 6691e7b9a57c24 Sean Wang 2017-01-13 256 * Restart controller for the next receive that would 6691e7b9a57c24 Sean Wang 2017-01-13 257 * clear up all CHKDATA registers 6691e7b9a57c24 Sean Wang 2017-01-13 258 */ 50c3c1ba171f3f Sean Wang 2017-06-30 259 mtk_w32_mask(ir, 0x1, MTK_IRCLR, ir->data->regs[MTK_IRCLR_REG]); 6691e7b9a57c24 Sean Wang 2017-01-13 260 6691e7b9a57c24 Sean Wang 2017-01-13 261 /* Clear interrupt status */ 50c3c1ba171f3f Sean Wang 2017-06-30 262 mtk_w32_mask(ir, 0x1, MTK_IRINT_CLR, 50c3c1ba171f3f Sean Wang 2017-06-30 263 ir->data->regs[MTK_IRINT_CLR_REG]); 6691e7b9a57c24 Sean Wang 2017-01-13 264 6691e7b9a57c24 Sean Wang 2017-01-13 265 return IRQ_HANDLED; 6691e7b9a57c24 Sean Wang 2017-01-13 266 } 6691e7b9a57c24 Sean Wang 2017-01-13 267 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx