-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MIPS: GIO bus support for SGI IP22/28
SGI IP22/IP28 machines have GIO busses for adding graphics and other extension cards. This patch adds support for GIO driver/device handling and converts the newport console driver to a GIO driver. [ralf@linux-mips.org: Fixed build error caused by the modules.h -> export.h changes.] Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Acked-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> To: linux-fbdev@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/2886/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
- Loading branch information
Thomas Bogendoerfer
authored and
Ralf Baechle
committed
Dec 7, 2011
1 parent
5611cc4
commit e84de0c
Showing
6 changed files
with
534 additions
and
46 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
#include <linux/device.h> | ||
#include <linux/mod_devicetable.h> | ||
|
||
struct gio_device_id { | ||
__u8 id; | ||
}; | ||
|
||
struct gio_device { | ||
struct device dev; | ||
struct resource resource; | ||
unsigned int irq; | ||
unsigned int slotno; | ||
|
||
const char *name; | ||
struct gio_device_id id; | ||
unsigned id32:1; | ||
unsigned gio64:1; | ||
}; | ||
#define to_gio_device(d) container_of(d, struct gio_device, dev) | ||
|
||
struct gio_driver { | ||
const char *name; | ||
struct module *owner; | ||
const struct gio_device_id *id_table; | ||
|
||
int (*probe)(struct gio_device *, const struct gio_device_id *); | ||
void (*remove)(struct gio_device *); | ||
int (*suspend)(struct gio_device *, pm_message_t); | ||
int (*resume)(struct gio_device *); | ||
void (*shutdown)(struct gio_device *); | ||
|
||
struct device_driver driver; | ||
}; | ||
#define to_gio_driver(drv) container_of(drv, struct gio_driver, driver) | ||
|
||
extern const struct gio_device_id *gio_match_device(const struct gio_device_id *, | ||
const struct gio_device *); | ||
extern struct gio_device *gio_dev_get(struct gio_device *); | ||
extern void gio_dev_put(struct gio_device *); | ||
|
||
extern int gio_device_register(struct gio_device *); | ||
extern void gio_device_unregister(struct gio_device *); | ||
extern void gio_release_dev(struct device *); | ||
|
||
static inline void gio_device_free(struct gio_device *dev) | ||
{ | ||
gio_release_dev(&dev->dev); | ||
} | ||
|
||
extern int gio_register_driver(struct gio_driver *); | ||
extern void gio_unregister_driver(struct gio_driver *); | ||
|
||
#define gio_get_drvdata(_dev) drv_get_drvdata(&(_dev)->dev) | ||
#define gio_set_drvdata(_dev, data) drv_set_drvdata(&(_dev)->dev, (data)) | ||
|
||
extern void gio_set_master(struct gio_device *); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.