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: Alan Cox <alan@linux.intel.com> Tested-by: Mattia Dongili <malattia@linux.it> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
84a1caf145
Коммит
f507598b06
|
@ -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)
|
||||||
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 = {
|
||||||
.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,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче