Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 307386
b: refs/heads/master
c: 4ab2c7f
h: refs/heads/master
v: v3
  • Loading branch information
Alan Cox authored and Dave Airlie committed May 17, 2012
1 parent 94d8048 commit c900124
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 41 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6607e024014e4920e8d3e43bcfeec0436d43d980
refs/heads/master: 4ab2c7f15423f313187b310a48ee0ac631c414f1
15 changes: 10 additions & 5 deletions trunk/drivers/gpu/drm/gma500/framebuffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -800,15 +800,20 @@ void psb_modeset_init(struct drm_device *dev)

if (dev_priv->ops->errata)
dev_priv->ops->errata(dev);

dev_priv->modeset = true;
}

void psb_modeset_cleanup(struct drm_device *dev)
{
mutex_lock(&dev->struct_mutex);
struct drm_psb_private *dev_priv = dev->dev_private;
if (dev_priv->modeset) {
mutex_lock(&dev->struct_mutex);

drm_kms_helper_poll_fini(dev);
psb_fbdev_fini(dev);
drm_mode_config_cleanup(dev);
drm_kms_helper_poll_fini(dev);
psb_fbdev_fini(dev);
drm_mode_config_cleanup(dev);

mutex_unlock(&dev->struct_mutex);
mutex_unlock(&dev->struct_mutex);
}
}
24 changes: 3 additions & 21 deletions trunk/drivers/gpu/drm/gma500/intel_bios.c
Original file line number Diff line number Diff line change
Expand Up @@ -490,26 +490,8 @@ bool psb_intel_init_bios(struct drm_device *dev)
void psb_intel_destroy_bios(struct drm_device *dev)
{
struct drm_psb_private *dev_priv = dev->dev_private;
struct drm_display_mode *sdvo_lvds_vbt_mode =
dev_priv->sdvo_lvds_vbt_mode;
struct drm_display_mode *lfp_lvds_vbt_mode =
dev_priv->lfp_lvds_vbt_mode;
struct bdb_lvds_backlight *lvds_bl =
dev_priv->lvds_bl;

/*free sdvo panel mode*/
if (sdvo_lvds_vbt_mode) {
dev_priv->sdvo_lvds_vbt_mode = NULL;
kfree(sdvo_lvds_vbt_mode);
}

if (lfp_lvds_vbt_mode) {
dev_priv->lfp_lvds_vbt_mode = NULL;
kfree(lfp_lvds_vbt_mode);
}

if (lvds_bl) {
dev_priv->lvds_bl = NULL;
kfree(lvds_bl);
}
kfree(dev_priv->sdvo_lvds_vbt_mode);
kfree(dev_priv->lfp_lvds_vbt_mode);
kfree(dev_priv->lvds_bl);
}
20 changes: 6 additions & 14 deletions trunk/drivers/gpu/drm/gma500/psb_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,10 +152,6 @@ static void psb_lastclose(struct drm_device *dev)
return;
}

static void psb_do_takedown(struct drm_device *dev)
{
}

static int psb_do_init(struct drm_device *dev)
{
struct drm_psb_private *dev_priv = dev->dev_private;
Expand Down Expand Up @@ -194,7 +190,6 @@ static int psb_do_init(struct drm_device *dev)
PSB_WSGX32(pg->gatt_start, PSB_CR_BIF_TWOD_REQ_BASE);
return 0;
out_err:
psb_do_takedown(dev);
return ret;
}

Expand All @@ -204,17 +199,16 @@ static int psb_driver_unload(struct drm_device *dev)

/* Kill vblank etc here */

gma_backlight_exit(dev);
psb_modeset_cleanup(dev);

if (dev_priv) {
if (dev_priv->backlight_device)
gma_backlight_exit(dev);
psb_modeset_cleanup(dev);

if (dev_priv->ops->chip_teardown)
dev_priv->ops->chip_teardown(dev);

psb_intel_opregion_fini(dev);
psb_do_takedown(dev);


if (dev_priv->pf_pd) {
psb_mmu_free_pagedir(dev_priv->pf_pd);
Expand Down Expand Up @@ -248,15 +242,13 @@ static int psb_driver_unload(struct drm_device *dev)
dev_priv->sgx_reg = NULL;
}

/* Destroy VBT data */
psb_intel_destroy_bios(dev);

kfree(dev_priv);
dev->dev_private = NULL;

/*destroy VBT data*/
psb_intel_destroy_bios(dev);
}

gma_power_uninit(dev);

return 0;
}

Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/gpu/drm/gma500/psb_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -507,6 +507,7 @@ struct drm_psb_private {
* Modesetting
*/
struct psb_intel_mode_device mode_dev;
bool modeset; /* true if we have done the mode_device setup */

struct drm_crtc *plane_to_crtc_mapping[PSB_NUM_PIPE];
struct drm_crtc *pipe_to_crtc_mapping[PSB_NUM_PIPE];
Expand Down

0 comments on commit c900124

Please sign in to comment.