[bug report] drm: atmel-hlcdc: add driver ops to differentiate HLCDC and XLCDC IP

Dan Carpenter dan.carpenter at linaro.org
Thu Jun 20 08:50:07 UTC 2024


Hello Manikandan Muralidharan,

Commit aa71584b323a ("drm: atmel-hlcdc: add driver ops to
differentiate HLCDC and XLCDC IP") from Apr 24, 2024 (linux-next),
leads to the following Smatch static checker warning:

	drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c:573 atmel_hlcdc_plane_update_buffers()
	error: uninitialized symbol 'sr'.

drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
    556 static void atmel_hlcdc_plane_update_buffers(struct atmel_hlcdc_plane *plane,
    557                                              struct atmel_hlcdc_plane_state *state)
    558 {
    559         const struct atmel_hlcdc_layer_desc *desc = plane->layer.desc;
    560         struct atmel_hlcdc_dc *dc = plane->base.dev->dev_private;
    561         struct drm_framebuffer *fb = state->base.fb;
    562         u32 sr;
    563         int i;
    564 
    565         if (!dc->desc->is_xlcdc)
    566                 sr = atmel_hlcdc_layer_read_reg(&plane->layer, ATMEL_HLCDC_LAYER_CHSR);

sr is uninitialized on else path.

    567 
    568         for (i = 0; i < state->nplanes; i++) {
    569                 struct drm_gem_dma_object *gem = drm_fb_dma_get_gem_obj(fb, i);
    570 
    571                 state->dscrs[i]->addr = gem->dma_addr + state->offsets[i];
    572 
--> 573                 dc->desc->ops->lcdc_update_buffers(plane, state, sr, i);
                                                                         ^^
Uninitialized.

    574 
    575                 if (desc->layout.xstride[i])
    576                         atmel_hlcdc_layer_write_cfg(&plane->layer,
    577                                                     desc->layout.xstride[i],
    578                                                     state->xstride[i]);
    579 
    580                 if (desc->layout.pstride[i])
    581                         atmel_hlcdc_layer_write_cfg(&plane->layer,
    582                                                     desc->layout.pstride[i],
    583                                                     state->pstride[i]);
    584         }
    585 }

regards,
dan carpenter


More information about the dri-devel mailing list