struct media_pad *pads = &ipipe->pads[0];
struct v4l2_subdev *sd = &ipipe->subdev;
struct media_entity *me = &sd->entity;
- static resource_size_t res_len;
- struct resource *res;
+ struct resource *res, *memres;
res = platform_get_resource(pdev, IORESOURCE_MEM, 4);
if (!res)
return -ENOENT;
- res_len = resource_size(res);
- res = request_mem_region(res->start, res_len, res->name);
- if (!res)
+ memres = request_mem_region(res->start, resource_size(res), res->name);
+ if (!memres)
return -EBUSY;
- ipipe->base_addr = ioremap_nocache(res->start, res_len);
+ ipipe->base_addr = ioremap_nocache(memres->start,
+ resource_size(memres));
if (!ipipe->base_addr)
goto error_release;
res = platform_get_resource(pdev, IORESOURCE_MEM, 6);
if (!res)
goto error_unmap;
- ipipe->isp5_base_addr = ioremap_nocache(res->start, res_len);
+ ipipe->isp5_base_addr = ioremap_nocache(res->start,
+ resource_size(res));
if (!ipipe->isp5_base_addr)
goto error_unmap;
error_unmap:
iounmap(ipipe->base_addr);
error_release:
- release_mem_region(res->start, res_len);
+ release_mem_region(memres->start, resource_size(memres));
return -ENOMEM;
}