/drivers/include/drm/drm_crtc.h |
---|
801,4 → 801,6 |
bool interlaced, int margins); |
extern int drm_add_modes_noedid(struct drm_connector *connector, |
int hdisplay, int vdisplay); |
extern bool drm_edid_is_valid(struct edid *edid); |
#endif /* __DRM_CRTC_H__ */ |
/drivers/include/drm/drm_edid.h |
---|
201,4 → 201,7 |
#define EDID_PRODUCT_ID(e) ((e)->prod_code[0] | ((e)->prod_code[1] << 8)) |
/* define the number of Extension EDID block */ |
#define DRM_MAX_EDID_EXT_NUM 4 |
#endif /* __DRM_EDID_H__ */ |
/drivers/include/drm/drm_pciids.h |
---|
141,6 → 141,41 |
{0x1002, 0x5e4c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x5e4d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x5e4f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x6880, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x6888, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x6889, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x688A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x6898, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x6899, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x689c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_HEMLOCK|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x689d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_HEMLOCK|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x689e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68a0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68a1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68a8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68a9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68b0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68b8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68b9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68be, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68c1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68c8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68c9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68d8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68d9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68da, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68de, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68e0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68e1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68e4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68e5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68e8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68e9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68f1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68f8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68f9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x68fe, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x7100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x7101, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
{0x1002, 0x7102, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
/drivers/include/drm/radeon_drm.h |
---|
808,6 → 808,7 |
#define RADEON_TILING_SWAP_32BIT 0x8 |
#define RADEON_TILING_SURFACE 0x10 /* this object requires a surface |
* when mapped - i.e. front buffer */ |
#define RADEON_TILING_MICRO_SQUARE 0x20 |
struct drm_radeon_gem_set_tiling { |
uint32_t handle; |
/drivers/include/linux/i2c.h |
---|
28,6 → 28,8 |
#include <types.h> |
#include <list.h> |
#include <linux/module.h> |
#include <linux/i2c-id.h> |
#define I2C_NAME_SIZE 20 |
45,6 → 47,84 |
int num); |
/** |
* struct i2c_driver - represent an I2C device driver |
* @class: What kind of i2c device we instantiate (for detect) |
* @attach_adapter: Callback for bus addition (for legacy drivers) |
* @detach_adapter: Callback for bus removal (for legacy drivers) |
* @probe: Callback for device binding |
* @remove: Callback for device unbinding |
* @shutdown: Callback for device shutdown |
* @suspend: Callback for device suspend |
* @resume: Callback for device resume |
* @command: Callback for bus-wide signaling (optional) |
* @driver: Device driver model driver |
* @id_table: List of I2C devices supported by this driver |
* @detect: Callback for device detection |
* @address_list: The I2C addresses to probe (for detect) |
* @clients: List of detected clients we created (for i2c-core use only) |
* |
* The driver.owner field should be set to the module owner of this driver. |
* The driver.name field should be set to the name of this driver. |
* |
* For automatic device detection, both @detect and @address_data must |
* be defined. @class should also be set, otherwise only devices forced |
* with module parameters will be created. The detect function must |
* fill at least the name field of the i2c_board_info structure it is |
* handed upon successful detection, and possibly also the flags field. |
* |
* If @detect is missing, the driver will still work fine for enumerated |
* devices. Detected devices simply won't be supported. This is expected |
* for the many I2C/SMBus devices which can't be detected reliably, and |
* the ones which can always be enumerated in practice. |
* |
* The i2c_client structure which is handed to the @detect callback is |
* not a real i2c_client. It is initialized just enough so that you can |
* call i2c_smbus_read_byte_data and friends on it. Don't do anything |
* else with it. In particular, calling dev_dbg and friends on it is |
* not allowed. |
*/ |
struct i2c_driver { |
unsigned int class; |
/* Notifies the driver that a new bus has appeared or is about to be |
* removed. You should avoid using this if you can, it will probably |
* be removed in a near future. |
*/ |
int (*attach_adapter)(struct i2c_adapter *); |
int (*detach_adapter)(struct i2c_adapter *); |
/* Standard driver model interfaces */ |
int (*probe)(struct i2c_client *, const struct i2c_device_id *); |
int (*remove)(struct i2c_client *); |
/* driver model interfaces that don't relate to enumeration */ |
void (*shutdown)(struct i2c_client *); |
// int (*suspend)(struct i2c_client *, pm_message_t mesg); |
int (*resume)(struct i2c_client *); |
/* Alert callback, for example for the SMBus alert protocol. |
* The format and meaning of the data value depends on the protocol. |
* For the SMBus alert protocol, there is a single bit of data passed |
* as the alert response's low bit ("event flag"). |
*/ |
void (*alert)(struct i2c_client *, unsigned int data); |
/* a ioctl like command that can be used to perform specific functions |
* with the device. |
*/ |
int (*command)(struct i2c_client *client, unsigned int cmd, void *arg); |
// struct device_driver driver; |
const struct i2c_device_id *id_table; |
/* Device detection callback for automatic device creation */ |
// int (*detect)(struct i2c_client *, struct i2c_board_info *); |
const unsigned short *address_list; |
struct list_head clients; |
}; |
#define to_i2c_driver(d) container_of(d, struct i2c_driver, driver) |
/** |
* struct i2c_client - represent an I2C slave device |
* @flags: I2C_CLIENT_TEN indicates the device uses a ten bit chip address; |
* I2C_CLIENT_PEC indicates it uses SMBus Packet Error Checking |
69,7 → 149,7 |
/* _LOWER_ 7 bits */ |
char name[I2C_NAME_SIZE]; |
struct i2c_adapter *adapter; /* the adapter we sit on */ |
// struct i2c_driver *driver; /* and our access routines */ |
struct i2c_driver *driver; /* and our access routines */ |
// struct device dev; /* the device structure */ |
int irq; /* irq issued by device (or -1) */ |
struct list_head detected; |
76,6 → 156,7 |
}; |
#define to_i2c_client(d) container_of(d, struct i2c_client, dev) |
extern struct i2c_client *i2c_verify_client(struct device *dev); |
/* |
* The following structs are for those who like to implement new bus drivers: |
111,11 → 192,11 |
void *algo_data; |
/* data fields that are valid for all devices */ |
u8 level; /* nesting level for lockdep */ |
// struct rt_mutex bus_lock; |
int timeout; /* in jiffies */ |
int retries; |
// struct device dev; /* the adapter device */ |
struct device dev; /* the adapter device */ |
int nr; |
char name[48]; |
122,7 → 203,16 |
}; |
#define to_i2c_adapter(d) container_of(d, struct i2c_adapter, dev) |
static inline void *i2c_get_adapdata(const struct i2c_adapter *dev) |
{ |
return dev_get_drvdata(&dev->dev); |
} |
static inline void i2c_set_adapdata(struct i2c_adapter *dev, void *data) |
{ |
dev_set_drvdata(&dev->dev, data); |
} |
/*flags for the client struct: */ |
#define I2C_CLIENT_PEC 0x04 /* Use Packet Error Checking */ |
#define I2C_CLIENT_TEN 0x10 /* we have a ten bit chip address */ |
136,17 → 226,6 |
#define I2C_CLASS_DDC (1<<3) /* DDC bus on graphics adapters */ |
#define I2C_CLASS_SPD (1<<7) /* SPD EEPROMs and similar */ |
/* i2c_client_address_data is the struct for holding default client |
* addresses for a driver and for the parameters supplied on the |
* command line |
*/ |
struct i2c_client_address_data { |
const unsigned short *normal_i2c; |
const unsigned short *probe; |
const unsigned short *ignore; |
const unsigned short * const *forces; |
}; |
/* Internal numbers to terminate lists */ |
#define I2C_CLIENT_END 0xfffeU |
275,25 → 354,4 |
#define I2C_SMBUS_BLOCK_PROC_CALL 7 /* SMBus 2.0 */ |
#define I2C_SMBUS_I2C_BLOCK_DATA 8 |
#endif /* _LINUX_I2C_H */ |
/drivers/include/linux/kernel.h |
---|
124,8 → 124,23 |
struct file {}; |
struct vm_area_struct {}; |
struct address_space {}; |
struct device {}; |
struct device |
{ |
struct device *parent; |
void *driver_data; |
}; |
static inline void dev_set_drvdata(struct device *dev, void *data) |
{ |
dev->driver_data = data; |
} |
static inline void *dev_get_drvdata(struct device *dev) |
{ |
return dev->driver_data; |
} |
#define preempt_disable() do { } while (0) |
#define preempt_enable_no_resched() do { } while (0) |
#define preempt_enable() do { } while (0) |
/drivers/include/linux/module.h |
---|
4,6 → 4,7 |
#include <linux/list.h> |
#include <linux/compiler.h> |
#include <linux/kernel.h> |
#define EXPORT_SYMBOL(x) |
10,6 → 11,11 |
#define MODULE_FIRMWARE(x) |
#define MODULE_AUTHOR(x) |
#define MODULE_DESCRIPTION(x) |
#define MODULE_LICENSE(x) |
struct module {}; |
#endif /* _LINUX_MODULE_H */ |
/drivers/include/linux/pci.h |
---|
484,7 → 484,7 |
unsigned int no_d1d2:1; /* Only allow D0 and D3 */ |
// pci_channel_state_t error_state; /* current connectivity state */ |
// struct device dev; /* Generic device interface */ |
struct device dev; /* Generic device interface */ |
// int cfg_size; /* Size of configuration space */ |