CC: [email protected] CC: [email protected] BCC: [email protected] In-Reply-To: <[email protected]> References: <[email protected]> TO: Marek Vasut <[email protected]> TO: [email protected] CC: Marek Vasut <[email protected]> CC: Peng Fan <[email protected]> CC: Alexander Stein <[email protected]> CC: Laurent Pinchart <[email protected]> CC: Sam Ravnborg <[email protected]> CC: Robby Cai <[email protected]>
Hi Marek, I love your patch! Perhaps something to improve: [auto build test WARNING on drm-intel/for-linux-next] [also build test WARNING on drm-exynos/exynos-drm-next next-20220225] [cannot apply to drm/drm-next drm-tip/drm-tip tegra-drm/drm/tegra/for-next v5.17-rc6] [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] url: https://github.com/0day-ci/linux/commits/Marek-Vasut/dt-bindings-mxsfb-Add-compatible-for-i-MX8MP/20220228-084809 base: git://anongit.freedesktop.org/drm-intel for-linux-next :::::: branch date: 16 hours ago :::::: commit date: 16 hours ago config: mips-randconfig-c004-20220227 (https://download.01.org/0day-ci/archive/20220301/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e) 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 mips cross compiling tool for clang build # apt-get install binutils-mips-linux-gnu # https://github.com/0day-ci/linux/commit/d6832d6fb879aabce18d9b451ed1ead1da38c333 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Marek-Vasut/dt-bindings-mxsfb-Add-compatible-for-i-MX8MP/20220228-084809 git checkout d6832d6fb879aabce18d9b451ed1ead1da38c333 # save the config file to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 6 warnings generated. drivers/video/fbdev/riva/rivafb-i2c.c:94:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcpy(chan->adapter.name, name); ^~~~~~ drivers/video/fbdev/riva/rivafb-i2c.c:94:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 strcpy(chan->adapter.name, name); ^~~~~~ Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. 10 warnings generated. Suppressed 10 warnings (10 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. 10 warnings generated. Suppressed 10 warnings (10 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. 10 warnings generated. Suppressed 10 warnings (10 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 6 warnings generated. drivers/iio/dac/ad5764.c:52:8: warning: Excessive padding in 'struct ad5764_state' (144 padding bytes, where 16 is optimal). Optimal fields order: data, spi, chip_info, vref_reg, lock, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding] struct ad5764_state { ~~~~~~~^~~~~~~~~~~~~~ drivers/iio/dac/ad5764.c:52:8: note: Excessive padding in 'struct ad5764_state' (144 padding bytes, where 16 is optimal). Optimal fields order: data, spi, chip_info, vref_reg, lock, consider reordering the fields or adding explicit padding members struct ad5764_state { ~~~~~~~^~~~~~~~~~~~~~ Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 6 warnings generated. drivers/iio/dac/ad5766.c:112:8: warning: Excessive padding in 'struct ad5766_state' (144 padding bytes, where 16 is optimal). Optimal fields order: data, spi, chip_info, gpio_reset, crt_range, dither_source, dither_scale, lock, dither_enable, dither_invert, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding] struct ad5766_state { ~~~~~~~^~~~~~~~~~~~~~ drivers/iio/dac/ad5766.c:112:8: note: Excessive padding in 'struct ad5766_state' (144 padding bytes, where 16 is optimal). Optimal fields order: data, spi, chip_info, gpio_reset, crt_range, dither_source, dither_scale, lock, dither_enable, dither_invert, consider reordering the fields or adding explicit padding members struct ad5766_state { ~~~~~~~^~~~~~~~~~~~~~ Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 11 warnings generated. >> drivers/gpu/drm/mxsfb/mxsfb_kms.c:258:8: warning: The left expression of the >> compound assignment is an uninitialized value. The computed value will also >> be garbage [clang-analyzer-core.uninitialized.Assign] ctrl |= CTRL_INV_HS; ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:542:6: note: Assuming field 'bridge' is null if (mxsfb->bridge) { ^~~~~~~~~~~~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:542:2: note: Taking false branch if (mxsfb->bridge) { ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:556:7: note: 'bus_format' is 0 if (!bus_format && mxsfb->connector->display_info.num_bus_formats) ^~~~~~~~~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:556:6: note: Left side of '&&' is true if (!bus_format && mxsfb->connector->display_info.num_bus_formats) ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:556:21: note: Assuming field 'num_bus_formats' is not equal to 0 if (!bus_format && mxsfb->connector->display_info.num_bus_formats) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:556:2: note: Taking true branch if (!bus_format && mxsfb->connector->display_info.num_bus_formats) ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:560:6: note: Assuming 'bus_format' is 0 if (!bus_format) ^~~~~~~~~~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:560:2: note: Taking true branch if (!bus_format) ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:567:2: note: Calling 'mxsfb_crtc_mode_set_nofb' mxsfb_crtc_mode_set_nofb(mxsfb, bus_format); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:466:13: note: Field 'bridge' is null if (mxsfb->bridge && mxsfb->bridge->timings) ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:466:20: note: Left side of '&&' is false if (mxsfb->bridge && mxsfb->bridge->timings) ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:476:6: note: Assuming field 'has_regsv8' is true if (mxsfb->devdata->has_regsv8) { ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:476:2: note: Taking true branch if (mxsfb->devdata->has_regsv8) { ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:479:7: note: Assuming 'err' is 0 if (err) ^~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:479:3: note: Taking false branch if (err) ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:484:3: note: Calling 'mxsfb_v8_set_mode' mxsfb_v8_set_mode(mxsfb, bus_flags); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:255:2: note: 'ctrl' declared without an initial value u32 ctrl; ^~~~~~~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:257:6: note: Assuming the condition is true if (m->flags & DRM_MODE_FLAG_PHSYNC) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:257:2: note: Taking true branch if (m->flags & DRM_MODE_FLAG_PHSYNC) ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:258:8: note: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage ctrl |= CTRL_INV_HS; ~~~~ ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:260:8: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign] ctrl |= CTRL_INV_VS; ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:542:6: note: Assuming field 'bridge' is null if (mxsfb->bridge) { ^~~~~~~~~~~~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:542:2: note: Taking false branch if (mxsfb->bridge) { ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:556:7: note: 'bus_format' is 0 if (!bus_format && mxsfb->connector->display_info.num_bus_formats) ^~~~~~~~~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:556:6: note: Left side of '&&' is true if (!bus_format && mxsfb->connector->display_info.num_bus_formats) ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:556:21: note: Assuming field 'num_bus_formats' is not equal to 0 if (!bus_format && mxsfb->connector->display_info.num_bus_formats) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:556:2: note: Taking true branch if (!bus_format && mxsfb->connector->display_info.num_bus_formats) ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:560:6: note: Assuming 'bus_format' is 0 if (!bus_format) ^~~~~~~~~~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:560:2: note: Taking true branch if (!bus_format) ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:567:2: note: Calling 'mxsfb_crtc_mode_set_nofb' mxsfb_crtc_mode_set_nofb(mxsfb, bus_format); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/mxsfb/mxsfb_kms.c:466:13: note: Field 'bridge' is null if (mxsfb->bridge && mxsfb->bridge->timings) ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:466:20: note: Left side of '&&' is false if (mxsfb->bridge && mxsfb->bridge->timings) ^ drivers/gpu/drm/mxsfb/mxsfb_kms.c:476:6: note: Assuming field 'has_regsv8' is true if (mxsfb->devdata->has_regsv8) { vim +258 drivers/gpu/drm/mxsfb/mxsfb_kms.c 56c727244a47cf Marek Vasut 2022-02-28 251 d6832d6fb879aa Marek Vasut 2022-02-28 252 static void mxsfb_v8_set_mode(struct mxsfb_drm_private *mxsfb, u32 bus_flags) d6832d6fb879aa Marek Vasut 2022-02-28 253 { d6832d6fb879aa Marek Vasut 2022-02-28 254 struct drm_display_mode *m = &mxsfb->crtc.state->adjusted_mode; d6832d6fb879aa Marek Vasut 2022-02-28 255 u32 ctrl; d6832d6fb879aa Marek Vasut 2022-02-28 256 d6832d6fb879aa Marek Vasut 2022-02-28 257 if (m->flags & DRM_MODE_FLAG_PHSYNC) d6832d6fb879aa Marek Vasut 2022-02-28 @258 ctrl |= CTRL_INV_HS; d6832d6fb879aa Marek Vasut 2022-02-28 259 if (m->flags & DRM_MODE_FLAG_PVSYNC) d6832d6fb879aa Marek Vasut 2022-02-28 260 ctrl |= CTRL_INV_VS; d6832d6fb879aa Marek Vasut 2022-02-28 261 /* Make sure Data Enable is high active by default */ d6832d6fb879aa Marek Vasut 2022-02-28 262 if (!(bus_flags & DRM_BUS_FLAG_DE_LOW)) d6832d6fb879aa Marek Vasut 2022-02-28 263 ctrl |= CTRL_INV_DE; d6832d6fb879aa Marek Vasut 2022-02-28 264 if (bus_flags & DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE) d6832d6fb879aa Marek Vasut 2022-02-28 265 ctrl |= CTRL_INV_PXCK; d6832d6fb879aa Marek Vasut 2022-02-28 266 d6832d6fb879aa Marek Vasut 2022-02-28 267 writel(ctrl, mxsfb->base + LCDC_CTRL); d6832d6fb879aa Marek Vasut 2022-02-28 268 d6832d6fb879aa Marek Vasut 2022-02-28 269 writel(DISP_SIZE_DELTA_Y(m->crtc_vdisplay) | d6832d6fb879aa Marek Vasut 2022-02-28 270 DISP_SIZE_DELTA_X(m->crtc_hdisplay), d6832d6fb879aa Marek Vasut 2022-02-28 271 mxsfb->base + LCDC_V8_DISP_SIZE); d6832d6fb879aa Marek Vasut 2022-02-28 272 d6832d6fb879aa Marek Vasut 2022-02-28 273 writel(HSYN_PARA_BP_H(m->htotal - m->hsync_end) | d6832d6fb879aa Marek Vasut 2022-02-28 274 HSYN_PARA_FP_H(m->hsync_start - m->hdisplay), d6832d6fb879aa Marek Vasut 2022-02-28 275 mxsfb->base + LCDC_V8_HSYN_PARA); d6832d6fb879aa Marek Vasut 2022-02-28 276 d6832d6fb879aa Marek Vasut 2022-02-28 277 writel(VSYN_PARA_BP_V(m->vtotal - m->vsync_end) | d6832d6fb879aa Marek Vasut 2022-02-28 278 VSYN_PARA_FP_V(m->vsync_start - m->vdisplay), d6832d6fb879aa Marek Vasut 2022-02-28 279 mxsfb->base + LCDC_V8_VSYN_PARA); d6832d6fb879aa Marek Vasut 2022-02-28 280 d6832d6fb879aa Marek Vasut 2022-02-28 281 writel(VSYN_HSYN_WIDTH_PW_V(m->vsync_end - m->vsync_start) | d6832d6fb879aa Marek Vasut 2022-02-28 282 VSYN_HSYN_WIDTH_PW_H(m->hsync_end - m->hsync_start), d6832d6fb879aa Marek Vasut 2022-02-28 283 mxsfb->base + LCDC_V8_VSYN_HSYN_WIDTH); d6832d6fb879aa Marek Vasut 2022-02-28 284 d6832d6fb879aa Marek Vasut 2022-02-28 285 writel(CTRLDESCL0_1_HEIGHT(m->crtc_vdisplay) | d6832d6fb879aa Marek Vasut 2022-02-28 286 CTRLDESCL0_1_WIDTH(m->crtc_hdisplay), d6832d6fb879aa Marek Vasut 2022-02-28 287 mxsfb->base + LCDC_V8_CTRLDESCL0_1); d6832d6fb879aa Marek Vasut 2022-02-28 288 d6832d6fb879aa Marek Vasut 2022-02-28 289 writel(CTRLDESCL0_3_PITCH(mxsfb->crtc.primary->state->fb->pitches[0]), d6832d6fb879aa Marek Vasut 2022-02-28 290 mxsfb->base + LCDC_V8_CTRLDESCL0_3); d6832d6fb879aa Marek Vasut 2022-02-28 291 } d6832d6fb879aa Marek Vasut 2022-02-28 292 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
