[Intel-gfx] [drm-intel:topic/dp-hdmi-2.1-pcon 15/15] drivers/gpu/drm/i915/display/intel_dp.c:6909:42: error: use of logical '||' with constant operand

kernel test robot lkp at intel.com
Fri Jan 8 18:49:43 UTC 2021


tree:   git://anongit.freedesktop.org/drm-intel topic/dp-hdmi-2.1-pcon
head:   522508b665df3bbfdf40381d4e61777844b1703f
commit: 522508b665df3bbfdf40381d4e61777844b1703f [15/15] drm/i915/display: Let PCON convert from RGB to YCbCr if it can
config: x86_64-randconfig-r011-20210108 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 5c951623bc8965fa1e89660f2f5f4a2944e4981a)
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 x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        git remote add drm-intel git://anongit.freedesktop.org/drm-intel
        git fetch --no-tags drm-intel topic/dp-hdmi-2.1-pcon
        git checkout 522508b665df3bbfdf40381d4e61777844b1703f
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

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

All errors (new ones prefixed by >>):

>> drivers/gpu/drm/i915/display/intel_dp.c:6909:42: error: use of logical '||' with constant operand [-Werror,-Wconstant-logical-operand]
                                                                    DP_DS_HDMI_BT601_RGB_YCBCR_CONV ||
                                                                                                    ^
   drivers/gpu/drm/i915/display/intel_dp.c:6909:42: note: use '|' for a bitwise operation
                                                                    DP_DS_HDMI_BT601_RGB_YCBCR_CONV ||
                                                                                                    ^~
                                                                                                    |
   drivers/gpu/drm/i915/display/intel_dp.c:6910:42: error: use of logical '||' with constant operand [-Werror,-Wconstant-logical-operand]
                                                                    DP_DS_HDMI_BT709_RGB_YCBCR_CONV ||
                                                                                                    ^
   drivers/gpu/drm/i915/display/intel_dp.c:6910:42: note: use '|' for a bitwise operation
                                                                    DP_DS_HDMI_BT709_RGB_YCBCR_CONV ||
                                                                                                    ^~
                                                                                                    |
>> drivers/gpu/drm/i915/display/intel_dp.c:6911:10: error: converting the result of '<<' to a boolean always evaluates to true [-Werror,-Wtautological-constant-compare]
                                                                    DP_DS_HDMI_BT2020_RGB_YCBCR_CONV);
                                                                    ^
   include/drm/drm_dp_helper.h:444:48: note: expanded from macro 'DP_DS_HDMI_BT2020_RGB_YCBCR_CONV'
   # define DP_DS_HDMI_BT2020_RGB_YCBCR_CONV   (1 << 7)
                                                  ^
   drivers/gpu/drm/i915/display/intel_dp.c:6909:10: error: converting the result of '<<' to a boolean always evaluates to true [-Werror,-Wtautological-constant-compare]
                                                                    DP_DS_HDMI_BT601_RGB_YCBCR_CONV ||
                                                                    ^
   include/drm/drm_dp_helper.h:442:48: note: expanded from macro 'DP_DS_HDMI_BT601_RGB_YCBCR_CONV'
   # define DP_DS_HDMI_BT601_RGB_YCBCR_CONV    (1 << 5)
                                                  ^
   drivers/gpu/drm/i915/display/intel_dp.c:6910:10: error: converting the result of '<<' to a boolean always evaluates to true [-Werror,-Wtautological-constant-compare]
                                                                    DP_DS_HDMI_BT709_RGB_YCBCR_CONV ||
                                                                    ^
   include/drm/drm_dp_helper.h:443:48: note: expanded from macro 'DP_DS_HDMI_BT709_RGB_YCBCR_CONV'
   # define DP_DS_HDMI_BT709_RGB_YCBCR_CONV    (1 << 6)
                                                  ^
   5 errors generated.


vim +6909 drivers/gpu/drm/i915/display/intel_dp.c

  6879	
  6880	static void
  6881	intel_dp_update_420(struct intel_dp *intel_dp)
  6882	{
  6883		struct drm_i915_private *i915 = dp_to_i915(intel_dp);
  6884		struct intel_connector *connector = intel_dp->attached_connector;
  6885		bool is_branch, ycbcr_420_passthrough, ycbcr_444_to_420, rgb_to_ycbcr;
  6886	
  6887		/* No YCbCr output support on gmch platforms */
  6888		if (HAS_GMCH(i915))
  6889			return;
  6890	
  6891		/*
  6892		 * ILK doesn't seem capable of DP YCbCr output. The
  6893		 * displayed image is severly corrupted. SNB+ is fine.
  6894		 */
  6895		if (IS_GEN(i915, 5))
  6896			return;
  6897	
  6898		is_branch = drm_dp_is_branch(intel_dp->dpcd);
  6899		ycbcr_420_passthrough =
  6900			drm_dp_downstream_420_passthrough(intel_dp->dpcd,
  6901							  intel_dp->downstream_ports);
  6902		/* on-board LSPCON always assumed to support 4:4:4->4:2:0 conversion */
  6903		ycbcr_444_to_420 =
  6904			dp_to_dig_port(intel_dp)->lspcon.active ||
  6905			drm_dp_downstream_444_to_420_conversion(intel_dp->dpcd,
  6906								intel_dp->downstream_ports);
  6907		rgb_to_ycbcr = drm_dp_downstream_rgb_to_ycbcr_conversion(intel_dp->dpcd,
  6908									 intel_dp->downstream_ports,
> 6909									 DP_DS_HDMI_BT601_RGB_YCBCR_CONV ||
  6910									 DP_DS_HDMI_BT709_RGB_YCBCR_CONV ||
> 6911									 DP_DS_HDMI_BT2020_RGB_YCBCR_CONV);
  6912	
  6913		if (INTEL_GEN(i915) >= 11) {
  6914			/* Let PCON convert from RGB->YCbCr if possible */
  6915			if (is_branch && rgb_to_ycbcr && ycbcr_444_to_420) {
  6916				intel_dp->dfp.rgb_to_ycbcr = true;
  6917				intel_dp->dfp.ycbcr_444_to_420 = true;
  6918				connector->base.ycbcr_420_allowed = true;
  6919			} else {
  6920			/* Prefer 4:2:0 passthrough over 4:4:4->4:2:0 conversion */
  6921				intel_dp->dfp.ycbcr_444_to_420 =
  6922					ycbcr_444_to_420 && !ycbcr_420_passthrough;
  6923	
  6924				connector->base.ycbcr_420_allowed =
  6925					!is_branch || ycbcr_444_to_420 || ycbcr_420_passthrough;
  6926			}
  6927		} else {
  6928			/* 4:4:4->4:2:0 conversion is the only way */
  6929			intel_dp->dfp.ycbcr_444_to_420 = ycbcr_444_to_420;
  6930	
  6931			connector->base.ycbcr_420_allowed = ycbcr_444_to_420;
  6932		}
  6933	
  6934		drm_dbg_kms(&i915->drm,
  6935			    "[CONNECTOR:%d:%s] RGB->YcbCr conversion? %s, YCbCr 4:2:0 allowed? %s, YCbCr 4:4:4->4:2:0 conversion? %s\n",
  6936			    connector->base.base.id, connector->base.name,
  6937			    yesno(intel_dp->dfp.rgb_to_ycbcr),
  6938			    yesno(connector->base.ycbcr_420_allowed),
  6939			    yesno(intel_dp->dfp.ycbcr_444_to_420));
  6940	}
  6941	

---
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: 35963 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20210109/5df47ed7/attachment-0001.gz>


More information about the Intel-gfx mailing list