Commit 166973e5 authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds

gma500: move the ASLE enable

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: default avatarAlan Cox <alan@linux.intel.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f507598b
...@@ -144,6 +144,8 @@ struct opregion_asle { ...@@ -144,6 +144,8 @@ struct opregion_asle {
#define ASLE_CBLV_VALID (1<<31) #define ASLE_CBLV_VALID (1<<31)
static struct psb_intel_opregion *system_opregion;
static u32 asle_set_backlight(struct drm_device *dev, u32 bclp) static u32 asle_set_backlight(struct drm_device *dev, u32 bclp)
{ {
struct drm_psb_private *dev_priv = dev->dev_private; struct drm_psb_private *dev_priv = dev->dev_private;
...@@ -205,7 +207,7 @@ void psb_intel_opregion_enable_asle(struct drm_device *dev) ...@@ -205,7 +207,7 @@ void psb_intel_opregion_enable_asle(struct drm_device *dev)
struct drm_psb_private *dev_priv = dev->dev_private; struct drm_psb_private *dev_priv = dev->dev_private;
struct opregion_asle *asle = dev_priv->opregion.asle; 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 /* Don't do this on Medfield or other non PC like devices, they
use the bit for something different altogether */ use the bit for something different altogether */
psb_enable_pipestat(dev_priv, 0, PIPE_LEGACY_BLC_EVENT_ENABLE); psb_enable_pipestat(dev_priv, 0, PIPE_LEGACY_BLC_EVENT_ENABLE);
...@@ -221,7 +223,6 @@ void psb_intel_opregion_enable_asle(struct drm_device *dev) ...@@ -221,7 +223,6 @@ void psb_intel_opregion_enable_asle(struct drm_device *dev)
#define ACPI_EV_LID (1<<1) #define ACPI_EV_LID (1<<1)
#define ACPI_EV_DOCK (1<<2) #define ACPI_EV_DOCK (1<<2)
static struct psb_intel_opregion *system_opregion;
static int psb_intel_opregion_video_event(struct notifier_block *nb, static int psb_intel_opregion_video_event(struct notifier_block *nb,
unsigned long val, void *data) unsigned long val, void *data)
...@@ -266,9 +267,6 @@ void psb_intel_opregion_init(struct drm_device *dev) ...@@ -266,9 +267,6 @@ void psb_intel_opregion_init(struct drm_device *dev)
system_opregion = opregion; system_opregion = opregion;
register_acpi_notifier(&psb_intel_opregion_notifier); 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) void psb_intel_opregion_fini(struct drm_device *dev)
......
...@@ -27,6 +27,7 @@ extern void psb_intel_opregion_asle_intr(struct drm_device *dev); ...@@ -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_init(struct drm_device *dev);
extern void psb_intel_opregion_fini(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 int psb_intel_opregion_setup(struct drm_device *dev);
extern void psb_intel_opregion_enable_asle(struct drm_device *dev);
#else #else
...@@ -46,4 +47,8 @@ extern inline int psb_intel_opregion_setup(struct drm_device *dev) ...@@ -46,4 +47,8 @@ extern inline int psb_intel_opregion_setup(struct drm_device *dev)
{ {
return 0; return 0;
} }
extern inline void psb_intel_opregion_enable_asle(struct drm_device *dev)
{
}
#endif #endif
...@@ -374,6 +374,7 @@ static int psb_driver_load(struct drm_device *dev, unsigned long chipset) ...@@ -374,6 +374,7 @@ static int psb_driver_load(struct drm_device *dev, unsigned long chipset)
if (ret) if (ret)
return ret; return ret;
psb_intel_opregion_enable_asle(dev);
#if 0 #if 0
/*enable runtime pm at last*/ /*enable runtime pm at last*/
pm_runtime_enable(&dev->pdev->dev); pm_runtime_enable(&dev->pdev->dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment