CC: [email protected]
CC: [email protected]
TO: LUU HOAI <[email protected]>
CC: Laurent Pinchart <[email protected]>
CC: Kieran Bingham <[email protected]>

tree:   git://linuxtv.org/pinchartl/media.git drm/du/v3u/sn65dsi86
head:   b24450a25b8c342e517f8c5804755b060cd6e7dc
commit: 9315788ce032979d6b3affb603891ec69090be72 [7/11] drm: rcar-du: Add R-Car 
DSI driver
:::::: branch date: 35 hours ago
:::::: commit date: 35 hours ago
config: nios2-randconfig-m031-20211203 
(https://download.01.org/0day-ci/archive/20211203/[email protected]/config)
compiler: nios2-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

New smatch warnings:
drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c:223 rcar_mipi_dsi_parameters_calc() 
error: buffer overflow 'hsfreqrange_table' 64 <= 64

Old smatch warnings:
drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c:224 rcar_mipi_dsi_parameters_calc() 
error: buffer overflow 'hsfreqrange_table' 64 <= 64

vim +/hsfreqrange_table +223 drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c

9315788ce03297 LUU HOAI 2020-02-25  183  
9315788ce03297 LUU HOAI 2020-02-25  184         const struct vco_cntrl_value 
*vco_cntrl;
9315788ce03297 LUU HOAI 2020-02-25  185         unsigned long fout_target;
9315788ce03297 LUU HOAI 2020-02-25  186         unsigned long fin, fout;
9315788ce03297 LUU HOAI 2020-02-25  187         unsigned long hsfreq;
9315788ce03297 LUU HOAI 2020-02-25  188         unsigned int best_err = -1;
9315788ce03297 LUU HOAI 2020-02-25  189         unsigned int divider;
9315788ce03297 LUU HOAI 2020-02-25  190         unsigned int n;
9315788ce03297 LUU HOAI 2020-02-25  191         unsigned int i;
9315788ce03297 LUU HOAI 2020-02-25  192         unsigned int err;
9315788ce03297 LUU HOAI 2020-02-25  193  
9315788ce03297 LUU HOAI 2020-02-25  194         /*
9315788ce03297 LUU HOAI 2020-02-25  195          * Calculate Fout = dot clock * 
ColorDepth / (2 * Lane Count)
9315788ce03297 LUU HOAI 2020-02-25  196          * The range out Fout is [40 - 
1250] Mhz
9315788ce03297 LUU HOAI 2020-02-25  197          */
9315788ce03297 LUU HOAI 2020-02-25  198         fout_target = target * 
mipi_dsi_pixel_format_to_bpp(dsi->format)
9315788ce03297 LUU HOAI 2020-02-25  199                     / (2 * dsi->lanes);
9315788ce03297 LUU HOAI 2020-02-25  200         if (fout_target < 40000000 || 
fout_target > 1250000000)
9315788ce03297 LUU HOAI 2020-02-25  201                 return;
9315788ce03297 LUU HOAI 2020-02-25  202  
9315788ce03297 LUU HOAI 2020-02-25  203         /* Find vco_cntrl */
9315788ce03297 LUU HOAI 2020-02-25  204         for (vco_cntrl = 
vco_cntrl_table; vco_cntrl->min_freq != 0; vco_cntrl++) {
9315788ce03297 LUU HOAI 2020-02-25  205                 if (fout_target > 
vco_cntrl->min_freq &&
9315788ce03297 LUU HOAI 2020-02-25  206                     fout_target <= 
vco_cntrl->max_freq) {
9315788ce03297 LUU HOAI 2020-02-25  207                         
setup_info->vco_cntrl = vco_cntrl->value;
9315788ce03297 LUU HOAI 2020-02-25  208                         if (fout_target 
>= 1150000000)
9315788ce03297 LUU HOAI 2020-02-25  209                                 
setup_info->prop_cntrl = 0x0c;
9315788ce03297 LUU HOAI 2020-02-25  210                         else
9315788ce03297 LUU HOAI 2020-02-25  211                                 
setup_info->prop_cntrl = 0x0b;
9315788ce03297 LUU HOAI 2020-02-25  212                         break;
9315788ce03297 LUU HOAI 2020-02-25  213                 }
9315788ce03297 LUU HOAI 2020-02-25  214         }
9315788ce03297 LUU HOAI 2020-02-25  215  
9315788ce03297 LUU HOAI 2020-02-25  216         /* Add divider */
9315788ce03297 LUU HOAI 2020-02-25  217         setup_info->div = 
(setup_info->vco_cntrl & 0x30) >> 4;
9315788ce03297 LUU HOAI 2020-02-25  218  
9315788ce03297 LUU HOAI 2020-02-25  219         /* Find hsfreqrange */
9315788ce03297 LUU HOAI 2020-02-25  220         hsfreq = fout_target * 2;
9315788ce03297 LUU HOAI 2020-02-25  221         for (i = 0; i < 
ARRAY_SIZE(hsfreqrange_table); i++) {
9315788ce03297 LUU HOAI 2020-02-25  222                 if (hsfreq > 
hsfreqrange_table[i][0] &&
9315788ce03297 LUU HOAI 2020-02-25 @223                         hsfreq <= 
hsfreqrange_table[i+1][0]) {
9315788ce03297 LUU HOAI 2020-02-25  224                         
setup_info->hsfreqrange = hsfreqrange_table[i+1][1];
9315788ce03297 LUU HOAI 2020-02-25  225                         break;
9315788ce03297 LUU HOAI 2020-02-25  226                 }
9315788ce03297 LUU HOAI 2020-02-25  227         }
9315788ce03297 LUU HOAI 2020-02-25  228  
9315788ce03297 LUU HOAI 2020-02-25  229         /*
9315788ce03297 LUU HOAI 2020-02-25  230          * Calculate n and m for PLL 
clock
9315788ce03297 LUU HOAI 2020-02-25  231          * Following the HW manual the 
ranges of n and m are
9315788ce03297 LUU HOAI 2020-02-25  232          * n = [3-8] and m = [64-625]
9315788ce03297 LUU HOAI 2020-02-25  233          */
9315788ce03297 LUU HOAI 2020-02-25  234         fin = clk_get_rate(clk);
9315788ce03297 LUU HOAI 2020-02-25  235         divider = 1 << setup_info->div;
9315788ce03297 LUU HOAI 2020-02-25  236         for (n = 3; n < 9; n++) {
9315788ce03297 LUU HOAI 2020-02-25  237                 unsigned long fpfd;
9315788ce03297 LUU HOAI 2020-02-25  238                 unsigned int m;
9315788ce03297 LUU HOAI 2020-02-25  239  
9315788ce03297 LUU HOAI 2020-02-25  240                 fpfd = fin / n;
9315788ce03297 LUU HOAI 2020-02-25  241  
9315788ce03297 LUU HOAI 2020-02-25  242                 for (m = 64; m < 626; 
m++) {
9315788ce03297 LUU HOAI 2020-02-25  243                         fout = fpfd * m 
/ divider;
9315788ce03297 LUU HOAI 2020-02-25  244                         err = 
abs((long)(fout - fout_target) * 10000 /
9315788ce03297 LUU HOAI 2020-02-25  245                                   
(long)fout_target);
9315788ce03297 LUU HOAI 2020-02-25  246                         if (err < 
best_err) {
9315788ce03297 LUU HOAI 2020-02-25  247                                 
setup_info->m = m - 2;
9315788ce03297 LUU HOAI 2020-02-25  248                                 
setup_info->n = n - 1;
9315788ce03297 LUU HOAI 2020-02-25  249                                 
setup_info->fout = fout;
9315788ce03297 LUU HOAI 2020-02-25  250                                 
best_err = err;
9315788ce03297 LUU HOAI 2020-02-25  251                                 if (err 
== 0)
9315788ce03297 LUU HOAI 2020-02-25  252                                         
goto done;
9315788ce03297 LUU HOAI 2020-02-25  253                         }
9315788ce03297 LUU HOAI 2020-02-25  254                 }
9315788ce03297 LUU HOAI 2020-02-25  255         }
9315788ce03297 LUU HOAI 2020-02-25  256  
9315788ce03297 LUU HOAI 2020-02-25  257  done:
9315788ce03297 LUU HOAI 2020-02-25  258         dev_dbg(dsi->dev,
9315788ce03297 LUU HOAI 2020-02-25  259                 "%pC %lu Hz -> Fout %lu 
Hz (target %lu Hz, error %d.%02u%%), PLL M/N/DIV %u/%u/%u\n",
9315788ce03297 LUU HOAI 2020-02-25  260                 clk, fin, 
setup_info->fout, fout_target, best_err / 100,
9315788ce03297 LUU HOAI 2020-02-25  261                 best_err % 100, 
setup_info->m, setup_info->n, setup_info->div);
9315788ce03297 LUU HOAI 2020-02-25  262         dev_dbg(dsi->dev,
9315788ce03297 LUU HOAI 2020-02-25  263                 "vco_cntrl = 
0x%x\tprop_cntrl = 0x%x\thsfreqrange = 0x%x\n",
9315788ce03297 LUU HOAI 2020-02-25  264                 setup_info->vco_cntrl, 
setup_info->prop_cntrl,
9315788ce03297 LUU HOAI 2020-02-25  265                 
setup_info->hsfreqrange);
9315788ce03297 LUU HOAI 2020-02-25  266  }
9315788ce03297 LUU HOAI 2020-02-25  267  

---
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