Re: [RFC 1/6] usb/dummy_hcd: move the transfer part into its own function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 8 Dec 2011, Sebastian Andrzej Siewior wrote:

> This patch moves the part of the code which does the bare transfer into
> its function. It is a preparion for the implementation of sg support.
> 
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
> ---
>  drivers/usb/gadget/dummy_hcd.c |   28 +++++++++++++++++++---------
>  1 files changed, 19 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
> index ab8f1b4..bfba4aa 100644
> --- a/drivers/usb/gadget/dummy_hcd.c
> +++ b/drivers/usb/gadget/dummy_hcd.c
> @@ -1140,6 +1140,23 @@ static int dummy_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
>  	return rc;
>  }
>  
> +static int dummy_perform_transfer(struct urb *urb, struct dummy_request *req,
> +		u32 len)
> +{
> +	void *ubuf, *rbuf;
> +	int to_host;
> +
> +	to_host = usb_pipein(urb->pipe);
> +	rbuf = req->req.buf + req->req.actual;
> +	ubuf = urb->transfer_buffer += urb->actual_length;
   	-----------------------------^
Somehow + got changed to +=.  Same thing appeared in the next patch.

> +
> +	if (to_host)
> +		memcpy(ubuf, rbuf, len);
> +	else
> +		memcpy(rbuf, ubuf, len);
> +	return len;
> +}
> +
>  /* transfer up to a frame's worth; caller must own lock */
>  static int
>  transfer(struct dummy *dum, struct urb *urb, struct dummy_ep *ep, int limit,
> @@ -1171,8 +1188,6 @@ top:
>  		if (unlikely (len == 0))
>  			is_short = 1;
>  		else {
> -			char		*ubuf, *rbuf;
> -
>  			/* not enough bandwidth left? */
>  			if (limit < ep->ep.maxpacket && limit < len)
>  				break;
> @@ -1187,13 +1202,8 @@ top:
>  			}
>  			is_short = (len % ep->ep.maxpacket) != 0;
>  
> -			/* else transfer packet(s) */
> -			ubuf = urb->transfer_buffer + urb->actual_length;
   	--------------------------------------------^

> -			rbuf = req->req.buf + req->req.actual;
> -			if (to_host)
> -				memcpy (ubuf, rbuf, len);
> -			else
> -				memcpy (rbuf, ubuf, len);
> +			len = dummy_perform_transfer(urb, req, len);
> +
>  			ep->last_io = jiffies;
>  
>  			limit -= len;

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux