[xilinx-xlnx:master 12225/12535] drivers/media/platform/xilinx/xilinx-hdmirxss.c:500:16: error: implicit declaration of function 'FIELD_PREP'
kernel test robot
lkp at intel.com
Wed Nov 3 12:17:39 PDT 2021
tree: https://github.com/Xilinx/linux-xlnx master
head: 0a88ef03d3015782318b4bc94ceb20dca375a01b
commit: af3ae554574c15dc631421b389ed77a4d21491ef [12225/12535] v4l: xilinx: hdmirx: Add HDMI 2.1 Rx subsystem driver
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 11.2.0
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/Xilinx/linux-xlnx/commit/af3ae554574c15dc631421b389ed77a4d21491ef
git remote add xilinx-xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xilinx-xlnx master
git checkout af3ae554574c15dc631421b389ed77a4d21491ef
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>
Note: the xilinx-xlnx/master HEAD 0a88ef03d3015782318b4bc94ceb20dca375a01b builds fine.
It only hurts bisectability.
All errors (new ones prefixed by >>):
drivers/media/platform/xilinx/xilinx-hdmirxss.c: In function 'xhdmirx_vtd_settimebase':
>> drivers/media/platform/xilinx/xilinx-hdmirxss.c:500:16: error: implicit declaration of function 'FIELD_PREP' [-Werror=implicit-function-declaration]
500 | val |= FIELD_PREP(HDMIRX_VTD_CTRL_TIMERBASE_MASK, count);
| ^~~~~~~~~~
drivers/media/platform/xilinx/xilinx-hdmirxss.c: In function 'xhdmirx1_gettmdsclkratio':
>> drivers/media/platform/xilinx/xilinx-hdmirxss.c:651:15: error: implicit declaration of function 'FIELD_GET'; did you mean 'FOLL_GET'? [-Werror=implicit-function-declaration]
651 | val = FIELD_GET(HDMIRX_PIO_IN_SCDC_TMDS_CLOCK_RATIO_MASK, val);
| ^~~~~~~~~
| FOLL_GET
cc1: some warnings being treated as errors
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for FRAME_POINTER
Depends on DEBUG_KERNEL && (M68K || UML || SUPERH) || ARCH_WANT_FRAME_POINTERS
Selected by
- FAULT_INJECTION_STACKTRACE_FILTER && FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT && !X86_64 && !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM && !ARC && !X86
vim +/FIELD_PREP +500 drivers/media/platform/xilinx/xilinx-hdmirxss.c
488
489 /**
490 * xhdmirx_vtd_settimebase - Set the Video Timing Detector
491 *
492 * @xhdmi: pointer to driver state
493 * @count: count value to set the timer to.
494 */
495 static inline void xhdmirx_vtd_settimebase(struct xhdmirx_state *xhdmi, u32 count)
496 {
497 u32 val = xhdmi_read(xhdmi, HDMIRX_VTD_CTRL_OFFSET);
498
499 val &= ~HDMIRX_VTD_CTRL_TIMERBASE_MASK;
> 500 val |= FIELD_PREP(HDMIRX_VTD_CTRL_TIMERBASE_MASK, count);
501 xhdmi_write(xhdmi, HDMIRX_VTD_CTRL_OFFSET, val);
502 }
503
504 static inline void xhdmirx_scrambler_enable(struct xhdmirx_state *xhdmi)
505 {
506 xhdmi_write(xhdmi, HDMIRX_PIO_OUT_SET_OFFSET,
507 HDMIRX_PIO_OUT_SCRM_MASK);
508 xhdmi->stream.isscrambled = true;
509 }
510
511 static inline void xhdmirx_scrambler_disable(struct xhdmirx_state *xhdmi)
512 {
513 xhdmi_write(xhdmi, HDMIRX_PIO_OUT_CLR_OFFSET,
514 HDMIRX_PIO_OUT_SCRM_MASK);
515 xhdmi->stream.isscrambled = false;
516 }
517
518 static inline void xhdmirx_ddcscdc_clear(struct xhdmirx_state *xhdmi)
519 {
520 xhdmi_write(xhdmi, HDMIRX_DDC_CTRL_SET_OFFSET,
521 HDMIRX_DDC_CTRL_SCDC_CLR_MASK);
522 /* add a usleep(50) here */
523 xhdmi_write(xhdmi, HDMIRX_DDC_CTRL_CLR_OFFSET,
524 HDMIRX_DDC_CTRL_SCDC_CLR_MASK);
525 }
526
527 /**
528 * xhdmirx_disable_allintr - Disable all the interrupt sources
529 *
530 * @xhdmi: pointer to driver state
531 */
532 static void xhdmirx_disable_allintr(struct xhdmirx_state *xhdmi)
533 {
534 xhdmirx_piointr_disable(xhdmi);
535 xhdmirx_vtdintr_disable(xhdmi);
536 xhdmirx_ddcintr_disable(xhdmi);
537 xhdmirx_tmr1intr_disable(xhdmi);
538 xhdmirx_tmr2intr_disable(xhdmi);
539 xhdmirx_tmr3intr_disable(xhdmi);
540 xhdmirx_tmr4intr_disable(xhdmi);
541 xhdmirx_auxintr_disable(xhdmi);
542 xhdmirx_audintr_disable(xhdmi);
543 xhdmirx_frlintr_disable(xhdmi);
544 xhdmirx_lnkstaintr_disable(xhdmi);
545 }
546
547 /**
548 * xhdmirx_enable_allintr - Enable all the interrupt sources
549 *
550 * @xhdmi: pointer to driver state
551 */
552 static void xhdmirx_enable_allintr(struct xhdmirx_state *xhdmi)
553 {
554 xhdmirx_piointr_enable(xhdmi);
555 xhdmirx_vtdintr_enable(xhdmi);
556 xhdmirx_ddcintr_enable(xhdmi);
557 xhdmirx_tmr1intr_enable(xhdmi);
558 xhdmirx_tmr2intr_enable(xhdmi);
559 xhdmirx_tmr3intr_enable(xhdmi);
560 xhdmirx_tmr4intr_enable(xhdmi);
561 xhdmirx_auxintr_enable(xhdmi);
562 xhdmirx_frlintr_enable(xhdmi);
563 xhdmirx_lnkstaintr_enable(xhdmi);
564 }
565
566 /**
567 * xhdmirx1_bridgeyuv420 - Enable/disable YUV 420 in bridge
568 *
569 * @xhdmi: pointer to driver state
570 * @flag: Flag to set or clear the bit
571 */
572 static void xhdmirx1_bridgeyuv420(struct xhdmirx_state *xhdmi, bool flag)
573 {
574 if (flag)
575 xhdmi_write(xhdmi, HDMIRX_PIO_OUT_SET_OFFSET,
576 HDMIRX_PIO_OUT_BRIDGE_YUV420_MASK);
577 else
578 xhdmi_write(xhdmi, HDMIRX_PIO_OUT_CLR_OFFSET,
579 HDMIRX_PIO_OUT_BRIDGE_YUV420_MASK);
580 }
581
582 /**
583 * xhdmirx1_bridgepixeldrop - Enable/Disable pixel drop in bridge
584 *
585 * @xhdmi: pointer to driver state
586 * @flag: Flag to set or clear
587 */
588 static void xhdmirx1_bridgepixeldrop(struct xhdmirx_state *xhdmi, bool flag)
589 {
590 if (flag)
591 xhdmi_write(xhdmi, HDMIRX_PIO_OUT_SET_OFFSET,
592 HDMIRX_PIO_OUT_BRIDGE_PIXEL_MASK);
593 else
594 xhdmi_write(xhdmi, HDMIRX_PIO_OUT_CLR_OFFSET,
595 HDMIRX_PIO_OUT_BRIDGE_PIXEL_MASK);
596 }
597
598 /**
599 * xhdmirx1_start - Start the HDMI Rx by enabling the PIO
600 *
601 * @xhdmi: pointer to driver state
602 */
603 static void xhdmirx1_start(struct xhdmirx_state *xhdmi)
604 {
605 xhdmirx_pio_enable(xhdmi);
606 xhdmirx_piointr_enable(xhdmi);
607 }
608
609 static void xhdmirx1_clearlinkstatus(struct xhdmirx_state *xhdmi)
610 {
611 xhdmi_write(xhdmi, HDMIRX_LNKSTA_CTRL_SET_OFFSET, HDMIRX_LNKSTA_CTRL_ERR_CLR_MASK);
612 xhdmi_write(xhdmi, HDMIRX_LNKSTA_CTRL_CLR_OFFSET, HDMIRX_LNKSTA_CTRL_ERR_CLR_MASK);
613 }
614
615 /**
616 * xhdmirx_set_hpd - Toggle hot plug detect line
617 * @xhdmi: pointer to driver state
618 * @enable: Flag to assert or deassert the HPD line
619 *
620 * This function is used to toggle hot plug detect line to indicate to the
621 * HDMI Tx about change in HDMI Rx.
622 */
623 static void xhdmirx_set_hpd(struct xhdmirx_state *xhdmi, int enable)
624 {
625 if (enable)
626 xhdmi_write(xhdmi, HDMIRX_PIO_OUT_SET_OFFSET,
627 HDMIRX_PIO_OUT_HPD_MASK);
628 else
629 xhdmi_write(xhdmi, HDMIRX_PIO_OUT_CLR_OFFSET,
630 HDMIRX_PIO_OUT_HPD_MASK);
631 }
632
633 static inline bool xhdmirx1_isstreamconnected(struct xhdmirx_state *xhdmi)
634 {
635 /* return the stream cable connected */
636 return xhdmi->stream.cable_connected;
637 }
638
639 /**
640 * xhdmirx1_gettmdsclkratio - Get the TMDS clock ratio
641 * @xhdmi: pointer to the driver state
642 *
643 * Return: TMDS clock ratio 0 or 1
644 */
645 static u32 xhdmirx1_gettmdsclkratio(struct xhdmirx_state *xhdmi)
646 {
647 u32 val;
648
649 /* Get TMDS clock ratio */
650 val = xhdmi_read(xhdmi, HDMIRX_PIO_IN_OFFSET);
> 651 val = FIELD_GET(HDMIRX_PIO_IN_SCDC_TMDS_CLOCK_RATIO_MASK, val);
652
653 dev_dbg(xhdmi->dev, "Get TMDS Clk Ratio = %u\n", val);
654 return val;
655 }
656
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 63134 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20211104/41c81890/attachment-0001.gz>
More information about the linux-arm-kernel
mailing list