1/* 2 * Copyright (C) 2006 James Simmons <jsimmons@infradead.org> 3 * 4 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or (at 9 * your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, but 12 * WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License along 17 * with this program; if not, write to the Free Software Foundation, Inc., 18 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 19 * 20 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 21 */ 22 23#ifndef _LINUX_DISPLAY_H 24#define _LINUX_DISPLAY_H 25 26#include <linux/device.h> 27 28struct display_device; 29 30/* This structure defines all the properties of a Display. */ 31struct display_driver { 32 int (*set_contrast)(struct display_device *, unsigned int); 33 int (*get_contrast)(struct display_device *); 34 void (*suspend)(struct display_device *, pm_message_t state); 35 void (*resume)(struct display_device *); 36 int (*probe)(struct display_device *, void *); 37 int (*remove)(struct display_device *); 38 int max_contrast; 39}; 40 41struct display_device { 42 struct module *owner; /* Owner module */ 43 struct display_driver *driver; 44 struct device *parent; /* This is the parent */ 45 struct device *dev; /* This is this display device */ 46 struct mutex lock; 47 void *priv_data; 48 char type[16]; 49 char *name; 50 int idx; 51}; 52 53extern struct display_device *display_device_register(struct display_driver *driver, 54 struct device *dev, void *devdata); 55extern void display_device_unregister(struct display_device *dev); 56 57extern int probe_edid(struct display_device *dev, void *devdata); 58 59#define to_display_device(obj) container_of(obj, struct display_device, class_dev) 60 61#endif 62