Re: [bug report] drm: rcar-du: Add RZ/G2L DSI driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

On Thu, Jun 15, 2023 at 06:22:45AM +0000, Biju Das wrote:
> Hi Dan Carpenter,
> 
> Thanks for the feedback.
> 
> + Laurent.
> 
> It is already validated in [1]
> 
> [1] https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/rcar-du/rzg2l_mipi_dsi.c#L619
> 
> So we won't get wrong formats in rzg2l_mipi_dsi_set_display_timing().
> 
> Laurent, Please correct me if I am wrong.

The issue is that static checkers can't know that. You should add a
default statement to the switch, possibly with a comment to explain why.

> > -----Original Message-----
> > From: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> > Sent: Thursday, June 15, 2023 7:14 AM
> > To: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
> > Cc: linux-renesas-soc@xxxxxxxxxxxxxxx
> > Subject: [bug report] drm: rcar-du: Add RZ/G2L DSI driver
> > 
> > Hello Biju Das,
> > 
> > The patch 7a043f978ed1: "drm: rcar-du: Add RZ/G2L DSI driver" from Sep 20,
> > 2022, leads to the following Smatch static checker warning:
> > 
> > 	drivers/gpu/drm/renesas/rcar-du/rzg2l_mipi_dsi.c:374 rzg2l_mipi_dsi_set_display_timing()
> > 	error: uninitialized symbol 'vich1ppsetr'.
> > 
> > drivers/gpu/drm/renesas/rcar-du/rzg2l_mipi_dsi.c
> >     347 static void rzg2l_mipi_dsi_set_display_timing(struct rzg2l_mipi_dsi *dsi,
> >     348                                               const struct drm_display_mode *mode)
> >     349 {
> >     350         u32 vich1ppsetr;
> >     351         u32 vich1vssetr;
> >     352         u32 vich1vpsetr;
> >     353         u32 vich1hssetr;
> >     354         u32 vich1hpsetr;
> >     355         int dsi_format;
> >     356         u32 delay[2];
> >     357         u8 index;
> >     358
> >     359         /* Configuration for Pixel Packet */
> >     360         dsi_format = mipi_dsi_pixel_format_to_bpp(dsi->format);
> >     361         switch (dsi_format) {
> >     362         case 24:
> >     363                 vich1ppsetr = VICH1PPSETR_DT_RGB24;
> >     364                 break;
> >     365         case 18:
> >     366                 vich1ppsetr = VICH1PPSETR_DT_RGB18;
> >     367                 break;
> > 
> > mipi_dsi_pixel_format_to_bpp() also returns 16 and -EIVNAL.
> > 
> >     368         }
> >     369
> >     370         if ((dsi->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE) &&
> >     371             !(dsi->mode_flags & MIPI_DSI_MODE_VIDEO_BURST))
> >     372                 vich1ppsetr |= VICH1PPSETR_TXESYNC_PULSE;
> >     373
> > --> 374         rzg2l_mipi_dsi_link_write(dsi, VICH1PPSETR, vich1ppsetr);
> >                                                             ^^^^^^^^^^^
> > Static checker uninitialized variable warning.
> > 
> >     375
> >     376         /* Configuration for Video Parameters */
> >     377         vich1vssetr = VICH1VSSETR_VACTIVE(mode->vdisplay) |
> >     378                       VICH1VSSETR_VSA(mode->vsync_end - mode->vsync_start);
> >     379         vich1vssetr |= (mode->flags & DRM_MODE_FLAG_PVSYNC) ?
> > 
> > regards,
> > dan carpenter

-- 
Regards,

Laurent Pinchart



[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux