提交 6b316715 编写于 作者: J Jani Nikula 提交者: Tomi Valkeinen

OMAP: DSS2: Taal: Add locks to protect taal data access

Avoid potential race conditions in sysfs access to taal data.
Signed-off-by: NJani Nikula <ext-jani.1.nikula@nokia.com>
Signed-off-by: NTomi Valkeinen <tomi.valkeinen@nokia.com>
上级 006db7b4
...@@ -364,6 +364,8 @@ static ssize_t taal_num_errors_show(struct device *dev, ...@@ -364,6 +364,8 @@ static ssize_t taal_num_errors_show(struct device *dev,
u8 errors; u8 errors;
int r; int r;
mutex_lock(&td->lock);
if (td->enabled) { if (td->enabled) {
dsi_bus_lock(); dsi_bus_lock();
r = taal_dcs_read_1(DCS_READ_NUM_ERRORS, &errors); r = taal_dcs_read_1(DCS_READ_NUM_ERRORS, &errors);
...@@ -372,6 +374,8 @@ static ssize_t taal_num_errors_show(struct device *dev, ...@@ -372,6 +374,8 @@ static ssize_t taal_num_errors_show(struct device *dev,
r = -ENODEV; r = -ENODEV;
} }
mutex_unlock(&td->lock);
if (r) if (r)
return r; return r;
...@@ -386,6 +390,8 @@ static ssize_t taal_hw_revision_show(struct device *dev, ...@@ -386,6 +390,8 @@ static ssize_t taal_hw_revision_show(struct device *dev,
u8 id1, id2, id3; u8 id1, id2, id3;
int r; int r;
mutex_lock(&td->lock);
if (td->enabled) { if (td->enabled) {
dsi_bus_lock(); dsi_bus_lock();
r = taal_get_id(&id1, &id2, &id3); r = taal_get_id(&id1, &id2, &id3);
...@@ -394,6 +400,8 @@ static ssize_t taal_hw_revision_show(struct device *dev, ...@@ -394,6 +400,8 @@ static ssize_t taal_hw_revision_show(struct device *dev,
r = -ENODEV; r = -ENODEV;
} }
mutex_unlock(&td->lock);
if (r) if (r)
return r; return r;
...@@ -443,6 +451,8 @@ static ssize_t store_cabc_mode(struct device *dev, ...@@ -443,6 +451,8 @@ static ssize_t store_cabc_mode(struct device *dev,
if (i == ARRAY_SIZE(cabc_modes)) if (i == ARRAY_SIZE(cabc_modes))
return -EINVAL; return -EINVAL;
mutex_lock(&td->lock);
if (td->enabled) { if (td->enabled) {
dsi_bus_lock(); dsi_bus_lock();
if (!td->cabc_broken) if (!td->cabc_broken)
...@@ -452,6 +462,8 @@ static ssize_t store_cabc_mode(struct device *dev, ...@@ -452,6 +462,8 @@ static ssize_t store_cabc_mode(struct device *dev,
td->cabc_mode = i; td->cabc_mode = i;
mutex_unlock(&td->lock);
return count; return count;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册