rapide: fix rapide_probe() return value

Return -ENOENT on ide_find_port() failure.

While at it:

- Cleanup rapide_probe() a bit.

Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent ff23712e
...@@ -48,15 +48,18 @@ rapide_probe(struct expansion_card *ec, const struct ecard_id *id) ...@@ -48,15 +48,18 @@ rapide_probe(struct expansion_card *ec, const struct ecard_id *id)
goto release; goto release;
} }
hwif = ide_find_port();
if (hwif) {
memset(&hw, 0, sizeof(hw)); memset(&hw, 0, sizeof(hw));
rapide_setup_ports(&hw, base, base + 0x818, 1 << 6, ec->irq); rapide_setup_ports(&hw, base, base + 0x818, 1 << 6, ec->irq);
hw.chipset = ide_generic; hw.chipset = ide_generic;
hw.dev = &ec->dev; hw.dev = &ec->dev;
ide_init_port_hw(hwif, &hw); hwif = ide_find_port();
if (hwif == NULL) {
ret = -ENOENT;
goto release;
}
ide_init_port_hw(hwif, &hw);
default_hwif_mmiops(hwif); default_hwif_mmiops(hwif);
idx[0] = hwif->index; idx[0] = hwif->index;
...@@ -65,7 +68,6 @@ rapide_probe(struct expansion_card *ec, const struct ecard_id *id) ...@@ -65,7 +68,6 @@ rapide_probe(struct expansion_card *ec, const struct ecard_id *id)
ecard_set_drvdata(ec, hwif); ecard_set_drvdata(ec, hwif);
goto out; goto out;
}
release: release:
ecard_release_resources(ec); ecard_release_resources(ec);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment