diff options
Diffstat (limited to 'arch/powerpc/kernel/vio.c')
| -rw-r--r-- | arch/powerpc/kernel/vio.c | 12 | 
1 files changed, 1 insertions, 11 deletions
| diff --git a/arch/powerpc/kernel/vio.c b/arch/powerpc/kernel/vio.c index cdf5867838a6..fad8580f9081 100644 --- a/arch/powerpc/kernel/vio.c +++ b/arch/powerpc/kernel/vio.c | |||
| @@ -218,7 +218,6 @@ struct vio_dev * __devinit vio_register_device_node(struct device_node *of_node) | |||
| 218 | { | 218 | { | 
| 219 | struct vio_dev *viodev; | 219 | struct vio_dev *viodev; | 
| 220 | unsigned int *unit_address; | 220 | unsigned int *unit_address; | 
| 221 | unsigned int *irq_p; | ||
| 222 | 221 | ||
| 223 | /* we need the 'device_type' property, in order to match with drivers */ | 222 | /* we need the 'device_type' property, in order to match with drivers */ | 
| 224 | if (of_node->type == NULL) { | 223 | if (of_node->type == NULL) { | 
| @@ -243,16 +242,7 @@ struct vio_dev * __devinit vio_register_device_node(struct device_node *of_node) | |||
| 243 | 242 | ||
| 244 | viodev->dev.platform_data = of_node_get(of_node); | 243 | viodev->dev.platform_data = of_node_get(of_node); | 
| 245 | 244 | ||
| 246 | viodev->irq = NO_IRQ; | 245 | viodev->irq = irq_of_parse_and_map(of_node, 0); | 
| 247 | irq_p = (unsigned int *)get_property(of_node, "interrupts", NULL); | ||
| 248 | if (irq_p) { | ||
| 249 | int virq = virt_irq_create_mapping(*irq_p); | ||
| 250 | if (virq == NO_IRQ) { | ||
| 251 | printk(KERN_ERR "Unable to allocate interrupt " | ||
| 252 | "number for %s\n", of_node->full_name); | ||
| 253 | } else | ||
| 254 | viodev->irq = irq_offset_up(virq); | ||
| 255 | } | ||
| 256 | 246 | ||
| 257 | snprintf(viodev->dev.bus_id, BUS_ID_SIZE, "%x", *unit_address); | 247 | snprintf(viodev->dev.bus_id, BUS_ID_SIZE, "%x", *unit_address); | 
| 258 | viodev->name = of_node->name; | 248 | viodev->name = of_node->name; | 
