[Intel-gfx] [PATCH v3 2/4] drm/i915/icl: Implement Display WA_1405510057

Radhakrishna Sripada radhakrishna.sripada at intel.com
Wed Oct 31 18:54:15 UTC 2018


On Tue, Oct 30, 2018 at 03:35:39PM -0700, Rodrigo Vivi wrote:
> On Tue, Oct 30, 2018 at 05:30:25PM +0800, kbuild test robot wrote:
> > Hi Radhakrishna,
> > 
> > Thank you for the patch! Perhaps something to improve:
> > 
> > [auto build test WARNING on drm-intel/for-linux-next]
> > [also build test WARNING on v4.19 next-20181030]
> > [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/Radhakrishna-Sripada/drm-i915-icl-Add-WaEnable32PlaneMode/20181030-164539
> > base:   git://anongit.freedesktop.org/drm-intel for-linux-next
> > config: i386-randconfig-x075-201843 (attached as .config)
> > compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
> > reproduce:
> >         # save the attached .config to linux build tree
> >         make ARCH=i386 
> > 
> > All warnings (new ones prefixed by >>):
> > 
> >    In file included from include/linux/string.h:6:0,
> >                     from include/linux/uuid.h:20,
> >                     from include/linux/mod_devicetable.h:13,
> >                     from include/linux/i2c.h:29,
> >                     from drivers/gpu/drm/i915/intel_hdmi.c:29:
> >    drivers/gpu/drm/i915/intel_hdmi.c: In function 'hdmi_deep_color_possible':
> >    drivers/gpu/drm/i915/intel_hdmi.c:1654:18: error: 'const struct intel_crtc_state' has no member named 'output_format'; did you mean 'output_types'?
> 
> it seems you need to rebase on latest drm-tip...
I rebased the patch on drm-tip. The drm-tip commit 
33b7f3ee6e00831 drm/i915: Add CRTC output format YCBCR 4:2:0
introduced crtc_state->output_format. And this commit is not part of drm-intel 
for-linux-next tag.

Regards,
Radhakrishna(RK) Sripada

> 
> >      if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 &&
> >                      ^
> >    include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
> >      if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
> >                                  ^~~~
> > >> drivers/gpu/drm/i915/intel_hdmi.c:1654:2: note: in expansion of macro 'if'
> >      if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 &&
> >      ^~
> >    drivers/gpu/drm/i915/intel_hdmi.c:1654:35: error: 'INTEL_OUTPUT_FORMAT_YCBCR420' undeclared (first use in this function); did you mean 'INTEL_OUTPUT_DP_MST'?
> >      if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 &&
> >                                       ^
> >    include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
> >      if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
> >                                  ^~~~
> > >> drivers/gpu/drm/i915/intel_hdmi.c:1654:2: note: in expansion of macro 'if'
> >      if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 &&
> >      ^~
> >    drivers/gpu/drm/i915/intel_hdmi.c:1654:35: note: each undeclared identifier is reported only once for each function it appears in
> >      if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 &&
> >                                       ^
> >    include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
> >      if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
> >                                  ^~~~
> > >> drivers/gpu/drm/i915/intel_hdmi.c:1654:2: note: in expansion of macro 'if'
> >      if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 &&
> >      ^~
> >    drivers/gpu/drm/i915/intel_hdmi.c:1654:18: error: 'const struct intel_crtc_state' has no member named 'output_format'; did you mean 'output_types'?
> >      if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 &&
> >                      ^
> >    include/linux/compiler.h:58:42: note: in definition of macro '__trace_if'
> >      if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
> >                                              ^~~~
> > >> drivers/gpu/drm/i915/intel_hdmi.c:1654:2: note: in expansion of macro 'if'
> >      if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 &&
> >      ^~
> >    drivers/gpu/drm/i915/intel_hdmi.c:1654:18: error: 'const struct intel_crtc_state' has no member named 'output_format'; did you mean 'output_types'?
> >      if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 &&
> >                      ^
> >    include/linux/compiler.h:69:16: note: in definition of macro '__trace_if'
> >       ______r = !!(cond);     \
> >                    ^~~~
> > >> drivers/gpu/drm/i915/intel_hdmi.c:1654:2: note: in expansion of macro 'if'
> >      if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 &&
> >      ^~
> > 
> > vim +/if +1654 drivers/gpu/drm/i915/intel_hdmi.c
> > 
> >   1591	
> >   1592	static bool hdmi_deep_color_possible(const struct intel_crtc_state *crtc_state,
> >   1593					     int bpc)
> >   1594	{
> >   1595		struct drm_i915_private *dev_priv =
> >   1596			to_i915(crtc_state->base.crtc->dev);
> >   1597		struct drm_atomic_state *state = crtc_state->base.state;
> >   1598		struct drm_connector_state *connector_state;
> >   1599		struct drm_connector *connector;
> >   1600		const struct drm_display_mode *adjusted_mode =
> >   1601			&crtc_state->base.adjusted_mode;
> >   1602		int i;
> >   1603	
> >   1604		if (HAS_GMCH_DISPLAY(dev_priv))
> >   1605			return false;
> >   1606	
> >   1607		if (bpc == 10 && INTEL_GEN(dev_priv) < 11)
> >   1608			return false;
> >   1609	
> >   1610		if (crtc_state->pipe_bpp <= 8*3)
> >   1611			return false;
> >   1612	
> >   1613		if (!crtc_state->has_hdmi_sink)
> >   1614			return false;
> >   1615	
> >   1616		/*
> >   1617		 * HDMI deep color affects the clocks, so it's only possible
> >   1618		 * when not cloning with other encoder types.
> >   1619		 */
> >   1620		if (crtc_state->output_types != 1 << INTEL_OUTPUT_HDMI)
> >   1621			return false;
> >   1622	
> >   1623		for_each_new_connector_in_state(state, connector, connector_state, i) {
> >   1624			const struct drm_display_info *info = &connector->display_info;
> >   1625	
> >   1626			if (connector_state->crtc != crtc_state->base.crtc)
> >   1627				continue;
> >   1628	
> >   1629			if (crtc_state->ycbcr420) {
> >   1630				const struct drm_hdmi_info *hdmi = &info->hdmi;
> >   1631	
> >   1632				if (bpc == 12 && !(hdmi->y420_dc_modes &
> >   1633						   DRM_EDID_YCBCR420_DC_36))
> >   1634					return false;
> >   1635				else if (bpc == 10 && !(hdmi->y420_dc_modes &
> >   1636							DRM_EDID_YCBCR420_DC_30))
> >   1637					return false;
> >   1638			} else {
> >   1639				if (bpc == 12 && !(info->edid_hdmi_dc_modes &
> >   1640						   DRM_EDID_HDMI_DC_36))
> >   1641					return false;
> >   1642				else if (bpc == 10 && !(info->edid_hdmi_dc_modes &
> >   1643							DRM_EDID_HDMI_DC_30))
> >   1644					return false;
> >   1645			}
> >   1646		}
> >   1647	
> >   1648		/* Display WA #1139: glk */
> >   1649		if (bpc == 12 && IS_GLK_REVID(dev_priv, 0, GLK_REVID_A1) &&
> >   1650		    adjusted_mode->htotal > 5460)
> >   1651			return false;
> >   1652	
> >   1653		/* Display Wa_1405510057:icl */
> > > 1654		if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 &&
> >   1655		    bpc == 10 && IS_ICELAKE(dev_priv) &&
> >   1656		    (adjusted_mode->crtc_hblank_end -
> >   1657		     adjusted_mode->crtc_hblank_start) % 8 == 2)
> >   1658			return false;
> >   1659	
> >   1660		return true;
> >   1661	}
> >   1662	
> > 
> > ---
> > 0-DAY kernel test infrastructure                Open Source Technology Center
> > https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
> 
> 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 


More information about the Intel-gfx mailing list