2012-12-16 20:05:06 +01:00
|
|
|
/*
|
|
|
|
* Backlight Lowlevel Control Abstraction
|
|
|
|
*
|
|
|
|
* Copyright (C) 2003,2004 Hewlett-Packard Company
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _LINUX_BACKLIGHT_H
|
|
|
|
#define _LINUX_BACKLIGHT_H
|
2016-03-13 07:45:57 +01:00
|
|
|
|
|
|
|
#include <linux/device.h>
|
|
|
|
#include <linux/fb.h>
|
|
|
|
#include <linux/mutex.h>
|
2017-07-28 21:22:53 +02:00
|
|
|
#include <linux/notifier.h>
|
|
|
|
|
2014-08-23 12:29:27 +02:00
|
|
|
/* Notes on locking:
|
|
|
|
*
|
|
|
|
* backlight_device->ops_lock is an internal backlight lock protecting the
|
|
|
|
* ops pointer and no code outside the core should need to touch it.
|
|
|
|
*
|
|
|
|
* Access to update_status() is serialised by the update_lock mutex since
|
|
|
|
* most drivers seem to need this and historically get it wrong.
|
|
|
|
*
|
|
|
|
* Most drivers don't need locking on their get_brightness() method.
|
|
|
|
* If yours does, you need to implement it in the driver. You can use the
|
|
|
|
* update_lock mutex if appropriate.
|
|
|
|
*
|
|
|
|
* Any other use of the locks below is probably wrong.
|
|
|
|
*/
|
|
|
|
|
|
|
|
enum backlight_update_reason {
|
|
|
|
BACKLIGHT_UPDATE_HOTKEY,
|
|
|
|
BACKLIGHT_UPDATE_SYSFS,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum backlight_type {
|
|
|
|
BACKLIGHT_RAW = 1,
|
|
|
|
BACKLIGHT_PLATFORM,
|
|
|
|
BACKLIGHT_FIRMWARE,
|
|
|
|
BACKLIGHT_TYPE_MAX,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum backlight_notification {
|
|
|
|
BACKLIGHT_REGISTERED,
|
|
|
|
BACKLIGHT_UNREGISTERED,
|
|
|
|
};
|
|
|
|
|
2017-07-28 21:22:53 +02:00
|
|
|
struct backlight_device;
|
|
|
|
struct fb_info;
|
2012-12-16 20:05:06 +01:00
|
|
|
#endif
|