[PARISC] Convert parisc_device tree to use struct device klists

Fix parse_tree_node.  much more needs to be done to fix this file.

Signed-off-by: Matthew Wilcox <[email protected]>

Make drivers.c compile based on a patch from Pat Mochel.

From: Patrick Mochel <[email protected]>
Signed-off-by: Kyle McMartin <[email protected]>

Fix drivers.c to create new device tree nodes when no match is found.

Signed-off-by: Richard Hirst <[email protected]>

Do a proper depth-first search returning parents before children, using the
new klist infrastructure.

Signed-off-by: Richard Hirst <[email protected]>

Fixed parisc_device traversal so that pdc_stable works again
Fixed check_dev so it doesn't dereference a parisc_device until it
has verified the bus type

Signed-off-by: Randolph Chung <[email protected]>

Convert pa_dev->hpa from an unsigned long to a struct resource.
Use insert_resource() instead of request_mem_region().
Request resources at bus walk time instead of driver probe time.
Don't release the resources as we don't have any hotplug parisc_device
support yet.
Add parisc_pathname() to conveniently get the textual representation
of the hwpath used in sysfs.
Inline the remnants of claim_device() into its caller.

Signed-off-by: Matthew Wilcox <[email protected]>

I noticed that some of the STI regions weren't showing up in iomem.
Reading the STI spec indicated that all STI devices occupy at least 32MB.
So check for STI HPAs and give them 32MB instead of 4kB.

Signed-off-by: Matthew Wilcox <[email protected]>

Signed-off-by: Kyle McMartin <[email protected]>
This commit is contained in:
Matthew Wilcox 2005-10-21 22:33:38 -04:00 • committed by Kyle McMartin
commit 5658374766
4 changed files with 216 additions and 91 deletions

View file

@ -39,6 +39,11 @@ struct parisc_driver {
#define to_parisc_driver(d) container_of(d, struct parisc_driver, drv)
#define parisc_parent(d) to_parisc_device(d->dev.parent)
static inline char *parisc_pathname(struct parisc_device *d)
{
return d->dev.bus_id;
}
static inline void
parisc_set_drvdata(struct parisc_device *d, void *p)
{