On 21.05.2019 13:39, Christoph Hellwig wrote:
> On Thu, May 16, 2019 at 02:47:20PM +0300, laurentiu.tu...@nxp.com wrote:
>> +    hcd->localmem_pool = devm_gen_pool_create(dev, PAGE_SHIFT,
>> +                                              dev_to_node(dev),
>> +                                              "ohci-sm501");
>> +    if (IS_ERR(hcd->localmem_pool)) {
>> +            retval = PTR_ERR(hcd->localmem_pool);
>> +            goto err5;
>> +    }
>> +
>> +    local_mem = devm_ioremap(dev, mem->start, resource_size(mem));
>> +    if (!local_mem) {
>> +            retval = -ENOMEM;
>> +            goto err5;
>> +    }
>> +
>> +    retval = gen_pool_add_virt(hcd->localmem_pool,
>> +                               (unsigned long)local_mem,
>> +                               mem->start - mem->parent->start,
>> +                               resource_size(mem),
>> +                               dev_to_node(dev));
> 
> I wonder if having a helper for these operations would be useful,
> explaining what we do here.  That is create a pool for a resource,
> where the virtual address is the ioremap of said resource.  We
> could also make that a managed API so that you can get rid of the
> cleanup path.

This is close to what I've already prepared in the next spin. It's a new 
usb hcd api so it's not as abstract as your idea. I think we can discuss 
on it after I'll send it.

---
Best Regards, Laurentiu

Reply via email to