aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/pci_fire.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc/kernel/pci_fire.c')
-rw-r--r--arch/sparc/kernel/pci_fire.c19
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
215static int pci_fire_msi_teardown(struct pci_pbm_info *pbm, unsigned long msi) 215static 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
306static const struct sparc64_msiq_ops pci_fire_msiq_ops = { 304static 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
458static int __devinit fire_probe(struct platform_device *op, 456static 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
502static struct of_device_id __initdata fire_match[] = { 499static 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
510static struct of_platform_driver fire_driver = { 507static 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
519static int __init fire_init(void) 516static 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
524subsys_initcall(fire_init); 521subsys_initcall(fire_init);