This source file includes following definitions.
- isp1760_hcd_register
- isp1760_hcd_unregister
- isp1760_init_kmem_once
- isp1760_deinit_kmem_cache
   1 
   2 #ifndef _ISP1760_HCD_H_
   3 #define _ISP1760_HCD_H_
   4 
   5 #include <linux/spinlock.h>
   6 
   7 struct isp1760_qh;
   8 struct isp1760_qtd;
   9 struct resource;
  10 struct usb_hcd;
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 #define BLOCK_1_NUM 32
  20 #define BLOCK_2_NUM 20
  21 #define BLOCK_3_NUM 4
  22 
  23 #define BLOCK_1_SIZE 256
  24 #define BLOCK_2_SIZE 1024
  25 #define BLOCK_3_SIZE 8192
  26 #define BLOCKS (BLOCK_1_NUM + BLOCK_2_NUM + BLOCK_3_NUM)
  27 #define MAX_PAYLOAD_SIZE BLOCK_3_SIZE
  28 #define PAYLOAD_AREA_SIZE 0xf000
  29 
  30 struct isp1760_slotinfo {
  31         struct isp1760_qh *qh;
  32         struct isp1760_qtd *qtd;
  33         unsigned long timestamp;
  34 };
  35 
  36 
  37 struct isp1760_memory_chunk {
  38         unsigned int start;
  39         unsigned int size;
  40         unsigned int free;
  41 };
  42 
  43 enum isp1760_queue_head_types {
  44         QH_CONTROL,
  45         QH_BULK,
  46         QH_INTERRUPT,
  47         QH_END
  48 };
  49 
  50 struct isp1760_hcd {
  51 #ifdef CONFIG_USB_ISP1760_HCD
  52         struct usb_hcd          *hcd;
  53 
  54         u32 hcs_params;
  55         spinlock_t              lock;
  56         struct isp1760_slotinfo atl_slots[32];
  57         int                     atl_done_map;
  58         struct isp1760_slotinfo int_slots[32];
  59         int                     int_done_map;
  60         struct isp1760_memory_chunk memory_pool[BLOCKS];
  61         struct list_head        qh_list[QH_END];
  62 
  63         
  64 #define DEFAULT_I_TDPS          1024
  65         unsigned                periodic_size;
  66         unsigned                i_thresh;
  67         unsigned long           reset_done;
  68         unsigned long           next_statechange;
  69 #endif
  70 };
  71 
  72 #ifdef CONFIG_USB_ISP1760_HCD
  73 int isp1760_hcd_register(struct isp1760_hcd *priv, void __iomem *regs,
  74                          struct resource *mem, int irq, unsigned long irqflags,
  75                          struct device *dev);
  76 void isp1760_hcd_unregister(struct isp1760_hcd *priv);
  77 
  78 int isp1760_init_kmem_once(void);
  79 void isp1760_deinit_kmem_cache(void);
  80 #else
  81 static inline int isp1760_hcd_register(struct isp1760_hcd *priv,
  82                                        void __iomem *regs, struct resource *mem,
  83                                        int irq, unsigned long irqflags,
  84                                        struct device *dev)
  85 {
  86         return 0;
  87 }
  88 
  89 static inline void isp1760_hcd_unregister(struct isp1760_hcd *priv)
  90 {
  91 }
  92 
  93 static inline int isp1760_init_kmem_once(void)
  94 {
  95         return 0;
  96 }
  97 
  98 static inline void isp1760_deinit_kmem_cache(void)
  99 {
 100 }
 101 #endif
 102 
 103 #endif