[PATCH 01/28] backlight: lcd: Rearrange code in fb_notifier_callback()
Thomas Zimmermann
tzimmermann at suse.de
Tue Aug 20 09:22:39 UTC 2024
First aqcuire the ops_lock and do al tests while holing it. Rearranges
the code in lcd's fb_notifier_callback() to resemble the callback in
the backlight module. This will simplify later changes to these tests.
Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
---
drivers/video/backlight/lcd.c | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/drivers/video/backlight/lcd.c b/drivers/video/backlight/lcd.c
index ceec90ca758b..0cd0fa1b24f9 100644
--- a/drivers/video/backlight/lcd.c
+++ b/drivers/video/backlight/lcd.c
@@ -29,21 +29,25 @@ static int fb_notifier_callback(struct notifier_block *self,
{
struct lcd_device *ld;
struct fb_event *evdata = data;
+ struct fb_info *info = evdata->info;
ld = container_of(self, struct lcd_device, fb_notif);
+ mutex_lock(&ld->ops_lock);
+
if (!ld->ops)
- return 0;
+ goto out;
+ if (ld->ops->check_fb && !ld->ops->check_fb(ld, evdata->info))
+ goto out;
- mutex_lock(&ld->ops_lock);
- if (!ld->ops->check_fb || ld->ops->check_fb(ld, evdata->info)) {
- if (event == FB_EVENT_BLANK) {
- if (ld->ops->set_power)
- ld->ops->set_power(ld, *(int *)evdata->data);
- } else {
- if (ld->ops->set_mode)
- ld->ops->set_mode(ld, evdata->data);
- }
+ if (event == FB_EVENT_BLANK) {
+ if (ld->ops->set_power)
+ ld->ops->set_power(ld, *(int *)evdata->data);
+ } else {
+ if (ld->ops->set_mode)
+ ld->ops->set_mode(ld, evdata->data);
}
+
+out:
mutex_unlock(&ld->ops_lock);
return 0;
}
--
2.46.0
More information about the dri-devel
mailing list