All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felipe Balbi <balbi@ti.com>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Felipe Balbi <balbi@ti.com>,
	Linux USB Mailing List <linux-usb@vger.kernel.org>,
	Greg Kroah-Hartman <gregkh@suse.de>,
	Thomas Dahlmann <dahlmann.thomas@arcor.de>,
	Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>,
	"open list:DESIGNWARE USB3 D..." <linux-omap@vger.kernel.org>,
	open list <linux-kernel@vger.kernel.org>,
	"open list:AMD GEODE CS5536..." <linux-geode@lists.infradead.org>
Subject: Re: [PATCH 1/9] usb: gadget: add generic map/unmap request utilities
Date: Mon, 19 Dec 2011 17:49:32 +0200	[thread overview]
Message-ID: <20111219154931.GA30355@legolas.emea.dhcp.ti.com> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1112191018320.1746-100000@iolanthe.rowland.org>

[-- Attachment #1: Type: text/plain, Size: 2400 bytes --]

Hi,

On Mon, Dec 19, 2011 at 10:19:46AM -0500, Alan Stern wrote:
> On Mon, 19 Dec 2011, Felipe Balbi wrote:
> 
> > such utilities are currently duplicated on all UDC
> > drivers basically with the same structure. Let's group
> > all implementations into one generic implementation
> > and get rid of that duplication.
> > 
> > Signed-off-by: Felipe Balbi <balbi@ti.com>
> > ---
> >  drivers/usb/gadget/udc-core.c |   53 +++++++++++++++++++++++++++++++++++++++++
> >  include/linux/usb/gadget.h    |   10 +++++++
> >  2 files changed, 63 insertions(+), 0 deletions(-)
> > 
> > diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
> > index 0b0d12c..2031c11 100644
> > --- a/drivers/usb/gadget/udc-core.c
> > +++ b/drivers/usb/gadget/udc-core.c
> > @@ -22,6 +22,7 @@
> >  #include <linux/device.h>
> >  #include <linux/list.h>
> >  #include <linux/err.h>
> > +#include <linux/dma-mapping.h>
> >  
> >  #include <linux/usb/ch9.h>
> >  #include <linux/usb/gadget.h>
> > @@ -49,6 +50,58 @@ static DEFINE_MUTEX(udc_lock);
> >  
> >  /* ------------------------------------------------------------------------- */
> >  
> > +int usb_gadget_map_request(struct usb_gadget *gadget,
> > +		struct usb_request *req, int direction)
> > +{
> > +	if (req->length == 0)
> > +		return 0;
> > +
> > +	if (req->num_sgs) {
> > +		int     mapped;
> > +
> > +		mapped = dma_map_sg(&gadget->dev, req->sg, req->num_sgs,
> > +				direction ? DMA_TO_DEVICE
> > +				: DMA_FROM_DEVICE);
> > +		if (mapped == 0) {
> > +			dev_err(&gadget->dev, "failed to map SGs\n");
> > +			return -EFAULT;
> > +		}
> > +
> > +		req->num_mapped_sgs = mapped;
> > +	} else {
> > +		req->dma = dma_map_single(&gadget->dev, req->buf, req->length,
> > +				direction ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
> > +
> > +		if (dma_mapping_error(&gadget->dev, req->dma)) {
> > +			dev_err(&gadget->dev, "failed to map buffer\n");
> > +			return -EFAULT;
> > +		}
> > +	}
> > +
> > +	return 0;
> 
> You forgot to set req->mapped.

actually there's no 'mapped' field on struct usb_request. That's a
nonsense added to all struct my_controller_request just because of that
DMA_ADDR_INVALID hackery. I'm dropping that completely. There were no
gadget drivers allocating memory from coherent or mapping requests
themselves, so req->mapped becomes useless.

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
To: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org>
Cc: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>,
	Linux USB Mailing List
	<linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Greg Kroah-Hartman <gregkh-l3A5Bk7waGM@public.gmane.org>,
	Thomas Dahlmann <dahlmann.thomas-KvP5wT2u2U0@public.gmane.org>,
	Kuninori Morimoto
	<kuninori.morimoto.gx-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org>,
	"open list:DESIGNWARE USB3 D..."
	<linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	open list <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"open list:AMD GEODE CS5536..."
	<linux-geode-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Subject: Re: [PATCH 1/9] usb: gadget: add generic map/unmap request utilities
Date: Mon, 19 Dec 2011 17:49:32 +0200	[thread overview]
Message-ID: <20111219154931.GA30355@legolas.emea.dhcp.ti.com> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1112191018320.1746-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 2422 bytes --]

Hi,

On Mon, Dec 19, 2011 at 10:19:46AM -0500, Alan Stern wrote:
> On Mon, 19 Dec 2011, Felipe Balbi wrote:
> 
> > such utilities are currently duplicated on all UDC
> > drivers basically with the same structure. Let's group
> > all implementations into one generic implementation
> > and get rid of that duplication.
> > 
> > Signed-off-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
> > ---
> >  drivers/usb/gadget/udc-core.c |   53 +++++++++++++++++++++++++++++++++++++++++
> >  include/linux/usb/gadget.h    |   10 +++++++
> >  2 files changed, 63 insertions(+), 0 deletions(-)
> > 
> > diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
> > index 0b0d12c..2031c11 100644
> > --- a/drivers/usb/gadget/udc-core.c
> > +++ b/drivers/usb/gadget/udc-core.c
> > @@ -22,6 +22,7 @@
> >  #include <linux/device.h>
> >  #include <linux/list.h>
> >  #include <linux/err.h>
> > +#include <linux/dma-mapping.h>
> >  
> >  #include <linux/usb/ch9.h>
> >  #include <linux/usb/gadget.h>
> > @@ -49,6 +50,58 @@ static DEFINE_MUTEX(udc_lock);
> >  
> >  /* ------------------------------------------------------------------------- */
> >  
> > +int usb_gadget_map_request(struct usb_gadget *gadget,
> > +		struct usb_request *req, int direction)
> > +{
> > +	if (req->length == 0)
> > +		return 0;
> > +
> > +	if (req->num_sgs) {
> > +		int     mapped;
> > +
> > +		mapped = dma_map_sg(&gadget->dev, req->sg, req->num_sgs,
> > +				direction ? DMA_TO_DEVICE
> > +				: DMA_FROM_DEVICE);
> > +		if (mapped == 0) {
> > +			dev_err(&gadget->dev, "failed to map SGs\n");
> > +			return -EFAULT;
> > +		}
> > +
> > +		req->num_mapped_sgs = mapped;
> > +	} else {
> > +		req->dma = dma_map_single(&gadget->dev, req->buf, req->length,
> > +				direction ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
> > +
> > +		if (dma_mapping_error(&gadget->dev, req->dma)) {
> > +			dev_err(&gadget->dev, "failed to map buffer\n");
> > +			return -EFAULT;
> > +		}
> > +	}
> > +
> > +	return 0;
> 
> You forgot to set req->mapped.

actually there's no 'mapped' field on struct usb_request. That's a
nonsense added to all struct my_controller_request just because of that
DMA_ADDR_INVALID hackery. I'm dropping that completely. There were no
gadget drivers allocating memory from coherent or mapping requests
themselves, so req->mapped becomes useless.

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  reply	other threads:[~2011-12-19 15:49 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-19 10:30 [PATCH 0/9] Add a generic request map/unmap routine Felipe Balbi
2011-12-19 10:30 ` Felipe Balbi
2011-12-19 10:30 ` [PATCH 1/9] usb: gadget: add generic map/unmap request utilities Felipe Balbi
2011-12-19 10:30   ` Felipe Balbi
2011-12-19 15:19   ` Alan Stern
2011-12-19 15:49     ` Felipe Balbi [this message]
2011-12-19 15:49       ` Felipe Balbi
2011-12-19 16:27       ` Alan Stern
2011-12-19 10:30 ` [PATCH 2/9] usb: dwc3: gadget: use generic map/unmap routines Felipe Balbi
2011-12-19 10:30   ` Felipe Balbi
2011-12-19 10:30 ` [PATCH 3/9] usb: gadget: langwell: use generic map/unmap functions Felipe Balbi
2011-12-19 10:30   ` Felipe Balbi
2011-12-19 10:30 ` [PATCH 4/9] usb: renesas: gadget: use generic map/unmap routines Felipe Balbi
2011-12-19 10:30   ` Felipe Balbi
2011-12-20  1:46   ` Kuninori Morimoto
2011-12-20  1:46     ` Kuninori Morimoto
2011-12-20 10:51     ` Felipe Balbi
2011-12-20  2:29   ` Kuninori Morimoto
2011-12-20  2:29     ` Kuninori Morimoto
2011-12-19 10:30 ` [PATCH 5/9] usb: gadget: amd5536: " Felipe Balbi
2011-12-19 10:30   ` Felipe Balbi
2011-12-19 10:30 ` [PATCH 6/9] usb: gadget: r8a66597: " Felipe Balbi
2011-12-19 10:30   ` Felipe Balbi
2011-12-19 10:30 ` [PATCH 7/9] usb: gadget: net2272: use generic map/umap routines Felipe Balbi
2011-12-19 10:30   ` Felipe Balbi
2011-12-19 10:30 ` [PATCH 8/9] usb: gadget: net2280: use generic map/unmap routines Felipe Balbi
2011-12-19 10:30   ` Felipe Balbi
2011-12-19 15:21   ` Alan Stern
2011-12-19 15:49     ` Felipe Balbi
2011-12-19 10:30 ` [PATCH 9/9] usb: gadget: goku: " Felipe Balbi
2011-12-19 10:30   ` Felipe Balbi
2011-12-19 13:02   ` Sergei Shtylyov
2011-12-19 13:02     ` Sergei Shtylyov
2011-12-19 13:05     ` Sergei Shtylyov
2011-12-19 13:05       ` Sergei Shtylyov
2011-12-19 13:09     ` Felipe Balbi
2011-12-19 13:09       ` Felipe Balbi
2011-12-19 13:10       ` Sergei Shtylyov
2011-12-19 13:10         ` Sergei Shtylyov
2012-01-24 11:45 [PATCH 0/9] usb: gadget: " Felipe Balbi
2012-01-24 11:45 ` [PATCH 1/9] usb: gadget: add generic map/unmap request utilities Felipe Balbi
2012-01-24 11:45   ` Felipe Balbi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20111219154931.GA30355@legolas.emea.dhcp.ti.com \
    --to=balbi@ti.com \
    --cc=dahlmann.thomas@arcor.de \
    --cc=gregkh@suse.de \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=linux-geode@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.