mirror of https://gitee.com/openkylin/linux.git
USB: musb uses endpoint functions
This set of patches introduces calls to the following set of functions: usb_endpoint_dir_in(epd) usb_endpoint_dir_out(epd) usb_endpoint_is_bulk_in(epd) usb_endpoint_is_bulk_out(epd) usb_endpoint_is_int_in(epd) usb_endpoint_is_int_out(epd) usb_endpoint_num(epd) usb_endpoint_type(epd) usb_endpoint_xfer_bulk(epd) usb_endpoint_xfer_control(epd) usb_endpoint_xfer_int(epd) usb_endpoint_xfer_isoc(epd) In some cases, introducing one of these functions is not possible, and it just replaces an explicit integer value by one of the following constants: USB_ENDPOINT_XFER_BULK USB_ENDPOINT_XFER_CONTROL USB_ENDPOINT_XFER_INT USB_ENDPOINT_XFER_ISOC An extract of the semantic patch that makes these changes is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @r1@ struct usb_endpoint_descriptor *epd; @@ - ((epd->bmAttributes & \(USB_ENDPOINT_XFERTYPE_MASK\|3\)) == - \(USB_ENDPOINT_XFER_CONTROL\|0\)) + usb_endpoint_xfer_control(epd) @r5@ struct usb_endpoint_descriptor *epd; @@ - ((epd->bEndpointAddress & \(USB_ENDPOINT_DIR_MASK\|0x80\)) == - \(USB_DIR_IN\|0x80\)) + usb_endpoint_dir_in(epd) @inc@ @@ #include <linux/usb.h> @depends on !inc && (r1||r5)@ @@ + #include <linux/usb.h> #include <linux/usb/...> // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Acked-by: Felipe Balbi <felipe.balbi@nokia.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
af7e0c5f12
commit
96bcd090fa
|
@ -874,10 +874,10 @@ static int musb_gadget_enable(struct usb_ep *ep,
|
|||
status = -EBUSY;
|
||||
goto fail;
|
||||
}
|
||||
musb_ep->type = desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
|
||||
musb_ep->type = usb_endpoint_type(desc);
|
||||
|
||||
/* check direction and (later) maxpacket size against endpoint */
|
||||
if ((desc->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK) != epnum)
|
||||
if (usb_endpoint_num(desc) != epnum)
|
||||
goto fail;
|
||||
|
||||
/* REVISIT this rules out high bandwidth periodic transfers */
|
||||
|
@ -890,7 +890,7 @@ static int musb_gadget_enable(struct usb_ep *ep,
|
|||
* packet size (or fail), set the mode, clear the fifo
|
||||
*/
|
||||
musb_ep_select(mbase, epnum);
|
||||
if (desc->bEndpointAddress & USB_DIR_IN) {
|
||||
if (usb_endpoint_dir_in(desc)) {
|
||||
u16 int_txe = musb_readw(mbase, MUSB_INTRTXE);
|
||||
|
||||
if (hw_ep->is_shared_fifo)
|
||||
|
|
|
@ -1847,8 +1847,8 @@ static int musb_urb_enqueue(
|
|||
goto done;
|
||||
}
|
||||
|
||||
qh->epnum = epd->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK;
|
||||
qh->type = epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
|
||||
qh->epnum = usb_endpoint_num(epd);
|
||||
qh->type = usb_endpoint_type(epd);
|
||||
|
||||
/* NOTE: urb->dev->devnum is wrong during SET_ADDRESS */
|
||||
qh->addr_reg = (u8) usb_pipedevice(urb->pipe);
|
||||
|
|
Loading…
Reference in New Issue