Commit f507598b authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds

gma500: Fix lid related crash

We now set up the lid timer before we set up the backlight.  On some
devices that causes a crash as we do a backlight change before or during
the setup.

As this fixes a crash on boot regression on some setups it ought to go
in ASAP, especially as all the user gets is a blank screen.
Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
Tested-by: default avatarMattia Dongili <malattia@linux.it>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 84a1caf1
...@@ -144,6 +144,10 @@ static int psb_backlight_init(struct drm_device *dev) ...@@ -144,6 +144,10 @@ static int psb_backlight_init(struct drm_device *dev)
psb_backlight_device->props.max_brightness = 100; psb_backlight_device->props.max_brightness = 100;
backlight_update_status(psb_backlight_device); backlight_update_status(psb_backlight_device);
dev_priv->backlight_device = psb_backlight_device; dev_priv->backlight_device = psb_backlight_device;
/* This must occur after the backlight is properly initialised */
psb_lid_timer_init(dev_priv);
return 0; return 0;
} }
...@@ -354,13 +358,6 @@ static int psb_chip_setup(struct drm_device *dev) ...@@ -354,13 +358,6 @@ static int psb_chip_setup(struct drm_device *dev)
return 0; return 0;
} }
/* Not exactly an erratum more an irritation */
static void psb_chip_errata(struct drm_device *dev)
{
struct drm_psb_private *dev_priv = dev->dev_private;
psb_lid_timer_init(dev_priv);
}
static void psb_chip_teardown(struct drm_device *dev) static void psb_chip_teardown(struct drm_device *dev)
{ {
struct drm_psb_private *dev_priv = dev->dev_private; struct drm_psb_private *dev_priv = dev->dev_private;
...@@ -379,7 +376,6 @@ const struct psb_ops psb_chip_ops = { ...@@ -379,7 +376,6 @@ const struct psb_ops psb_chip_ops = {
.sgx_offset = PSB_SGX_OFFSET, .sgx_offset = PSB_SGX_OFFSET,
.chip_setup = psb_chip_setup, .chip_setup = psb_chip_setup,
.chip_teardown = psb_chip_teardown, .chip_teardown = psb_chip_teardown,
.errata = psb_chip_errata,
.crtc_helper = &psb_intel_helper_funcs, .crtc_helper = &psb_intel_helper_funcs,
.crtc_funcs = &psb_intel_crtc_funcs, .crtc_funcs = &psb_intel_crtc_funcs,
......
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