Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1420601 > unrolled thread
| Started by | Baolin Wang <baolin.wang@linaro.org> |
|---|---|
| First post | 2016-06-13 10:50 +0200 |
| Last post | 2016-06-13 17:20 +0200 |
| Articles | 3 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[RESEND PATCH v11 2/4] gadget: Support for the usb charger framework Baolin Wang <baolin.wang@linaro.org> - 2016-06-13 10:50 +0200
Re: [RESEND PATCH v11 2/4] gadget: Support for the usb charger framework kbuild test robot <lkp@intel.com> - 2016-06-13 13:10 +0200
RE: [RESEND PATCH v11 2/4] gadget: Support for the usb charger framework Jun Li <jun.li@nxp.com> - 2016-06-13 17:20 +0200
| From | Baolin Wang <baolin.wang@linaro.org> |
|---|---|
| Date | 2016-06-13 10:50 +0200 |
| Subject | [RESEND PATCH v11 2/4] gadget: Support for the usb charger framework |
| Message-ID | <rJvJf-3OU-17@gated-at.bofh.it> |
For supporting the usb charger, it adds the usb_charger_init() and
usb_charger_exit() functions for usb charger initialization and exit.
It will report to the usb charger when the gadget state is changed,
then the usb charger can do the power things.
Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
---
drivers/usb/gadget/udc/udc-core.c | 11 +++++++++++
include/linux/usb/gadget.h | 11 +++++++++++
2 files changed, 22 insertions(+)
diff --git a/drivers/usb/gadget/udc/udc-core.c b/drivers/usb/gadget/udc/udc-core.c
index 6e8300d..84c098c 100644
--- a/drivers/usb/gadget/udc/udc-core.c
+++ b/drivers/usb/gadget/udc/udc-core.c
@@ -28,6 +28,7 @@
#include <linux/usb/ch9.h>
#include <linux/usb/gadget.h>
#include <linux/usb.h>
+#include <linux/usb/charger.h>
/**
* struct usb_udc - describes one usb device controller
@@ -242,6 +243,9 @@ static void usb_gadget_state_work(struct work_struct *work)
struct usb_gadget *gadget = work_to_gadget(work);
struct usb_udc *udc = gadget->udc;
+ /* when the gadget state is changed, then report to USB charger */
+ usb_charger_plug_by_gadget(gadget, gadget->state);
+
if (udc)
sysfs_notify(&udc->dev.kobj, NULL, "state");
}
@@ -411,6 +415,10 @@ int usb_add_gadget_udc_release(struct device *parent, struct usb_gadget *gadget,
if (ret)
goto err4;
+ ret = usb_charger_init(gadget);
+ if (ret)
+ goto err5;
+
usb_gadget_set_state(gadget, USB_STATE_NOTATTACHED);
udc->vbus = true;
@@ -431,6 +439,8 @@ int usb_add_gadget_udc_release(struct device *parent, struct usb_gadget *gadget,
return 0;
+err5:
+ device_del(&udc->dev);
err4:
list_del(&udc->list);
mutex_unlock(&udc_lock);
@@ -539,6 +549,7 @@ void usb_del_gadget_udc(struct usb_gadget *gadget)
kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
flush_work(&gadget->work);
device_unregister(&udc->dev);
+ usb_charger_exit(gadget);
device_unregister(&gadget->dev);
}
EXPORT_SYMBOL_GPL(usb_del_gadget_udc);
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 457651b..40390ec 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -24,6 +24,7 @@
#include <linux/types.h>
#include <linux/workqueue.h>
#include <linux/usb/ch9.h>
+#include <linux/usb/charger.h>
struct usb_ep;
@@ -639,6 +640,8 @@ struct usb_gadget {
unsigned out_epnum;
unsigned in_epnum;
struct usb_otg_caps *otg_caps;
+ /* negotiate the power with the usb charger */
+ struct usb_charger *charger;
unsigned sg_supported:1;
unsigned is_otg:1;
@@ -855,10 +858,18 @@ static inline int usb_gadget_vbus_connect(struct usb_gadget *gadget)
* reporting how much power the device may consume. For example, this
* could affect how quickly batteries are recharged.
*
+ * It will also notify the USB charger how much power the device may
+ * consume if there is a USB charger linking with the gadget.
+ *
* Returns zero on success, else negative errno.
*/
static inline int usb_gadget_vbus_draw(struct usb_gadget *gadget, unsigned mA)
{
+ if (gadget->charger)
+ usb_charger_set_cur_limit_by_type(gadget->charger,
+ gadget->charger->type,
+ mA);
+
if (!gadget->ops->vbus_draw)
return -EOPNOTSUPP;
return gadget->ops->vbus_draw(gadget, mA);
--
1.7.9.5
[toc] | [next] | [standalone]
| From | kbuild test robot <lkp@intel.com> |
|---|---|
| Date | 2016-06-13 13:10 +0200 |
| Subject | Re: [RESEND PATCH v11 2/4] gadget: Support for the usb charger framework |
| Message-ID | <rJxUJ-5uh-7@gated-at.bofh.it> |
| In reply to | #1420601 |
[Multipart message — attachments visible in raw view] — view raw
Hi,
[auto build test WARNING on balbi-usb/next]
[also build test WARNING on v4.7-rc3 next-20160609]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Baolin-Wang/Introduce-usb-charger-framework-to-deal-with-the-usb-gadget-power-negotation/20160613-165523
base: https://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git next
reproduce: make htmldocs
All warnings (new ones prefixed by >>):
include/linux/usb/gadget.h:228: warning: No description found for parameter 'claimed'
include/linux/usb/gadget.h:228: warning: No description found for parameter 'enabled'
>> include/linux/usb/gadget.h:661: warning: No description found for parameter 'charger'
include/linux/usb/gadget.h:661: warning: No description found for parameter 'quirk_altset_not_supp'
include/linux/usb/gadget.h:661: warning: No description found for parameter 'quirk_stall_not_supp'
include/linux/usb/gadget.h:661: warning: No description found for parameter 'quirk_zlp_not_supp'
include/linux/usb/composite.h:507: warning: Excess struct/union/enum/typedef member 'setup_pending' description in 'usb_composite_dev'
include/linux/usb/composite.h:507: warning: Excess struct/union/enum/typedef member 'os_desc_pending' description in 'usb_composite_dev'
drivers/usb/gadget/function/f_acm.c:1: warning: no structured comments found
drivers/usb/gadget/function/f_ecm.c:1: warning: no structured comments found
drivers/usb/gadget/function/f_subset.c:1: warning: no structured comments found
drivers/usb/gadget/function/f_obex.c:1: warning: no structured comments found
drivers/usb/gadget/function/f_serial.c:1: warning: no structured comments found
vim +/charger +661 include/linux/usb/gadget.h
d8318d7f include/linux/usb/gadget.h David Cohen 2013-12-09 645
898c6086 include/linux/usb/gadget.h Felipe Balbi 2011-11-22 646 unsigned sg_supported:1;
^1da177e include/linux/usb_gadget.h Linus Torvalds 2005-04-16 647 unsigned is_otg:1;
^1da177e include/linux/usb_gadget.h Linus Torvalds 2005-04-16 648 unsigned is_a_peripheral:1;
^1da177e include/linux/usb_gadget.h Linus Torvalds 2005-04-16 649 unsigned b_hnp_enable:1;
^1da177e include/linux/usb_gadget.h Linus Torvalds 2005-04-16 650 unsigned a_hnp_support:1;
^1da177e include/linux/usb_gadget.h Linus Torvalds 2005-04-16 651 unsigned a_alt_hnp_support:1;
75a9c82a include/linux/usb/gadget.h Li Jun 2016-02-19 652 unsigned hnp_polling_support:1;
75a9c82a include/linux/usb/gadget.h Li Jun 2016-02-19 653 unsigned host_request_flag:1;
0b2d2bba include/linux/usb/gadget.h David Cohen 2013-12-09 654 unsigned quirk_ep_out_aligned_size:1;
ffd9a0fc include/linux/usb/gadget.h Robert Baldyga 2015-07-28 655 unsigned quirk_altset_not_supp:1;
02ded1b0 include/linux/usb/gadget.h Robert Baldyga 2015-07-28 656 unsigned quirk_stall_not_supp:1;
ca1023c8 include/linux/usb/gadget.h Robert Baldyga 2015-07-28 657 unsigned quirk_zlp_not_supp:1;
80b2502c include/linux/usb/gadget.h Peter Chen 2015-01-28 658 unsigned is_selfpowered:1;
ccdf138f include/linux/usb/gadget.h Robert Baldyga 2015-05-04 659 unsigned deactivated:1;
ccdf138f include/linux/usb/gadget.h Robert Baldyga 2015-05-04 660 unsigned connected:1;
^1da177e include/linux/usb_gadget.h Linus Torvalds 2005-04-16 @661 };
5702f753 include/linux/usb/gadget.h Felipe Balbi 2013-07-17 662 #define work_to_gadget(w) (container_of((w), struct usb_gadget, work))
^1da177e include/linux/usb_gadget.h Linus Torvalds 2005-04-16 663
^1da177e include/linux/usb_gadget.h Linus Torvalds 2005-04-16 664 static inline void set_gadget_data(struct usb_gadget *gadget, void *data)
^1da177e include/linux/usb_gadget.h Linus Torvalds 2005-04-16 665 { dev_set_drvdata(&gadget->dev, data); }
^1da177e include/linux/usb_gadget.h Linus Torvalds 2005-04-16 666 static inline void *get_gadget_data(struct usb_gadget *gadget)
^1da177e include/linux/usb_gadget.h Linus Torvalds 2005-04-16 667 { return dev_get_drvdata(&gadget->dev); }
f48cf80f include/linux/usb/gadget.h Fabien Chouteau 2010-04-23 668 static inline struct usb_gadget *dev_to_usb_gadget(struct device *dev)
f48cf80f include/linux/usb/gadget.h Fabien Chouteau 2010-04-23 669 {
:::::: The code at line 661 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds@ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[toc] | [prev] | [next] | [standalone]
| From | Jun Li <jun.li@nxp.com> |
|---|---|
| Date | 2016-06-13 17:20 +0200 |
| Subject | RE: [RESEND PATCH v11 2/4] gadget: Support for the usb charger framework |
| Message-ID | <rJBOF-82T-13@gated-at.bofh.it> |
| In reply to | #1420601 |
Hi > -----Original Message----- > From: linux-usb-owner@vger.kernel.org [mailto:linux-usb- > owner@vger.kernel.org] On Behalf Of Baolin Wang > Sent: Monday, June 13, 2016 4:47 PM > To: balbi@kernel.org; gregkh@linuxfoundation.org; sre@kernel.org; > dbaryshkov@gmail.com; dwmw2@infradead.org > Cc: robh@kernel.org; m.szyprowski@samsung.com; ruslan.bilovol@gmail.com; > peter.chen@freescale.com; stern@rowland.harvard.edu; r.baldyga@samsung.com; > yoshihiro.shimoda.uh@renesas.com; lee.jones@linaro.org; broonie@kernel.org; > ckeepax@opensource.wolfsonmicro.com; patches@opensource.wolfsonmicro.com; > baolin.wang@linaro.org; linux-pm@vger.kernel.org; linux- > usb@vger.kernel.org; device-mainlining@lists.linuxfoundation.org; linux- > kernel@vger.kernel.org > Subject: [RESEND PATCH v11 2/4] gadget: Support for the usb charger > framework > > For supporting the usb charger, it adds the usb_charger_init() and > usb_charger_exit() functions for usb charger initialization and exit. > > It will report to the usb charger when the gadget state is changed, then > the usb charger can do the power things. > > Signed-off-by: Baolin Wang <baolin.wang@linaro.org> Reviewed-by: Li Jun <jun.li@nxp.com> Tested-by: Li Jun <jun.li@nxp.com> > --- > drivers/usb/gadget/udc/udc-core.c | 11 +++++++++++ > include/linux/usb/gadget.h | 11 +++++++++++ > 2 files changed, 22 insertions(+)
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web