Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 97d16fe6 authored by Laurent Pinchart's avatar Laurent Pinchart
Browse files

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: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
parent c241a0e0
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -882,12 +882,14 @@ 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. */
	__sh_mobile_lcdc_start(priv);
+2 −13
Original line number Diff line number Diff line
@@ -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;
+0 −4
Original line number Diff line number Diff line
@@ -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 */