[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(¤t_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(¤t_config->name, \
12705 &pipe_config->name, adjust) && \
12706 !intel_compare_link_m_n(¤t_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