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