Hello AngeloGioacchino Del Regno,

Commit 38d42c261389 ("drm: panel: Add driver for Himax HX8279 DDIC
panels") from Apr 14, 2025 (linux-next), leads to the following
Smatch static checker warning:

        drivers/gpu/drm/panel/panel-himax-hx8279.c:593 
hx8279_set_digital_gamma()
        warn: reusing outside iterator: 'i'

drivers/gpu/drm/panel/panel-himax-hx8279.c
    573 static void hx8279_set_digital_gamma(struct hx8279 *hx,
    574                                      struct mipi_dsi_multi_context 
*dsi_ctx)
    575 {
    576         const struct hx8279_digital_gamma *dgamma = hx->desc->dgamma;
    577         u8 cmd_set_dig_gamma[2];
    578         int i;
    579 
    580         if (!dgamma)
    581                 return;
    582 
    583         /*
    584          * Pages 7..9 are for RGB Positive, 10..12 are for RGB Negative:
    585          * The first iteration sets all positive component registers,
    586          * the second one sets all negatives.
    587          */
    588         for (i = 0; i < 2; i++) {
                     ^^^^^^^^^^^^^^^^^
This looks like a loop but it only iterates once

    589                 u8 pg_neg = i * 3;
    590 
    591                 hx8279_set_page(hx, dsi_ctx, 7 + pg_neg);
    592 
--> 593                 for (i = 0; i < ARRAY_SIZE(dgamma->r); i++) {

because we re-use i here

    594                         cmd_set_dig_gamma[0] = HX8279_PG_DIGITAL_GAMMA 
+ i;
    595                         cmd_set_dig_gamma[1] = dgamma->r[i];
    596                         mipi_dsi_generic_write_multi(dsi_ctx, 
cmd_set_dig_gamma,
    597                                                      
ARRAY_SIZE(cmd_set_dig_gamma));
    598                 }
    599 
    600                 hx8279_set_page(hx, dsi_ctx, 8 + pg_neg);
    601 
    602                 for (i = 0; i < ARRAY_SIZE(dgamma->g); i++) {

and here

    603                         cmd_set_dig_gamma[0] = HX8279_PG_DIGITAL_GAMMA 
+ i;
    604                         cmd_set_dig_gamma[1] = dgamma->g[i];
    605                         mipi_dsi_generic_write_multi(dsi_ctx, 
cmd_set_dig_gamma,
    606                                                      
ARRAY_SIZE(cmd_set_dig_gamma));
    607                 }
    608 
    609                 hx8279_set_page(hx, dsi_ctx, 9 + pg_neg);
    610 
    611                 for (i = 0; i < ARRAY_SIZE(dgamma->b); i++) {

and here

    612                         cmd_set_dig_gamma[0] = HX8279_PG_DIGITAL_GAMMA 
+ i;
    613                         cmd_set_dig_gamma[1] = dgamma->b[i];
    614                         mipi_dsi_generic_write_multi(dsi_ctx, 
cmd_set_dig_gamma,
    615                                                      
ARRAY_SIZE(cmd_set_dig_gamma));
    616                 }
    617         }
    618 }

regards,
dan carpenter

Reply via email to