]> Pileus Git - ~andy/linux/blobdiff - drivers/usb/chipidea/udc.h
Merge tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[~andy/linux] / drivers / usb / chipidea / udc.h
index d12e8b59b11028bf497e561eacaab2cd513a5076..455ac2169226141b703878ecae3ecef5a6a1ace4 100644 (file)
@@ -20,7 +20,7 @@
 #define TX        1  /* similar to USB_DIR_IN  but can be used as an index */
 
 /* DMA layout of transfer descriptors */
-struct ci13xxx_td {
+struct ci_hw_td {
        /* 0 */
        u32 next;
 #define TD_TERMINATE          BIT(0)
@@ -43,24 +43,31 @@ struct ci13xxx_td {
 } __attribute__ ((packed, aligned(4)));
 
 /* DMA layout of queue heads */
-struct ci13xxx_qh {
+struct ci_hw_qh {
        /* 0 */
        u32 cap;
 #define QH_IOS                BIT(15)
 #define QH_MAX_PKT            (0x07FFUL << 16)
 #define QH_ZLT                BIT(29)
 #define QH_MULT               (0x0003UL << 30)
+#define QH_ISO_MULT(x)         ((x >> 11) & 0x03)
        /* 1 */
        u32 curr;
        /* 2 - 8 */
-       struct ci13xxx_td        td;
+       struct ci_hw_td         td;
        /* 9 */
        u32 RESERVED;
        struct usb_ctrlrequest   setup;
 } __attribute__ ((packed, aligned(4)));
 
+struct td_node {
+       struct list_head        td;
+       dma_addr_t              dma;
+       struct ci_hw_td         *ptr;
+};
+
 /**
- * struct ci13xxx_req - usb request representation
+ * struct ci_hw_req - usb request representation
  * @req: request structure for gadget drivers
  * @queue: link to QH list
  * @ptr: transfer descriptor for this request
@@ -68,22 +75,19 @@ struct ci13xxx_qh {
  * @zptr: transfer descriptor for the zero packet
  * @zdma: dma address of the zero packet's transfer descriptor
  */
-struct ci13xxx_req {
+struct ci_hw_req {
        struct usb_request      req;
        struct list_head        queue;
-       struct ci13xxx_td       *ptr;
-       dma_addr_t              dma;
-       struct ci13xxx_td       *zptr;
-       dma_addr_t              zdma;
+       struct list_head        tds;
 };
 
 #ifdef CONFIG_USB_CHIPIDEA_UDC
 
-int ci_hdrc_gadget_init(struct ci13xxx *ci);
+int ci_hdrc_gadget_init(struct ci_hdrc *ci);
 
 #else
 
-static inline int ci_hdrc_gadget_init(struct ci13xxx *ci)
+static inline int ci_hdrc_gadget_init(struct ci_hdrc *ci)
 {
        return -ENXIO;
 }