summaryrefslogtreecommitdiffstats
path: root/backlight-Add-backlight-device-un-registration-notif.patch
diff options
context:
space:
mode:
Diffstat (limited to 'backlight-Add-backlight-device-un-registration-notif.patch')
-rw-r--r--backlight-Add-backlight-device-un-registration-notif.patch132
1 files changed, 0 insertions, 132 deletions
diff --git a/backlight-Add-backlight-device-un-registration-notif.patch b/backlight-Add-backlight-device-un-registration-notif.patch
deleted file mode 100644
index a411bb9cb..000000000
--- a/backlight-Add-backlight-device-un-registration-notif.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-Bugzilla: 1093171
-Upstream-status: Queued for 3.16
-
-From ee515e61a002b4d571407173ac8bbadadc114cf0 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Mon, 2 Jun 2014 17:41:08 +0200
-Subject: [PATCH 11/14] backlight: Add backlight device (un)registration
- notification
-
-Some firmware drivers, ie acpi-video want to get themselves out of the
-way (in some cases) when their also is a raw backlight device available.
-
-Due to module loading ordering being unknown, acpi-video cannot be certain
-that the backlight_device_registered(BACKLIGHT_RAW) it does for this is
-the final verdict wrt there being a BACKLIGHT_RAW device.
-
-By adding notification acpi-video can listen for backlight devices showing
-up after it has loaded, and unregister its backlight device if desired.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/video/backlight/backlight.c | 40 +++++++++++++++++++++++++++++++++++++
- include/linux/backlight.h | 7 +++++++
- 2 files changed, 47 insertions(+)
-
-diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
-index bd2172c2d650..428089009cd5 100644
---- a/drivers/video/backlight/backlight.c
-+++ b/drivers/video/backlight/backlight.c
-@@ -23,6 +23,7 @@
-
- static struct list_head backlight_dev_list;
- static struct mutex backlight_dev_list_mutex;
-+static struct blocking_notifier_head backlight_notifier;
-
- static const char *const backlight_types[] = {
- [BACKLIGHT_RAW] = "raw",
-@@ -370,6 +371,9 @@ struct backlight_device *backlight_device_register(const char *name,
- list_add(&new_bd->entry, &backlight_dev_list);
- mutex_unlock(&backlight_dev_list_mutex);
-
-+ blocking_notifier_call_chain(&backlight_notifier,
-+ BACKLIGHT_REGISTERED, new_bd);
-+
- return new_bd;
- }
- EXPORT_SYMBOL(backlight_device_register);
-@@ -413,6 +417,10 @@ void backlight_device_unregister(struct backlight_device *bd)
- pmac_backlight = NULL;
- mutex_unlock(&pmac_backlight_mutex);
- #endif
-+
-+ blocking_notifier_call_chain(&backlight_notifier,
-+ BACKLIGHT_UNREGISTERED, bd);
-+
- mutex_lock(&bd->ops_lock);
- bd->ops = NULL;
- mutex_unlock(&bd->ops_lock);
-@@ -438,6 +446,36 @@ static int devm_backlight_device_match(struct device *dev, void *res,
- }
-
- /**
-+ * backlight_register_notifier - get notified of backlight (un)registration
-+ * @nb: notifier block with the notifier to call on backlight (un)registration
-+ *
-+ * @return 0 on success, otherwise a negative error code
-+ *
-+ * Register a notifier to get notified when backlight devices get registered
-+ * or unregistered.
-+ */
-+int backlight_register_notifier(struct notifier_block *nb)
-+{
-+ return blocking_notifier_chain_register(&backlight_notifier, nb);
-+}
-+EXPORT_SYMBOL(backlight_register_notifier);
-+
-+/**
-+ * backlight_unregister_notifier - unregister a backlight notifier
-+ * @nb: notifier block to unregister
-+ *
-+ * @return 0 on success, otherwise a negative error code
-+ *
-+ * Register a notifier to get notified when backlight devices get registered
-+ * or unregistered.
-+ */
-+int backlight_unregister_notifier(struct notifier_block *nb)
-+{
-+ return blocking_notifier_chain_unregister(&backlight_notifier, nb);
-+}
-+EXPORT_SYMBOL(backlight_unregister_notifier);
-+
-+/**
- * devm_backlight_device_register - resource managed backlight_device_register()
- * @dev: the device to register
- * @name: the name of the device
-@@ -544,6 +582,8 @@ static int __init backlight_class_init(void)
- backlight_class->pm = &backlight_class_dev_pm_ops;
- INIT_LIST_HEAD(&backlight_dev_list);
- mutex_init(&backlight_dev_list_mutex);
-+ BLOCKING_INIT_NOTIFIER_HEAD(&backlight_notifier);
-+
- return 0;
- }
-
-diff --git a/include/linux/backlight.h b/include/linux/backlight.h
-index 72647429adf6..adb14a8616df 100644
---- a/include/linux/backlight.h
-+++ b/include/linux/backlight.h
-@@ -40,6 +40,11 @@ enum backlight_type {
- BACKLIGHT_TYPE_MAX,
- };
-
-+enum backlight_notification {
-+ BACKLIGHT_REGISTERED,
-+ BACKLIGHT_UNREGISTERED,
-+};
-+
- struct backlight_device;
- struct fb_info;
-
-@@ -133,6 +138,8 @@ extern void devm_backlight_device_unregister(struct device *dev,
- extern void backlight_force_update(struct backlight_device *bd,
- enum backlight_update_reason reason);
- extern bool backlight_device_registered(enum backlight_type type);
-+extern int backlight_register_notifier(struct notifier_block *nb);
-+extern int backlight_unregister_notifier(struct notifier_block *nb);
-
- #define to_backlight_device(obj) container_of(obj, struct backlight_device, dev)
-
---
-1.9.0
-