Re: [U-Boot] [PATCH v2 31/80] dm: usb: Allow ECHI to hold private data for the controller

2015-04-07 Thread Simon Glass
On 25 March 2015 at 12:22, Simon Glass s...@chromium.org wrote:
 Add a private data pointer that clients of EHCI can use to access their
 private information. This establishes a link between struct ehci_ctrl and
 its associated controller data structure.

 Signed-off-by: Simon Glass s...@chromium.org
 ---

 Changes in v2: None

  drivers/usb/host/ehci-hcd.c | 10 ++
  drivers/usb/host/ehci.h | 21 +
  2 files changed, 31 insertions(+)

Applied to u-boot-dm/next.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v2 31/80] dm: usb: Allow ECHI to hold private data for the controller

2015-03-25 Thread Simon Glass
Add a private data pointer that clients of EHCI can use to access their
private information. This establishes a link between struct ehci_ctrl and
its associated controller data structure.

Signed-off-by: Simon Glass s...@chromium.org
---

Changes in v2: None

 drivers/usb/host/ehci-hcd.c | 10 ++
 drivers/usb/host/ehci.h | 21 +
 2 files changed, 31 insertions(+)

diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index fed3942..d85308f 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -930,6 +930,16 @@ unknown:
return -1;
 }
 
+void ehci_set_controller_priv(int index, void *priv)
+{
+   ehcic[index].priv = priv;
+}
+
+void *ehci_get_controller_priv(int index)
+{
+   return ehcic[index].priv;
+}
+
 int usb_lowlevel_stop(int index)
 {
ehci_shutdown(ehcic[index]);
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index ec4d6b0..d538bb6 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -248,6 +248,7 @@ struct ehci_ctrl {
uint32_t *periodic_list;
int periodic_schedules;
int ntds;
+   void *priv; /* client's private data */
 };
 
 /* Weak functions that drivers can override */
@@ -256,6 +257,26 @@ void ehci_set_usbmode(int index);
 void ehci_powerup_fixup(uint32_t *status_reg, uint32_t *reg);
 uint32_t *ehci_get_portsc_register(struct ehci_hcor *hcor, int port);
 
+/**
+ * ehci_set_controller_priv() - Set up private data for the controller
+ *
+ * This function can be called in ehci_hcd_init() to tell the EHCI layer
+ * about the controller's private data pointer. Then in the above functions
+ * this can be accessed given the struct ehci_ctrl pointer.
+ *
+ * @index: Controller number to set
+ * @priv:  Controller pointer
+ */
+void ehci_set_controller_priv(int index, void *priv);
+
+/**
+ * ehci_get_controller_priv() - Get controller private data
+ *
+ * @index  Controller number to get
+ * @return controller pointer for this index
+ */
+void *ehci_get_controller_priv(int index);
+
 /* Low level init functions */
 int ehci_hcd_init(int index, enum usb_init_type init,
struct ehci_hccr **hccr, struct ehci_hcor **hcor);
-- 
2.2.0.rc0.207.ga3a616c

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot