unsigned char *base;
int ret;
- resbase = ecard_resource_start(ec, ECARD_RES_MEMC);
- reslen = ecard_resource_len(ec, ECARD_RES_MEMC);
-
- if (!request_mem_region(resbase, reslen, "arxescsi")) {
- ret = -EBUSY;
+ ret = ecard_request_resources(ec);
+ if (ret)
goto out;
- }
+ resbase = ecard_resource_start(ec, ECARD_RES_MEMC);
+ reslen = ecard_resource_len(ec, ECARD_RES_MEMC);
base = ioremap(resbase, reslen);
if (!base) {
ret = -ENOMEM;
out_unmap:
iounmap(base);
out_region:
- release_mem_region(resbase, reslen);
+ ecard_release_resources(ec);
out:
return ret;
}
static void __devexit arxescsi_remove(struct expansion_card *ec)
{
struct Scsi_Host *host = ecard_get_drvdata(ec);
- unsigned long resbase, reslen;
ecard_set_drvdata(ec, NULL);
fas216_remove(host);
iounmap((void *)host->base);
- resbase = ecard_resource_start(ec, ECARD_RES_MEMC);
- reslen = ecard_resource_len(ec, ECARD_RES_MEMC);
-
- release_mem_region(resbase, reslen);
-
fas216_release(host);
scsi_host_put(host);
+ ecard_release_resources(ec);
}
static const struct ecard_id arxescsi_cids[] = {