Re: [PATCH v3 3/3] usb: udc: add usb_udc_activation_handler

2015-01-27 Thread Felipe Balbi
On Mon, Jan 19, 2015 at 11:25:05AM -0500, Alan Stern wrote:
 On Mon, 19 Jan 2015, Peter Chen wrote:
 
  On Fri, Jan 16, 2015 at 11:11:56AM -0500, Alan Stern wrote:
   On Fri, 16 Jan 2015, Peter Chen wrote:
   
During this API, the deactivation count will be update, and it
will try to connect or disconnect gadget. It can be used to
enable functions for gadget.

Signed-off-by: Peter Chen peter.c...@freescale.com
---
 drivers/usb/gadget/udc/udc-core.c | 28 +++-
 include/linux/usb/gadget.h|  5 +
 2 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/udc/udc-core.c 
b/drivers/usb/gadget/udc/udc-core.c
index 9396a86..86d4d19 100644
--- a/drivers/usb/gadget/udc/udc-core.c
+++ b/drivers/usb/gadget/udc/udc-core.c
@@ -37,6 +37,7 @@
  * @list - for use by the udc class driver
  * @vbus - for udcs who care about vbus status, this value is real 
vbus status;
  * for udcs who do not care about vbus status, this value is always 
true
+ * @deactivations - the deactivation count to connect or disconnect 
gadget
   
   How will this field get initialized?
   
  
  Thanks, Alan.
  
  The function driver will be deactivated default, the patch likes below:
  
  http://permalink.gmane.org/gmane.linux.usb.general/112747
  
  (Call usb_udc_activation_handler instead of usb_function_deactivate)
  
  The function driver can activate itself at the .bind or on the demand.
  
  http://permalink.gmane.org/gmane.linux.usb.general/112748
  http://permalink.gmane.org/gmane.linux.usb.general/112752
 
 Okay, then I have no objections.
 
 Acked-by: Alan Stern st...@rowland.harvard.edu

Peter, care to resend your series with Alan's Ack ?

thanks

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH v3 3/3] usb: udc: add usb_udc_activation_handler

2015-01-19 Thread Alan Stern
On Mon, 19 Jan 2015, Peter Chen wrote:

 On Fri, Jan 16, 2015 at 11:11:56AM -0500, Alan Stern wrote:
  On Fri, 16 Jan 2015, Peter Chen wrote:
  
   During this API, the deactivation count will be update, and it
   will try to connect or disconnect gadget. It can be used to
   enable functions for gadget.
   
   Signed-off-by: Peter Chen peter.c...@freescale.com
   ---
drivers/usb/gadget/udc/udc-core.c | 28 +++-
include/linux/usb/gadget.h|  5 +
2 files changed, 32 insertions(+), 1 deletion(-)
   
   diff --git a/drivers/usb/gadget/udc/udc-core.c 
   b/drivers/usb/gadget/udc/udc-core.c
   index 9396a86..86d4d19 100644
   --- a/drivers/usb/gadget/udc/udc-core.c
   +++ b/drivers/usb/gadget/udc/udc-core.c
   @@ -37,6 +37,7 @@
 * @list - for use by the udc class driver
 * @vbus - for udcs who care about vbus status, this value is real vbus 
   status;
 * for udcs who do not care about vbus status, this value is always true
   + * @deactivations - the deactivation count to connect or disconnect 
   gadget
  
  How will this field get initialized?
  
 
 Thanks, Alan.
 
 The function driver will be deactivated default, the patch likes below:
 
 http://permalink.gmane.org/gmane.linux.usb.general/112747
 
 (Call usb_udc_activation_handler instead of usb_function_deactivate)
 
 The function driver can activate itself at the .bind or on the demand.
 
 http://permalink.gmane.org/gmane.linux.usb.general/112748
 http://permalink.gmane.org/gmane.linux.usb.general/112752

Okay, then I have no objections.

Acked-by: Alan Stern st...@rowland.harvard.edu

--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 3/3] usb: udc: add usb_udc_activation_handler

2015-01-18 Thread Peter Chen
On Fri, Jan 16, 2015 at 11:11:56AM -0500, Alan Stern wrote:
 On Fri, 16 Jan 2015, Peter Chen wrote:
 
  During this API, the deactivation count will be update, and it
  will try to connect or disconnect gadget. It can be used to
  enable functions for gadget.
  
  Signed-off-by: Peter Chen peter.c...@freescale.com
  ---
   drivers/usb/gadget/udc/udc-core.c | 28 +++-
   include/linux/usb/gadget.h|  5 +
   2 files changed, 32 insertions(+), 1 deletion(-)
  
  diff --git a/drivers/usb/gadget/udc/udc-core.c 
  b/drivers/usb/gadget/udc/udc-core.c
  index 9396a86..86d4d19 100644
  --- a/drivers/usb/gadget/udc/udc-core.c
  +++ b/drivers/usb/gadget/udc/udc-core.c
  @@ -37,6 +37,7 @@
* @list - for use by the udc class driver
* @vbus - for udcs who care about vbus status, this value is real vbus 
  status;
