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@xxxxxxxxxxx> > > > Reviewed-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxx >> https://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel