From: Aaro Koskinen Date: Sun, 6 Oct 2013 19:22:31 +0000 (+0300) Subject: staging: octeon-usb: cvmx_usb_submit_control: get params from urb X-Git-Tag: v3.13-rc1~170^2~444 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=2ae09e872197f5f5ce3976c4c2c98bd7352746d0;p=linux.git staging: octeon-usb: cvmx_usb_submit_control: get params from urb Get the transfer parameters from urb. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/octeon-usb/octeon-hcd.c b/drivers/staging/octeon-usb/octeon-hcd.c index 255503938a1a..27f73db9f964 100644 --- a/drivers/staging/octeon-usb/octeon-hcd.c +++ b/drivers/staging/octeon-usb/octeon-hcd.c @@ -2474,45 +2474,27 @@ static int cvmx_usb_submit_interrupt(struct cvmx_usb_state *usb, * @usb: USB device state populated by cvmx_usb_initialize(). * @pipe_handle: * Handle to the pipe for the transfer. - * @control_header: - * USB 8 byte control header physical address. - * Note that this is NOT A POINTER, but the - * full 64bit physical address of the buffer. - * @buffer: Physical address of the data buffer in - * memory. Note that this is NOT A POINTER, but - * the full 64bit physical address of the - * buffer. This may be zero if buffer_length is - * zero. - * @buffer_length: - * Length of buffer in bytes. - * @urb: URB returned when the callback is called. + * @urb: URB. * * Returns: A submitted transaction handle or negative on * failure. Negative values are error codes. */ -static int cvmx_usb_submit_control(struct cvmx_usb_state *usb, - int pipe_handle, uint64_t control_header, - uint64_t buffer, int buffer_length, +static int cvmx_usb_submit_control(struct cvmx_usb_state *usb, int pipe_handle, struct urb *urb) { int submit_handle; + int buffer_length = urb->transfer_buffer_length; + uint64_t control_header = urb->setup_dma; union cvmx_usb_control_header *header = cvmx_phys_to_ptr(control_header); /* Pipe handle checking is done later in a common place */ - if (unlikely(!control_header)) - return -EINVAL; - /* Some drivers send a buffer with a zero length. God only knows why */ - if (unlikely(buffer && (buffer_length < 0))) - return -EINVAL; - if (unlikely(!buffer && (buffer_length != 0))) - return -EINVAL; if ((header->s.request_type & 0x80) == 0) buffer_length = le16_to_cpu(header->s.length); submit_handle = __cvmx_usb_submit_transaction(usb, pipe_handle, CVMX_USB_TRANSFER_CONTROL, - buffer, + urb->transfer_dma, buffer_length, control_header, 0, /* iso_start_frame */ @@ -3471,10 +3453,7 @@ static int octeon_usb_urb_enqueue(struct usb_hcd *hcd, dev_dbg(dev, "Submit control to %d.%d\n", usb_pipedevice(urb->pipe), usb_pipeendpoint(urb->pipe)); submit_handle = cvmx_usb_submit_control(&priv->usb, pipe_handle, - urb->setup_dma, - urb->transfer_dma, - urb->transfer_buffer_length, - urb); + urb); break; case PIPE_BULK: dev_dbg(dev, "Submit bulk to %d.%d\n",