/* Returns 0 if success, error code on error  */
static int cdns3_req_ep0_handle_feature(struct cdns3_device *priv_dev, struct usb_ctrlrequest *ctrl, int set)
/* Returns 0 if success, error code on error  */
static int cdns3_req_ep0_handle_feature(struct cdns3_device *priv_dev, struct usb_ctrlrequest *ctrl, int set)
{
	int ret = 0;
	u32 recip;
	recip = ctrl->bRequestType & USB_RECIP_MASK;
	switch (recip) {
	case USB_RECIP_DEVICE:
		ret = cdns3_ep0_feature_handle_device(priv_dev, ctrl, set);
		break;
	case USB_RECIP_INTERFACE:
		ret = cdns3_ep0_feature_handle_intf(priv_dev, ctrl, set);
		break;
	case USB_RECIP_ENDPOINT:
		ret = cdns3_ep0_feature_handle_endpoint(priv_dev, ctrl, set);
		break;
	default:
		return -EINVAL;
	}
	return ret;
}