#include <linux/usb/composite.h>
#include <asm/unaligned.h>
#include "cdns2-gadget.h"
#include "cdns2-trace.h"
static struct usb_endpoint_descriptor cdns2_gadget_ep0_desc = …;
static int cdns2_w_index_to_ep_index(u16 wIndex)
{ … }
static bool cdns2_check_new_setup(struct cdns2_device *pdev)
{ … }
static void cdns2_ep0_enqueue(struct cdns2_device *pdev, dma_addr_t dma_addr,
unsigned int length, int zlp)
{ … }
static int cdns2_ep0_delegate_req(struct cdns2_device *pdev)
{ … }
static void cdns2_ep0_stall(struct cdns2_device *pdev)
{ … }
static void cdns2_status_stage(struct cdns2_device *pdev)
{ … }
static int cdns2_req_ep0_set_configuration(struct cdns2_device *pdev,
struct usb_ctrlrequest *ctrl_req)
{ … }
static int cdns2_req_ep0_set_address(struct cdns2_device *pdev, u32 addr)
{ … }
static int cdns2_req_ep0_handle_status(struct cdns2_device *pdev,
struct usb_ctrlrequest *ctrl)
{ … }
static int cdns2_ep0_handle_feature_device(struct cdns2_device *pdev,
struct usb_ctrlrequest *ctrl,
int set)
{ … }
static int cdns2_ep0_handle_feature_intf(struct cdns2_device *pdev,
struct usb_ctrlrequest *ctrl,
int set)
{ … }
static int cdns2_ep0_handle_feature_endpoint(struct cdns2_device *pdev,
struct usb_ctrlrequest *ctrl,
int set)
{ … }
static int cdns2_req_ep0_handle_feature(struct cdns2_device *pdev,
struct usb_ctrlrequest *ctrl,
int set)
{ … }
static int cdns2_ep0_std_request(struct cdns2_device *pdev)
{ … }
static void __pending_setup_status_handler(struct cdns2_device *pdev)
{ … }
void cdns2_pending_setup_status_handler(struct work_struct *work)
{ … }
void cdns2_handle_setup_packet(struct cdns2_device *pdev)
{ … }
static void cdns2_transfer_completed(struct cdns2_device *pdev)
{ … }
void cdns2_handle_ep0_interrupt(struct cdns2_device *pdev, int dir)
{ … }
static int cdns2_gadget_ep0_enable(struct usb_ep *ep,
const struct usb_endpoint_descriptor *desc)
{ … }
static int cdns2_gadget_ep0_disable(struct usb_ep *ep)
{ … }
static int cdns2_gadget_ep0_set_halt(struct usb_ep *ep, int value)
{ … }
static int cdns2_gadget_ep0_set_wedge(struct usb_ep *ep)
{ … }
static int cdns2_gadget_ep0_queue(struct usb_ep *ep,
struct usb_request *request,
gfp_t gfp_flags)
{ … }
static const struct usb_ep_ops cdns2_gadget_ep0_ops = …;
void cdns2_ep0_config(struct cdns2_device *pdev)
{ … }
void cdns2_init_ep0(struct cdns2_device *pdev,
struct cdns2_endpoint *pep)
{ … }