On Thu, 26 Jan 2012, Wolfram Sang wrote:
Julia,
iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -663,18 +663,11 @@ static int mxs_saif_probe(struct platform_device *pdev) goto failed_get_resource; }
- if (!request_mem_region(iores->start, resource_size(iores),
"mxs-saif")) {
dev_err(&pdev->dev, "request_mem_region failed\n");
ret = -EBUSY;
goto failed_get_resource;
- }
- saif->base = ioremap(iores->start, resource_size(iores));
- saif->base = devm_request_and_ioremap(&pdev->dev, iores);
You can skip checking 'iores', too. I also did that in the example, but a lot of people seem to miss it.
I can try to do that, but it seems a little bit unintuitive. Perhaps it would be easier for people to remember to put in error handling code when they need it if they always have to do it? If I remove it, there will be one call that has no test and then another call a few lines later that does.
Where did you get the information how to use devm_request_and_ioremap? I probably need to spread the word even more...
I saw it in Documentation/driver-model/devres.txt and then looked around for some examples.
julia