Commit ed7ea13e authored by Alan Cox's avatar Alan Cox Committed by Greg Kroah-Hartman
Browse files

gma500: GEMify the frame buffer base bits



This then kills off the old bo_ interfaces

Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 0dfac1ce
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -530,9 +530,8 @@ int mrst_pipe_set_base(struct drm_crtc *crtc,
	/* struct drm_i915_master_private *master_priv; */
	struct psb_intel_crtc *psb_intel_crtc = to_psb_intel_crtc(crtc);
	struct psb_framebuffer *psbfb = to_psb_fb(crtc->fb);
	struct psb_intel_mode_device *mode_dev = psb_intel_crtc->mode_dev;
	int pipe = psb_intel_crtc->pipe;
	unsigned long Start, Offset;
	unsigned long start, offset;
	/* FIXME: check if we need this surely MRST is pipe 0 only */
	int dspbase = (pipe == 0 ? DSPALINOFF : DSPBBASE);
	int dspsurf = (pipe == 0 ? DSPASURF : DSPBSURF);
@@ -552,8 +551,8 @@ int mrst_pipe_set_base(struct drm_crtc *crtc,
	if (!gma_power_begin(dev, true))
		return 0;

	Start = mode_dev->bo_offset(dev, psbfb);
	Offset = y * crtc->fb->pitch + x * (crtc->fb->bits_per_pixel / 8);
	start = psbfb->gtt->offset;
	offset = y * crtc->fb->pitch + x * (crtc->fb->bits_per_pixel / 8);

	REG_WRITE(dspstride, crtc->fb->pitch);

@@ -581,14 +580,14 @@ int mrst_pipe_set_base(struct drm_crtc *crtc,
	}
	REG_WRITE(dspcntr_reg, dspcntr);

	DRM_DEBUG("Writing base %08lX %08lX %d %d\n", Start, Offset, x, y);
	DRM_DEBUG("Writing base %08lX %08lX %d %d\n", start, offset, x, y);
	if (0 /* FIXMEAC - check what PSB needs */) {
		REG_WRITE(dspbase, Offset);
		REG_WRITE(dspbase, offset);
		REG_READ(dspbase);
		REG_WRITE(dspsurf, Start);
		REG_WRITE(dspsurf, start);
		REG_READ(dspsurf);
	} else {
		REG_WRITE(dspbase, Start + Offset);
		REG_WRITE(dspbase, start + offset);
		REG_READ(dspbase);
	}

+2 −2
Original line number Diff line number Diff line
@@ -160,7 +160,7 @@ static void psbfb_fillrect_accel(struct fb_info *info,
	if (!fb)
		return;

	offset = psbfb->offset;
	offset = psbfb->gtt->offset;
	stride = fb->pitch;

	switch (fb->depth) {
@@ -303,7 +303,7 @@ static void psbfb_copyarea_accel(struct fb_info *info,
	if (!fb)
		return;

	offset = psbfb->offset;
	offset = psbfb->gtt->offset;
	stride = fb->pitch;

	switch (fb->depth) {
+0 −11
Original line number Diff line number Diff line
@@ -219,17 +219,6 @@ struct drm_psb_register_rw_arg {
	u32 subpicture_disable_mask;
};

struct psb_gtt_mapping_arg {
	void *hKernelMemInfo;
	u32 offset_pages;
};

struct drm_psb_getpageaddrs_arg {
	u32 handle;
	unsigned long *page_addrs;
	unsigned long gtt_offset;
};

/* Controlling the kernel modesetting buffers */

#define DRM_PSB_KMS_OFF		0x00
+2 −2
Original line number Diff line number Diff line
@@ -870,11 +870,11 @@ static int psb_mode_operation_ioctl(struct drm_device *dev, void *data,
		psb_fb = to_psb_fb(drm_fb);

		if (gma_power_begin(dev, 0)) {
			REG_WRITE(DSPASURF, psb_fb->offset);
			REG_WRITE(DSPASURF, psb_fb->gtt->offset);
			REG_READ(DSPASURF);
			gma_power_end(dev);
		} else {
			dev_priv->saveDSPASURF = psb_fb->offset;
			dev_priv->saveDSPASURF = psb_fb->gtt->offset;
		}

		return 0;
+0 −2
Original line number Diff line number Diff line
@@ -35,8 +35,6 @@
/*Append new drm mode definition here, align with libdrm definition*/
#define DRM_MODE_SCALE_NO_SCALE   2

extern struct ttm_bo_driver psb_ttm_bo_driver;

enum {
	CHIP_PSB_8108 = 0,
	CHIP_PSB_8109 = 1,
Loading