[linux-next:master 11345/11865] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:9804:38: warning: variable 'i' is uninitialized when used here

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   abaf6f60176f1ae9d946d63e4db63164600b7b1a
commit: f9b4f20c4777bd305ef04f9485294692bc65968c [11345/11865] drm/amd/display: Add Freesync HDMI support to DM
config: x86_64-randconfig-a013-20210220 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c9439ca36342fb6013187d0a69aef92736951476)
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
        # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=f9b4f20c4777bd305ef04f9485294692bc65968c
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout f9b4f20c4777bd305ef04f9485294692bc65968c
        # 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@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:9804:38: warning: variable 'i' is uninitialized when used here [-Wuninitialized]
                           timing  = &edid->detailed_timings[i];
                                                             ^
   drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:9714:7: note: initialize the variable 'i' to silence this warning
           int i;
                ^
                 = 0
   1 warning generated.


vim +/i +9804 drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c

  9710	
  9711	void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
  9712						struct edid *edid)
  9713	{
  9714		int i;
  9715		struct detailed_timing *timing;
  9716		struct detailed_non_pixel *data;
  9717		struct detailed_data_monitor_range *range;
  9718		struct amdgpu_dm_connector *amdgpu_dm_connector =
  9719				to_amdgpu_dm_connector(connector);
  9720		struct dm_connector_state *dm_con_state = NULL;
  9721	
  9722		struct drm_device *dev = connector->dev;
  9723		struct amdgpu_device *adev = drm_to_adev(dev);
  9724		bool freesync_capable = false;
  9725		struct amdgpu_hdmi_vsdb_info vsdb_info = {0};
  9726		bool hdmi_valid_vsdb_found = false;
  9727	
  9728		if (!connector->state) {
  9729			DRM_ERROR("%s - Connector has no state", __func__);
  9730			goto update;
  9731		}
  9732	
  9733		if (!edid) {
  9734			dm_con_state = to_dm_connector_state(connector->state);
  9735	
  9736			amdgpu_dm_connector->min_vfreq = 0;
  9737			amdgpu_dm_connector->max_vfreq = 0;
  9738			amdgpu_dm_connector->pixel_clock_mhz = 0;
  9739	
  9740			goto update;
  9741		}
  9742	
  9743		dm_con_state = to_dm_connector_state(connector->state);
  9744	
  9745		if (!amdgpu_dm_connector->dc_sink) {
  9746			DRM_ERROR("dc_sink NULL, could not add free_sync module.\n");
  9747			goto update;
  9748		}
  9749		if (!adev->dm.freesync_module)
  9750			goto update;
  9751	
  9752	
  9753		if (amdgpu_dm_connector->dc_sink->sink_signal == SIGNAL_TYPE_DISPLAY_PORT
  9754			|| amdgpu_dm_connector->dc_sink->sink_signal == SIGNAL_TYPE_EDP) {
  9755			bool edid_check_required = false;
  9756	
  9757			if (edid) {
  9758				edid_check_required = is_dp_capable_without_timing_msa(
  9759							adev->dm.dc,
  9760							amdgpu_dm_connector);
  9761			}
  9762	
  9763			if (edid_check_required == true && (edid->version > 1 ||
  9764			   (edid->version == 1 && edid->revision > 1))) {
  9765				for (i = 0; i < 4; i++) {
  9766	
  9767					timing	= &edid->detailed_timings[i];
  9768					data	= &timing->data.other_data;
  9769					range	= &data->data.range;
  9770					/*
  9771					 * Check if monitor has continuous frequency mode
  9772					 */
  9773					if (data->type != EDID_DETAIL_MONITOR_RANGE)
  9774						continue;
  9775					/*
  9776					 * Check for flag range limits only. If flag == 1 then
  9777					 * no additional timing information provided.
  9778					 * Default GTF, GTF Secondary curve and CVT are not
  9779					 * supported
  9780					 */
  9781					if (range->flags != 1)
  9782						continue;
  9783	
  9784					amdgpu_dm_connector->min_vfreq = range->min_vfreq;
  9785					amdgpu_dm_connector->max_vfreq = range->max_vfreq;
  9786					amdgpu_dm_connector->pixel_clock_mhz =
  9787						range->pixel_clock_mhz * 10;
  9788	
  9789					connector->display_info.monitor_range.min_vfreq = range->min_vfreq;
  9790					connector->display_info.monitor_range.max_vfreq = range->max_vfreq;
  9791	
  9792					break;
  9793				}
  9794	
  9795				if (amdgpu_dm_connector->max_vfreq -
  9796				    amdgpu_dm_connector->min_vfreq > 10) {
  9797	
  9798					freesync_capable = true;
  9799				}
  9800			}
  9801		} else if (edid && amdgpu_dm_connector->dc_sink->sink_signal == SIGNAL_TYPE_HDMI_TYPE_A) {
  9802			hdmi_valid_vsdb_found = parse_hdmi_amd_vsdb(amdgpu_dm_connector, edid, &vsdb_info);
  9803			if (hdmi_valid_vsdb_found && vsdb_info.freesync_supported) {
> 9804				timing  = &edid->detailed_timings[i];
  9805				data    = &timing->data.other_data;
  9806	
  9807				amdgpu_dm_connector->min_vfreq = vsdb_info.min_refresh_rate_hz;
  9808				amdgpu_dm_connector->max_vfreq = vsdb_info.max_refresh_rate_hz;
  9809				if (amdgpu_dm_connector->max_vfreq - amdgpu_dm_connector->min_vfreq > 10)
  9810					freesync_capable = true;
  9811	
  9812				connector->display_info.monitor_range.min_vfreq = vsdb_info.min_refresh_rate_hz;
  9813				connector->display_info.monitor_range.max_vfreq = vsdb_info.max_refresh_rate_hz;
  9814			}
  9815		}
  9816	
  9817	update:
  9818		if (dm_con_state)
  9819			dm_con_state->freesync_capable = freesync_capable;
  9820	
  9821		if (connector->vrr_capable_property)
  9822			drm_connector_set_vrr_capable_property(connector,
  9823							       freesync_capable);
  9824	}
  9825	

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

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux