[Intel-gfx] [PATCH] drm/i915/BXT: Tolerance at BXT DSI pipe_config comparison

kbuild test robot lkp at intel.com
Fri Mar 11 13:46:36 UTC 2016


Hi Ramalingam,

[auto build test ERROR on v4.5-rc7]
[cannot apply to drm-intel/for-linux-next next-20160311]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Ramalingam-C/drm-i915-BXT-Tolerance-at-BXT-DSI-pipe_config-comparison/20160311-212559
config: x86_64-allmodconfig (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All error/warnings (new ones prefixed by >>):

   drivers/gpu/drm/i915/intel_display.c: In function 'intel_pipe_config_compare':
>> drivers/gpu/drm/i915/intel_display.c:12655:16: error: implicit declaration of function 'enc_to_intel_dsi' [-Werror=implicit-function-declaration]
       intel_dsi = enc_to_intel_dsi(&intel_encoder->base); \
                   ^
>> drivers/gpu/drm/i915/intel_display.c:12672:4: note: in expansion of macro 'BXT_DSI_PIPE_CONF_CHECK_I_RANGE'
       BXT_DSI_PIPE_CONF_CHECK_I_RANGE(name) \
       ^
>> drivers/gpu/drm/i915/intel_display.c:12787:2: note: in expansion of macro 'PIPE_CONF_CHECK_I_RANGE'
     PIPE_CONF_CHECK_I_RANGE(base.adjusted_mode.crtc_htotal);
     ^
>> drivers/gpu/drm/i915/intel_display.c:12655:14: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
       intel_dsi = enc_to_intel_dsi(&intel_encoder->base); \
                 ^
>> drivers/gpu/drm/i915/intel_display.c:12672:4: note: in expansion of macro 'BXT_DSI_PIPE_CONF_CHECK_I_RANGE'
       BXT_DSI_PIPE_CONF_CHECK_I_RANGE(name) \
       ^
>> drivers/gpu/drm/i915/intel_display.c:12787:2: note: in expansion of macro 'PIPE_CONF_CHECK_I_RANGE'
     PIPE_CONF_CHECK_I_RANGE(base.adjusted_mode.crtc_htotal);
     ^
   In file included from include/linux/list.h:8:0,
                    from include/linux/dmi.h:4,
                    from drivers/gpu/drm/i915/intel_display.c:27:
>> drivers/gpu/drm/i915/intel_display.c:12647:34: error: dereferencing pointer to incomplete type 'struct intel_dsi'
      DIV_ROUND_UP((3 * 8 * intel_dsi->lane_count * 100), \
                                     ^
   include/linux/kernel.h:67:30: note: in definition of macro 'DIV_ROUND_UP'
    #define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
                                 ^
>> drivers/gpu/drm/i915/intel_display.c:12660:4: note: in expansion of macro 'MAX_BXT_DSI_TIMING_RETRIVAL_ERR'
       MAX_BXT_DSI_TIMING_RETRIVAL_ERR))) { \
       ^
>> drivers/gpu/drm/i915/intel_display.c:12672:4: note: in expansion of macro 'BXT_DSI_PIPE_CONF_CHECK_I_RANGE'
       BXT_DSI_PIPE_CONF_CHECK_I_RANGE(name) \
       ^
>> drivers/gpu/drm/i915/intel_display.c:12787:2: note: in expansion of macro 'PIPE_CONF_CHECK_I_RANGE'
     PIPE_CONF_CHECK_I_RANGE(base.adjusted_mode.crtc_htotal);
     ^
>> drivers/gpu/drm/i915/intel_display.c:12648:4: error: implicit declaration of function 'dsi_pixel_format_bpp' [-Werror=implicit-function-declaration]
      (dsi_pixel_format_bpp(intel_dsi->pixel_format) * \
       ^
   include/linux/kernel.h:67:36: note: in definition of macro 'DIV_ROUND_UP'
    #define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
                                       ^
>> drivers/gpu/drm/i915/intel_display.c:12660:4: note: in expansion of macro 'MAX_BXT_DSI_TIMING_RETRIVAL_ERR'
       MAX_BXT_DSI_TIMING_RETRIVAL_ERR))) { \
       ^
>> drivers/gpu/drm/i915/intel_display.c:12672:4: note: in expansion of macro 'BXT_DSI_PIPE_CONF_CHECK_I_RANGE'
       BXT_DSI_PIPE_CONF_CHECK_I_RANGE(name) \
       ^
>> drivers/gpu/drm/i915/intel_display.c:12787:2: note: in expansion of macro 'PIPE_CONF_CHECK_I_RANGE'
     PIPE_CONF_CHECK_I_RANGE(base.adjusted_mode.crtc_htotal);
     ^
>> drivers/gpu/drm/i915/intel_display.c:12655:14: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
       intel_dsi = enc_to_intel_dsi(&intel_encoder->base); \
                 ^
>> drivers/gpu/drm/i915/intel_display.c:12672:4: note: in expansion of macro 'BXT_DSI_PIPE_CONF_CHECK_I_RANGE'
       BXT_DSI_PIPE_CONF_CHECK_I_RANGE(name) \
       ^
   drivers/gpu/drm/i915/intel_display.c:12788:2: note: in expansion of macro 'PIPE_CONF_CHECK_I_RANGE'
     PIPE_CONF_CHECK_I_RANGE(base.adjusted_mode.crtc_hblank_start);
     ^
>> drivers/gpu/drm/i915/intel_display.c:12655:14: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
       intel_dsi = enc_to_intel_dsi(&intel_encoder->base); \
                 ^
>> drivers/gpu/drm/i915/intel_display.c:12672:4: note: in expansion of macro 'BXT_DSI_PIPE_CONF_CHECK_I_RANGE'
       BXT_DSI_PIPE_CONF_CHECK_I_RANGE(name) \
       ^
   drivers/gpu/drm/i915/intel_display.c:12789:2: note: in expansion of macro 'PIPE_CONF_CHECK_I_RANGE'
     PIPE_CONF_CHECK_I_RANGE(base.adjusted_mode.crtc_hblank_end);
     ^
>> drivers/gpu/drm/i915/intel_display.c:12655:14: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
       intel_dsi = enc_to_intel_dsi(&intel_encoder->base); \
                 ^
>> drivers/gpu/drm/i915/intel_display.c:12672:4: note: in expansion of macro 'BXT_DSI_PIPE_CONF_CHECK_I_RANGE'
       BXT_DSI_PIPE_CONF_CHECK_I_RANGE(name) \
       ^
   drivers/gpu/drm/i915/intel_display.c:12790:2: note: in expansion of macro 'PIPE_CONF_CHECK_I_RANGE'
     PIPE_CONF_CHECK_I_RANGE(base.adjusted_mode.crtc_hsync_start);
     ^

vim +/enc_to_intel_dsi +12655 drivers/gpu/drm/i915/intel_display.c

 12641	 * htotal = hactive + hfp + hsync + hbp. Here last three lements might have
 12642	 * the converson error, hence we consider the 3 times of error as tolerance.
 12643	 */
 12644	
 12645	#define MAX_BXT_DSI_TIMING_RETRIVAL_ERR \
 12646			(intel_dsi == NULL ? 0 : \
 12647			DIV_ROUND_UP((3 * 8 * intel_dsi->lane_count * 100), \
 12648			(dsi_pixel_format_bpp(intel_dsi->pixel_format) * \
 12649				intel_dsi->burst_mode_ratio)))
 12650	
 12651	#define BXT_DSI_PIPE_CONF_CHECK_I_RANGE(name) { \
 12652		for_each_encoder_on_crtc(dev, &crtc->base, \
 12653						intel_encoder) { \
 12654			if (intel_encoder->type == INTEL_OUTPUT_DSI) { \
 12655				intel_dsi = enc_to_intel_dsi(&intel_encoder->base); \
 12656			} \
 12657		} \
 12658		if (!(current_config->name < pipe_config->name && \
 12659			current_config->name >= (pipe_config->name - \
 12660				MAX_BXT_DSI_TIMING_RETRIVAL_ERR))) { \
 12661			INTEL_ERR_OR_DBG_KMS("mismatch in " #name " " \
 12662			  "(expected %i, found %i(Err tolerance considered))\n", \
 12663			  current_config->name, \
 12664			  pipe_config->name); \
 12665			ret = false; \
 12666		} \
 12667	}
 12668	
 12669	#define PIPE_CONF_CHECK_I_RANGE(name) { \
 12670		if (current_config->name != pipe_config->name) { \
 12671			if (IS_BROXTON(dev) && crtc->config->has_dsi_encoder) { \
 12672				BXT_DSI_PIPE_CONF_CHECK_I_RANGE(name) \
 12673			} else { \
 12674				INTEL_ERR_OR_DBG_KMS("mismatch in " #name " " \
 12675				  "(expected %i, found %i)\n", \
 12676				  current_config->name, \
 12677				  pipe_config->name); \
 12678				ret = false; \
 12679			} \
 12680		} \
 12681	}
 12682	
 12683	#define PIPE_CONF_CHECK_M_N(name) \
 12684		if (!intel_compare_link_m_n(&current_config->name, \
 12685					    &pipe_config->name,\
 12686					    adjust)) { \
 12687			INTEL_ERR_OR_DBG_KMS("mismatch in " #name " " \
 12688				  "(expected tu %i gmch %i/%i link %i/%i, " \
 12689				  "found tu %i, gmch %i/%i link %i/%i)\n", \
 12690				  current_config->name.tu, \
 12691				  current_config->name.gmch_m, \
 12692				  current_config->name.gmch_n, \
 12693				  current_config->name.link_m, \
 12694				  current_config->name.link_n, \
 12695				  pipe_config->name.tu, \
 12696				  pipe_config->name.gmch_m, \
 12697				  pipe_config->name.gmch_n, \
 12698				  pipe_config->name.link_m, \
 12699				  pipe_config->name.link_n); \
 12700			ret = false; \
 12701		}
 12702	
 12703	#define PIPE_CONF_CHECK_M_N_ALT(name, alt_name) \
 12704		if (!intel_compare_link_m_n(&current_config->name, \
 12705					    &pipe_config->name, adjust) && \
 12706		    !intel_compare_link_m_n(&current_config->alt_name, \
 12707					    &pipe_config->name, adjust)) { \
 12708			INTEL_ERR_OR_DBG_KMS("mismatch in " #name " " \
 12709				  "(expected tu %i gmch %i/%i link %i/%i, " \
 12710				  "or tu %i gmch %i/%i link %i/%i, " \
 12711				  "found tu %i, gmch %i/%i link %i/%i)\n", \
 12712				  current_config->name.tu, \
 12713				  current_config->name.gmch_m, \
 12714				  current_config->name.gmch_n, \
 12715				  current_config->name.link_m, \
 12716				  current_config->name.link_n, \
 12717				  current_config->alt_name.tu, \
 12718				  current_config->alt_name.gmch_m, \
 12719				  current_config->alt_name.gmch_n, \
 12720				  current_config->alt_name.link_m, \
 12721				  current_config->alt_name.link_n, \
 12722				  pipe_config->name.tu, \
 12723				  pipe_config->name.gmch_m, \
 12724				  pipe_config->name.gmch_n, \
 12725				  pipe_config->name.link_m, \
 12726				  pipe_config->name.link_n); \
 12727			ret = false; \
 12728		}
 12729	
 12730	/* This is required for BDW+ where there is only one set of registers for
 12731	 * switching between high and low RR.
 12732	 * This macro can be used whenever a comparison has to be made between one
 12733	 * hw state and multiple sw state variables.
 12734	 */
 12735	#define PIPE_CONF_CHECK_I_ALT(name, alt_name) \
 12736		if ((current_config->name != pipe_config->name) && \
 12737			(current_config->alt_name != pipe_config->name)) { \
 12738				INTEL_ERR_OR_DBG_KMS("mismatch in " #name " " \
 12739					  "(expected %i or %i, found %i)\n", \
 12740					  current_config->name, \
 12741					  current_config->alt_name, \
 12742					  pipe_config->name); \
 12743				ret = false; \
 12744		}
 12745	
 12746	#define PIPE_CONF_CHECK_FLAGS(name, mask)	\
 12747		if ((current_config->name ^ pipe_config->name) & (mask)) { \
 12748			INTEL_ERR_OR_DBG_KMS("mismatch in " #name "(" #mask ") " \
 12749				  "(expected %i, found %i)\n", \
 12750				  current_config->name & (mask), \
 12751				  pipe_config->name & (mask)); \
 12752			ret = false; \
 12753		}
 12754	
 12755	#define PIPE_CONF_CHECK_CLOCK_FUZZY(name) \
 12756		if (!intel_fuzzy_clock_check(current_config->name, pipe_config->name)) { \
 12757			INTEL_ERR_OR_DBG_KMS("mismatch in " #name " " \
 12758				  "(expected %i, found %i)\n", \
 12759				  current_config->name, \
 12760				  pipe_config->name); \
 12761			ret = false; \
 12762		}
 12763	
 12764	#define PIPE_CONF_QUIRK(quirk)	\
 12765		((current_config->quirks | pipe_config->quirks) & (quirk))
 12766	
 12767		PIPE_CONF_CHECK_I(cpu_transcoder);
 12768	
 12769		PIPE_CONF_CHECK_I(has_pch_encoder);
 12770		PIPE_CONF_CHECK_I(fdi_lanes);
 12771		PIPE_CONF_CHECK_M_N(fdi_m_n);
 12772	
 12773		PIPE_CONF_CHECK_I(has_dp_encoder);
 12774		PIPE_CONF_CHECK_I(lane_count);
 12775	
 12776		if (INTEL_INFO(dev)->gen < 8) {
 12777			PIPE_CONF_CHECK_M_N(dp_m_n);
 12778	
 12779			if (current_config->has_drrs)
 12780				PIPE_CONF_CHECK_M_N(dp_m2_n2);
 12781		} else
 12782			PIPE_CONF_CHECK_M_N_ALT(dp_m_n, dp_m2_n2);
 12783	
 12784		PIPE_CONF_CHECK_I(has_dsi_encoder);
 12785	
 12786		PIPE_CONF_CHECK_I(base.adjusted_mode.crtc_hdisplay);
 12787		PIPE_CONF_CHECK_I_RANGE(base.adjusted_mode.crtc_htotal);
 12788		PIPE_CONF_CHECK_I_RANGE(base.adjusted_mode.crtc_hblank_start);
 12789		PIPE_CONF_CHECK_I_RANGE(base.adjusted_mode.crtc_hblank_end);
 12790		PIPE_CONF_CHECK_I_RANGE(base.adjusted_mode.crtc_hsync_start);

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/octet-stream
Size: 53114 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20160311/0d4c24d6/attachment-0001.obj>


More information about the Intel-gfx mailing list