fbdev: sh_mobile_meram: Don't perform update in register operation
Laurent Pinchart [Mon, 21 Nov 2011 23:56:58 +0000 (00:56 +0100)]
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 <laurent.pinchart@ideasonboard.com>

drivers/video/sh_mobile_lcdcfb.c
drivers/video/sh_mobile_meram.c
include/video/sh_mobile_meram.h

index 0338516..4b54cd5 100644 (file)
@@ -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. */
index 085c49a..2ce0d8f 100644 (file)
@@ -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;
index 8979607..553335c 100644 (file)
@@ -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 */