From: Lukasz Majewski <l.majewski@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [u-boot 05/40] usb: gadget: udc: make udc-core compile in u-boot build
Date: Mon, 16 Feb 2015 11:18:19 +0100 [thread overview]
Message-ID: <20150216111819.375da7f2@amdc2363> (raw)
In-Reply-To: <1423212497-11970-6-git-send-email-kishon@ti.com>
Hi Kishon,
> Make udc-core compile in u-boot by removing all linux specific
> stuff and having only the bare minimal udc-core required for
> usb gadget drivers. Also modified the file header to a format that is
> generally being used in u-boot.
>
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> ---
> drivers/usb/gadget/udc/udc-core.c | 335
> +++---------------------------------- 1 file changed, 26
> insertions(+), 309 deletions(-)
>
> diff --git a/drivers/usb/gadget/udc/udc-core.c
> b/drivers/usb/gadget/udc/udc-core.c index e31d574..875e998 100644
> --- a/drivers/usb/gadget/udc/udc-core.c
> +++ b/drivers/usb/gadget/udc/udc-core.c
> @@ -1,33 +1,27 @@
> /**
> - * udc.c - Core UDC Framework
> + * udc-core.c - Core UDC Framework
> + *
> + * Copyright (C) 2015 Texas Instruments Incorporated -
> http://www.ti.com *
> - * Copyright (C) 2010 Texas Instruments
> * Author: Felipe Balbi <balbi@ti.com>
> *
> - * This program is free software: you can redistribute it and/or
> modify
> - * it under the terms of the GNU General Public License version 2 of
> - * the License as published by the Free Software Foundation.
> + * Taken from Linux Kernel v3.19-rc1 (drivers/usb/gadget/udc-core.c)
> and ported
> + * to uboot.
> *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> + * commit 02e8c96627 : usb: gadget: udc: core: prepend
> udc_attach_driver with
> + * usb_
> *
> - * You should have received a copy of the GNU General Public License
> - * along with this program. If not, see
> <http://www.gnu.org/licenses/>.
> + * SPDX-License-Identifier: GPL-2.0
> */
>
> -#include <linux/kernel.h>
> -#include <linux/module.h>
> -#include <linux/device.h>
> -#include <linux/list.h>
> -#include <linux/err.h>
> -#include <linux/dma-mapping.h>
> -#include <linux/workqueue.h>
> +#include <linux/compat.h>
> +#include <malloc.h>
> +#include <asm/cache.h>
> +#include <asm/dma-mapping.h>
> +#include <common.h>
>
> #include <linux/usb/ch9.h>
> #include <linux/usb/gadget.h>
> -#include <linux/usb.h>
>
> /**
> * struct usb_udc - describes one usb device controller
> @@ -48,38 +42,18 @@ struct usb_udc {
>
> static struct class *udc_class;
> static LIST_HEAD(udc_list);
> -static DEFINE_MUTEX(udc_lock);
> +DEFINE_MUTEX(udc_lock);
>
> /*
> -------------------------------------------------------------------------
> */ -#ifdef CONFIG_HAS_DMA
> -
> int usb_gadget_map_request(struct usb_gadget *gadget,
> struct usb_request *req, int is_in)
> {
> if (req->length == 0)
> return 0;
>
> - if (req->num_sgs) {
> - int mapped;
> -
> - mapped = dma_map_sg(&gadget->dev, req->sg,
> req->num_sgs,
> - is_in ? DMA_TO_DEVICE :
> DMA_FROM_DEVICE);
> - if (mapped == 0) {
> - dev_err(&gadget->dev, "failed to map SGs\n");
> - return -EFAULT;
> - }
> -
> - req->num_mapped_sgs = mapped;
> - } else {
> - req->dma = dma_map_single(&gadget->dev, req->buf,
> req->length,
> - is_in ? DMA_TO_DEVICE :
> DMA_FROM_DEVICE); -
> - if (dma_mapping_error(&gadget->dev, req->dma)) {
> - dev_err(&gadget->dev, "failed to map
> buffer\n");
> - return -EFAULT;
> - }
> - }
> + req->dma = dma_map_single(req->buf, req->length,
> + is_in ? DMA_TO_DEVICE :
> DMA_FROM_DEVICE);
> return 0;
> }
> @@ -91,20 +65,11 @@ void usb_gadget_unmap_request(struct usb_gadget
> *gadget, if (req->length == 0)
> return;
>
> - if (req->num_mapped_sgs) {
> - dma_unmap_sg(&gadget->dev, req->sg,
> req->num_mapped_sgs,
> - is_in ? DMA_TO_DEVICE :
> DMA_FROM_DEVICE); -
> - req->num_mapped_sgs = 0;
> - } else {
> - dma_unmap_single(&gadget->dev, req->dma, req->length,
> - is_in ? DMA_TO_DEVICE :
> DMA_FROM_DEVICE);
> - }
> + dma_unmap_single((void *)req->dma, req->length,
> + is_in ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
> }
> EXPORT_SYMBOL_GPL(usb_gadget_unmap_request);
>
> -#endif /* CONFIG_HAS_DMA */
> -
> /*
> -------------------------------------------------------------------------
> */ /**
> @@ -117,39 +82,16 @@ EXPORT_SYMBOL_GPL(usb_gadget_unmap_request);
> void usb_gadget_giveback_request(struct usb_ep *ep,
> struct usb_request *req)
> {
> - if (likely(req->status == 0))
> - usb_led_activity(USB_LED_EVENT_GADGET);
> -
> req->complete(ep, req);
> }
> EXPORT_SYMBOL_GPL(usb_gadget_giveback_request);
>
> /*
> -------------------------------------------------------------------------
> */ -static void usb_gadget_state_work(struct work_struct *work)
> -{
> - struct usb_gadget *gadget = work_to_gadget(work);
> - struct usb_udc *udc = NULL;
> -
> - mutex_lock(&udc_lock);
> - list_for_each_entry(udc, &udc_list, list)
> - if (udc->gadget == gadget)
> - goto found;
> - mutex_unlock(&udc_lock);
> -
> - return;
> -
> -found:
> - mutex_unlock(&udc_lock);
> -
> - sysfs_notify(&udc->dev.kobj, NULL, "state");
> -}
> -
> void usb_gadget_set_state(struct usb_gadget *gadget,
> enum usb_device_state state)
> {
> gadget->state = state;
> - schedule_work(&gadget->work);
> }
> EXPORT_SYMBOL_GPL(usb_gadget_set_state);
>
> @@ -219,17 +161,9 @@ static void usb_udc_release(struct device *dev)
> struct usb_udc *udc;
>
> udc = container_of(dev, struct usb_udc, dev);
> - dev_dbg(dev, "releasing '%s'\n", dev_name(dev));
> kfree(udc);
> }
>
> -static const struct attribute_group *usb_udc_attr_groups[];
> -
> -static void usb_udc_nop_release(struct device *dev)
> -{
> - dev_vdbg(dev, "%s\n", __func__);
> -}
> -
> /**
> * usb_add_gadget_udc_release - adds a new gadget to the udc class
> driver list
> * @parent: the parent device to this udc. Usually the controller
> driver's @@ -250,59 +184,23 @@ int usb_add_gadget_udc_release(struct
> device *parent, struct usb_gadget *gadget, goto err1;
>
> dev_set_name(&gadget->dev, "gadget");
> - INIT_WORK(&gadget->work, usb_gadget_state_work);
> gadget->dev.parent = parent;
>
> -#ifdef CONFIG_HAS_DMA
> - dma_set_coherent_mask(&gadget->dev,
> parent->coherent_dma_mask);
> - gadget->dev.dma_parms = parent->dma_parms;
> - gadget->dev.dma_mask = parent->dma_mask;
> -#endif
> -
> - if (release)
> - gadget->dev.release = release;
> - else
> - gadget->dev.release = usb_udc_nop_release;
> -
> - ret = device_register(&gadget->dev);
> - if (ret)
> - goto err2;
> -
> - device_initialize(&udc->dev);
> udc->dev.release = usb_udc_release;
> udc->dev.class = udc_class;
> - udc->dev.groups = usb_udc_attr_groups;
> udc->dev.parent = parent;
> - ret = dev_set_name(&udc->dev, "%s",
> kobject_name(&parent->kobj));
> - if (ret)
> - goto err3;
>
> udc->gadget = gadget;
>
> mutex_lock(&udc_lock);
> list_add_tail(&udc->list, &udc_list);
>
> - ret = device_add(&udc->dev);
> - if (ret)
> - goto err4;
> -
> usb_gadget_set_state(gadget, USB_STATE_NOTATTACHED);
>
> mutex_unlock(&udc_lock);
>
> return 0;
>
> -err4:
> - list_del(&udc->list);
> - mutex_unlock(&udc_lock);
> -
> -err3:
> - put_device(&udc->dev);
> -
> -err2:
> - put_device(&gadget->dev);
> - kfree(udc);
> -
> err1:
> return ret;
> }
> @@ -327,16 +225,12 @@ static void usb_gadget_remove_driver(struct
> usb_udc *udc) dev_dbg(&udc->dev, "unregistering UDC driver [%s]\n",
> udc->driver->function);
>
> - kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE);
> -
> usb_gadget_disconnect(udc->gadget);
> udc->driver->disconnect(udc->gadget);
> udc->driver->unbind(udc->gadget);
> usb_gadget_udc_stop(udc);
>
> udc->driver = NULL;
> - udc->dev.driver = NULL;
> - udc->gadget->dev.driver = NULL;
> }
>
> /**
> @@ -368,11 +262,6 @@ found:
>
> if (udc->driver)
> usb_gadget_remove_driver(udc);
> -
> - kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
> - flush_work(&gadget->work);
> - device_unregister(&udc->dev);
> - device_unregister(&gadget->dev);
> }
> EXPORT_SYMBOL_GPL(usb_del_gadget_udc);
>
> @@ -386,10 +275,8 @@ static int udc_bind_to_driver(struct usb_udc
> *udc, struct usb_gadget_driver *dri driver->function);
>
> udc->driver = driver;
> - udc->dev.driver = &driver->driver;
> - udc->gadget->dev.driver = &driver->driver;
>
> - ret = driver->bind(udc->gadget, driver);
> + ret = driver->bind(udc->gadget);
> if (ret)
> goto err1;
> ret = usb_gadget_udc_start(udc);
> @@ -399,43 +286,14 @@ static int udc_bind_to_driver(struct usb_udc
> *udc, struct usb_gadget_driver *dri }
> usb_gadget_connect(udc->gadget);
>
> - kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE);
> return 0;
> err1:
> if (ret != -EISNAM)
> dev_err(&udc->dev, "failed to start %s: %d\n",
> udc->driver->function, ret);
> udc->driver = NULL;
> - udc->dev.driver = NULL;
> - udc->gadget->dev.driver = NULL;
> - return ret;
> -}
> -
> -int usb_udc_attach_driver(const char *name, struct usb_gadget_driver
> *driver) -{
> - struct usb_udc *udc = NULL;
> - int ret = -ENODEV;
> -
> - mutex_lock(&udc_lock);
> - list_for_each_entry(udc, &udc_list, list) {
> - ret = strcmp(name, dev_name(&udc->dev));
> - if (!ret)
> - break;
> - }
> - if (ret) {
> - ret = -ENODEV;
> - goto out;
> - }
> - if (udc->driver) {
> - ret = -EBUSY;
> - goto out;
> - }
> - ret = udc_bind_to_driver(udc, driver);
> -out:
> - mutex_unlock(&udc_lock);
> return ret;
> }
> -EXPORT_SYMBOL_GPL(usb_udc_attach_driver);
>
> int usb_gadget_probe_driver(struct usb_gadget_driver *driver)
> {
> @@ -452,7 +310,7 @@ int usb_gadget_probe_driver(struct
> usb_gadget_driver *driver) goto found;
> }
>
> - pr_debug("couldn't find an available UDC\n");
> + printf("couldn't find an available UDC\n");
> mutex_unlock(&udc_lock);
> return -ENODEV;
> found:
> @@ -462,6 +320,12 @@ found:
> }
> EXPORT_SYMBOL_GPL(usb_gadget_probe_driver);
>
> +int usb_gadget_register_driver(struct usb_gadget_driver *driver)
> +{
> + return usb_gadget_probe_driver(driver);
> +}
> +EXPORT_SYMBOL_GPL(usb_gadget_register_driver);
> +
> int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
> {
> struct usb_udc *udc = NULL;
> @@ -485,153 +349,6 @@ int usb_gadget_unregister_driver(struct
> usb_gadget_driver *driver) }
> EXPORT_SYMBOL_GPL(usb_gadget_unregister_driver);
>
> -/*
> -------------------------------------------------------------------------
> */ - -static ssize_t usb_udc_srp_store(struct device *dev,
> - struct device_attribute *attr, const char *buf,
> size_t n) -{
> - struct usb_udc *udc = container_of(dev,
> struct usb_udc, dev); -
> - if (sysfs_streq(buf, "1"))
> - usb_gadget_wakeup(udc->gadget);
> -
> - return n;
> -}
> -static DEVICE_ATTR(srp, S_IWUSR, NULL, usb_udc_srp_store);
> -
> -static ssize_t usb_udc_softconn_store(struct device *dev,
> - struct device_attribute *attr, const char *buf,
> size_t n) -{
> - struct usb_udc *udc = container_of(dev,
> struct usb_udc, dev); -
> - if (!udc->driver) {
> - dev_err(dev, "soft-connect without a gadget
> driver\n");
> - return -EOPNOTSUPP;
> - }
> -
> - if (sysfs_streq(buf, "connect")) {
> - usb_gadget_udc_start(udc);
> - usb_gadget_connect(udc->gadget);
> - } else if (sysfs_streq(buf, "disconnect")) {
> - usb_gadget_disconnect(udc->gadget);
> - udc->driver->disconnect(udc->gadget);
> - usb_gadget_udc_stop(udc);
> - } else {
> - dev_err(dev, "unsupported command '%s'\n", buf);
> - return -EINVAL;
> - }
> -
> - return n;
> -}
> -static DEVICE_ATTR(soft_connect, S_IWUSR, NULL,
> usb_udc_softconn_store); -
> -static ssize_t state_show(struct device *dev, struct
> device_attribute *attr,
> - char *buf)
> -{
> - struct usb_udc *udc = container_of(dev,
> struct usb_udc, dev);
> - struct usb_gadget *gadget = udc->gadget;
> -
> - return sprintf(buf, "%s\n", usb_state_string(gadget->state));
> -}
> -static DEVICE_ATTR_RO(state);
> -
> -#define USB_UDC_SPEED_ATTR(name,
> param) \ -ssize_t
> name##_show(struct device
> *dev, \
> - struct device_attribute *attr, char
> *buf) \
> -{
> \
> - struct usb_udc *udc = container_of(dev, struct usb_udc,
> dev); \
> - return snprintf(buf, PAGE_SIZE,
> "%s\n", \
> -
> usb_speed_string(udc->gadget->param)); \
> -}
> \ -static DEVICE_ATTR_RO(name) -
> -static USB_UDC_SPEED_ATTR(current_speed, speed);
> -static USB_UDC_SPEED_ATTR(maximum_speed, max_speed);
> -
> -#define USB_UDC_ATTR(name) \
> -ssize_t name##_show(struct device
> *dev, \
> - struct device_attribute *attr, char *buf) \
> -{ \
> - struct usb_udc *udc = container_of(dev,
> struct usb_udc, dev); \
> - struct usb_gadget *gadget =
> udc->gadget; \
> - \
> - return snprintf(buf, PAGE_SIZE, "%d\n",
> gadget->name); \
> -} \
> -static DEVICE_ATTR_RO(name) -
> -static USB_UDC_ATTR(is_otg);
> -static USB_UDC_ATTR(is_a_peripheral);
> -static USB_UDC_ATTR(b_hnp_enable);
> -static USB_UDC_ATTR(a_hnp_support);
> -static USB_UDC_ATTR(a_alt_hnp_support);
> -
> -static struct attribute *usb_udc_attrs[] = {
> - &dev_attr_srp.attr,
> - &dev_attr_soft_connect.attr,
> - &dev_attr_state.attr,
> - &dev_attr_current_speed.attr,
> - &dev_attr_maximum_speed.attr,
> -
> - &dev_attr_is_otg.attr,
> - &dev_attr_is_a_peripheral.attr,
> - &dev_attr_b_hnp_enable.attr,
> - &dev_attr_a_hnp_support.attr,
> - &dev_attr_a_alt_hnp_support.attr,
> - NULL,
> -};
> -
> -static const struct attribute_group usb_udc_attr_group = {
> - .attrs = usb_udc_attrs,
> -};
> -
> -static const struct attribute_group *usb_udc_attr_groups[] = {
> - &usb_udc_attr_group,
> - NULL,
> -};
> -
> -static int usb_udc_uevent(struct device *dev, struct kobj_uevent_env
> *env) -{
> - struct usb_udc *udc = container_of(dev,
> struct usb_udc, dev);
> - int ret;
> -
> - ret = add_uevent_var(env, "USB_UDC_NAME=%s",
> udc->gadget->name);
> - if (ret) {
> - dev_err(dev, "failed to add uevent USB_UDC_NAME\n");
> - return ret;
> - }
> -
> - if (udc->driver) {
> - ret = add_uevent_var(env, "USB_UDC_DRIVER=%s",
> - udc->driver->function);
> - if (ret) {
> - dev_err(dev, "failed to add uevent
> USB_UDC_DRIVER\n");
> - return ret;
> - }
> - }
> -
> - return 0;
> -}
> -
> -static int __init usb_udc_init(void)
> -{
> - udc_class = class_create(THIS_MODULE, "udc");
> - if (IS_ERR(udc_class)) {
> - pr_err("failed to create udc class --> %ld\n",
> - PTR_ERR(udc_class));
> - return PTR_ERR(udc_class);
> - }
> -
> - udc_class->dev_uevent = usb_udc_uevent;
> - return 0;
> -}
> -subsys_initcall(usb_udc_init);
> -
> -static void __exit usb_udc_exit(void)
> -{
> - class_destroy(udc_class);
> -}
> -module_exit(usb_udc_exit);
> -
> MODULE_DESCRIPTION("UDC Framework");
> MODULE_AUTHOR("Felipe Balbi <balbi@ti.com>");
> MODULE_LICENSE("GPL v2");
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
next prev parent reply other threads:[~2015-02-16 10:18 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-06 8:47 [U-Boot] [u-boot 00/40] dra7xx: am43xx: add dwc3 gadget driver support and enable dfu Kishon Vijay Abraham I
2015-02-06 8:47 ` [U-Boot] [u-boot 01/40] ARM: DRA7: Enable clocks for USB OTGSS and USB PHY Kishon Vijay Abraham I
2015-02-16 10:04 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 02/40] ARM: AM43xx: " Kishon Vijay Abraham I
2015-02-16 10:07 ` Lukasz Majewski
2015-02-16 13:29 ` Marek Vasut
2015-02-20 9:30 ` Kishon Vijay Abraham I
2015-02-20 10:48 ` Marek Vasut
2015-02-06 8:47 ` [U-Boot] [u-boot 03/40] usb: gadget: udc: add udc-core from linux kernel to u-boot Kishon Vijay Abraham I
2015-02-07 13:27 ` Marek Vasut
2015-02-16 9:58 ` Lukasz Majewski
2015-02-16 13:29 ` Marek Vasut
2015-02-16 10:11 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 04/40] include: usb: modify gadget.h to include udc support Kishon Vijay Abraham I
2015-02-16 10:12 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 05/40] usb: gadget: udc: make udc-core compile in u-boot build Kishon Vijay Abraham I
2015-02-16 10:18 ` Lukasz Majewski [this message]
2015-02-06 8:47 ` [U-Boot] [u-boot 06/40] include: asm: dma-mapping: get rid of the compilation warning in udc-core Kishon Vijay Abraham I
2015-02-16 10:19 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 07/40] usb: dwc3: add dwc3 folder from linux kernel to u-boot Kishon Vijay Abraham I
2015-02-16 10:20 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 08/40] usb: dwc3: remove un-used files from dwc3 folder Kishon Vijay Abraham I
2015-02-16 10:21 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 09/40] usb: dwc3: Modify the file headers to u-boot format Kishon Vijay Abraham I
2015-02-16 10:21 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 10/40] usb: dwc3: remove trace_* APIs from dwc3 driver Kishon Vijay Abraham I
2015-02-16 10:24 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 11/40] usb: dwc3: fix dwc3 header files Kishon Vijay Abraham I
2015-02-16 10:25 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 12/40] usb: dwc3: remove pm related operations from dwc3 driver Kishon Vijay Abraham I
2015-02-16 10:26 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 13/40] arm: asm: dma-mapping: added dma_free_coherent API Kishon Vijay Abraham I
2015-02-16 10:26 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 14/40] usb: dwc3: linux-compat: Add header for dwc3 linux compatibiltiy Kishon Vijay Abraham I
2015-02-16 10:32 ` Lukasz Majewski
2015-02-23 6:19 ` Kishon Vijay Abraham I
2015-02-23 14:59 ` Marek Vasut
2015-02-24 13:21 ` Kishon Vijay Abraham I
2015-02-24 17:42 ` Marek Vasut
2015-02-25 8:17 ` Lukasz Majewski
2015-02-25 12:16 ` Marek Vasut
2015-02-25 13:04 ` Lukasz Majewski
2015-02-27 9:43 ` Marek Vasut
2015-02-27 11:28 ` Lukasz Majewski
2015-03-02 9:51 ` Marek Vasut
2015-03-02 12:56 ` Lukasz Majewski
2015-03-02 14:30 ` Marek Vasut
2015-02-06 8:47 ` [U-Boot] [u-boot 15/40] usb: dwc3: gadget: make dwc3 gadget build in uboot Kishon Vijay Abraham I
2015-02-16 10:52 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 16/40] include: asm: types: add resource_size_t type Kishon Vijay Abraham I
2015-02-16 10:53 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 17/40] usb: dwc3: ep0: make dwc3 ep0 build in uboot Kishon Vijay Abraham I
2015-02-16 10:54 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 18/40] include: usb: composite: add USB_GADGET_DELAYED_STATUS to avoid compilation error Kishon Vijay Abraham I
2015-02-16 10:55 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 19/40] usb: dwc3: core: make dwc3 core build in uboot Kishon Vijay Abraham I
2015-02-16 10:57 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 20/40] include: dwc3-uboot: add a structure for populating platform data Kishon Vijay Abraham I
2015-02-16 10:58 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 21/40] dwc3: core: change probe and remove to uboot init and uboot exit code Kishon Vijay Abraham I
2015-02-16 10:59 ` Lukasz Majewski
2015-02-06 8:47 ` [U-Boot] [u-boot 22/40] dwc3: core: add support for multiple dwc3 controllers Kishon Vijay Abraham I
2015-02-16 11:00 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 23/40] dwc3: core: added an API to invoke irq handlers Kishon Vijay Abraham I
2015-02-16 11:01 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 24/40] usb: dwc3: dwc3-omap: make dwc3-omap build in uboot Kishon Vijay Abraham I
2015-02-16 11:02 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 25/40] include: dwc3-omap-uboot: add a structure for populating dwc3-omap platform data Kishon Vijay Abraham I
2015-02-16 11:03 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 26/40] usb: dwc3: dwc3-omap: change probe and remove to uboot init and uboot exit code Kishon Vijay Abraham I
2015-02-16 11:04 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 27/40] dwc3: dwc3-omap: add support for multiple dwc3-omap controllers Kishon Vijay Abraham I
2015-02-16 11:06 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 28/40] usb: dwc3: dwc3-omap: add interrupt status API to check for interrupts Kishon Vijay Abraham I
2015-02-16 11:07 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 29/40] usb: dwc3: TI PHY: PHY driver for dwc3 in TI platforms Kishon Vijay Abraham I
2015-02-16 11:13 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 30/40] dwc3: flush the buffers before using it Kishon Vijay Abraham I
2015-02-16 11:39 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 31/40] usb: dwc3: ep0: preparation for implementing chained TRB Kishon Vijay Abraham I
2015-02-16 11:40 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 32/40] usb: dwc3: Add chained TRB support for ep0 Kishon Vijay Abraham I
2015-02-16 11:42 ` Lukasz Majewski
2015-02-16 12:01 ` Kishon Vijay Abraham I
2015-02-16 13:04 ` Lukasz Majewski
2015-02-16 13:06 ` Kishon Vijay Abraham I
2015-02-06 8:48 ` [U-Boot] [u-boot 33/40] usb: dwc3: Makefile: Make dwc3 driver compile in u-boot Kishon Vijay Abraham I
2015-02-16 11:43 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 34/40] usb: gadget: defer setting maxpacket till ->setup() Kishon Vijay Abraham I
2015-02-16 11:44 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 35/40] common: cmd_dfu: invoke board_usb_cleanup() for cleaning up Kishon Vijay Abraham I
2015-02-16 11:47 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 36/40] board: ti: DRA7: added USB initializtion code Kishon Vijay Abraham I
2015-02-16 11:49 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 37/40] include: configs: Enable DWC3 and DFU in DRA7xx Kishon Vijay Abraham I
2015-02-16 11:50 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 38/40] board: ti: AM43xx: added USB initializtion code Kishon Vijay Abraham I
2015-02-16 11:50 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 39/40] include: configs: Enable DWC3 and DFU in AM43xx Kishon Vijay Abraham I
2015-02-16 11:53 ` Lukasz Majewski
2015-02-06 8:48 ` [U-Boot] [u-boot 40/40] usb: modify usb_gadget_handle_interrupts to take controller index Kishon Vijay Abraham I
2015-02-16 11:56 ` Lukasz Majewski
2015-02-07 13:32 ` [U-Boot] [u-boot 00/40] dra7xx: am43xx: add dwc3 gadget driver support and enable dfu Marek Vasut
2015-02-11 11:33 ` Kishon Vijay Abraham I
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150216111819.375da7f2@amdc2363 \
--to=l.majewski@samsung.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.