Hello Peter Ujfalusi,

The patch 6a1560ecaa8c: "media: v4l: omap_vout: vrfb: Convert to
dmaengine" from May 3, 2017, leads to the following static checker
warning:

        drivers/media/platform/omap/omap_vout_vrfb.c:273 
omap_vout_prepare_vrfb()
        error: uninitialized symbol 'flags'.

drivers/media/platform/omap/omap_vout_vrfb.c
   232  int omap_vout_prepare_vrfb(struct omap_vout_device *vout,
   233                             struct videobuf_buffer *vb)
   234  {
   235          struct dma_async_tx_descriptor *tx;
   236          enum dma_ctrl_flags flags;
                                    ^^^^^

   237          struct dma_chan *chan = vout->vrfb_dma_tx.chan;
   238          struct dma_device *dmadev = chan->device;
   239          struct dma_interleaved_template *xt = vout->vrfb_dma_tx.xt;
   240          dma_cookie_t cookie;
   241          enum dma_status status;
   242          enum dss_rotation rotation;
   243          size_t dst_icg;
   244          u32 pixsize;
   245  
   246          if (!is_rotation_enabled(vout))
   247                  return 0;
   248  
   249          /* If rotation is enabled, copy input buffer into VRFB
   250           * memory space using DMA. We are copying input buffer
   251           * into VRFB memory space of desired angle and DSS will
   252           * read image VRFB memory for 0 degree angle
   253           */
   254  
   255          pixsize = vout->bpp * vout->vrfb_bpp;
   256          dst_icg = ((MAX_PIXELS_PER_LINE * pixsize) -
   257                    (vout->pix.width * vout->bpp)) + 1;
   258  
   259          xt->src_start = vout->buf_phy_addr[vb->i];
   260          xt->dst_start = vout->vrfb_context[vb->i].paddr[0];
   261  
   262          xt->numf = vout->pix.height;
   263          xt->frame_size = 1;
   264          xt->sgl[0].size = vout->pix.width * vout->bpp;
   265          xt->sgl[0].icg = dst_icg;
   266  
   267          xt->dir = DMA_MEM_TO_MEM;
   268          xt->src_sgl = false;
   269          xt->src_inc = true;
   270          xt->dst_sgl = true;
   271          xt->dst_inc = true;
   272  
   273          tx = dmadev->device_prep_interleaved_dma(chan, xt, flags);
                                                                   ^^^^^
I'm surprised new versions of GCC don't complain about this.

   274          if (tx == NULL) {
   275                  pr_err("%s: DMA interleaved prep error\n", __func__);
   276                  return -EINVAL;

regards,
dan carpenter

Reply via email to