Re: [PATCH 3/3] video: fbdev: mmp: fix sparse warnings about using incorrect types
On 8/20/19 1:07 PM, Andrzej Hajda wrote: > On 27.06.2019 16:08, Bartlomiej Zolnierkiewicz wrote: >> Use ->screen_buffer instead of ->screen_base in mmpfb driver. >> >> [ Please see commit 17a7b0b4d974 ("fb.h: Provide alternate screen_base >> pointer") for details. ] >> >> Also fix all other sparse warnings about using incorrect types in >> mmp display subsystem. >> >> Signed-off-by: Bartlomiej Zolnierkiewicz > > > Reviewed-by: Andrzej Hajda Thanks, I've queued the patch for v5.6. Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics > -- > Regards > Andrzej > > >> --- >> drivers/video/fbdev/mmp/fb/mmpfb.c|2 - >> drivers/video/fbdev/mmp/hw/mmp_ctrl.c | 55 >> +++--- >> drivers/video/fbdev/mmp/hw/mmp_ctrl.h | 10 +++--- >> drivers/video/fbdev/mmp/hw/mmp_spi.c |6 +-- >> 4 files changed, 41 insertions(+), 32 deletions(-) >> >> Index: b/drivers/video/fbdev/mmp/fb/mmpfb.c >> === >> --- a/drivers/video/fbdev/mmp/fb/mmpfb.c >> +++ b/drivers/video/fbdev/mmp/fb/mmpfb.c >> @@ -522,7 +522,7 @@ static int fb_info_setup(struct fb_info >> info->var.bits_per_pixel / 8; >> info->fbops = &mmpfb_ops; >> info->pseudo_palette = fbi->pseudo_palette; >> -info->screen_base = fbi->fb_start; >> +info->screen_buffer = fbi->fb_start; >> info->screen_size = fbi->fb_size; >> >> /* For FB framework: Allocate color map and Register framebuffer*/ >> Index: b/drivers/video/fbdev/mmp/hw/mmp_ctrl.c >> === >> --- a/drivers/video/fbdev/mmp/hw/mmp_ctrl.c >> +++ b/drivers/video/fbdev/mmp/hw/mmp_ctrl.c >> @@ -136,19 +136,26 @@ static void overlay_set_win(struct mmp_o >> mutex_lock(&overlay->access_ok); >> >> if (overlay_is_vid(overlay)) { >> -writel_relaxed(win->pitch[0], ®s->v_pitch_yc); >> -writel_relaxed(win->pitch[2] << 16 | >> -win->pitch[1], ®s->v_pitch_uv); >> - >> -writel_relaxed((win->ysrc << 16) | win->xsrc, ®s->v_size); >> -writel_relaxed((win->ydst << 16) | win->xdst, ®s->v_size_z); >> -writel_relaxed(win->ypos << 16 | win->xpos, ®s->v_start); >> +writel_relaxed(win->pitch[0], >> +(void __iomem *)®s->v_pitch_yc); >> +writel_relaxed(win->pitch[2] << 16 | win->pitch[1], >> +(void __iomem *)®s->v_pitch_uv); >> + >> +writel_relaxed((win->ysrc << 16) | win->xsrc, >> +(void __iomem *)®s->v_size); >> +writel_relaxed((win->ydst << 16) | win->xdst, >> +(void __iomem *)®s->v_size_z); >> +writel_relaxed(win->ypos << 16 | win->xpos, >> +(void __iomem *)®s->v_start); >> } else { >> -writel_relaxed(win->pitch[0], ®s->g_pitch); >> +writel_relaxed(win->pitch[0], (void __iomem *)®s->g_pitch); >> >> -writel_relaxed((win->ysrc << 16) | win->xsrc, ®s->g_size); >> -writel_relaxed((win->ydst << 16) | win->xdst, ®s->g_size_z); >> -writel_relaxed(win->ypos << 16 | win->xpos, ®s->g_start); >> +writel_relaxed((win->ysrc << 16) | win->xsrc, >> +(void __iomem *)®s->g_size); >> +writel_relaxed((win->ydst << 16) | win->xdst, >> +(void __iomem *)®s->g_size_z); >> +writel_relaxed(win->ypos << 16 | win->xpos, >> +(void __iomem *)®s->g_start); >> } >> >> dmafetch_set_fmt(overlay); >> @@ -233,11 +240,11 @@ static int overlay_set_addr(struct mmp_o >> memcpy(&overlay->addr, addr, sizeof(struct mmp_addr)); >> >> if (overlay_is_vid(overlay)) { >> -writel_relaxed(addr->phys[0], ®s->v_y0); >> -writel_relaxed(addr->phys[1], ®s->v_u0); >> -writel_relaxed(addr->phys[2], ®s->v_v0); >> +writel_relaxed(addr->phys[0], (void __iomem *)®s->v_y0); >> +writel_relaxed(addr->phys[1], (void __iomem *)®s->v_u0); >> +writel_relaxed(addr->phys[2], (void __iomem *)®s->v_v0); >> } else >> -writel_relaxed(addr->phys[0], ®s->g_0); >> +writel_relaxed(addr->phys[0], (void __iomem *)®s->g_0); >> >> return overlay->addr.phys[0]; >> } >> @@ -268,16 +275,18 @@ static void path_set_mode(struct mmp_pat >> tmp |= dsi_rbswap & CFG_INTFRBSWAP_MASK; >> writel_relaxed(tmp, ctrl_regs(path) + intf_rbswap_ctrl(path->id)); >> >> -writel_relaxed((mode->yres << 16) | mode->xres, ®s->screen_active); >> +writel_relaxed((mode->yres << 16) | mode->xres, >> +(void __iomem *)®s->screen_active); >> writel_relaxed((mode->left_margin << 16) | mode->right_margin, >> -®s->screen_h_porch); >> +
Re: [PATCH 3/3] video: fbdev: mmp: fix sparse warnings about using incorrect types
On 27.06.2019 16:08, Bartlomiej Zolnierkiewicz wrote: > Use ->screen_buffer instead of ->screen_base in mmpfb driver. > > [ Please see commit 17a7b0b4d974 ("fb.h: Provide alternate screen_base > pointer") for details. ] > > Also fix all other sparse warnings about using incorrect types in > mmp display subsystem. > > Signed-off-by: Bartlomiej Zolnierkiewicz Reviewed-by: Andrzej Hajda -- Regards Andrzej > --- > drivers/video/fbdev/mmp/fb/mmpfb.c|2 - > drivers/video/fbdev/mmp/hw/mmp_ctrl.c | 55 > +++--- > drivers/video/fbdev/mmp/hw/mmp_ctrl.h | 10 +++--- > drivers/video/fbdev/mmp/hw/mmp_spi.c |6 +-- > 4 files changed, 41 insertions(+), 32 deletions(-) > > Index: b/drivers/video/fbdev/mmp/fb/mmpfb.c > === > --- a/drivers/video/fbdev/mmp/fb/mmpfb.c > +++ b/drivers/video/fbdev/mmp/fb/mmpfb.c > @@ -522,7 +522,7 @@ static int fb_info_setup(struct fb_info > info->var.bits_per_pixel / 8; > info->fbops = &mmpfb_ops; > info->pseudo_palette = fbi->pseudo_palette; > - info->screen_base = fbi->fb_start; > + info->screen_buffer = fbi->fb_start; > info->screen_size = fbi->fb_size; > > /* For FB framework: Allocate color map and Register framebuffer*/ > Index: b/drivers/video/fbdev/mmp/hw/mmp_ctrl.c > === > --- a/drivers/video/fbdev/mmp/hw/mmp_ctrl.c > +++ b/drivers/video/fbdev/mmp/hw/mmp_ctrl.c > @@ -136,19 +136,26 @@ static void overlay_set_win(struct mmp_o > mutex_lock(&overlay->access_ok); > > if (overlay_is_vid(overlay)) { > - writel_relaxed(win->pitch[0], ®s->v_pitch_yc); > - writel_relaxed(win->pitch[2] << 16 | > - win->pitch[1], ®s->v_pitch_uv); > - > - writel_relaxed((win->ysrc << 16) | win->xsrc, ®s->v_size); > - writel_relaxed((win->ydst << 16) | win->xdst, ®s->v_size_z); > - writel_relaxed(win->ypos << 16 | win->xpos, ®s->v_start); > + writel_relaxed(win->pitch[0], > + (void __iomem *)®s->v_pitch_yc); > + writel_relaxed(win->pitch[2] << 16 | win->pitch[1], > + (void __iomem *)®s->v_pitch_uv); > + > + writel_relaxed((win->ysrc << 16) | win->xsrc, > + (void __iomem *)®s->v_size); > + writel_relaxed((win->ydst << 16) | win->xdst, > + (void __iomem *)®s->v_size_z); > + writel_relaxed(win->ypos << 16 | win->xpos, > + (void __iomem *)®s->v_start); > } else { > - writel_relaxed(win->pitch[0], ®s->g_pitch); > + writel_relaxed(win->pitch[0], (void __iomem *)®s->g_pitch); > > - writel_relaxed((win->ysrc << 16) | win->xsrc, ®s->g_size); > - writel_relaxed((win->ydst << 16) | win->xdst, ®s->g_size_z); > - writel_relaxed(win->ypos << 16 | win->xpos, ®s->g_start); > + writel_relaxed((win->ysrc << 16) | win->xsrc, > + (void __iomem *)®s->g_size); > + writel_relaxed((win->ydst << 16) | win->xdst, > + (void __iomem *)®s->g_size_z); > + writel_relaxed(win->ypos << 16 | win->xpos, > + (void __iomem *)®s->g_start); > } > > dmafetch_set_fmt(overlay); > @@ -233,11 +240,11 @@ static int overlay_set_addr(struct mmp_o > memcpy(&overlay->addr, addr, sizeof(struct mmp_addr)); > > if (overlay_is_vid(overlay)) { > - writel_relaxed(addr->phys[0], ®s->v_y0); > - writel_relaxed(addr->phys[1], ®s->v_u0); > - writel_relaxed(addr->phys[2], ®s->v_v0); > + writel_relaxed(addr->phys[0], (void __iomem *)®s->v_y0); > + writel_relaxed(addr->phys[1], (void __iomem *)®s->v_u0); > + writel_relaxed(addr->phys[2], (void __iomem *)®s->v_v0); > } else > - writel_relaxed(addr->phys[0], ®s->g_0); > + writel_relaxed(addr->phys[0], (void __iomem *)®s->g_0); > > return overlay->addr.phys[0]; > } > @@ -268,16 +275,18 @@ static void path_set_mode(struct mmp_pat > tmp |= dsi_rbswap & CFG_INTFRBSWAP_MASK; > writel_relaxed(tmp, ctrl_regs(path) + intf_rbswap_ctrl(path->id)); > > - writel_relaxed((mode->yres << 16) | mode->xres, ®s->screen_active); > + writel_relaxed((mode->yres << 16) | mode->xres, > + (void __iomem *)®s->screen_active); > writel_relaxed((mode->left_margin << 16) | mode->right_margin, > - ®s->screen_h_porch); > + (void __iomem *)®s->screen_h_porch); > writel_relaxed((mode->upper_margin << 16) | mode->lower_margin, > - ®s->screen_v_porch); > + (void __iomem *)®s->screen_v_porch); > total_x = mode->xres + m
[PATCH 3/3] video: fbdev: mmp: fix sparse warnings about using incorrect types
Use ->screen_buffer instead of ->screen_base in mmpfb driver. [ Please see commit 17a7b0b4d974 ("fb.h: Provide alternate screen_base pointer") for details. ] Also fix all other sparse warnings about using incorrect types in mmp display subsystem. Signed-off-by: Bartlomiej Zolnierkiewicz --- drivers/video/fbdev/mmp/fb/mmpfb.c|2 - drivers/video/fbdev/mmp/hw/mmp_ctrl.c | 55 +++--- drivers/video/fbdev/mmp/hw/mmp_ctrl.h | 10 +++--- drivers/video/fbdev/mmp/hw/mmp_spi.c |6 +-- 4 files changed, 41 insertions(+), 32 deletions(-) Index: b/drivers/video/fbdev/mmp/fb/mmpfb.c === --- a/drivers/video/fbdev/mmp/fb/mmpfb.c +++ b/drivers/video/fbdev/mmp/fb/mmpfb.c @@ -522,7 +522,7 @@ static int fb_info_setup(struct fb_info info->var.bits_per_pixel / 8; info->fbops = &mmpfb_ops; info->pseudo_palette = fbi->pseudo_palette; - info->screen_base = fbi->fb_start; + info->screen_buffer = fbi->fb_start; info->screen_size = fbi->fb_size; /* For FB framework: Allocate color map and Register framebuffer*/ Index: b/drivers/video/fbdev/mmp/hw/mmp_ctrl.c === --- a/drivers/video/fbdev/mmp/hw/mmp_ctrl.c +++ b/drivers/video/fbdev/mmp/hw/mmp_ctrl.c @@ -136,19 +136,26 @@ static void overlay_set_win(struct mmp_o mutex_lock(&overlay->access_ok); if (overlay_is_vid(overlay)) { - writel_relaxed(win->pitch[0], ®s->v_pitch_yc); - writel_relaxed(win->pitch[2] << 16 | - win->pitch[1], ®s->v_pitch_uv); - - writel_relaxed((win->ysrc << 16) | win->xsrc, ®s->v_size); - writel_relaxed((win->ydst << 16) | win->xdst, ®s->v_size_z); - writel_relaxed(win->ypos << 16 | win->xpos, ®s->v_start); + writel_relaxed(win->pitch[0], + (void __iomem *)®s->v_pitch_yc); + writel_relaxed(win->pitch[2] << 16 | win->pitch[1], + (void __iomem *)®s->v_pitch_uv); + + writel_relaxed((win->ysrc << 16) | win->xsrc, + (void __iomem *)®s->v_size); + writel_relaxed((win->ydst << 16) | win->xdst, + (void __iomem *)®s->v_size_z); + writel_relaxed(win->ypos << 16 | win->xpos, + (void __iomem *)®s->v_start); } else { - writel_relaxed(win->pitch[0], ®s->g_pitch); + writel_relaxed(win->pitch[0], (void __iomem *)®s->g_pitch); - writel_relaxed((win->ysrc << 16) | win->xsrc, ®s->g_size); - writel_relaxed((win->ydst << 16) | win->xdst, ®s->g_size_z); - writel_relaxed(win->ypos << 16 | win->xpos, ®s->g_start); + writel_relaxed((win->ysrc << 16) | win->xsrc, + (void __iomem *)®s->g_size); + writel_relaxed((win->ydst << 16) | win->xdst, + (void __iomem *)®s->g_size_z); + writel_relaxed(win->ypos << 16 | win->xpos, + (void __iomem *)®s->g_start); } dmafetch_set_fmt(overlay); @@ -233,11 +240,11 @@ static int overlay_set_addr(struct mmp_o memcpy(&overlay->addr, addr, sizeof(struct mmp_addr)); if (overlay_is_vid(overlay)) { - writel_relaxed(addr->phys[0], ®s->v_y0); - writel_relaxed(addr->phys[1], ®s->v_u0); - writel_relaxed(addr->phys[2], ®s->v_v0); + writel_relaxed(addr->phys[0], (void __iomem *)®s->v_y0); + writel_relaxed(addr->phys[1], (void __iomem *)®s->v_u0); + writel_relaxed(addr->phys[2], (void __iomem *)®s->v_v0); } else - writel_relaxed(addr->phys[0], ®s->g_0); + writel_relaxed(addr->phys[0], (void __iomem *)®s->g_0); return overlay->addr.phys[0]; } @@ -268,16 +275,18 @@ static void path_set_mode(struct mmp_pat tmp |= dsi_rbswap & CFG_INTFRBSWAP_MASK; writel_relaxed(tmp, ctrl_regs(path) + intf_rbswap_ctrl(path->id)); - writel_relaxed((mode->yres << 16) | mode->xres, ®s->screen_active); + writel_relaxed((mode->yres << 16) | mode->xres, + (void __iomem *)®s->screen_active); writel_relaxed((mode->left_margin << 16) | mode->right_margin, - ®s->screen_h_porch); + (void __iomem *)®s->screen_h_porch); writel_relaxed((mode->upper_margin << 16) | mode->lower_margin, - ®s->screen_v_porch); + (void __iomem *)®s->screen_v_porch); total_x = mode->xres + mode->left_margin + mode->right_margin + mode->hsync_len; total_y = mode->yres + mode->upper_margin + mode->lower_margin + mode->vsync_len; -