Hi Steve, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.20-rc6 next-20181214] [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/Steve-Longerbeam/gpu-ipu-csi-Swap-fields-according-to-input-output-field-types/20181215-135741 config: nds32-allmodconfig (attached as .config) compiler: nds32le-linux-gcc (GCC) 6.4.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=6.4.0 make.cross ARCH=nds32 All errors (new ones prefixed by >>): drivers/gpu/ipu-v3/ipu-csi.c: In function 'ipu_csi_set_bt_interlaced_codes': >> drivers/gpu/ipu-v3/ipu-csi.c:407:17: error: implicit declaration of function 'V4L2_FIELD_IS_SEQUENTIAL' [-Werror=implicit-function-declaration] swap_fields = (V4L2_FIELD_IS_SEQUENTIAL(infield) && ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/V4L2_FIELD_IS_SEQUENTIAL +407 drivers/gpu/ipu-v3/ipu-csi.c 385 386 static int 387 ipu_csi_set_bt_interlaced_codes(struct ipu_csi *csi, 388 const struct v4l2_mbus_framefmt *infmt, 389 const struct v4l2_mbus_framefmt *outfmt, 390 v4l2_std_id std) 391 { 392 enum v4l2_field infield, outfield; 393 bool swap_fields; 394 395 /* get translated field type of input and output */ 396 infield = ipu_csi_translate_field(infmt->field, std); 397 outfield = ipu_csi_translate_field(outfmt->field, std); 398 399 /* 400 * Write the H-V-F codes the CSI will match against the 401 * incoming data for start/end of active and blanking 402 * field intervals. If input and output field types are 403 * sequential but not the same (one is SEQ_BT and the other 404 * is SEQ_TB), swap the F-bit so that the CSI will capture 405 * field 1 lines before field 0 lines. 406 */ > 407 swap_fields = (V4L2_FIELD_IS_SEQUENTIAL(infield) && 408 V4L2_FIELD_IS_SEQUENTIAL(outfield) && 409 infield != outfield); 410 411 if (!swap_fields) { 412 /* 413 * Field0BlankEnd = 110, Field0BlankStart = 010 414 * Field0ActiveEnd = 100, Field0ActiveStart = 000 415 * Field1BlankEnd = 111, Field1BlankStart = 011 416 * Field1ActiveEnd = 101, Field1ActiveStart = 001 417 */ 418 ipu_csi_write(csi, 0x40596 | CSI_CCIR_ERR_DET_EN, 419 CSI_CCIR_CODE_1); 420 ipu_csi_write(csi, 0xD07DF, CSI_CCIR_CODE_2); 421 } else { 422 dev_dbg(csi->ipu->dev, "capture field swap\n"); 423 424 /* same as above but with F-bit inverted */ 425 ipu_csi_write(csi, 0xD07DF | CSI_CCIR_ERR_DET_EN, 426 CSI_CCIR_CODE_1); 427 ipu_csi_write(csi, 0x40596, CSI_CCIR_CODE_2); 428 } 429 430 ipu_csi_write(csi, 0xFF0000, CSI_CCIR_CODE_3); 431 432 return 0; 433 } 434 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation