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

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

gma500: don't dynamically allocate the psb_gtt struct



It's part of the psb_device so just make it part of the struct not a
pointer. This does cause a bit of noise shuffling indirections.

Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 18a4ca2a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ void psb_spank(struct drm_psb_private *dev_priv)
	PSB_WSGX32(PSB_RSGX32(PSB_CR_BIF_CTRL) & ~_PSB_CB_CTRL_CLEAR_FAULT,
		   PSB_CR_BIF_CTRL);
	(void) PSB_RSGX32(PSB_CR_BIF_CTRL);
	PSB_WSGX32(dev_priv->pg->gatt_start, PSB_CR_BIF_TWOD_REQ_BASE);
	PSB_WSGX32(dev_priv->gtt.gatt_start, PSB_CR_BIF_TWOD_REQ_BASE);
}

/**
+2 −2
Original line number Diff line number Diff line
@@ -458,14 +458,14 @@ static int psbfb_create(struct psb_fbdev *fbdev,
	}
	info->screen_size = size;

	if (dev_priv->pg->stolen_size) {
	if (dev_priv->gtt.stolen_size) {
		info->apertures = alloc_apertures(1);
		if (!info->apertures) {
			ret = -ENOMEM;
			goto out_unref;
		}
		info->apertures->ranges[0].base = dev->mode_config.fb_base;
		info->apertures->ranges[0].size = dev_priv->pg->stolen_size;
		info->apertures->ranges[0].size = dev_priv->gtt.stolen_size;
	}

	drm_fb_helper_fill_fix(info, fb->pitch, fb->depth);
+7 −17
Original line number Diff line number Diff line
@@ -287,10 +287,10 @@ struct gtt_range *psb_gtt_alloc_range(struct drm_device *dev, int len,
	if (backed) {
		/* The start of the GTT is the stolen pages */
		start = r->start;
		end = r->start + dev_priv->pg->stolen_size - 1;
		end = r->start + dev_priv->gtt.stolen_size - 1;
	} else {
		/* The rest we will use for GEM backed objects */
		start = r->start + dev_priv->pg->stolen_size;
		start = r->start + dev_priv->gtt.stolen_size;
		end = r->end;
	}

@@ -332,17 +332,10 @@ void psb_gtt_free_range(struct drm_device *dev, struct gtt_range *gt)
	kfree(gt);
}

struct psb_gtt *psb_gtt_alloc(struct drm_device *dev)
void psb_gtt_alloc(struct drm_device *dev)
{
	struct psb_gtt *tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);

	if (!tmp)
		return NULL;

	init_rwsem(&tmp->sem);
	tmp->dev = dev;

	return tmp;
	struct drm_psb_private *dev_priv = dev->dev_private;
	init_rwsem(&dev_priv->gtt.sem);
}

void psb_gtt_takedown(struct drm_device *dev)
@@ -361,8 +354,6 @@ void psb_gtt_takedown(struct drm_device *dev)
	}
	if (dev_priv->vram_addr)
		iounmap(dev_priv->gtt_map);
	kfree(dev_priv->pg);
	dev_priv->pg = NULL;
}

int psb_gtt_init(struct drm_device *dev, int resume)
@@ -381,9 +372,8 @@ int psb_gtt_init(struct drm_device *dev, int resume)

	mutex_init(&dev_priv->gtt_mutex);

	dev_priv->pg = pg = psb_gtt_alloc(dev);
	if (pg == NULL)
		return -ENOMEM;
	psb_gtt_alloc(dev);
	pg = &dev_priv->gtt;

	/* Enable the GTT */
	pci_read_config_word(dev->pdev, PSB_GMCH_CTRL, &dev_priv->gmch_ctrl);
+1 −2
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@

/* This wants cleaning up with respect to the psb_dev and un-needed stuff */
struct psb_gtt {
	struct drm_device *dev;
	uint32_t gatt_start;
	uint32_t mmu_gatt_start;
	uint32_t gtt_start;
+1 −1
Original line number Diff line number Diff line
@@ -769,7 +769,7 @@ struct mdfld_dsi_encoder *mdfld_dsi_dbi_init(struct drm_device *dev,
	struct drm_connector *connector = NULL;
	struct drm_encoder *encoder = NULL;
	struct drm_display_mode *fixed_mode = NULL;
	struct psb_gtt *pg = dev_priv ? (dev_priv->pg) : NULL;
	struct psb_gtt *pg = dev_priv ? (&dev_priv->gtt) : NULL;

#ifdef CONFIG_MDFLD_DSI_DPU
	struct mdfld_dbi_dpu_info *dpu_info = dev_priv ? (dev_priv->dbi_dpu_info) : NULL;
Loading