Skip to content

Commit

Permalink
[SPARC64]: Handle ISA devices with no 'regs' property.
Browse files Browse the repository at this point in the history
And this points out that the return value from
isa_dev_get_resource() and the 'pregs' arg to
isa_dev_get_irq() are totally unused.

Based upon a patch from Richard Mortimer <richm@oldelvet.org.uk>

Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
David S. Miller committed Dec 31, 2006
1 parent 55d0bef commit f4060c0
Showing 1 changed file with 8 additions and 12 deletions.
20 changes: 8 additions & 12 deletions arch/sparc64/kernel/isa.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,15 @@ static void __init report_dev(struct sparc_isa_device *isa_dev, int child)
printk(" [%s", isa_dev->prom_node->name);
}

static struct linux_prom_registers * __init
isa_dev_get_resource(struct sparc_isa_device *isa_dev)
static void __init isa_dev_get_resource(struct sparc_isa_device *isa_dev)
{
struct linux_prom_registers *pregs;
unsigned long base, len;
int prop_len;

pregs = of_get_property(isa_dev->prom_node, "reg", &prop_len);
if (!pregs)
return;

/* Only the first one is interesting. */
len = pregs[0].reg_size;
Expand All @@ -44,12 +45,9 @@ isa_dev_get_resource(struct sparc_isa_device *isa_dev)

request_resource(&isa_dev->bus->parent->io_space,
&isa_dev->resource);

return pregs;
}

static void __init isa_dev_get_irq(struct sparc_isa_device *isa_dev,
struct linux_prom_registers *pregs)
static void __init isa_dev_get_irq(struct sparc_isa_device *isa_dev)
{
struct of_device *op = of_find_device_by_node(isa_dev->prom_node);

Expand All @@ -69,7 +67,6 @@ static void __init isa_fill_children(struct sparc_isa_device *parent_isa_dev)

printk(" ->");
while (dp) {
struct linux_prom_registers *regs;
struct sparc_isa_device *isa_dev;

isa_dev = kzalloc(sizeof(*isa_dev), GFP_KERNEL);
Expand All @@ -85,8 +82,8 @@ static void __init isa_fill_children(struct sparc_isa_device *parent_isa_dev)
isa_dev->bus = parent_isa_dev->bus;
isa_dev->prom_node = dp;

regs = isa_dev_get_resource(isa_dev);
isa_dev_get_irq(isa_dev, regs);
isa_dev_get_resource(isa_dev);
isa_dev_get_irq(isa_dev);

report_dev(isa_dev, 1);

Expand All @@ -99,7 +96,6 @@ static void __init isa_fill_devices(struct sparc_isa_bridge *isa_br)
struct device_node *dp = isa_br->prom_node->child;

while (dp) {
struct linux_prom_registers *regs;
struct sparc_isa_device *isa_dev;

isa_dev = kzalloc(sizeof(*isa_dev), GFP_KERNEL);
Expand Down Expand Up @@ -137,8 +133,8 @@ static void __init isa_fill_devices(struct sparc_isa_bridge *isa_br)
isa_dev->bus = isa_br;
isa_dev->prom_node = dp;

regs = isa_dev_get_resource(isa_dev);
isa_dev_get_irq(isa_dev, regs);
isa_dev_get_resource(isa_dev);
isa_dev_get_irq(isa_dev);

report_dev(isa_dev, 0);

Expand Down

0 comments on commit f4060c0

Please sign in to comment.