home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / linux / backlight.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.9 KB  |  63 lines

  1. /*
  2.  * Backlight Lowlevel Control Abstraction
  3.  *
  4.  * Copyright (C) 2003,2004 Hewlett-Packard Company
  5.  *
  6.  */
  7.  
  8. #ifndef _LINUX_BACKLIGHT_H
  9. #define _LINUX_BACKLIGHT_H
  10.  
  11. #include <linux/device.h>
  12. #include <linux/notifier.h>
  13.  
  14. struct backlight_device;
  15. struct fb_info;
  16.  
  17. /* This structure defines all the properties of a backlight
  18.    (usually attached to a LCD). */
  19. struct backlight_properties {
  20.     /* Owner module */
  21.     struct module *owner;
  22.  
  23.     /* Notify the backlight driver some property has changed */
  24.     int (*update_status)(struct backlight_device *);
  25.     /* Return the current backlight brightness (accounting for power,
  26.        fb_blank etc.) */
  27.     int (*get_brightness)(struct backlight_device *);
  28.     /* Check if given framebuffer device is the one bound to this backlight;
  29.        return 0 if not, !=0 if it is. If NULL, backlight always matches the fb. */
  30.     int (*check_fb)(struct fb_info *);
  31.  
  32.     /* Current User requested brightness (0 - max_brightness) */
  33.     int brightness;
  34.     /* Maximal value for brightness (read-only) */
  35.     int max_brightness;
  36.     /* Current FB Power mode (0: full on, 1..3: power saving
  37.        modes; 4: full off), see FB_BLANK_XXX */
  38.     int power;
  39.     /* FB Blanking active? (values as for power) */
  40.     int fb_blank;
  41. };
  42.  
  43. struct backlight_device {
  44.     /* This protects the 'props' field. If 'props' is NULL, the driver that
  45.        registered this device has been unloaded, and if class_get_devdata()
  46.        points to something in the body of that driver, it is also invalid. */
  47.     struct semaphore sem;
  48.     /* If this is NULL, the backing module is unloaded */
  49.     struct backlight_properties *props;
  50.     /* The framebuffer notifier block */
  51.     struct notifier_block fb_notif;
  52.     /* The class device structure */
  53.     struct class_device class_dev;
  54. };
  55.  
  56. extern struct backlight_device *backlight_device_register(const char *name,
  57.     void *devdata, struct backlight_properties *bp);
  58. extern void backlight_device_unregister(struct backlight_device *bd);
  59.  
  60. #define to_backlight_device(obj) container_of(obj, struct backlight_device, class_dev)
  61.  
  62. #endif
  63.