mbox series

[v6,0/5] prerequisites for device reserved local mem rework

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

Message

Laurentiu Tudor May 22, 2019, 2:27 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

Changes in v6:
 - drop some unneeded initializations (Alan)
 - use device name for genpool instead of misleading "ohci-hcd" (Alan)
 - updated some comments (Alan, Fredrik)
 - added Tested-By tags

Changes in v5:
 - updated first patch to preserve bisectability (Christoph, Greg)
 - fixed a few more places where dma api was still being
   used (e.g. td_alloc, ed_alloc) (Fredrik)
 - included patch from Fredrik adding gen_pool_dma_zalloc() api
 - added patch that drops HCD_LOCAL_MEM altogether (Greg)
 - set td_cache / ed_cache to null for devices with local mem (Fredrik)
 - introduce usb_hcd_setup_local_mem() that sets up the genalloc
   pool for drivers and updated drivers to use it

Changes in v4:
 - created mapping for local mem
 - fix genalloc misuse

Changes in v3:
 - rearranged calls into genalloc simplifying the code a bit (Christoph)
 - dropped RFC prefix

Changes in v2:
 - use genalloc also in core usb (based on comment from Robin)
 - moved genpool decl to usb_hcd to be accesible from core usb

Fredrik Noring (1):
  lib/genalloc.c: Add gen_pool_dma_zalloc() for zeroed DMA allocations

Laurentiu Tudor (4):
  USB: 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
  USB: drop HCD_LOCAL_MEM flag

 drivers/usb/core/buffer.c      | 17 ++++++++----
 drivers/usb/core/hcd.c         | 51 ++++++++++++++++++++++++++++------
 drivers/usb/host/ehci-hcd.c    |  2 +-
 drivers/usb/host/fotg210-hcd.c |  2 +-
 drivers/usb/host/ohci-hcd.c    | 25 +++++++++++++----
 drivers/usb/host/ohci-mem.c    | 35 ++++++++++++++++++++---
 drivers/usb/host/ohci-sm501.c  | 50 +++++++++++++++------------------
 drivers/usb/host/ohci-tmio.c   | 15 ++++------
 drivers/usb/host/ohci.h        |  2 ++
 drivers/usb/host/uhci-hcd.c    |  2 +-
 include/linux/genalloc.h       |  1 +
 include/linux/usb/hcd.h        |  6 +++-
 lib/genalloc.c                 | 29 ++++++++++++++++++-
 13 files changed, 171 insertions(+), 66 deletions(-)

Comments

Christoph Hellwig May 23, 2019, 6:56 a.m. UTC | #1
As we seem to be getting ready to merge this series:  can the usb
maintainers please commit it to an immutable branch that I can pull
into the dma-mapping tree?  These changes are a preparation for
reworking the per-device DMA coherent allocator, and I'd prefer not
to wait for the next merge window with the next steps.
Greg KH May 23, 2019, 7:07 a.m. UTC | #2
On Thu, May 23, 2019 at 08:56:02AM +0200, Christoph Hellwig wrote:
> As we seem to be getting ready to merge this series:  can the usb
> maintainers please commit it to an immutable branch that I can pull
> into the dma-mapping tree?  These changes are a preparation for
> reworking the per-device DMA coherent allocator, and I'd prefer not
> to wait for the next merge window with the next steps.

I have no objection for you just taking this whole series as-is, no need
to worry about merge conflicts with the USB tree, I doubt anything will
be touching this area of code anytime soon.

So if you want to take it now, feel free to add:

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

to all of these.

Or, if you really like/want a branch to pull from, I can do that as
well, which ever is easiest for you to work with as you all are doing
the hard work here, not me :)

thanks,

greg k-h
Christoph Hellwig May 23, 2019, 7:12 a.m. UTC | #3
On Thu, May 23, 2019 at 09:07:55AM +0200, Greg KH wrote:
> I have no objection for you just taking this whole series as-is, no need
> to worry about merge conflicts with the USB tree, I doubt anything will
> be touching this area of code anytime soon.
> 
> So if you want to take it now, feel free to add:
> 
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> 
> to all of these.
> 
> Or, if you really like/want a branch to pull from, I can do that as
> well, which ever is easiest for you to work with as you all are doing
> the hard work here, not me :)

Nah, I can happily take it.  I'll open the dma-mapping tree after -rc2.
Christoph Hellwig May 28, 2019, 5:58 a.m. UTC | #4
On Thu, May 23, 2019 at 09:07:55AM +0200, Greg KH wrote:
> I have no objection for you just taking this whole series as-is, no need
> to worry about merge conflicts with the USB tree, I doubt anything will
> be touching this area of code anytime soon.
> 
> So if you want to take it now, feel free to add:
> 
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Given that I'll pull it in, shouldn't this be a Reviewed-by or Acked-by?
Greg KH May 28, 2019, 6:47 a.m. UTC | #5
On Tue, May 28, 2019 at 07:58:31AM +0200, Christoph Hellwig wrote:
> On Thu, May 23, 2019 at 09:07:55AM +0200, Greg KH wrote:
> > I have no objection for you just taking this whole series as-is, no need
> > to worry about merge conflicts with the USB tree, I doubt anything will
> > be touching this area of code anytime soon.
> > 
> > So if you want to take it now, feel free to add:
> > 
> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> 
> Given that I'll pull it in, shouldn't this be a Reviewed-by or Acked-by?

Good point, I don't usually do this, so I forgot:
	Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Christoph Hellwig May 28, 2019, 6:52 a.m. UTC | #6
Thanks.

Applied the whole series to dma-mapping for-next.