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 <lkp@xxxxxxxxx> 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-all@xxxxxxxxxxxx Intel Corporation
Attachment:
.config.gz
Description: application/gzip