Commit 73fbfbfe authored by navin patidar's avatar navin patidar Committed by Greg Kroah-Hartman
Browse files

staging: rtl8188eu: Use USB subsystem functions to check endpoint type



Use inline functions provided by USB subsystem to check endpoint type,
instead of inline functions implemented by driver to do the same.

Signed-off-by: default avatarnavin patidar <navin.patidar@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 21335144
Loading
Loading
Loading
Loading
+10 −47
Original line number Diff line number Diff line
@@ -80,46 +80,6 @@ static struct rtw_usb_drv rtl8188e_usb_drv = {

static struct rtw_usb_drv *usb_drv = &rtl8188e_usb_drv;

static inline int RT_usb_endpoint_dir_in(const struct usb_endpoint_descriptor *epd)
{
	return (epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN;
}

static inline int RT_usb_endpoint_dir_out(const struct usb_endpoint_descriptor *epd)
{
	return (epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT;
}

static inline int RT_usb_endpoint_xfer_int(const struct usb_endpoint_descriptor *epd)
{
	return (epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_INT;
}

static inline int RT_usb_endpoint_xfer_bulk(const struct usb_endpoint_descriptor *epd)
{
	return (epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_BULK;
}

static inline int RT_usb_endpoint_is_bulk_in(const struct usb_endpoint_descriptor *epd)
{
	return RT_usb_endpoint_xfer_bulk(epd) && RT_usb_endpoint_dir_in(epd);
}

static inline int RT_usb_endpoint_is_bulk_out(const struct usb_endpoint_descriptor *epd)
{
	return RT_usb_endpoint_xfer_bulk(epd) && RT_usb_endpoint_dir_out(epd);
}

static inline int usb_endpoint_is_int(const struct usb_endpoint_descriptor *epd)
{
	return RT_usb_endpoint_xfer_int(epd) && RT_usb_endpoint_dir_in(epd);
}

static inline int RT_usb_endpoint_num(const struct usb_endpoint_descriptor *epd)
{
	return epd->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK;
}

static u8 rtw_init_intf_priv(struct dvobj_priv *dvobj)
{
	u8 rst = _SUCCESS;
@@ -183,21 +143,24 @@ static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf)
	pdvobjpriv->nr_endpoint = piface_desc->bNumEndpoints;

	for (i = 0; i < pdvobjpriv->nr_endpoint; i++) {
		int ep_num;
		phost_endp = phost_iface->endpoint + i;

		if (phost_endp) {
			pendp_desc = &phost_endp->desc;
			ep_num = usb_endpoint_num(pendp_desc);

			if (RT_usb_endpoint_is_bulk_in(pendp_desc)) {
				pdvobjpriv->RtInPipe[pdvobjpriv->RtNumInPipes] = RT_usb_endpoint_num(pendp_desc);
			if (usb_endpoint_is_bulk_in(pendp_desc)) {
				pdvobjpriv->RtInPipe[pdvobjpriv->RtNumInPipes] = ep_num;
				pdvobjpriv->RtNumInPipes++;
			} else if (usb_endpoint_is_int(pendp_desc)) {
				pdvobjpriv->RtInPipe[pdvobjpriv->RtNumInPipes] = RT_usb_endpoint_num(pendp_desc);
			} else if (usb_endpoint_is_int_in(pendp_desc)) {
				pdvobjpriv->RtInPipe[pdvobjpriv->RtNumInPipes] = ep_num;
				pdvobjpriv->RtNumInPipes++;
			} else if (RT_usb_endpoint_is_bulk_out(pendp_desc)) {
				pdvobjpriv->RtOutPipe[pdvobjpriv->RtNumOutPipes] = RT_usb_endpoint_num(pendp_desc);
			} else if (usb_endpoint_is_bulk_out(pendp_desc)) {
				pdvobjpriv->RtOutPipe[pdvobjpriv->RtNumOutPipes] = ep_num;
				pdvobjpriv->RtNumOutPipes++;
			}
			pdvobjpriv->ep_num[i] = RT_usb_endpoint_num(pendp_desc);
			pdvobjpriv->ep_num[i] = ep_num;
		}
	}