Hello. Ralf Baechle wrote:
- swarm_ide_resource.start = offset; - swarm_ide_resource.end = offset + size - 1; - if (request_resource(&iomem_resource, &swarm_ide_resource)) {
Why drop request_resource() completely? Replace it by request_mem_region().
Yes, this needs fixing (otherwise everything looks good).
No, platform_device_add which is called by platform_device_register* will take care of adding the resources - but only if if's told about them which the old driver didn't.
Ah, I've missed that the platform device was registered without resources (ugh) -- request_resource() call wasn't pointless then. Note however that request_mem_region() does somewhat different thing: it pins the memory resource for the driver, setting IORESOURCE_BUSY flag on the resource (and it also walks the resource tree in depth, using __request_resource() on each level. That's the thing that drivers do routinely on intialization.
Ralf
MBR, Sergei