Message ID | ee796b43-f200-d41a-b18c-ae3d6bcaaa67@samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/3] video: fbdev: mmp: remove duplicated MMP_DISP dependency | expand |
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 <b.zolnierkie@samsung.com> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> -- 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 + mode->left_margin + mode->right_margin + > mode->hsync_len; > total_y = mode->yres + mode->upper_margin + mode->lower_margin + > mode->vsync_len; > - writel_relaxed((total_y << 16) | total_x, ®s->screen_size); > + writel_relaxed((total_y << 16) | total_x, > + (void __iomem *)®s->screen_size); > > /* vsync ctrl */ > if (path->output_type == PATH_OUT_DSI) > @@ -285,7 +294,7 @@ static void path_set_mode(struct mmp_pat > else > vsync_ctrl = ((mode->xres + mode->right_margin) << 16) > | (mode->xres + mode->right_margin); > - writel_relaxed(vsync_ctrl, ®s->vsync_ctrl); > + writel_relaxed(vsync_ctrl, (void __iomem *)®s->vsync_ctrl); > > /* set pixclock div */ > sclk_src = clk_get_rate(path_to_ctrl(path)->clk); > @@ -366,9 +375,9 @@ static void path_set_default(struct mmp_ > writel_relaxed(dma_ctrl1, ctrl_regs(path) + dma_ctrl(1, path->id)); > > /* Configure default register values */ > - writel_relaxed(0x00000000, ®s->blank_color); > - writel_relaxed(0x00000000, ®s->g_1); > - writel_relaxed(0x00000000, ®s->g_start); > + writel_relaxed(0x00000000, (void __iomem *)®s->blank_color); > + writel_relaxed(0x00000000, (void __iomem *)®s->g_1); > + writel_relaxed(0x00000000, (void __iomem *)®s->g_start); > > /* > * 1.enable multiple burst request in DMA AXI > Index: b/drivers/video/fbdev/mmp/hw/mmp_ctrl.h > =================================================================== > --- a/drivers/video/fbdev/mmp/hw/mmp_ctrl.h > +++ b/drivers/video/fbdev/mmp/hw/mmp_ctrl.h > @@ -1393,7 +1393,7 @@ struct mmphw_ctrl { > /* platform related, get from config */ > const char *name; > int irq; > - void *reg_base; > + void __iomem *reg_base; > struct clk *clk; > > /* sys info */ > @@ -1429,7 +1429,7 @@ static inline struct mmphw_ctrl *overlay > return path_to_ctrl(overlay->path); > } > > -static inline void *ctrl_regs(struct mmp_path *path) > +static inline void __iomem *ctrl_regs(struct mmp_path *path) > { > return path_to_ctrl(path)->reg_base; > } > @@ -1438,11 +1438,11 @@ static inline void *ctrl_regs(struct mmp > static inline struct lcd_regs *path_regs(struct mmp_path *path) > { > if (path->id == PATH_PN) > - return (struct lcd_regs *)(ctrl_regs(path) + 0xc0); > + return (struct lcd_regs __force *)(ctrl_regs(path) + 0xc0); > else if (path->id == PATH_TV) > - return (struct lcd_regs *)ctrl_regs(path); > + return (struct lcd_regs __force *)ctrl_regs(path); > else if (path->id == PATH_P2) > - return (struct lcd_regs *)(ctrl_regs(path) + 0x200); > + return (struct lcd_regs __force *)(ctrl_regs(path) + 0x200); > else { > dev_err(path->dev, "path id %d invalid\n", path->id); > BUG_ON(1); > Index: b/drivers/video/fbdev/mmp/hw/mmp_spi.c > =================================================================== > --- a/drivers/video/fbdev/mmp/hw/mmp_spi.c > +++ b/drivers/video/fbdev/mmp/hw/mmp_spi.c > @@ -31,7 +31,7 @@ static inline int lcd_spi_write(struct s > { > int timeout = 100000, isr, ret = 0; > u32 tmp; > - void *reg_base = > + void __iomem *reg_base = (void __iomem *) > *(void **)spi_master_get_devdata(spi->master); > > /* clear ISR */ > @@ -80,7 +80,7 @@ static inline int lcd_spi_write(struct s > > static int lcd_spi_setup(struct spi_device *spi) > { > - void *reg_base = > + void __iomem *reg_base = (void __iomem *) > *(void **)spi_master_get_devdata(spi->master); > u32 tmp; > > @@ -146,7 +146,7 @@ int lcd_spi_register(struct mmphw_ctrl * > return -ENOMEM; > } > p_regbase = spi_master_get_devdata(master); > - *p_regbase = ctrl->reg_base; > + *p_regbase = (void __force *)ctrl->reg_base; > > /* set bus num to 5 to avoid conflict with other spi hosts */ > master->bus_num = 5; > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
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 <b.zolnierkie@samsung.com> > > > Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> 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); >> + (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; >> - writel_relaxed((total_y << 16) | total_x, ®s->screen_size); >> + writel_relaxed((total_y << 16) | total_x, >> + (void __iomem *)®s->screen_size); >> >> /* vsync ctrl */ >> if (path->output_type == PATH_OUT_DSI) >> @@ -285,7 +294,7 @@ static void path_set_mode(struct mmp_pat >> else >> vsync_ctrl = ((mode->xres + mode->right_margin) << 16) >> | (mode->xres + mode->right_margin); >> - writel_relaxed(vsync_ctrl, ®s->vsync_ctrl); >> + writel_relaxed(vsync_ctrl, (void __iomem *)®s->vsync_ctrl); >> >> /* set pixclock div */ >> sclk_src = clk_get_rate(path_to_ctrl(path)->clk); >> @@ -366,9 +375,9 @@ static void path_set_default(struct mmp_ >> writel_relaxed(dma_ctrl1, ctrl_regs(path) + dma_ctrl(1, path->id)); >> >> /* Configure default register values */ >> - writel_relaxed(0x00000000, ®s->blank_color); >> - writel_relaxed(0x00000000, ®s->g_1); >> - writel_relaxed(0x00000000, ®s->g_start); >> + writel_relaxed(0x00000000, (void __iomem *)®s->blank_color); >> + writel_relaxed(0x00000000, (void __iomem *)®s->g_1); >> + writel_relaxed(0x00000000, (void __iomem *)®s->g_start); >> >> /* >> * 1.enable multiple burst request in DMA AXI >> Index: b/drivers/video/fbdev/mmp/hw/mmp_ctrl.h >> =================================================================== >> --- a/drivers/video/fbdev/mmp/hw/mmp_ctrl.h >> +++ b/drivers/video/fbdev/mmp/hw/mmp_ctrl.h >> @@ -1393,7 +1393,7 @@ struct mmphw_ctrl { >> /* platform related, get from config */ >> const char *name; >> int irq; >> - void *reg_base; >> + void __iomem *reg_base; >> struct clk *clk; >> >> /* sys info */ >> @@ -1429,7 +1429,7 @@ static inline struct mmphw_ctrl *overlay >> return path_to_ctrl(overlay->path); >> } >> >> -static inline void *ctrl_regs(struct mmp_path *path) >> +static inline void __iomem *ctrl_regs(struct mmp_path *path) >> { >> return path_to_ctrl(path)->reg_base; >> } >> @@ -1438,11 +1438,11 @@ static inline void *ctrl_regs(struct mmp >> static inline struct lcd_regs *path_regs(struct mmp_path *path) >> { >> if (path->id == PATH_PN) >> - return (struct lcd_regs *)(ctrl_regs(path) + 0xc0); >> + return (struct lcd_regs __force *)(ctrl_regs(path) + 0xc0); >> else if (path->id == PATH_TV) >> - return (struct lcd_regs *)ctrl_regs(path); >> + return (struct lcd_regs __force *)ctrl_regs(path); >> else if (path->id == PATH_P2) >> - return (struct lcd_regs *)(ctrl_regs(path) + 0x200); >> + return (struct lcd_regs __force *)(ctrl_regs(path) + 0x200); >> else { >> dev_err(path->dev, "path id %d invalid\n", path->id); >> BUG_ON(1); >> Index: b/drivers/video/fbdev/mmp/hw/mmp_spi.c >> =================================================================== >> --- a/drivers/video/fbdev/mmp/hw/mmp_spi.c >> +++ b/drivers/video/fbdev/mmp/hw/mmp_spi.c >> @@ -31,7 +31,7 @@ static inline int lcd_spi_write(struct s >> { >> int timeout = 100000, isr, ret = 0; >> u32 tmp; >> - void *reg_base = >> + void __iomem *reg_base = (void __iomem *) >> *(void **)spi_master_get_devdata(spi->master); >> >> /* clear ISR */ >> @@ -80,7 +80,7 @@ static inline int lcd_spi_write(struct s >> >> static int lcd_spi_setup(struct spi_device *spi) >> { >> - void *reg_base = >> + void __iomem *reg_base = (void __iomem *) >> *(void **)spi_master_get_devdata(spi->master); >> u32 tmp; >> >> @@ -146,7 +146,7 @@ int lcd_spi_register(struct mmphw_ctrl * >> return -ENOMEM; >> } >> p_regbase = spi_master_get_devdata(master); >> - *p_regbase = ctrl->reg_base; >> + *p_regbase = (void __force *)ctrl->reg_base; >> >> /* set bus num to 5 to avoid conflict with other spi hosts */ >> master->bus_num = 5; >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel
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; - writel_relaxed((total_y << 16) | total_x, ®s->screen_size); + writel_relaxed((total_y << 16) | total_x, + (void __iomem *)®s->screen_size); /* vsync ctrl */ if (path->output_type == PATH_OUT_DSI) @@ -285,7 +294,7 @@ static void path_set_mode(struct mmp_pat else vsync_ctrl = ((mode->xres + mode->right_margin) << 16) | (mode->xres + mode->right_margin); - writel_relaxed(vsync_ctrl, ®s->vsync_ctrl); + writel_relaxed(vsync_ctrl, (void __iomem *)®s->vsync_ctrl); /* set pixclock div */ sclk_src = clk_get_rate(path_to_ctrl(path)->clk); @@ -366,9 +375,9 @@ static void path_set_default(struct mmp_ writel_relaxed(dma_ctrl1, ctrl_regs(path) + dma_ctrl(1, path->id)); /* Configure default register values */ - writel_relaxed(0x00000000, ®s->blank_color); - writel_relaxed(0x00000000, ®s->g_1); - writel_relaxed(0x00000000, ®s->g_start); + writel_relaxed(0x00000000, (void __iomem *)®s->blank_color); + writel_relaxed(0x00000000, (void __iomem *)®s->g_1); + writel_relaxed(0x00000000, (void __iomem *)®s->g_start); /* * 1.enable multiple burst request in DMA AXI Index: b/drivers/video/fbdev/mmp/hw/mmp_ctrl.h =================================================================== --- a/drivers/video/fbdev/mmp/hw/mmp_ctrl.h +++ b/drivers/video/fbdev/mmp/hw/mmp_ctrl.h @@ -1393,7 +1393,7 @@ struct mmphw_ctrl { /* platform related, get from config */ const char *name; int irq; - void *reg_base; + void __iomem *reg_base; struct clk *clk; /* sys info */ @@ -1429,7 +1429,7 @@ static inline struct mmphw_ctrl *overlay return path_to_ctrl(overlay->path); } -static inline void *ctrl_regs(struct mmp_path *path) +static inline void __iomem *ctrl_regs(struct mmp_path *path) { return path_to_ctrl(path)->reg_base; } @@ -1438,11 +1438,11 @@ static inline void *ctrl_regs(struct mmp static inline struct lcd_regs *path_regs(struct mmp_path *path) { if (path->id == PATH_PN) - return (struct lcd_regs *)(ctrl_regs(path) + 0xc0); + return (struct lcd_regs __force *)(ctrl_regs(path) + 0xc0); else if (path->id == PATH_TV) - return (struct lcd_regs *)ctrl_regs(path); + return (struct lcd_regs __force *)ctrl_regs(path); else if (path->id == PATH_P2) - return (struct lcd_regs *)(ctrl_regs(path) + 0x200); + return (struct lcd_regs __force *)(ctrl_regs(path) + 0x200); else { dev_err(path->dev, "path id %d invalid\n", path->id); BUG_ON(1); Index: b/drivers/video/fbdev/mmp/hw/mmp_spi.c =================================================================== --- a/drivers/video/fbdev/mmp/hw/mmp_spi.c +++ b/drivers/video/fbdev/mmp/hw/mmp_spi.c @@ -31,7 +31,7 @@ static inline int lcd_spi_write(struct s { int timeout = 100000, isr, ret = 0; u32 tmp; - void *reg_base = + void __iomem *reg_base = (void __iomem *) *(void **)spi_master_get_devdata(spi->master); /* clear ISR */ @@ -80,7 +80,7 @@ static inline int lcd_spi_write(struct s static int lcd_spi_setup(struct spi_device *spi) { - void *reg_base = + void __iomem *reg_base = (void __iomem *) *(void **)spi_master_get_devdata(spi->master); u32 tmp; @@ -146,7 +146,7 @@ int lcd_spi_register(struct mmphw_ctrl * return -ENOMEM; } p_regbase = spi_master_get_devdata(master); - *p_regbase = ctrl->reg_base; + *p_regbase = (void __force *)ctrl->reg_base; /* set bus num to 5 to avoid conflict with other spi hosts */ master->bus_num = 5;
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 <b.zolnierkie@samsung.com> --- 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(-)