|
@@ -48,24 +48,26 @@ rapide_probe(struct expansion_card *ec, const struct ecard_id *id)
|
|
|
goto release;
|
|
|
}
|
|
|
|
|
|
- hwif = ide_find_port();
|
|
|
- if (hwif) {
|
|
|
- memset(&hw, 0, sizeof(hw));
|
|
|
- rapide_setup_ports(&hw, base, base + 0x818, 1 << 6, ec->irq);
|
|
|
- hw.chipset = ide_generic;
|
|
|
- hw.dev = &ec->dev;
|
|
|
+ memset(&hw, 0, sizeof(hw));
|
|
|
+ rapide_setup_ports(&hw, base, base + 0x818, 1 << 6, ec->irq);
|
|
|
+ hw.chipset = ide_generic;
|
|
|
+ hw.dev = &ec->dev;
|
|
|
|
|
|
- ide_init_port_hw(hwif, &hw);
|
|
|
+ hwif = ide_find_port();
|
|
|
+ if (hwif == NULL) {
|
|
|
+ ret = -ENOENT;
|
|
|
+ goto release;
|
|
|
+ }
|
|
|
|
|
|
- default_hwif_mmiops(hwif);
|
|
|
+ ide_init_port_hw(hwif, &hw);
|
|
|
+ default_hwif_mmiops(hwif);
|
|
|
|
|
|
- idx[0] = hwif->index;
|
|
|
+ idx[0] = hwif->index;
|
|
|
|
|
|
- ide_device_add(idx, &rapide_port_info);
|
|
|
+ ide_device_add(idx, &rapide_port_info);
|
|
|
|
|
|
- ecard_set_drvdata(ec, hwif);
|
|
|
- goto out;
|
|
|
- }
|
|
|
+ ecard_set_drvdata(ec, hwif);
|
|
|
+ goto out;
|
|
|
|
|
|
release:
|
|
|
ecard_release_resources(ec);
|