mbox series

[RFC,0/3] prerequisites for device reserved local mem rework

Message ID 20190510145646.10078-1-laurentiu.tudor@nxp.com (mailing list archive)
Headers show
Series prerequisites for device reserved local mem rework | expand

Message

Laurentiu Tudor May 10, 2019, 2:56 p.m. UTC
From: Laurentiu Tudor <laurentiu.tudor@nxp.com>

For HCs that have local memory, replace the current DMA API usage
with a genalloc generic allocator to manage the mappings for these
devices.
This is in preparation for dropping the existing "coherent" dma
mem declaration APIs. Current implementation was relying on a short
circuit in the DMA API that in the end, was acting as an allocator
for these type of devices.

Only compiled tested, so any volunteers willing to test are most welcome.

Thank you!

For context, see thread here: https://lkml.org/lkml/2019/4/22/357

Laurentiu Tudor (3):
  ohci-hcd: use genalloc for USB HCs with local memory
  usb: host: ohci-sm501: init genalloc for local memory
  usb: host: ohci-tmio: init genalloc for local memory

 drivers/usb/host/ohci-hcd.c   | 21 +++++++++---
 drivers/usb/host/ohci-sm501.c | 63 +++++++++++++++++++----------------
 drivers/usb/host/ohci-tmio.c  | 23 ++++++++-----
 drivers/usb/host/ohci.h       |  3 ++
 4 files changed, 69 insertions(+), 41 deletions(-)

Comments

Robin Murphy May 10, 2019, 3:03 p.m. UTC | #1
Hi Laurentiu,

On 10/05/2019 15:56,  wrote:
> From: Laurentiu Tudor <laurentiu.tudor@nxp.com>
> 
> For HCs that have local memory, replace the current DMA API usage
> with a genalloc generic allocator to manage the mappings for these
> devices.
> This is in preparation for dropping the existing "coherent" dma
> mem declaration APIs. Current implementation was relying on a short
> circuit in the DMA API that in the end, was acting as an allocator
> for these type of devices.
> 
> Only compiled tested, so any volunteers willing to test are most welcome.

Based on my diggings into this in the past, I would expect that you need 
to do something about hcd_alloc_coherent() as well.

Robin.

> 
> Thank you!
> 
> For context, see thread here: https://lkml.org/lkml/2019/4/22/357
> 
> Laurentiu Tudor (3):
>    ohci-hcd: use genalloc for USB HCs with local memory
>    usb: host: ohci-sm501: init genalloc for local memory
>    usb: host: ohci-tmio: init genalloc for local memory
> 
>   drivers/usb/host/ohci-hcd.c   | 21 +++++++++---
>   drivers/usb/host/ohci-sm501.c | 63 +++++++++++++++++++----------------
>   drivers/usb/host/ohci-tmio.c  | 23 ++++++++-----
>   drivers/usb/host/ohci.h       |  3 ++
>   4 files changed, 69 insertions(+), 41 deletions(-)
>
Laurentiu Tudor May 10, 2019, 3:12 p.m. UTC | #2
Hi Robin,

> -----Original Message-----
> From: Robin Murphy <robin.murphy@arm.com>
> Sent: Friday, May 10, 2019 6:04 PM
> 
> Hi Laurentiu,
> 
> On 10/05/2019 15:56,  wrote:
> > From: Laurentiu Tudor <laurentiu.tudor@nxp.com>
> >
> > For HCs that have local memory, replace the current DMA API usage
> > with a genalloc generic allocator to manage the mappings for these
> > devices.
> > This is in preparation for dropping the existing "coherent" dma
> > mem declaration APIs. Current implementation was relying on a short
> > circuit in the DMA API that in the end, was acting as an allocator
> > for these type of devices.
> >
> > Only compiled tested, so any volunteers willing to test are most welcome.
> 
> Based on my diggings into this in the past, I would expect that you need
> to do something about hcd_alloc_coherent() as well.

Indeed looks like it. Thanks a lot for the pointer, I'll dig into it.

---
Best Regards, Laurentiu

> 
> >
> > Thank you!
> >
> > For context, see thread here:
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flkml.org
> %2Flkml%2F2019%2F4%2F22%2F357&amp;data=02%7C01%7Claurentiu.tudor%40nxp.com
> %7C1ad4c377d109419121b808d6d558b0b0%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0
> %7C0%7C636930974257581614&amp;sdata=pNRPPIoBmZ7UBfip%2FjRBYiMgGT3pf1riWLn2
> DS%2Fotl4%3D&amp;reserved=0
> >
> > Laurentiu Tudor (3):
> >    ohci-hcd: use genalloc for USB HCs with local memory
> >    usb: host: ohci-sm501: init genalloc for local memory
> >    usb: host: ohci-tmio: init genalloc for local memory
> >
> >   drivers/usb/host/ohci-hcd.c   | 21 +++++++++---
> >   drivers/usb/host/ohci-sm501.c | 63 +++++++++++++++++++----------------
> >   drivers/usb/host/ohci-tmio.c  | 23 ++++++++-----
> >   drivers/usb/host/ohci.h       |  3 ++
> >   4 files changed, 69 insertions(+), 41 deletions(-)
> >
Christoph Hellwig May 10, 2019, 3:53 p.m. UTC | #3
On Fri, May 10, 2019 at 04:03:37PM +0100, Robin Murphy wrote:
> Hi Laurentiu,
>
> On 10/05/2019 15:56,  wrote:
>> From: Laurentiu Tudor <laurentiu.tudor@nxp.com>
>>
>> For HCs that have local memory, replace the current DMA API usage
>> with a genalloc generic allocator to manage the mappings for these
>> devices.
>> This is in preparation for dropping the existing "coherent" dma
>> mem declaration APIs. Current implementation was relying on a short
>> circuit in the DMA API that in the end, was acting as an allocator
>> for these type of devices.
>>
>> Only compiled tested, so any volunteers willing to test are most welcome.
>
> Based on my diggings into this in the past, I would expect that you need to 
> do something about hcd_alloc_coherent() as well.

Yep.  And it might make sense to share the code for that and the
ohci internal allocations with a helper.