~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/lcd.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/linux/lcd.h (Version linux-6.11.5) and /include/linux/lcd.h (Version linux-2.6.32.71)


  1 /* SPDX-License-Identifier: GPL-2.0 */         << 
  2 /*                                                  1 /*
  3  * LCD Lowlevel Control Abstraction                 2  * LCD Lowlevel Control Abstraction
  4  *                                                  3  *
  5  * Copyright (C) 2003,2004 Hewlett-Packard Com      4  * Copyright (C) 2003,2004 Hewlett-Packard Company
  6  *                                                  5  *
  7  */                                                 6  */
  8                                                     7 
  9 #ifndef _LINUX_LCD_H                                8 #ifndef _LINUX_LCD_H
 10 #define _LINUX_LCD_H                                9 #define _LINUX_LCD_H
 11                                                    10 
 12 #include <linux/device.h>                          11 #include <linux/device.h>
 13 #include <linux/mutex.h>                           12 #include <linux/mutex.h>
 14 #include <linux/notifier.h>                        13 #include <linux/notifier.h>
 15 #include <linux/fb.h>                              14 #include <linux/fb.h>
 16                                                    15 
 17 /* Notes on locking:                               16 /* Notes on locking:
 18  *                                                 17  *
 19  * lcd_device->ops_lock is an internal backlig     18  * lcd_device->ops_lock is an internal backlight lock protecting the ops
 20  * field and no code outside the core should n     19  * field and no code outside the core should need to touch it.
 21  *                                                 20  *
 22  * Access to set_power() is serialised by the      21  * Access to set_power() is serialised by the update_lock mutex since
 23  * most drivers seem to need this and historic     22  * most drivers seem to need this and historically get it wrong.
 24  *                                                 23  *
 25  * Most drivers don't need locking on their ge     24  * Most drivers don't need locking on their get_power() method.
 26  * If yours does, you need to implement it in      25  * If yours does, you need to implement it in the driver. You can use the
 27  * update_lock mutex if appropriate.               26  * update_lock mutex if appropriate.
 28  *                                                 27  *
 29  * Any other use of the locks below is probabl     28  * Any other use of the locks below is probably wrong.
 30  */                                                29  */
 31                                                    30 
 32 struct lcd_device;                                 31 struct lcd_device;
 33 struct fb_info;                                    32 struct fb_info;
 34                                                    33 
 35 struct lcd_properties {                            34 struct lcd_properties {
 36         /* The maximum value for contrast (rea     35         /* The maximum value for contrast (read-only) */
 37         int max_contrast;                          36         int max_contrast;
 38 };                                                 37 };
 39                                                    38 
 40 struct lcd_ops {                                   39 struct lcd_ops {
 41         /* Get the LCD panel power status (0:      40         /* Get the LCD panel power status (0: full on, 1..3: controller
 42            power on, flat panel power off, 4:      41            power on, flat panel power off, 4: full off), see FB_BLANK_XXX */
 43         int (*get_power)(struct lcd_device *);     42         int (*get_power)(struct lcd_device *);
 44         /* Enable or disable power to the LCD      43         /* Enable or disable power to the LCD (0: on; 4: off, see FB_BLANK_XXX) */
 45         int (*set_power)(struct lcd_device *,      44         int (*set_power)(struct lcd_device *, int power);
 46         /* Get the current contrast setting (0     45         /* Get the current contrast setting (0-max_contrast) */
 47         int (*get_contrast)(struct lcd_device      46         int (*get_contrast)(struct lcd_device *);
 48         /* Set LCD panel contrast */               47         /* Set LCD panel contrast */
 49         int (*set_contrast)(struct lcd_device      48         int (*set_contrast)(struct lcd_device *, int contrast);
 50         /* Set LCD panel mode (resolutions ...     49         /* Set LCD panel mode (resolutions ...) */
 51         int (*set_mode)(struct lcd_device *, s     50         int (*set_mode)(struct lcd_device *, struct fb_videomode *);
 52         /* Check if given framebuffer device i     51         /* Check if given framebuffer device is the one LCD is bound to;
 53            return 0 if not, !=0 if it is. If N     52            return 0 if not, !=0 if it is. If NULL, lcd always matches the fb. */
 54         int (*check_fb)(struct lcd_device *, s     53         int (*check_fb)(struct lcd_device *, struct fb_info *);
 55 };                                                 54 };
 56                                                    55 
 57 struct lcd_device {                                56 struct lcd_device {
 58         struct lcd_properties props;               57         struct lcd_properties props;
 59         /* This protects the 'ops' field. If '     58         /* This protects the 'ops' field. If 'ops' is NULL, the driver that
 60            registered this device has been unl     59            registered this device has been unloaded, and if class_get_devdata()
 61            points to something in the body of      60            points to something in the body of that driver, it is also invalid. */
 62         struct mutex ops_lock;                     61         struct mutex ops_lock;
 63         /* If this is NULL, the backing module     62         /* If this is NULL, the backing module is unloaded */
 64         const struct lcd_ops *ops;             !!  63         struct lcd_ops *ops;
 65         /* Serialise access to set_power metho     64         /* Serialise access to set_power method */
 66         struct mutex update_lock;                  65         struct mutex update_lock;
 67         /* The framebuffer notifier block */       66         /* The framebuffer notifier block */
 68         struct notifier_block fb_notif;            67         struct notifier_block fb_notif;
 69                                                    68 
 70         struct device dev;                         69         struct device dev;
 71 };                                                 70 };
 72                                                    71 
 73 struct lcd_platform_data {                     << 
 74         /* reset lcd panel device. */          << 
 75         int (*reset)(struct lcd_device *ld);   << 
 76         /* on or off to lcd panel. if 'enable' << 
 77            lcd power off and 1, lcd power on.  << 
 78         int (*power_on)(struct lcd_device *ld, << 
 79                                                << 
 80         /* it indicates whether lcd panel was  << 
 81            from bootloader or not. */          << 
 82         int lcd_enabled;                       << 
 83         /* it means delay for stable time when << 
 84            or high to low that is dependent on << 
 85            low active or high active. */       << 
 86         unsigned int reset_delay;              << 
 87         /* stable time needing to become lcd p << 
 88         unsigned int power_on_delay;           << 
 89         /* stable time needing to become lcd p << 
 90         unsigned int power_off_delay;          << 
 91                                                << 
 92         /* it could be used for any purpose. * << 
 93         void *pdata;                           << 
 94 };                                             << 
 95                                                << 
 96 static inline void lcd_set_power(struct lcd_de     72 static inline void lcd_set_power(struct lcd_device *ld, int power)
 97 {                                                  73 {
 98         mutex_lock(&ld->update_lock);              74         mutex_lock(&ld->update_lock);
 99         if (ld->ops && ld->ops->set_power)         75         if (ld->ops && ld->ops->set_power)
100                 ld->ops->set_power(ld, power);     76                 ld->ops->set_power(ld, power);
101         mutex_unlock(&ld->update_lock);            77         mutex_unlock(&ld->update_lock);
102 }                                                  78 }
103                                                    79 
104 extern struct lcd_device *lcd_device_register(     80 extern struct lcd_device *lcd_device_register(const char *name,
105         struct device *parent, void *devdata,  !!  81         struct device *parent, void *devdata, struct lcd_ops *ops);
106 extern struct lcd_device *devm_lcd_device_regi << 
107         const char *name, struct device *paren << 
108         void *devdata, const struct lcd_ops *o << 
109 extern void lcd_device_unregister(struct lcd_d     82 extern void lcd_device_unregister(struct lcd_device *ld);
110 extern void devm_lcd_device_unregister(struct  << 
111         struct lcd_device *ld);                << 
112                                                    83 
113 #define to_lcd_device(obj) container_of(obj, s     84 #define to_lcd_device(obj) container_of(obj, struct lcd_device, dev)
114                                                    85 
115 static inline void * lcd_get_data(struct lcd_d     86 static inline void * lcd_get_data(struct lcd_device *ld_dev)
116 {                                                  87 {
117         return dev_get_drvdata(&ld_dev->dev);      88         return dev_get_drvdata(&ld_dev->dev);
118 }                                                  89 }
119                                                    90 
120                                                    91 
121 #endif                                             92 #endif
122                                                    93 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php