llvm.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH v2 3/6] drm/meson: venc: add ENCL encoder setup for MIPI-DSI output
       [not found] <20220120083357.1541262-4-narmstrong@baylibre.com>
@ 2022-01-20 15:43 ` kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-01-20 15:43 UTC (permalink / raw)
  To: Neil Armstrong; +Cc: llvm, kbuild-all

Hi Neil,

I love your patch! Yet something to improve:

[auto build test ERROR on drm-tip/drm-tip]
[also build test ERROR on drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next v5.16 next-20220120]
[cannot apply to drm/drm-next drm-intel/for-linux-next airlied/drm-next]
[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/Neil-Armstrong/drm-meson-add-support-for-MIPI-DSI-Display/20220120-163607
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: arm-randconfig-r002-20220120 (https://download.01.org/0day-ci/archive/20220120/202201202322.HA2Ce0Rs-lkp@intel.com/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
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # https://github.com/0day-ci/linux/commit/582fe216b10e102620e7148d6df969d4eed430af
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Neil-Armstrong/drm-meson-add-support-for-MIPI-DSI-Display/20220120-163607
        git checkout 582fe216b10e102620e7148d6df969d4eed430af
        # 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=arm SHELL=/bin/bash drivers/gpu/drm/meson/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> drivers/gpu/drm/meson/meson_venc.c:1595:10: error: implicit declaration of function 'FIELD_PREP' [-Werror,-Wimplicit-function-declaration]
                          FIELD_PREP(L_GAMMA_ADDR_PORT_ADDR, 0),
                          ^
>> drivers/gpu/drm/meson/meson_venc.c:1661:17: error: use of undeclared identifier 'ENCL_PX_LN_CNT_SHADOW_EN'
           writel_relaxed(ENCL_PX_LN_CNT_SHADOW_EN, priv->io_base + _REG(ENCL_VIDEO_MODE));
                          ^
>> drivers/gpu/drm/meson/meson_venc.c:1662:17: error: use of undeclared identifier 'ENCL_VIDEO_MODE_ADV_VFIFO_EN'
           writel_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN |
                          ^
>> drivers/gpu/drm/meson/meson_venc.c:1663:10: error: use of undeclared identifier 'ENCL_VIDEO_MODE_ADV_GAIN_HDTV'
                          ENCL_VIDEO_MODE_ADV_GAIN_HDTV |
                          ^
>> drivers/gpu/drm/meson/meson_venc.c:1664:10: error: use of undeclared identifier 'ENCL_SEL_GAMMA_RGB_IN'
                          ENCL_SEL_GAMMA_RGB_IN, priv->io_base + _REG(ENCL_VIDEO_MODE_ADV));
                          ^
>> drivers/gpu/drm/meson/meson_venc.c:1666:17: error: use of undeclared identifier 'ENCL_VIDEO_FILT_CTRL_BYPASS_FILTER'
           writel_relaxed(ENCL_VIDEO_FILT_CTRL_BYPASS_FILTER,
                          ^
>> drivers/gpu/drm/meson/meson_venc.c:1681:17: error: use of undeclared identifier 'ENCL_VIDEO_RGBIN_RGB'
           writel_relaxed(ENCL_VIDEO_RGBIN_RGB | ENCL_VIDEO_RGBIN_ZBLK,
                          ^
>> drivers/gpu/drm/meson/meson_venc.c:1681:40: error: use of undeclared identifier 'ENCL_VIDEO_RGBIN_ZBLK'
           writel_relaxed(ENCL_VIDEO_RGBIN_RGB | ENCL_VIDEO_RGBIN_ZBLK,
                                                 ^
   drivers/gpu/drm/meson/meson_venc.c:1690:22: error: use of undeclared identifier 'ENCL_VIDEO_MODE_ADV_VFIFO_EN'
           writel_bits_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN, 0,
                               ^
   drivers/gpu/drm/meson/meson_venc.c:1690:22: error: use of undeclared identifier 'ENCL_VIDEO_MODE_ADV_VFIFO_EN'
>> drivers/gpu/drm/meson/meson_venc.c:1753:17: error: use of undeclared identifier 'L_TCON_MISC_SEL_STV1'
           writel_relaxed(L_TCON_MISC_SEL_STV1 | L_TCON_MISC_SEL_STV2,
                          ^
>> drivers/gpu/drm/meson/meson_venc.c:1753:40: error: use of undeclared identifier 'L_TCON_MISC_SEL_STV2'
           writel_relaxed(L_TCON_MISC_SEL_STV1 | L_TCON_MISC_SEL_STV2,
                                                 ^
>> drivers/gpu/drm/meson/meson_venc.c:1952:18: error: use of undeclared identifier 'VENC_INTCTRL_ENCP_LNRST_INT_EN'
                   writel_relaxed(VENC_INTCTRL_ENCP_LNRST_INT_EN,
                                  ^
   13 errors generated.


vim +/FIELD_PREP +1595 drivers/gpu/drm/meson/meson_venc.c

  1579	
  1580	static void meson_encl_set_gamma_table(struct meson_drm *priv, u16 *data,
  1581					       u32 rgb_mask)
  1582	{
  1583		int i, ret;
  1584		u32 reg;
  1585	
  1586		writel_bits_relaxed(L_GAMMA_CNTL_PORT_EN, 0,
  1587				    priv->io_base + _REG(L_GAMMA_CNTL_PORT));
  1588	
  1589		ret = readl_relaxed_poll_timeout(priv->io_base + _REG(L_GAMMA_CNTL_PORT),
  1590						 reg, reg & L_GAMMA_CNTL_PORT_ADR_RDY, 10, 10000);
  1591		if (ret)
  1592			pr_warn("%s: GAMMA ADR_RDY timeout\n", __func__);
  1593	
  1594		writel_relaxed(L_GAMMA_ADDR_PORT_AUTO_INC | rgb_mask |
> 1595			       FIELD_PREP(L_GAMMA_ADDR_PORT_ADDR, 0),
  1596			       priv->io_base + _REG(L_GAMMA_ADDR_PORT));
  1597	
  1598		for (i = 0; i < 256; i++) {
  1599			ret = readl_relaxed_poll_timeout(priv->io_base + _REG(L_GAMMA_CNTL_PORT),
  1600							 reg, reg & L_GAMMA_CNTL_PORT_WR_RDY,
  1601							 10, 10000);
  1602			if (ret)
  1603				pr_warn_once("%s: GAMMA WR_RDY timeout\n", __func__);
  1604	
  1605			writel_relaxed(data[i], priv->io_base + _REG(L_GAMMA_DATA_PORT));
  1606		}
  1607	
  1608		ret = readl_relaxed_poll_timeout(priv->io_base + _REG(L_GAMMA_CNTL_PORT),
  1609						 reg, reg & L_GAMMA_CNTL_PORT_ADR_RDY, 10, 10000);
  1610		if (ret)
  1611			pr_warn("%s: GAMMA ADR_RDY timeout\n", __func__);
  1612	
  1613		writel_relaxed(L_GAMMA_ADDR_PORT_AUTO_INC | rgb_mask |
  1614			       FIELD_PREP(L_GAMMA_ADDR_PORT_ADDR, 0x23),
  1615			       priv->io_base + _REG(L_GAMMA_ADDR_PORT));
  1616	}
  1617	
  1618	void meson_encl_load_gamma(struct meson_drm *priv)
  1619	{
  1620		meson_encl_set_gamma_table(priv, meson_encl_gamma_table, L_GAMMA_ADDR_PORT_SEL_R);
  1621		meson_encl_set_gamma_table(priv, meson_encl_gamma_table, L_GAMMA_ADDR_PORT_SEL_G);
  1622		meson_encl_set_gamma_table(priv, meson_encl_gamma_table, L_GAMMA_ADDR_PORT_SEL_B);
  1623	
  1624		writel_bits_relaxed(L_GAMMA_CNTL_PORT_EN, L_GAMMA_CNTL_PORT_EN,
  1625				    priv->io_base + _REG(L_GAMMA_CNTL_PORT));
  1626	}
  1627	
  1628	void meson_venc_mipi_dsi_mode_set(struct meson_drm *priv,
  1629					  const struct drm_display_mode *mode)
  1630	{
  1631		unsigned int max_pxcnt;
  1632		unsigned int max_lncnt;
  1633		unsigned int havon_begin;
  1634		unsigned int havon_end;
  1635		unsigned int vavon_bline;
  1636		unsigned int vavon_eline;
  1637		unsigned int hso_begin;
  1638		unsigned int hso_end;
  1639		unsigned int vso_begin;
  1640		unsigned int vso_end;
  1641		unsigned int vso_bline;
  1642		unsigned int vso_eline;
  1643	
  1644		max_pxcnt = mode->htotal - 1;
  1645		max_lncnt = mode->vtotal - 1;
  1646		havon_begin = mode->htotal - mode->hsync_start;
  1647		havon_end = havon_begin + mode->hdisplay - 1;
  1648		vavon_bline = mode->vtotal - mode->vsync_start;
  1649		vavon_eline = vavon_bline + mode->vdisplay - 1;
  1650		hso_begin = 0;
  1651		hso_end = mode->hsync_end - mode->hsync_start;
  1652		vso_begin = 0;
  1653		vso_end = 0;
  1654		vso_bline = 0;
  1655		vso_eline = mode->vsync_end - mode->vsync_start;
  1656	
  1657		meson_vpp_setup_mux(priv, MESON_VIU_VPP_MUX_ENCL);
  1658	
  1659		writel_relaxed(0, priv->io_base + _REG(ENCL_VIDEO_EN));
  1660	
> 1661		writel_relaxed(ENCL_PX_LN_CNT_SHADOW_EN, priv->io_base + _REG(ENCL_VIDEO_MODE));
> 1662		writel_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN |
> 1663			       ENCL_VIDEO_MODE_ADV_GAIN_HDTV |
> 1664			       ENCL_SEL_GAMMA_RGB_IN, priv->io_base + _REG(ENCL_VIDEO_MODE_ADV));
  1665	
> 1666		writel_relaxed(ENCL_VIDEO_FILT_CTRL_BYPASS_FILTER,
  1667			       priv->io_base + _REG(ENCL_VIDEO_FILT_CTRL));
  1668		writel_relaxed(max_pxcnt, priv->io_base + _REG(ENCL_VIDEO_MAX_PXCNT));
  1669		writel_relaxed(max_lncnt, priv->io_base + _REG(ENCL_VIDEO_MAX_LNCNT));
  1670		writel_relaxed(havon_begin, priv->io_base + _REG(ENCL_VIDEO_HAVON_BEGIN));
  1671		writel_relaxed(havon_end, priv->io_base + _REG(ENCL_VIDEO_HAVON_END));
  1672		writel_relaxed(vavon_bline, priv->io_base + _REG(ENCL_VIDEO_VAVON_BLINE));
  1673		writel_relaxed(vavon_eline, priv->io_base + _REG(ENCL_VIDEO_VAVON_ELINE));
  1674	
  1675		writel_relaxed(hso_begin, priv->io_base + _REG(ENCL_VIDEO_HSO_BEGIN));
  1676		writel_relaxed(hso_end, priv->io_base + _REG(ENCL_VIDEO_HSO_END));
  1677		writel_relaxed(vso_begin, priv->io_base + _REG(ENCL_VIDEO_VSO_BEGIN));
  1678		writel_relaxed(vso_end, priv->io_base + _REG(ENCL_VIDEO_VSO_END));
  1679		writel_relaxed(vso_bline, priv->io_base + _REG(ENCL_VIDEO_VSO_BLINE));
  1680		writel_relaxed(vso_eline, priv->io_base + _REG(ENCL_VIDEO_VSO_ELINE));
> 1681		writel_relaxed(ENCL_VIDEO_RGBIN_RGB | ENCL_VIDEO_RGBIN_ZBLK,
  1682			       priv->io_base + _REG(ENCL_VIDEO_RGBIN_CTRL));
  1683	
  1684		/* default black pattern */
  1685		writel_relaxed(0, priv->io_base + _REG(ENCL_TST_MDSEL));
  1686		writel_relaxed(0, priv->io_base + _REG(ENCL_TST_Y));
  1687		writel_relaxed(0, priv->io_base + _REG(ENCL_TST_CB));
  1688		writel_relaxed(0, priv->io_base + _REG(ENCL_TST_CR));
  1689		writel_relaxed(1, priv->io_base + _REG(ENCL_TST_EN));
  1690		writel_bits_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN, 0,
  1691				    priv->io_base + _REG(ENCL_VIDEO_MODE_ADV));
  1692	
  1693		writel_relaxed(1, priv->io_base + _REG(ENCL_VIDEO_EN));
  1694	
  1695		writel_relaxed(0, priv->io_base + _REG(L_RGB_BASE_ADDR));
  1696		writel_relaxed(0x400, priv->io_base + _REG(L_RGB_COEFF_ADDR)); /* Magic value */
  1697	
  1698		writel_relaxed(L_DITH_CNTL_DITH10_EN, priv->io_base + _REG(L_DITH_CNTL_ADDR));
  1699	
  1700		/* DE signal for TTL */
  1701		writel_relaxed(havon_begin, priv->io_base + _REG(L_OEH_HS_ADDR));
  1702		writel_relaxed(havon_end + 1, priv->io_base + _REG(L_OEH_HE_ADDR));
  1703		writel_relaxed(vavon_bline, priv->io_base + _REG(L_OEH_VS_ADDR));
  1704		writel_relaxed(vavon_eline, priv->io_base + _REG(L_OEH_VE_ADDR));
  1705	
  1706		/* DE signal for TTL */
  1707		writel_relaxed(havon_begin, priv->io_base + _REG(L_OEV1_HS_ADDR));
  1708		writel_relaxed(havon_end + 1, priv->io_base + _REG(L_OEV1_HE_ADDR));
  1709		writel_relaxed(vavon_bline, priv->io_base + _REG(L_OEV1_VS_ADDR));
  1710		writel_relaxed(vavon_eline, priv->io_base + _REG(L_OEV1_VE_ADDR));
  1711	
  1712		/* Hsync signal for TTL */
  1713		if (mode->flags & DRM_MODE_FLAG_PHSYNC) {
  1714			writel_relaxed(hso_end, priv->io_base + _REG(L_STH1_HS_ADDR));
  1715			writel_relaxed(hso_begin, priv->io_base + _REG(L_STH1_HE_ADDR));
  1716		} else {
  1717			writel_relaxed(hso_begin, priv->io_base + _REG(L_STH1_HS_ADDR));
  1718			writel_relaxed(hso_end, priv->io_base + _REG(L_STH1_HE_ADDR));
  1719		}
  1720		writel_relaxed(0, priv->io_base + _REG(L_STH1_VS_ADDR));
  1721		writel_relaxed(max_lncnt, priv->io_base + _REG(L_STH1_VE_ADDR));
  1722	
  1723		/* Vsync signal for TTL */
  1724		writel_relaxed(vso_begin, priv->io_base + _REG(L_STV1_HS_ADDR));
  1725		writel_relaxed(vso_end, priv->io_base + _REG(L_STV1_HE_ADDR));
  1726		if (mode->flags & DRM_MODE_FLAG_PVSYNC) {
  1727			writel_relaxed(vso_eline, priv->io_base + _REG(L_STV1_VS_ADDR));
  1728			writel_relaxed(vso_bline, priv->io_base + _REG(L_STV1_VE_ADDR));
  1729		} else {
  1730			writel_relaxed(vso_bline, priv->io_base + _REG(L_STV1_VS_ADDR));
  1731			writel_relaxed(vso_eline, priv->io_base + _REG(L_STV1_VE_ADDR));
  1732		}
  1733	
  1734		/* DE signal */
  1735		writel_relaxed(havon_begin, priv->io_base + _REG(L_DE_HS_ADDR));
  1736		writel_relaxed(havon_end + 1, priv->io_base + _REG(L_DE_HE_ADDR));
  1737		writel_relaxed(vavon_bline, priv->io_base + _REG(L_DE_VS_ADDR));
  1738		writel_relaxed(vavon_eline, priv->io_base + _REG(L_DE_VE_ADDR));
  1739	
  1740		/* Hsync signal */
  1741		writel_relaxed(hso_begin, priv->io_base + _REG(L_HSYNC_HS_ADDR));
  1742		writel_relaxed(hso_end, priv->io_base + _REG(L_HSYNC_HE_ADDR));
  1743		writel_relaxed(0, priv->io_base + _REG(L_HSYNC_VS_ADDR));
  1744		writel_relaxed(max_lncnt, priv->io_base + _REG(L_HSYNC_VE_ADDR));
  1745	
  1746		/* Vsync signal */
  1747		writel_relaxed(vso_begin, priv->io_base + _REG(L_VSYNC_HS_ADDR));
  1748		writel_relaxed(vso_end, priv->io_base + _REG(L_VSYNC_HE_ADDR));
  1749		writel_relaxed(vso_bline, priv->io_base + _REG(L_VSYNC_VS_ADDR));
  1750		writel_relaxed(vso_eline, priv->io_base + _REG(L_VSYNC_VE_ADDR));
  1751	
  1752		writel_relaxed(0, priv->io_base + _REG(L_INV_CNT_ADDR));
> 1753		writel_relaxed(L_TCON_MISC_SEL_STV1 | L_TCON_MISC_SEL_STV2,
  1754			       priv->io_base + _REG(L_TCON_MISC_SEL_ADDR));
  1755	
  1756		priv->venc.current_mode = MESON_VENC_MODE_MIPI_DSI;
  1757	}
  1758	EXPORT_SYMBOL_GPL(meson_venc_mipi_dsi_mode_set);
  1759	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-01-20 15:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20220120083357.1541262-4-narmstrong@baylibre.com>
2022-01-20 15:43 ` [PATCH v2 3/6] drm/meson: venc: add ENCL encoder setup for MIPI-DSI output kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).