sgiioc4: use ide_host_add() (take 2)
Convert the driver to use ide_host_add() -- this seems to be a straightforward change which I'm not sure why hasn't been done yet... While doing this at last, get rid of: - useless local copy of the 'sgiioc4_port_info' variable; - unnecessary 'goto' and label... Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Cc: jeremy@sgi.com Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
3059ef99a1
commit
95a84cd192
1 changed files with 3 additions and 15 deletions
|
@ -567,9 +567,7 @@ sgiioc4_ide_setup_pci_device(struct pci_dev *dev)
|
||||||
unsigned long cmd_base, irqport;
|
unsigned long cmd_base, irqport;
|
||||||
unsigned long bar0, cmd_phys_base, ctl;
|
unsigned long bar0, cmd_phys_base, ctl;
|
||||||
void __iomem *virt_base;
|
void __iomem *virt_base;
|
||||||
struct ide_host *host;
|
|
||||||
hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };
|
hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };
|
||||||
struct ide_port_info d = sgiioc4_port_info;
|
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
/* Get the CmdBlk and CtrlBlk Base Registers */
|
/* Get the CmdBlk and CtrlBlk Base Registers */
|
||||||
|
@ -604,20 +602,10 @@ sgiioc4_ide_setup_pci_device(struct pci_dev *dev)
|
||||||
/* Initializing chipset IRQ Registers */
|
/* Initializing chipset IRQ Registers */
|
||||||
writel(0x03, (void __iomem *)(irqport + IOC4_INTR_SET * 4));
|
writel(0x03, (void __iomem *)(irqport + IOC4_INTR_SET * 4));
|
||||||
|
|
||||||
host = ide_host_alloc(&d, hws);
|
rc = ide_host_add(&sgiioc4_port_info, hws, NULL);
|
||||||
if (host == NULL) {
|
if (!rc)
|
||||||
rc = -ENOMEM;
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
|
|
||||||
rc = ide_host_register(host, &d, hws);
|
|
||||||
if (rc)
|
|
||||||
goto err_free;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
err_free:
|
|
||||||
ide_host_free(host);
|
|
||||||
err:
|
|
||||||
release_mem_region(cmd_phys_base, IOC4_CMD_CTL_BLK_SIZE);
|
release_mem_region(cmd_phys_base, IOC4_CMD_CTL_BLK_SIZE);
|
||||||
req_mem_rgn_err:
|
req_mem_rgn_err:
|
||||||
iounmap(virt_base);
|
iounmap(virt_base);
|
||||||
|
|
Loading…
Reference in a new issue