9
0
Fork 0

resource: introduce add_generic_device to register simple device

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
This commit is contained in:
Jean-Christophe PLAGNIOL-VILLARD 2011-07-21 13:53:32 +08:00
parent 6ae6553e1a
commit 4b193e0755
2 changed files with 24 additions and 8 deletions

View File

@ -25,22 +25,26 @@
#include <driver.h>
#include <xfuncs.h>
struct device_d *add_mem_device(const char *name, resource_size_t start,
resource_size_t size, unsigned int flags)
struct device_d *add_generic_device(const char* devname, int id, const char *resname,
resource_size_t start, resource_size_t size, unsigned int flags,
void *pdata)
{
struct device_d *dev;
dev = xzalloc(sizeof(*dev));
strcpy(dev->name, "mem");
dev->id = -1;
strcpy(dev->name, devname);
dev->id = id;
dev->resource = xzalloc(sizeof(struct resource));
dev->num_resources = 1;
dev->resource[0].name = xstrdup(name);
if (resname)
dev->resource[0].name = xstrdup(resname);
dev->resource[0].start = start;
dev->resource[0].size = size;
dev->resource[0].flags = IORESOURCE_MEM | flags;
dev->resource[0].flags = flags;
dev->platform_data = pdata;
register_device(dev);
return dev;
}
EXPORT_SYMBOL(add_generic_device);

View File

@ -202,11 +202,23 @@ static inline void __iomem *dev_request_mem_region(struct device_d *dev, int num
return dev_get_mem_region(dev, num);
}
/*
* register a generic device
* with only one resource
*/
struct device_d *add_generic_device(const char* devname, int id, const char *resname,
resource_size_t start, resource_size_t size, unsigned int flags,
void *pdata);
/*
* register a memory device
*/
struct device_d *add_mem_device(const char *name, resource_size_t start,
resource_size_t size, unsigned int flags);
static inline struct device_d *add_mem_device(const char *name, resource_size_t start,
resource_size_t size, unsigned int flags)
{
return add_generic_device("mem", -1, name, start, size,
IORESOURCE_MEM | flags, NULL);
}
/* linear list over all available devices
*/