diff options
Diffstat (limited to 'arch/sparc/kernel/pci_fire.c')
-rw-r--r-- | arch/sparc/kernel/pci_fire.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/arch/sparc/kernel/pci_fire.c b/arch/sparc/kernel/pci_fire.c index efb896d68754..d29a32fcc5e4 100644 --- a/arch/sparc/kernel/pci_fire.c +++ b/arch/sparc/kernel/pci_fire.c | |||
@@ -214,11 +214,9 @@ static int pci_fire_msi_setup(struct pci_pbm_info *pbm, unsigned long msiqid, | |||
214 | 214 | ||
215 | static int pci_fire_msi_teardown(struct pci_pbm_info *pbm, unsigned long msi) | 215 | static int pci_fire_msi_teardown(struct pci_pbm_info *pbm, unsigned long msi) |
216 | { | 216 | { |
217 | unsigned long msiqid; | ||
218 | u64 val; | 217 | u64 val; |
219 | 218 | ||
220 | val = upa_readq(pbm->pbm_regs + MSI_MAP(msi)); | 219 | val = upa_readq(pbm->pbm_regs + MSI_MAP(msi)); |
221 | msiqid = (val & MSI_MAP_EQNUM); | ||
222 | 220 | ||
223 | val &= ~MSI_MAP_VALID; | 221 | val &= ~MSI_MAP_VALID; |
224 | 222 | ||
@@ -277,7 +275,7 @@ static int pci_fire_msiq_build_irq(struct pci_pbm_info *pbm, | |||
277 | { | 275 | { |
278 | unsigned long cregs = (unsigned long) pbm->pbm_regs; | 276 | unsigned long cregs = (unsigned long) pbm->pbm_regs; |
279 | unsigned long imap_reg, iclr_reg, int_ctrlr; | 277 | unsigned long imap_reg, iclr_reg, int_ctrlr; |
280 | unsigned int virt_irq; | 278 | unsigned int irq; |
281 | int fixup; | 279 | int fixup; |
282 | u64 val; | 280 | u64 val; |
283 | 281 | ||
@@ -293,14 +291,14 @@ static int pci_fire_msiq_build_irq(struct pci_pbm_info *pbm, | |||
293 | 291 | ||
294 | fixup = ((pbm->portid << 6) | devino) - int_ctrlr; | 292 | fixup = ((pbm->portid << 6) | devino) - int_ctrlr; |
295 | 293 | ||
296 | virt_irq = build_irq(fixup, iclr_reg, imap_reg); | 294 | irq = build_irq(fixup, iclr_reg, imap_reg); |
297 | if (!virt_irq) | 295 | if (!irq) |
298 | return -ENOMEM; | 296 | return -ENOMEM; |
299 | 297 | ||
300 | upa_writeq(EVENT_QUEUE_CONTROL_SET_EN, | 298 | upa_writeq(EVENT_QUEUE_CONTROL_SET_EN, |
301 | pbm->pbm_regs + EVENT_QUEUE_CONTROL_SET(msiqid)); | 299 | pbm->pbm_regs + EVENT_QUEUE_CONTROL_SET(msiqid)); |
302 | 300 | ||
303 | return virt_irq; | 301 | return irq; |
304 | } | 302 | } |
305 | 303 | ||
306 | static const struct sparc64_msiq_ops pci_fire_msiq_ops = { | 304 | static const struct sparc64_msiq_ops pci_fire_msiq_ops = { |
@@ -455,8 +453,7 @@ static int __devinit pci_fire_pbm_init(struct pci_pbm_info *pbm, | |||
455 | return 0; | 453 | return 0; |
456 | } | 454 | } |
457 | 455 | ||
458 | static int __devinit fire_probe(struct platform_device *op, | 456 | static int __devinit fire_probe(struct platform_device *op) |
459 | const struct of_device_id *match) | ||
460 | { | 457 | { |
461 | struct device_node *dp = op->dev.of_node; | 458 | struct device_node *dp = op->dev.of_node; |
462 | struct pci_pbm_info *pbm; | 459 | struct pci_pbm_info *pbm; |
@@ -499,7 +496,7 @@ out_err: | |||
499 | return err; | 496 | return err; |
500 | } | 497 | } |
501 | 498 | ||
502 | static struct of_device_id __initdata fire_match[] = { | 499 | static const struct of_device_id fire_match[] = { |
503 | { | 500 | { |
504 | .name = "pci", | 501 | .name = "pci", |
505 | .compatible = "pciex108e,80f0", | 502 | .compatible = "pciex108e,80f0", |
@@ -507,7 +504,7 @@ static struct of_device_id __initdata fire_match[] = { | |||
507 | {}, | 504 | {}, |
508 | }; | 505 | }; |
509 | 506 | ||
510 | static struct of_platform_driver fire_driver = { | 507 | static struct platform_driver fire_driver = { |
511 | .driver = { | 508 | .driver = { |
512 | .name = DRIVER_NAME, | 509 | .name = DRIVER_NAME, |
513 | .owner = THIS_MODULE, | 510 | .owner = THIS_MODULE, |
@@ -518,7 +515,7 @@ static struct of_platform_driver fire_driver = { | |||
518 | 515 | ||
519 | static int __init fire_init(void) | 516 | static int __init fire_init(void) |
520 | { | 517 | { |
521 | return of_register_platform_driver(&fire_driver); | 518 | return platform_driver_register(&fire_driver); |
522 | } | 519 | } |
523 | 520 | ||
524 | subsys_initcall(fire_init); | 521 | subsys_initcall(fire_init); |