#define pr_fmt(fmt) …
#include <linux/module.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/lcd.h>
#include <linux/notifier.h>
#include <linux/ctype.h>
#include <linux/err.h>
#include <linux/fb.h>
#include <linux/slab.h>
#if defined(CONFIG_FB) || (defined(CONFIG_FB_MODULE) && \
defined(CONFIG_LCD_CLASS_DEVICE_MODULE))
static int fb_notifier_callback(struct notifier_block *self,
unsigned long event, void *data)
{ … }
static int lcd_register_fb(struct lcd_device *ld)
{ … }
static void lcd_unregister_fb(struct lcd_device *ld)
{ … }
#else
static int lcd_register_fb(struct lcd_device *ld)
{
return 0;
}
static inline void lcd_unregister_fb(struct lcd_device *ld)
{
}
#endif
static ssize_t lcd_power_show(struct device *dev, struct device_attribute *attr,
char *buf)
{ … }
static ssize_t lcd_power_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t count)
{ … }
static DEVICE_ATTR_RW(lcd_power);
static ssize_t contrast_show(struct device *dev,
struct device_attribute *attr, char *buf)
{ … }
static ssize_t contrast_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t count)
{ … }
static DEVICE_ATTR_RW(contrast);
static ssize_t max_contrast_show(struct device *dev,
struct device_attribute *attr, char *buf)
{ … }
static DEVICE_ATTR_RO(max_contrast);
static void lcd_device_release(struct device *dev)
{ … }
static struct attribute *lcd_device_attrs[] = …;
ATTRIBUTE_GROUPS(…);
static const struct class lcd_class = …;
struct lcd_device *lcd_device_register(const char *name, struct device *parent,
void *devdata, const struct lcd_ops *ops)
{ … }
EXPORT_SYMBOL(…);
void lcd_device_unregister(struct lcd_device *ld)
{ … }
EXPORT_SYMBOL(…);
static void devm_lcd_device_release(struct device *dev, void *res)
{ … }
static int devm_lcd_device_match(struct device *dev, void *res, void *data)
{ … }
struct lcd_device *devm_lcd_device_register(struct device *dev,
const char *name, struct device *parent,
void *devdata, const struct lcd_ops *ops)
{ … }
EXPORT_SYMBOL(…);
void devm_lcd_device_unregister(struct device *dev, struct lcd_device *ld)
{ … }
EXPORT_SYMBOL(…);
static void __exit lcd_class_exit(void)
{ … }
static int __init lcd_class_init(void)
{ … }
postcore_initcall(lcd_class_init);
module_exit(lcd_class_exit);
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;