RE: [RFC PATCH v2 02/15] usb:cdns3: Device side header file.
From: Pawel Laszczak
Date: Sun Dec 02 2018 - 14:28:06 EST
Hi Peter
>> +
>> +/*
>> + * USBSS-DEV register interface.
>> + * This corresponds to the USBSS Device Controller Interface */
>> +/**
>> + * struct xhci_cap_regs - xHCI Host Controller Capability Registers.
>
>struct cdns3_usb_regs - device controller registers
thanks,
I had this from beginning. I don't know why.
I
>
>> +struct cdns3_device;
>> +
>> +struct cdns3_endpoint {
>> + struct usb_ep endpoint;
>> + struct list_head request_list;
>> + struct list_head ep_match_pending_list;
>> +
>> + struct cdns3_trb *trb_pool;
>> + dma_addr_t trb_pool_dma;
>> +
>> + struct cdns3_device *cdns3_dev;
>> + char name[20];
>> +
>> +#define EP_ENABLED BIT(0)
>> +#define EP_STALL BIT(1)
>> +#define EP_WEDGE BIT(2)
>> +#define EP_TRANSFER_STARTED BIT(3)
>> +#define EP_UPDATE_EP_TRBADDR BIT(4)
>> +#define EP_PENDING_REQUEST BIT(5)
>> +#define EP_USED BIT(5)
>> + u32 flags;
>> +
>> + void *aligned_buff;
>> + dma_addr_t aligned_dma_addr;
>> + u8 dir;
>> + u8 num;
>> + u8 type;
>> +
>> + int free_trbs;
>> + u8 pcs;
>> + u8 ccs;
>> + int enqueue;
>> + int dequeue;
>> +};
>> +
>
>Would you please add kernel doc for above structure?
Done.
>
>> +struct cdns3_request {
>> + struct usb_request request;
>> + struct cdns3_endpoint *priv_ep;
>> + struct cdns3_trb *trb;
>> + int start_trb;
>> + int end_trb;
>> + int on_ring:1;
>> +};
>> +
>> +#define to_cdns3_request(r) (container_of(r, struct cdns3_request,
>> +request))
>> +
>> +struct cdns3_device {
>> + struct device dev;
>> + struct cdns3_usb_regs __iomem *regs;
>> +
>> + struct usb_gadget gadget;
>> + struct usb_gadget_driver *gadget_driver;
>> +
>> + struct usb_ctrlrequest *setup;
>> + dma_addr_t setup_dma;
>> + dma_addr_t trb_ep0_dma;
>> + struct cdns3_trb *trb_ep0;
>> + void *zlp_buf;
>> +
>> + struct cdns3_endpoint *eps[USB_SS_ENDPOINTS_MAX_COUNT];
>> + int ep_nums;
>> + /*
>> + * field used for improving performance. It holds the last
>> + * selected endpoint number
>> + */
>> + u32 selected_ep;
>> + struct usb_request *ep0_request;
>> + int ep0_data_dir;
>> + int hw_configured_flag;
>> + int wake_up_flag;
>> + u16 isoch_delay;
>> + /* generic spin-lock for drivers */
>> + spinlock_t lock;
>> +
>> + unsigned is_connected:1;
>> + unsigned in_standby_mode:1;
>> + unsigned status_completion_no_call:1;
>> + unsigned u1_allowed:1;
>> + unsigned u2_allowed:1;
>> +
>> + u32 usb_ien;
>> + u32 ep_ien;
>> + int setup_pending;
>> + struct device *sysdev;
>> + /* The device mode is enabled */
>> + int start_gadget;
>> + struct list_head ep_match_list;
>> + /* KB */
>> + int onchip_mem_allocated_size;
>> + /* Memory is allocated for OUT */
>> + int out_mem_is_allocated:1;
>> + struct work_struct pending_status_wq;
>> + struct usb_request *pending_status_request;
>> +};
>> +
Cheers
Pawel