Commit 2e0fe709 authored by Julia Lawall's avatar Julia Lawall Committed by Greg Kroah-Hartman

USB: drivers: use USB API functions rather than constants

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: default avatarJulia Lawall <julia@diku.dk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 00185a60
...@@ -187,7 +187,7 @@ static char *usb_dump_endpoint_descriptor(int speed, char *start, char *end, ...@@ -187,7 +187,7 @@ static char *usb_dump_endpoint_descriptor(int speed, char *start, char *end,
} }
/* this isn't checking for illegal values */ /* this isn't checking for illegal values */
switch (desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) { switch (usb_endpoint_type(desc)) {
case USB_ENDPOINT_XFER_CONTROL: case USB_ENDPOINT_XFER_CONTROL:
type = "Ctrl"; type = "Ctrl";
if (speed == USB_SPEED_HIGH) /* uframes per NAK */ if (speed == USB_SPEED_HIGH) /* uframes per NAK */
......
...@@ -66,7 +66,7 @@ static ssize_t show_ep_type(struct device *dev, struct device_attribute *attr, ...@@ -66,7 +66,7 @@ static ssize_t show_ep_type(struct device *dev, struct device_attribute *attr,
struct ep_device *ep = to_ep_device(dev); struct ep_device *ep = to_ep_device(dev);
char *type = "unknown"; char *type = "unknown";
switch (ep->desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) { switch (usb_endpoint_type(ep->desc)) {
case USB_ENDPOINT_XFER_CONTROL: case USB_ENDPOINT_XFER_CONTROL:
type = "Control"; type = "Control";
break; break;
...@@ -94,7 +94,7 @@ static ssize_t show_ep_interval(struct device *dev, ...@@ -94,7 +94,7 @@ static ssize_t show_ep_interval(struct device *dev,
in = (ep->desc->bEndpointAddress & USB_DIR_IN); in = (ep->desc->bEndpointAddress & USB_DIR_IN);
switch (ep->desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) { switch (usb_endpoint_type(ep->desc)) {
case USB_ENDPOINT_XFER_CONTROL: case USB_ENDPOINT_XFER_CONTROL:
if (ep->udev->speed == USB_SPEED_HIGH) /* uframes per NAK */ if (ep->udev->speed == USB_SPEED_HIGH) /* uframes per NAK */
interval = ep->desc->bInterval; interval = ep->desc->bInterval;
...@@ -131,10 +131,9 @@ static ssize_t show_ep_direction(struct device *dev, ...@@ -131,10 +131,9 @@ static ssize_t show_ep_direction(struct device *dev,
struct ep_device *ep = to_ep_device(dev); struct ep_device *ep = to_ep_device(dev);
char *direction; char *direction;
if ((ep->desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == if (usb_endpoint_xfer_control(ep->desc))
USB_ENDPOINT_XFER_CONTROL)
direction = "both"; direction = "both";
else if (ep->desc->bEndpointAddress & USB_DIR_IN) else if (usb_endpoint_dir_in(ep->desc))
direction = "in"; direction = "in";
else else
direction = "out"; direction = "out";
......
...@@ -660,9 +660,9 @@ static u16 get_empty_pipenum(struct r8a66597 *r8a66597, ...@@ -660,9 +660,9 @@ static u16 get_empty_pipenum(struct r8a66597 *r8a66597,
u16 array[R8A66597_MAX_NUM_PIPE], i = 0, min; u16 array[R8A66597_MAX_NUM_PIPE], i = 0, min;
memset(array, 0, sizeof(array)); memset(array, 0, sizeof(array));
switch (ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) { switch (usb_endpoint_type(ep)) {
case USB_ENDPOINT_XFER_BULK: case USB_ENDPOINT_XFER_BULK:
if (ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK) if (usb_endpoint_dir_in(ep))
array[i++] = 4; array[i++] = 4;
else { else {
array[i++] = 3; array[i++] = 3;
...@@ -670,7 +670,7 @@ static u16 get_empty_pipenum(struct r8a66597 *r8a66597, ...@@ -670,7 +670,7 @@ static u16 get_empty_pipenum(struct r8a66597 *r8a66597,
} }
break; break;
case USB_ENDPOINT_XFER_INT: case USB_ENDPOINT_XFER_INT:
if (ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK) { if (usb_endpoint_dir_in(ep)) {
array[i++] = 6; array[i++] = 6;
array[i++] = 7; array[i++] = 7;
array[i++] = 8; array[i++] = 8;
...@@ -678,7 +678,7 @@ static u16 get_empty_pipenum(struct r8a66597 *r8a66597, ...@@ -678,7 +678,7 @@ static u16 get_empty_pipenum(struct r8a66597 *r8a66597,
array[i++] = 9; array[i++] = 9;
break; break;
case USB_ENDPOINT_XFER_ISOC: case USB_ENDPOINT_XFER_ISOC:
if (ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK) if (usb_endpoint_dir_in(ep))
array[i++] = 2; array[i++] = 2;
else else
array[i++] = 1; array[i++] = 1;
...@@ -928,10 +928,9 @@ static void init_pipe_info(struct r8a66597 *r8a66597, struct urb *urb, ...@@ -928,10 +928,9 @@ static void init_pipe_info(struct r8a66597 *r8a66597, struct urb *urb,
info.pipenum = get_empty_pipenum(r8a66597, ep); info.pipenum = get_empty_pipenum(r8a66597, ep);
info.address = get_urb_to_r8a66597_addr(r8a66597, urb); info.address = get_urb_to_r8a66597_addr(r8a66597, urb);
info.epnum = ep->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK; info.epnum = usb_endpoint_num(ep);
info.maxpacket = le16_to_cpu(ep->wMaxPacketSize); info.maxpacket = le16_to_cpu(ep->wMaxPacketSize);
info.type = get_r8a66597_type(ep->bmAttributes info.type = get_r8a66597_type(usb_endpoint_type(ep));
& USB_ENDPOINT_XFERTYPE_MASK);
info.bufnum = get_bufnum(info.pipenum); info.bufnum = get_bufnum(info.pipenum);
info.buf_bsize = get_buf_bsize(info.pipenum); info.buf_bsize = get_buf_bsize(info.pipenum);
if (info.type == R8A66597_BULK) { if (info.type == R8A66597_BULK) {
...@@ -941,7 +940,7 @@ static void init_pipe_info(struct r8a66597 *r8a66597, struct urb *urb, ...@@ -941,7 +940,7 @@ static void init_pipe_info(struct r8a66597 *r8a66597, struct urb *urb,
info.interval = get_interval(urb, ep->bInterval); info.interval = get_interval(urb, ep->bInterval);
info.timer_interval = get_timer_interval(urb, ep->bInterval); info.timer_interval = get_timer_interval(urb, ep->bInterval);
} }
if (ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK) if (usb_endpoint_dir_in(ep))
info.dir_in = 1; info.dir_in = 1;
else else
info.dir_in = 0; info.dir_in = 0;
......
...@@ -1507,7 +1507,7 @@ static struct urb *keyspan_setup_urb(struct usb_serial *serial, int endpoint, ...@@ -1507,7 +1507,7 @@ static struct urb *keyspan_setup_urb(struct usb_serial *serial, int endpoint,
} else { } else {
dev_warn(&serial->interface->dev, dev_warn(&serial->interface->dev,
"unsupported endpoint type %x\n", "unsupported endpoint type %x\n",
ep_desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK); usb_endpoint_type(ep_desc));
usb_free_urb(urb); usb_free_urb(urb);
return NULL; return NULL;
} }
......
...@@ -846,12 +846,12 @@ static int get_pipes(struct us_data *us) ...@@ -846,12 +846,12 @@ static int get_pipes(struct us_data *us)
us->send_ctrl_pipe = usb_sndctrlpipe(us->pusb_dev, 0); us->send_ctrl_pipe = usb_sndctrlpipe(us->pusb_dev, 0);
us->recv_ctrl_pipe = usb_rcvctrlpipe(us->pusb_dev, 0); us->recv_ctrl_pipe = usb_rcvctrlpipe(us->pusb_dev, 0);
us->send_bulk_pipe = usb_sndbulkpipe(us->pusb_dev, us->send_bulk_pipe = usb_sndbulkpipe(us->pusb_dev,
ep_out->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK); usb_endpoint_num(ep_out));
us->recv_bulk_pipe = usb_rcvbulkpipe(us->pusb_dev, us->recv_bulk_pipe = usb_rcvbulkpipe(us->pusb_dev,
ep_in->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK); usb_endpoint_num(ep_in));
if (ep_int) { if (ep_int) {
us->recv_intr_pipe = usb_rcvintpipe(us->pusb_dev, us->recv_intr_pipe = usb_rcvintpipe(us->pusb_dev,
ep_int->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK); usb_endpoint_num(ep_int));
us->ep_bInterval = ep_int->bInterval; us->ep_bInterval = ep_int->bInterval;
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment