aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/sgiioc4.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/pci/sgiioc4.c')
-rw-r--r--drivers/ide/pci/sgiioc4.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/ide/pci/sgiioc4.c b/drivers/ide/pci/sgiioc4.c
index 5598bd5936d9..440f43a86ad3 100644
--- a/drivers/ide/pci/sgiioc4.c
+++ b/drivers/ide/pci/sgiioc4.c
@@ -600,9 +600,8 @@ sgiioc4_ide_setup_pci_device(struct pci_dev *dev)
600 unsigned long cmd_base, irqport; 600 unsigned long cmd_base, irqport;
601 unsigned long bar0, cmd_phys_base, ctl; 601 unsigned long bar0, cmd_phys_base, ctl;
602 void __iomem *virt_base; 602 void __iomem *virt_base;
603 ide_hwif_t *hwif; 603 struct ide_host *host;
604 hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL }; 604 hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };
605 u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };
606 struct ide_port_info d = sgiioc4_port_info; 605 struct ide_port_info d = sgiioc4_port_info;
607 606
608 /* Get the CmdBlk and CtrlBlk Base Registers */ 607 /* Get the CmdBlk and CtrlBlk Base Registers */
@@ -635,16 +634,14 @@ sgiioc4_ide_setup_pci_device(struct pci_dev *dev)
635 hw.chipset = ide_pci; 634 hw.chipset = ide_pci;
636 hw.dev = &dev->dev; 635 hw.dev = &dev->dev;
637 636
638 hwif = ide_find_port_slot(&d);
639 if (hwif == NULL)
640 goto err;
641
642 /* Initializing chipset IRQ Registers */ 637 /* Initializing chipset IRQ Registers */
643 writel(0x03, (void __iomem *)(irqport + IOC4_INTR_SET * 4)); 638 writel(0x03, (void __iomem *)(irqport + IOC4_INTR_SET * 4));
644 639
645 idx[0] = hwif->index; 640 host = ide_host_alloc(&d, hws);
641 if (host == NULL)
642 goto err;
646 643
647 if (ide_device_add(idx, &d, hws)) 644 if (ide_host_register(host, &d, hws))
648 return -EIO; 645 return -EIO;
649 646
650 return 0; 647 return 0;