Commit 9e084a57 authored by Peter Rosin's avatar Peter Rosin Committed by Daniel Vetter
Browse files

drm: gma500: remove dead code and pointless local lut storage



The redundant fb helpers .gamma_set and .gamma_get are no longer
used. Remove the dead code and hook up the crtc .gamma_set
to use the crtc gamma_store directly instead of duplicating that
info locally.

Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarPeter Rosin <peda@axentia.se>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20170713162538.22788-9-peda@axentia.se
parent 484512df
Loading
Loading
Loading
Loading
+0 −22
Original line number Diff line number Diff line
@@ -479,26 +479,6 @@ static struct drm_framebuffer *psb_user_framebuffer_create
	return psb_framebuffer_create(dev, cmd, r);
}

static void psbfb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green,
							u16 blue, int regno)
{
	struct gma_crtc *gma_crtc = to_gma_crtc(crtc);

	gma_crtc->lut_r[regno] = red >> 8;
	gma_crtc->lut_g[regno] = green >> 8;
	gma_crtc->lut_b[regno] = blue >> 8;
}

static void psbfb_gamma_get(struct drm_crtc *crtc, u16 *red,
					u16 *green, u16 *blue, int regno)
{
	struct gma_crtc *gma_crtc = to_gma_crtc(crtc);

	*red = gma_crtc->lut_r[regno] << 8;
	*green = gma_crtc->lut_g[regno] << 8;
	*blue = gma_crtc->lut_b[regno] << 8;
}

static int psbfb_probe(struct drm_fb_helper *helper,
				struct drm_fb_helper_surface_size *sizes)
{
@@ -525,8 +505,6 @@ static int psbfb_probe(struct drm_fb_helper *helper,
}

static const struct drm_fb_helper_funcs psb_fb_helper_funcs = {
	.gamma_set = psbfb_gamma_set,
	.gamma_get = psbfb_gamma_get,
	.fb_probe = psbfb_probe,
};

+11 −21
Original line number Diff line number Diff line
@@ -144,33 +144,32 @@ void gma_crtc_load_lut(struct drm_crtc *crtc)
	struct gma_crtc *gma_crtc = to_gma_crtc(crtc);
	const struct psb_offset *map = &dev_priv->regmap[gma_crtc->pipe];
	int palreg = map->palette;
	u16 *r, *g, *b;
	int i;

	/* The clocks have to be on to load the palette. */
	if (!crtc->enabled)
		return;

	r = crtc->gamma_store;
	g = r + crtc->gamma_size;
	b = g + crtc->gamma_size;

	if (gma_power_begin(dev, false)) {
		for (i = 0; i < 256; i++) {
			REG_WRITE(palreg + 4 * i,
				  ((gma_crtc->lut_r[i] +
				  gma_crtc->lut_adj[i]) << 16) |
				  ((gma_crtc->lut_g[i] +
				  gma_crtc->lut_adj[i]) << 8) |
				  (gma_crtc->lut_b[i] +
				  gma_crtc->lut_adj[i]));
				  (((*r++ >> 8) + gma_crtc->lut_adj[i]) << 16) |
				  (((*g++ >> 8) + gma_crtc->lut_adj[i]) << 8) |
				  ((*b++ >> 8) + gma_crtc->lut_adj[i]));
		}
		gma_power_end(dev);
	} else {
		for (i = 0; i < 256; i++) {
			/* FIXME: Why pipe[0] and not pipe[..._crtc->pipe]? */
			dev_priv->regs.pipe[0].palette[i] =
				  ((gma_crtc->lut_r[i] +
				  gma_crtc->lut_adj[i]) << 16) |
				  ((gma_crtc->lut_g[i] +
				  gma_crtc->lut_adj[i]) << 8) |
				  (gma_crtc->lut_b[i] +
				  gma_crtc->lut_adj[i]);
				(((*r++ >> 8) + gma_crtc->lut_adj[i]) << 16) |
				(((*g++ >> 8) + gma_crtc->lut_adj[i]) << 8) |
				((*b++ >> 8) + gma_crtc->lut_adj[i]);
		}

	}
@@ -180,15 +179,6 @@ int gma_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, u16 *blue,
		       u32 size,
		       struct drm_modeset_acquire_ctx *ctx)
{
	struct gma_crtc *gma_crtc = to_gma_crtc(crtc);
	int i;

	for (i = 0; i < size; i++) {
		gma_crtc->lut_r[i] = red[i] >> 8;
		gma_crtc->lut_g[i] = green[i] >> 8;
		gma_crtc->lut_b[i] = blue[i] >> 8;
	}

	gma_crtc_load_lut(crtc);

	return 0;
+1 −6
Original line number Diff line number Diff line
@@ -518,13 +518,8 @@ void psb_intel_crtc_init(struct drm_device *dev, int pipe,
	gma_crtc->pipe = pipe;
	gma_crtc->plane = pipe;

	for (i = 0; i < 256; i++) {
		gma_crtc->lut_r[i] = i;
		gma_crtc->lut_g[i] = i;
		gma_crtc->lut_b[i] = i;

	for (i = 0; i < 256; i++)
		gma_crtc->lut_adj[i] = 0;
	}

	gma_crtc->mode_dev = mode_dev;
	gma_crtc->cursor_addr = 0;
+0 −1
Original line number Diff line number Diff line
@@ -172,7 +172,6 @@ struct gma_crtc {
	int plane;
	uint32_t cursor_addr;
	struct gtt_range *cursor_gt;
	u8 lut_r[256], lut_g[256], lut_b[256];
	u8 lut_adj[256];
	struct psb_intel_framebuffer *fbdev_fb;
	/* a mode_set for fbdev users on this crtc */