OMAP: DSS2: Taal: add locks to taal_bl_update_status
taal_bl_update_status was missing locks to protect taal_data. This caused a kernel crash randomly, as the code attempted to set the brightness while the OMAP's DSI block was actually disabled. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
This commit is contained in:
Родитель
4ffa35713e
Коммит
1cbc8703e1
|
@ -290,24 +290,26 @@ static int taal_bl_update_status(struct backlight_device *dev)
|
|||
|
||||
dev_dbg(&dssdev->dev, "update brightness to %d\n", level);
|
||||
|
||||
mutex_lock(&td->lock);
|
||||
|
||||
if (td->use_dsi_bl) {
|
||||
if (td->enabled) {
|
||||
dsi_bus_lock();
|
||||
r = taal_dcs_write_1(DCS_BRIGHTNESS, level);
|
||||
dsi_bus_unlock();
|
||||
if (r)
|
||||
return r;
|
||||
} else {
|
||||
r = 0;
|
||||
}
|
||||
} else {
|
||||
if (!dssdev->set_backlight)
|
||||
return -EINVAL;
|
||||
|
||||
r = dssdev->set_backlight(dssdev, level);
|
||||
if (r)
|
||||
return r;
|
||||
r = -EINVAL;
|
||||
else
|
||||
r = dssdev->set_backlight(dssdev, level);
|
||||
}
|
||||
|
||||
return 0;
|
||||
mutex_unlock(&td->lock);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
static int taal_bl_get_intensity(struct backlight_device *dev)
|
||||
|
|
Загрузка…
Ссылка в новой задаче