Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f904d01 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

ide: add ide_host_add() helper



Add ide_host_add() helper which does ide_host_alloc()+ide_host_register(),
then convert ide_setup_pci_device[s](), ide_legacy_device_add() and some
host drivers to use it.

While at it:

* Fix ide_setup_pci_device[s](), ide_arm.c, gayle.c, ide-4drives.c,
  macide.c, q40ide.c, cmd640.c and cs5520.c to return correct error value.

* -ENOENT -> -ENOMEM in rapide.c, ide-h8300.c, ide-generic.c, au1xxx-ide.c
  and pmac.c

* -ENODEV -> -ENOMEM in palm_bk3710.c, ide_platform.c and delkin_cb.c

* -1 -> -ENOMEM in ide-pnp.c

Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 48c3c107
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@

static int __init ide_arm_init(void)
{
	struct ide_host *host;
	unsigned long base = IDE_ARM_IO, ctl = IDE_ARM_IO + 0x206;
	hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };

@@ -50,11 +49,7 @@ static int __init ide_arm_init(void)
	hw.irq = IDE_ARM_IRQ;
	hw.chipset = ide_generic;

	host = ide_host_alloc(NULL, hws);
	if (host)
		ide_host_register(host, NULL, hws);

	return 0;
	return ide_host_add(NULL, hws, NULL);
}

module_init(ide_arm_init);
+4 −6
Original line number Diff line number Diff line
@@ -349,7 +349,7 @@ static int __devinit palm_bk3710_probe(struct platform_device *pdev)
	struct resource *mem, *irq;
	struct ide_host *host;
	unsigned long base, rate;
	int i;
	int i, rc;
	hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };

	clk = clk_get(NULL, "IDECLK");
@@ -392,16 +392,14 @@ static int __devinit palm_bk3710_probe(struct platform_device *pdev)
	hw.irq = irq->start;
	hw.chipset = ide_palm3710;

	host = ide_host_alloc(&palm_bk3710_port_info, hws);
	if (host == NULL)
	rc = ide_host_add(&palm_bk3710_port_info, hws, NULL);
	if (rc)
		goto out;

	ide_host_register(host, &palm_bk3710_port_info, hws);

	return 0;
out:
	printk(KERN_WARNING "Palm Chip BK3710 IDE Register Fail\n");
	return -ENODEV;
	return rc;
}

/* work with hotplug and coldplug */
+2 −6
Original line number Diff line number Diff line
@@ -52,13 +52,9 @@ rapide_probe(struct expansion_card *ec, const struct ecard_id *id)
	hw.chipset = ide_generic;
	hw.dev = &ec->dev;

	host = ide_host_alloc(&rapide_port_info, hws);
	if (host == NULL) {
		ret = -ENOENT;
	ret = ide_host_add(&rapide_port_info, hws, &host);
	if (ret)
		goto release;
	}

	ide_host_register(host, &rapide_port_info, hws);

	ecard_set_drvdata(ec, host);
	goto out;
+1 −8
Original line number Diff line number Diff line
@@ -191,7 +191,6 @@ static const struct ide_port_info h8300_port_info = {

static int __init h8300_ide_init(void)
{
	struct ide_host *host;
	hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };

	printk(KERN_INFO DRV_NAME ": H8/300 generic IDE interface\n");
@@ -205,13 +204,7 @@ static int __init h8300_ide_init(void)

	hw_setup(&hw);

	host = ide_host_alloc(&h8300_port_info, hws);
	if (host == NULL)
		return -ENOENT;

	ide_host_register(host, &h8300_port_info, hws);

	return 0;
	return ide_host_add(&h8300_port_info, hws, NULL);

out_busy:
	printk(KERN_ERR "ide-h8300: IDE I/F resource already used.\n");
+4 −7
Original line number Diff line number Diff line
@@ -28,9 +28,8 @@ MODULE_PARM_DESC(probe_mask, "probe mask for legacy ISA IDE ports");

static ssize_t store_add(struct class *cls, const char *buf, size_t n)
{
	struct ide_host *host;
	unsigned int base, ctl;
	int irq;
	int irq, rc;
	hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };

	if (sscanf(buf, "%x:%x:%d", &base, &ctl, &irq) != 3)
@@ -41,11 +40,9 @@ static ssize_t store_add(struct class *cls, const char *buf, size_t n)
	hw.irq = irq;
	hw.chipset = ide_generic;

	host = ide_host_alloc(NULL, hws);
	if (host == NULL)
		return -ENOENT;

	ide_host_register(host, NULL, hws);
	rc = ide_host_add(NULL, hws, NULL);
	if (rc)
		return rc;

	return n;
};
Loading