Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83e72dd9 authored by Seth Forshee's avatar Seth Forshee Committed by Matthew Garrett
Browse files

apple_bl: Add register/unregister functions



Add functions to allow other modules to enable or disable apple_bl. This
will be used by the gmux driver to disable apple_bl when the gmux is
present, as it is a better and more reliable option for brightness
control.

Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
parent f11f999e
Loading
Loading
Loading
Loading
+21 −2
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#include <linux/io.h>
#include <linux/pci.h>
#include <linux/acpi.h>
#include <linux/atomic.h>

static struct backlight_device *apple_backlight_device;

@@ -221,15 +222,33 @@ static struct acpi_driver apple_bl_driver = {
	},
};

static int __init apple_bl_init(void)
static atomic_t apple_bl_registered = ATOMIC_INIT(0);

int apple_bl_register(void)
{
	if (atomic_xchg(&apple_bl_registered, 1) == 0)
		return acpi_bus_register_driver(&apple_bl_driver);

	return 0;
}
EXPORT_SYMBOL_GPL(apple_bl_register);

static void __exit apple_bl_exit(void)
void apple_bl_unregister(void)
{
	if (atomic_xchg(&apple_bl_registered, 0) == 1)
		acpi_bus_unregister_driver(&apple_bl_driver);
}
EXPORT_SYMBOL_GPL(apple_bl_unregister);

static int __init apple_bl_init(void)
{
	return apple_bl_register();
}

static void __exit apple_bl_exit(void)
{
	apple_bl_unregister();
}

module_init(apple_bl_init);
module_exit(apple_bl_exit);
+26 −0
Original line number Diff line number Diff line
/*
 * apple_bl exported symbols
 */

#ifndef _LINUX_APPLE_BL_H
#define _LINUX_APPLE_BL_H

#ifdef CONFIG_BACKLIGHT_APPLE

extern int apple_bl_register(void);
extern void apple_bl_unregister(void);

#else /* !CONFIG_BACKLIGHT_APPLE */

static inline int apple_bl_register(void)
{
	return 0;
}

static inline void apple_bl_unregister(void)
{
}

#endif /* !CONFIG_BACKLIGHT_APPLE */

#endif /* _LINUX_APPLE_BL_H */