]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/usb/renesas_usbhs/pipe.h
usb: gadget: renesas_usbhs: add usbhs_dcp_dir_for_host()
[mv-sheeva.git] / drivers / usb / renesas_usbhs / pipe.h
index 41534cb0e73408ffb337b56ab491e508c9dae132..6073a5c77740e0d5ba2f988f6aac8b010a91744d 100644 (file)
@@ -30,11 +30,15 @@ struct usbhs_pipe {
        struct usbhs_fifo *fifo;
        struct list_head list;
 
+       int maxp;
+
        u32 flags;
 #define USBHS_PIPE_FLAGS_IS_USED               (1 << 0)
 #define USBHS_PIPE_FLAGS_IS_DIR_IN             (1 << 1)
 #define USBHS_PIPE_FLAGS_IS_DIR_HOST           (1 << 2)
 
+       struct usbhs_pkt_handle *handler;
+
        void *mod_private;
 };
 
@@ -66,18 +70,11 @@ struct usbhs_pipe_info {
  */
 #define usbhs_priv_to_pipeinfo(pr)     (&(pr)->pipe_info)
 
-/*
- * usb request
- */
-void usbhs_usbreq_get_val(struct usbhs_priv *priv, struct usb_ctrlrequest *req);
-void usbhs_usbreq_set_val(struct usbhs_priv *priv, struct usb_ctrlrequest *req);
-
 /*
  * pipe control
  */
 struct usbhs_pipe
-*usbhs_pipe_malloc(struct usbhs_priv *priv,
-                  const struct usb_endpoint_descriptor *desc);
+*usbhs_pipe_malloc(struct usbhs_priv *priv, int endpoint_type, int dir_in);
 int usbhs_pipe_probe(struct usbhs_priv *priv);
 void usbhs_pipe_remove(struct usbhs_priv *priv);
 int usbhs_pipe_is_dir_in(struct usbhs_pipe *pipe);
@@ -93,6 +90,7 @@ void usbhs_pipe_enable(struct usbhs_pipe *pipe);
 void usbhs_pipe_disable(struct usbhs_pipe *pipe);
 void usbhs_pipe_stall(struct usbhs_pipe *pipe);
 void usbhs_pipe_select_fifo(struct usbhs_pipe *pipe, struct usbhs_fifo *fifo);
+void usbhs_pipe_config_update(struct usbhs_pipe *pipe, u16 epnum, u16 maxp);
 
 #define usbhs_pipe_to_priv(p)  ((p)->priv)
 #define usbhs_pipe_number(p)   (int)((p) - (p)->priv->pipe_info.pipe)
@@ -100,10 +98,14 @@ void usbhs_pipe_select_fifo(struct usbhs_pipe *pipe, struct usbhs_fifo *fifo);
 #define usbhs_pipe_to_fifo(p)  ((p)->fifo)
 #define usbhs_pipe_is_busy(p)  usbhs_pipe_to_fifo(p)
 
+#define usbhs_pipe_type(p)             ((p)->pipe_type)
+#define usbhs_pipe_type_is(p, t)       ((p)->pipe_type == t)
+
 /*
  * dcp control
  */
 struct usbhs_pipe *usbhs_dcp_malloc(struct usbhs_priv *priv);
 void usbhs_dcp_control_transfer_done(struct usbhs_pipe *pipe);
+void usbhs_dcp_dir_for_host(struct usbhs_pipe *pipe, int dir_out);
 
 #endif /* RENESAS_USB_PIPE_H */