Hi Douglas,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.5-rc2 next-20191220]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    
https://github.com/0day-ci/linux/commits/Douglas-Anderson/drm-bridge-ti-sn65dsi86-Improve-support-for-AUO-B116XAK01-other-DP/20191221-083448
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
7e0165b2f1a912a06e381e91f0f4e495f4ac3736
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gcc (GCC) 7.5.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=sh 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/bridge/ti-sn65dsi86.c: In function 'ti_sn_bridge_enable':
>> drivers/gpu/drm/bridge/ti-sn65dsi86.c:543:18: warning: 'rate_valid' may be 
>> used uninitialized in this function [-Wmaybe-uninitialized]
       if (rate_valid[i])
           ~~~~~~~~~~^~~

vim +/rate_valid +543 drivers/gpu/drm/bridge/ti-sn65dsi86.c

   477  
   478  static void ti_sn_bridge_read_valid_rates(struct ti_sn_bridge *pdata,
   479                                            bool rate_valid[])
   480  {
   481          u8 dpcd_val;
   482          int rate_times_200khz;
   483          int ret;
   484          int i;
   485  
   486          ret = drm_dp_dpcd_readb(&pdata->aux, DP_EDP_DPCD_REV, 
&dpcd_val);
   487          if (ret != 1) {
   488                  DRM_DEV_ERROR(pdata->dev,
   489                                "Can't read eDP rev (%d), assuming 
1.1\n", ret);
   490                  dpcd_val = DP_EDP_11;
   491          }
   492  
   493          if (dpcd_val >= DP_EDP_14) {
   494                  /* eDP 1.4 devices must provide a custom table */
   495                  __le16 sink_rates[DP_MAX_SUPPORTED_RATES];
   496  
   497                  ret = drm_dp_dpcd_read(&pdata->aux, 
DP_SUPPORTED_LINK_RATES,
   498                                         sink_rates, sizeof(sink_rates));
   499  
   500                  if (ret != sizeof(sink_rates)) {
   501                          DRM_DEV_ERROR(pdata->dev,
   502                                  "Can't read supported rate table 
(%d)\n", ret);
   503  
   504                          /* By zeroing we'll fall back to 
DP_MAX_LINK_RATE. */
   505                          memset(sink_rates, 0, sizeof(sink_rates));
   506                  }
   507  
   508                  for (i = 0; i < ARRAY_SIZE(sink_rates); i++) {
   509                          rate_times_200khz = le16_to_cpu(sink_rates[i]);
   510  
   511                          if (!rate_times_200khz)
   512                                  break;
   513  
   514                          switch (rate_times_200khz) {
   515                          case 27000:
   516                                  rate_valid[7] = 1;
   517                                  break;
   518                          case 21600:
   519                                  rate_valid[6] = 1;
   520                                  break;
   521                          case 16200:
   522                                  rate_valid[5] = 1;
   523                                  break;
   524                          case 13500:
   525                                  rate_valid[4] = 1;
   526                                  break;
   527                          case 12150:
   528                                  rate_valid[3] = 1;
   529                                  break;
   530                          case 10800:
   531                                  rate_valid[2] = 1;
   532                                  break;
   533                          case 8100:
   534                                  rate_valid[1] = 1;
   535                                  break;
   536                          default:
   537                                  /* unsupported */
   538                                  break;
   539                          }
   540                  }
   541  
   542                  for (i = 0; i < ARRAY_SIZE(ti_sn_bridge_dp_rate_lut); 
i++) {
 > 543                          if (rate_valid[i])
   544                                  return;
   545                  }
   546                  DRM_DEV_ERROR(pdata->dev,
   547                                "No matching eDP rates in table; falling 
back\n");
   548          }
   549  
   550          /* On older versions best we can do is use DP_MAX_LINK_RATE */
   551          ret = drm_dp_dpcd_readb(&pdata->aux, DP_MAX_LINK_RATE, 
&dpcd_val);
   552          if (ret != 1) {
   553                  DRM_DEV_ERROR(pdata->dev,
   554                                "Can't read max rate (%d); assuming 5.4 
GHz\n",
   555                                ret);
   556                  dpcd_val = DP_LINK_BW_5_4;
   557          }
   558  
   559          switch (dpcd_val) {
   560          default:
   561                  DRM_DEV_ERROR(pdata->dev,
   562                                "Unexpected max rate (%#x); assuming 5.4 
GHz\n",
   563                                (int)dpcd_val);
   564                  /* fall through */
   565          case DP_LINK_BW_5_4:
   566                  rate_valid[7] = 1;
   567                  /* fall through */
   568          case DP_LINK_BW_2_7:
   569                  rate_valid[4] = 1;
   570                  /* fall through */
   571          case DP_LINK_BW_1_62:
   572                  rate_valid[1] = 1;
   573                  break;
   574          }
   575  }
   576  

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org Intel Corporation

Attachment: .config.gz
Description: application/gzip

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to