[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