Hi, kernel test robot noticed the following build warnings:
[auto build test WARNING on drm-misc/drm-misc-next] [also build test WARNING on linus/master v6.18-rc5 next-20251110] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/oushixiong1025-163-com/drm-fb-helper-add-fbdev-screen-expended-mode-display-support/20251107-172927 base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next patch link: https://lore.kernel.org/r/20251107092641.111431-1-oushixiong1025%40163.com patch subject: [PATCH] drm/fb-helper: add fbdev screen expended mode display support config: arm-randconfig-003-20251110 (https://download.01.org/0day-ci/archive/20251110/[email protected]/config) compiler: clang version 16.0.6 (https://github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251110/[email protected]/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All warnings (new ones prefixed by >>): >> drivers/gpu/drm/drm_fb_helper.c:1509:3: warning: variable 'crtc_count' is >> uninitialized when used here [-Wuninitialized] crtc_count++; ^~~~~~~~~~ drivers/gpu/drm/drm_fb_helper.c:1506:16: note: initialize the variable 'crtc_count' to silence this warning u32 crtc_count; ^ = 0 1 warning generated. vim +/crtc_count +1509 drivers/gpu/drm/drm_fb_helper.c 1492 1493 /* 1494 * Check if the device supports extended mode 1495 * 1496 * return true if the device supports extended mode, 1497 * otherwise return false. 1498 */ 1499 static bool drm_fb_helper_validate_extended_mode(struct drm_fb_helper *fb_helper, 1500 struct drm_fb_helper_surface_size *sizes) 1501 { 1502 struct drm_client_dev *client = &fb_helper->client; 1503 struct drm_device *dev = fb_helper->dev; 1504 struct drm_mode_config *config = &dev->mode_config; 1505 struct drm_mode_set *mode_set; 1506 u32 crtc_count; 1507 1508 drm_client_for_each_modeset(mode_set, client) { > 1509 crtc_count++; 1510 1511 for (int j = 0; j < mode_set->num_connectors; j++) { 1512 struct drm_connector *connector = mode_set->connectors[j]; 1513 1514 if (connector->has_tile) { 1515 drm_dbg_kms(client->dev, 1516 "Don't support extended with tile mode connector yet\n"); 1517 return false; 1518 } 1519 } 1520 } 1521 1522 if (crtc_count < 2) { 1523 drm_dbg_kms(client->dev, 1524 "Only support extended mode when device have mult-crtcs\n"); 1525 return false; 1526 } 1527 1528 if (drm_fbdev_screen_mode == SCREEN_EXPAND_HORIZONTAL) { 1529 u32 x = 0; 1530 1531 drm_client_for_each_modeset(mode_set, client) { 1532 struct drm_display_mode *desired_mode; 1533 1534 desired_mode = mode_set->mode; 1535 x = mode_set->x; 1536 sizes->fb_width = sizes->surface_width += desired_mode->hdisplay; 1537 sizes->surface_height = 1538 min_t(u32, desired_mode->vdisplay + mode_set->y, 1539 sizes->surface_height); 1540 sizes->fb_height = min_t(u32, desired_mode->vdisplay + mode_set->y, 1541 sizes->fb_height); 1542 } 1543 sizes->fb_width = sizes->surface_width += x; 1544 1545 if (sizes->fb_width > config->max_width) { 1546 drm_dbg_kms(client->dev, 1547 "screen_buffer total width %d > config width %d\n", 1548 sizes->fb_width, config->max_width); 1549 return false; 1550 } 1551 } else if (drm_fbdev_screen_mode == SCREEN_EXPAND_VERTICAL) { 1552 u32 y = 0; 1553 1554 drm_client_for_each_modeset(mode_set, client) { 1555 struct drm_display_mode *desired_mode; 1556 1557 desired_mode = mode_set->mode; 1558 y = mode_set->y; 1559 sizes->fb_height = sizes->surface_height += desired_mode->vdisplay; 1560 sizes->surface_width = 1561 min_t(u32, desired_mode->hdisplay + mode_set->x, 1562 sizes->surface_width); 1563 sizes->fb_width = min_t(u32, desired_mode->hdisplay + mode_set->x, 1564 sizes->fb_width); 1565 } 1566 sizes->fb_height = sizes->surface_height += y; 1567 1568 if (sizes->fb_height > config->max_height) { 1569 drm_dbg_kms(client->dev, 1570 "screen_buffer_total_height %d > config height %d\n", 1571 sizes->fb_height, config->max_height); 1572 return false; 1573 } 1574 } else { 1575 return false; 1576 } 1577 1578 return true; 1579 } 1580 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