* for udcs who do not care about vbus status, this value is always true
  + * @deactivations - the deactivation count to connect or disconnect gadget
 
 How will this field get initialized?
 

Thanks, Alan.

The function driver will be deactivated default, the patch likes below:

http://permalink.gmane.org/gmane.linux.usb.general/112747

(Call usb_udc_activation_handler instead of usb_function_deactivate)

The function driver can activate itself at the .bind or on the demand.

http://permalink.gmane.org/gmane.linux.usb.general/112748
http://permalink.gmane.org/gmane.linux.usb.general/112752

 Aside from that question, patches 2 and 3 look good.
 
 Alan Stern
 

-- 

Best Regards,
Peter Chen
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v3 3/3] usb: udc: add usb_udc_activation_handler

2015-01-16 Thread Peter Chen
During this API, the deactivation count will be update, and it
will try to connect or disconnect gadget. It can be used to
enable functions for gadget.

Signed-off-by: Peter Chen peter.c...@freescale.com
---
 drivers/usb/gadget/udc/udc-core.c | 28 +++-
 include/linux/usb/gadget.h|  5 +
 2 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/udc/udc-core.c 
b/drivers/usb/gadget/udc/udc-core.c
index 9396a86..86d4d19 100644
--- a/drivers/usb/gadget/udc/udc-core.c
+++ b/drivers/usb/gadget/udc/udc-core.c
@@ -37,6 +37,7 @@
  * @list - for use by the udc class driver
  * @vbus - for udcs who care about vbus status, this value is real vbus status;
  * for udcs who do not care about vbus status, this value is always true
+ * @deactivations - the deactivation count to connect or disconnect gadget
  *
  * This represents the internal data structure which is used by the UDC-class
  * to hold information about udc driver and gadget together.
@@ -47,6 +48,7 @@ struct usb_udc {
struct device   dev;
struct list_headlist;
boolvbus;
+   int deactivations;
 };
 
 static struct class *udc_class;
@@ -168,13 +170,37 @@ EXPORT_SYMBOL_GPL(usb_gadget_set_state);
 
 static void usb_udc_connect_control(struct usb_udc *udc)
 {
-   if (udc-vbus)
+   if (udc-vbus  !udc-deactivations)
usb_gadget_connect(udc-gadget);
else
usb_gadget_disconnect(udc-gadget);
 }
 
 /**
+ * usb_udc_activation_handler - updates udc's deactivation count and
+ * try to connect or disconnect
+ *
+ * @gadget: The gadget which the function is at
+ * @active: the function needs to be active or not
+ *
+ * The composite core calls it when it wants to activate or deactivate
+ * function.
+ */
+void usb_udc_activation_handler(struct usb_gadget *gadget, bool active)
+{
+   struct usb_udc *udc = usb_gadget_find_udc(gadget);
+
+   if (udc) {
+   if (active)
+   udc-deactivations--;
+   else
+   udc-deactivations++;
+   usb_udc_connect_control(udc);
+   }
+}
+EXPORT_SYMBOL_GPL(usb_udc_activation_handler);
+
+/**
  * usb_udc_vbus_handler - updates the udc core vbus status, and try to
  * connect or disconnect gadget
  * @gadget: The gadget which vbus change occurs
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 2be007a..4d1adea 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -1034,6 +1034,11 @@ extern void usb_udc_vbus_handler(struct usb_gadget 
*gadget, bool status);
 
 /*-*/
 
+/* utility to activate or deactive function */
+extern void usb_udc_activation_handler(struct usb_gadget *gadget, bool active);
+
+/*-*/
+
 /* utility wrapping a simple endpoint selection policy */
 
 extern struct usb_ep *usb_ep_autoconfig(struct usb_gadget *,
-- 
1.9.1

--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 3/3] usb: udc: add usb_udc_activation_handler

2015-01-16 Thread Alan Stern
On Fri, 16 Jan 2015, Peter Chen wrote:

 During this API, the deactivation count will be update, and it
 will try to connect or disconnect gadget. It can be used to
 enable functions for gadget.
 
 Signed-off-by: Peter Chen peter.c...@freescale.com
 ---
  drivers/usb/gadget/udc/udc-core.c | 28 +++-
  include/linux/usb/gadget.h|  5 +
  2 files changed, 32 insertions(+), 1 deletion(-)
 
 diff --git a/drivers/usb/gadget/udc/udc-core.c 
 b/drivers/usb/gadget/udc/udc-core.c
 index 9396a86..86d4d19 100644
 --- a/drivers/usb/gadget/udc/udc-core.c
 +++ b/drivers/usb/gadget/udc/udc-core.c
 @@ -37,6 +37,7 @@
   * @list - for use by the udc class driver
   * @vbus - for udcs who care about vbus status, this value is real vbus 
 status;
   * for udcs who do not care about vbus status, this value is always true
 + * @deactivations - the deactivation count to connect or disconnect gadget

How will this field get initialized?

Aside from that question, patches 2 and 3 look good.

Alan Stern

--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html