Skip to content

Commit

Permalink
gma500: move the ASLE enable
Browse files Browse the repository at this point in the history
Otherwise we end up getting the masks wrong, can get events before we
are doing power control and other ungood things.  Again this is a
regression fix where the ordering of handling was disturbed by other
work, and the user experience on some boxes is a blank screen.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Alan Cox authored and Linus Torvalds committed Jul 16, 2012
1 parent f507598 commit 166973e
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 5 deletions.
8 changes: 3 additions & 5 deletions drivers/gpu/drm/gma500/opregion.c
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,8 @@ struct opregion_asle {

#define ASLE_CBLV_VALID (1<<31)

static struct psb_intel_opregion *system_opregion;

static u32 asle_set_backlight(struct drm_device *dev, u32 bclp)
{
struct drm_psb_private *dev_priv = dev->dev_private;
Expand Down Expand Up @@ -205,7 +207,7 @@ void psb_intel_opregion_enable_asle(struct drm_device *dev)
struct drm_psb_private *dev_priv = dev->dev_private;
struct opregion_asle *asle = dev_priv->opregion.asle;

if (asle) {
if (asle && system_opregion ) {
/* Don't do this on Medfield or other non PC like devices, they
use the bit for something different altogether */
psb_enable_pipestat(dev_priv, 0, PIPE_LEGACY_BLC_EVENT_ENABLE);
Expand All @@ -221,7 +223,6 @@ void psb_intel_opregion_enable_asle(struct drm_device *dev)
#define ACPI_EV_LID (1<<1)
#define ACPI_EV_DOCK (1<<2)

static struct psb_intel_opregion *system_opregion;

static int psb_intel_opregion_video_event(struct notifier_block *nb,
unsigned long val, void *data)
Expand Down Expand Up @@ -266,9 +267,6 @@ void psb_intel_opregion_init(struct drm_device *dev)
system_opregion = opregion;
register_acpi_notifier(&psb_intel_opregion_notifier);
}

if (opregion->asle)
psb_intel_opregion_enable_asle(dev);
}

void psb_intel_opregion_fini(struct drm_device *dev)
Expand Down
5 changes: 5 additions & 0 deletions drivers/gpu/drm/gma500/opregion.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ extern void psb_intel_opregion_asle_intr(struct drm_device *dev);
extern void psb_intel_opregion_init(struct drm_device *dev);
extern void psb_intel_opregion_fini(struct drm_device *dev);
extern int psb_intel_opregion_setup(struct drm_device *dev);
extern void psb_intel_opregion_enable_asle(struct drm_device *dev);

#else

Expand All @@ -46,4 +47,8 @@ extern inline int psb_intel_opregion_setup(struct drm_device *dev)
{
return 0;
}

extern inline void psb_intel_opregion_enable_asle(struct drm_device *dev)
{
}
#endif
1 change: 1 addition & 0 deletions drivers/gpu/drm/gma500/psb_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,7 @@ static int psb_driver_load(struct drm_device *dev, unsigned long chipset)

if (ret)
return ret;
psb_intel_opregion_enable_asle(dev);
#if 0
/*enable runtime pm at last*/
pm_runtime_enable(&dev->pdev->dev);
Expand Down

0 comments on commit 166973e

Please sign in to comment.