From 97d16fe69b6499a14a0c85c053f7bef54ce992a4 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 22 Nov 2011 00:56:58 +0100 Subject: [PATCH] fbdev: sh_mobile_meram: Don't perform update in register operation Remove the RGB or Y/C base address update from the meram_register() operation, as this belongs to the meram_update() operation. Signed-off-by: Laurent Pinchart --- drivers/video/sh_mobile_lcdcfb.c | 8 +++++--- drivers/video/sh_mobile_meram.c | 15 ++------------- include/video/sh_mobile_meram.h | 4 ---- 3 files changed, 7 insertions(+), 20 deletions(-) diff --git a/drivers/video/sh_mobile_lcdcfb.c b/drivers/video/sh_mobile_lcdcfb.c index 03385161832..4b54cd5c956 100644 --- a/drivers/video/sh_mobile_lcdcfb.c +++ b/drivers/video/sh_mobile_lcdcfb.c @@ -882,11 +882,13 @@ static int sh_mobile_lcdc_start(struct sh_mobile_lcdc_priv *priv) meram = mdev->ops->meram_register(mdev, ch->cfg->meram_cfg, ch->pitch, ch->yres, pixelformat, - ch->base_addr_y, ch->base_addr_c, - &ch->base_addr_y, &ch->base_addr_c, &ch->pitch); - if (!IS_ERR(meram)) + if (!IS_ERR(meram)) { + mdev->ops->meram_update(mdev, meram, + ch->base_addr_y, ch->base_addr_c, + &ch->base_addr_y, &ch->base_addr_c); ch->meram = meram; + } } /* Start the LCDC. */ diff --git a/drivers/video/sh_mobile_meram.c b/drivers/video/sh_mobile_meram.c index 085c49ac99d..2ce0d8f72e3 100644 --- a/drivers/video/sh_mobile_meram.c +++ b/drivers/video/sh_mobile_meram.c @@ -448,10 +448,6 @@ static void *sh_mobile_meram_register(struct sh_mobile_meram_info *pdata, const struct sh_mobile_meram_cfg *cfg, unsigned int xres, unsigned int yres, unsigned int pixelformat, - unsigned long base_addr_y, - unsigned long base_addr_c, - unsigned long *icb_addr_y, - unsigned long *icb_addr_c, unsigned int *pitch) { struct sh_mobile_meram_fb_cache *cache; @@ -470,9 +466,8 @@ static void *sh_mobile_meram_register(struct sh_mobile_meram_info *pdata, priv = pdata->priv; pdev = pdata->pdev; - dev_dbg(&pdev->dev, "registering %dx%d (%s) (y=%08lx, c=%08lx)", - xres, yres, (!pixelformat) ? "yuv" : "rgb", - base_addr_y, base_addr_c); + dev_dbg(&pdev->dev, "registering %dx%d (%s)", xres, yres, + !pixelformat ? "yuv" : "rgb"); /* we can't handle wider than 8192px */ if (xres > 8192) { @@ -500,12 +495,6 @@ static void *sh_mobile_meram_register(struct sh_mobile_meram_info *pdata, meram_init(priv, &cache->planes[1], 2 * xres, (yres + 1) / 2, &out_pitch); - meram_set_next_addr(priv, cache, base_addr_y, base_addr_c); - meram_get_next_icb_addr(pdata, cache, icb_addr_y, icb_addr_c); - - dev_dbg(&pdev->dev, "registered - can access via y=%08lx, c=%08lx", - *icb_addr_y, *icb_addr_c); - err: mutex_unlock(&priv->lock); return cache; diff --git a/include/video/sh_mobile_meram.h b/include/video/sh_mobile_meram.h index 897960733cc..553335ce7a2 100644 --- a/include/video/sh_mobile_meram.h +++ b/include/video/sh_mobile_meram.h @@ -46,10 +46,6 @@ struct sh_mobile_meram_ops { const struct sh_mobile_meram_cfg *cfg, unsigned int xres, unsigned int yres, unsigned int pixelformat, - unsigned long base_addr_y, - unsigned long base_addr_c, - unsigned long *icb_addr_y, - unsigned long *icb_addr_c, unsigned int *pitch); /* unregister usage of meram */ -- 2.39.5