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]

Reply via email to