From: Roger Quadros <rogerq@ti.com>
To: Pawel Laszczak <pawell@cadence.com>, gregkh@linuxfoundation.org
Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
adouglas@cadence.com, jbergsagel@ti.com, peter.chen@nxp.com,
pjez@cadence.com, kurahul@cadence.com
Subject: [RFC,v1,01/14] usb:cdns3: add pci to platform driver wrapper.
Date: Tue, 6 Nov 2018 15:48:37 +0200 [thread overview]
Message-ID: <5BE19BB5.3030006@ti.com> (raw)
Hi Pawel,
On 03/11/18 19:51, Pawel Laszczak wrote:
> Patch adds PCI specific glue drivier that creaties and registers in
s/drivier/driver
s/creaties/creates
s/in system/in-system
> system cdns-usb3 platform device. Thanks to that we will be able to use
> the cdns-usb3 platform driver for USBSS-DEV controller
> build on PCI board
>
> Signed-off-by: Pawel Laszczak <pawell@cadence.com>
> ---
> drivers/usb/Kconfig | 2 +
> drivers/usb/Makefile | 2 +
> drivers/usb/cdns3/Kconfig | 24 +++++
> drivers/usb/cdns3/Makefile | 3 +
> drivers/usb/cdns3/cdns3-pci-wrap.c | 162 +++++++++++++++++++++++++++++
> 5 files changed, 193 insertions(+)
> create mode 100644 drivers/usb/cdns3/Kconfig
> create mode 100644 drivers/usb/cdns3/Makefile
> create mode 100644 drivers/usb/cdns3/cdns3-pci-wrap.c
>
> diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig
> index 987fc5ba6321..5f9334019d04 100644
> --- a/drivers/usb/Kconfig
> +++ b/drivers/usb/Kconfig
> @@ -112,6 +112,8 @@ source "drivers/usb/usbip/Kconfig"
>
> endif
>
> +source "drivers/usb/cdns3/Kconfig"
> +
> source "drivers/usb/mtu3/Kconfig"
>
> source "drivers/usb/musb/Kconfig"
> diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
> index 7d1b8c82b208..82093a60ea2c 100644
> --- a/drivers/usb/Makefile
> +++ b/drivers/usb/Makefile
> @@ -8,6 +8,8 @@
> obj-$(CONFIG_USB) += core/
> obj-$(CONFIG_USB_SUPPORT) += phy/
>
> +obj-$(CONFIG_USB_CDNS3) += cdns3/
> +
> obj-$(CONFIG_USB_DWC3) += dwc3/
> obj-$(CONFIG_USB_DWC2) += dwc2/
> obj-$(CONFIG_USB_ISP1760) += isp1760/
> diff --git a/drivers/usb/cdns3/Kconfig b/drivers/usb/cdns3/Kconfig
> new file mode 100644
> index 000000000000..888458372adb
> --- /dev/null
> +++ b/drivers/usb/cdns3/Kconfig
> @@ -0,0 +1,24 @@
> +config USB_CDNS3
> + tristate "Cadence USB3 Dual-Role Controller"
> + depends on ((USB_XHCI_HCD && USB_GADGET) || (USB_XHCI_HCD && !USB_GADGET) || (!USB_XHCI_HCD && USB_GADGET)) && HAS_DMA
Why not depend on USB instead of USB_XHCI_HCD?
> + help
> + Say Y here if your system has a cadence USB3 dual-role controller.
> + It supports: dual-role switch Host-only, and Peripheral-only.
Need a coma between switch and Host-only.
> +
> + If you choose to build this driver is a dynamically linked
> + module, the module will be called cdns3.ko.
> +
> +if USB_CDNS3
> +
> +config USB_CDNS3_PCI_WRAP
> + tristate "PCIe-based Platforms"
> + depends on USB_PCI && ACPI
> + default USB_CDNS3
> + help
> + If you're using the USBSS Core IP with a PCIe, please say
> + 'Y' or 'M' here.
> +
> + If you choose to build this driver as module it will
> + be dynamically linked and module will be called cdns3-pci.ko
> +
> +endif
> diff --git a/drivers/usb/cdns3/Makefile b/drivers/usb/cdns3/Makefile
> new file mode 100644
> index 000000000000..dcdd62003c6a
> --- /dev/null
> +++ b/drivers/usb/cdns3/Makefile
> @@ -0,0 +1,3 @@
> +obj-$(CONFIG_USB_CDNS3_PCI_WRAP) += cdns3-pci.o
> +
> +cdns3-pci-y := cdns3-pci-wrap.o
> diff --git a/drivers/usb/cdns3/cdns3-pci-wrap.c b/drivers/usb/cdns3/cdns3-pci-wrap.c
> new file mode 100644
> index 000000000000..6c229ab6dffb
> --- /dev/null
> +++ b/drivers/usb/cdns3/cdns3-pci-wrap.c
> @@ -0,0 +1,162 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Cadence USBSS PCI Glue driver
> + *
> + * Copyright (C) 2018 Cadence.
> + *
> + * Author: Pawel Laszczak <pawell@cadence.com>
> + */
> +
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include <linux/pci.h>
> +#include <linux/platform_device.h>
> +#include <linux/dma-mapping.h>
> +#include <linux/slab.h>
> +
> +struct cdns3_wrap {
> + struct platform_device *plat_dev;
> + struct pci_dev *hg_dev;
> + struct resource dev_res[4];
> +};
> +
> +struct cdns3_wrap wrap;
> +
> +#define RES_IRQ_ID 0
> +#define RES_HOST_ID 1
> +#define RES_DEV_ID 2
> +#define RES_DRD_ID 3
> +
> +#define PCI_BAR_HOST 0
> +#define PCI_BAR_DEV 2
> +#define PCI_BAR_OTG 4
> +
> +#define PCI_DEV_FN_HOST_DEVICE 0
> +#define PCI_DEV_FN_OTG 1
> +
> +#define PCI_DRIVER_NAME "cdns3-pci-usbss"
> +#define PLAT_DRIVER_NAME "cdns-usb3"
> +
> +#define CDNS_VENDOR_ID 0x17cd
> +#define CDNS_DEVICE_ID 0x0100
> +
> +/**
> + * cdns3_pci_probe - Probe function for Cadence USB wrapper driver
> + * @pdev: platform device object
> + * @id: pci device id
> + *
> + * Returns 0 on success otherwise negative errno
> + */
> +static int cdns3_pci_probe(struct pci_dev *pdev,
> + const struct pci_device_id *id)
> +{
> + struct platform_device_info plat_info;
> + struct cdns3_wrap *wrap;
> + struct resource *res;
> + int err;
> +
> + /*
> + * for GADGET/HOST PCI (devfn) function number is 0,
> + * for OTG PCI (devfn) function number is 1
> + */
> + if (!id || pdev->devfn != PCI_DEV_FN_HOST_DEVICE)
> + return -EINVAL;
> +
> + err = pcim_enable_device(pdev);
> + if (err) {
> + dev_err(&pdev->dev, "Enabling PCI device has failed %d\n", err);
> + return err;
> + }
> +
> + pci_set_master(pdev);
> + wrap = devm_kzalloc(&pdev->dev, sizeof(*wrap), GFP_KERNEL);
> + if (!wrap) {
> + dev_err(&pdev->dev, "Failed to load PCI module\n");
> + return -ENOMEM;
> + }
> +
> + /* function 0: host(BAR_0) + device(BAR_1) + otg(BAR_2)). */
> + memset(wrap->dev_res, 0x00,
> + sizeof(struct resource) * ARRAY_SIZE(wrap->dev_res));
> + dev_info(&pdev->dev, "Initialize Device resources\n");
> + res = wrap->dev_res;
> +
> +#if IS_ENABLED(CONFIG_USB_CDNS3_GADGET)
Why depend on Config options to populate resources? The resources should be there regardless.
It is a lot simpler that way as it reflects the hardware as-is.
> + res[RES_DEV_ID].start = pci_resource_start(pdev, PCI_BAR_DEV);
> + res[RES_DEV_ID].end = pci_resource_end(pdev, PCI_BAR_DEV);
> + res[RES_DEV_ID].name = "cdns3-dev-regs";
> + res[RES_DEV_ID].flags = IORESOURCE_MEM;
> + dev_info(&pdev->dev, "USBSS-DEV physical base addr: %pa\n",
> + &res[RES_DEV_ID].start);
> +
dev_dbg() for this and all occurrences below?
> +#endif
> +
> +#if IS_ENABLED(CONFIG_USB_CDNS3_HOST)
> + res[RES_HOST_ID].start = pci_resource_start(pdev, PCI_BAR_HOST);
> + res[RES_HOST_ID].end = pci_resource_end(pdev, PCI_BAR_HOST);
> + res[RES_HOST_ID].name = "cdns3-xhci-regs";
> + res[RES_HOST_ID].flags = IORESOURCE_MEM;
> + dev_info(&pdev->dev, "USBSS-XHCI physical base addr: %pa\n",
> + &res[RES_HOST_ID].start);
> +#endif
> +
> + res[RES_DRD_ID].start = pci_resource_start(pdev, PCI_BAR_OTG);
> + res[RES_DRD_ID].end = pci_resource_end(pdev, PCI_BAR_OTG);
> + res[RES_DRD_ID].name = "cdns3-otg";
> + res[RES_DRD_ID].flags = IORESOURCE_MEM;
> + dev_info(&pdev->dev, "USBSS-DRD physical base addr: %pa\n",
> + &res[RES_DRD_ID].start);
> +
> + /* Interrupt common for both device and XHCI */
> + wrap->dev_res[RES_IRQ_ID].start = pdev->irq;
> + wrap->dev_res[RES_IRQ_ID].name = "cdns3-irq";
> + wrap->dev_res[RES_IRQ_ID].flags = IORESOURCE_IRQ;
> +
> + /* set up platform device info */
> + memset(&plat_info, 0, sizeof(plat_info));
> + plat_info.parent = &pdev->dev;
> + plat_info.fwnode = pdev->dev.fwnode;
> + plat_info.name = PLAT_DRIVER_NAME;
> + plat_info.id = pdev->devfn;
> + plat_info.res = wrap->dev_res;
> + plat_info.num_res = ARRAY_SIZE(wrap->dev_res);
> + plat_info.dma_mask = pdev->dma_mask;
> +
> + /* register platform device */
> + wrap->plat_dev = platform_device_register_full(&plat_info);
> + if (IS_ERR(wrap->plat_dev)) {
> + err = PTR_ERR(wrap->plat_dev);
> + return err;
> + }
> +
> + pci_set_drvdata(pdev, wrap);
> +
> + return err;
> +}
> +
> +void cdns3_pci_remove(struct pci_dev *pdev)
> +{
> + struct cdns3_wrap *wrap = (struct cdns3_wrap *)pci_get_drvdata(pdev);
> +
> + platform_device_unregister(wrap->plat_dev);
> +}
> +
> +static const struct pci_device_id cdns3_pci_ids[] = {
> + { PCI_DEVICE(CDNS_VENDOR_ID, CDNS_DEVICE_ID), },
> + { 0, }
> +};
> +
> +static struct pci_driver cdns3_pci_driver = {
> + .name = PCI_DRIVER_NAME,
> + .id_table = cdns3_pci_ids,
> + .probe = cdns3_pci_probe,
> + .remove = cdns3_pci_remove,
> +};
> +
> +module_pci_driver(cdns3_pci_driver);
> +MODULE_DEVICE_TABLE(pci, cdns3_pci_ids);
> +
> +MODULE_AUTHOR("Pawel Laszczak <pawell@cadence.com>");
> +MODULE_LICENSE("GPL v2");
> +MODULE_DESCRIPTION("Cadence USBSS PCI wrapperr");
> +
>
cheers,
-roger
WARNING: multiple messages have this Message-ID (diff)
From: Roger Quadros <rogerq@ti.com>
To: Pawel Laszczak <pawell@cadence.com>, <gregkh@linuxfoundation.org>
Cc: <linux-usb@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<adouglas@cadence.com>, <jbergsagel@ti.com>, <peter.chen@nxp.com>,
<pjez@cadence.com>, <kurahul@cadence.com>
Subject: Re: [RFC PATCH v1 01/14] usb:cdns3: add pci to platform driver wrapper.
Date: Tue, 6 Nov 2018 15:48:37 +0200 [thread overview]
Message-ID: <5BE19BB5.3030006@ti.com> (raw)
In-Reply-To: <1541267487-3664-2-git-send-email-pawell@cadence.com>
Hi Pawel,
On 03/11/18 19:51, Pawel Laszczak wrote:
> Patch adds PCI specific glue drivier that creaties and registers in
s/drivier/driver
s/creaties/creates
s/in system/in-system
> system cdns-usb3 platform device. Thanks to that we will be able to use
> the cdns-usb3 platform driver for USBSS-DEV controller
> build on PCI board
>
> Signed-off-by: Pawel Laszczak <pawell@cadence.com>
> ---
> drivers/usb/Kconfig | 2 +
> drivers/usb/Makefile | 2 +
> drivers/usb/cdns3/Kconfig | 24 +++++
> drivers/usb/cdns3/Makefile | 3 +
> drivers/usb/cdns3/cdns3-pci-wrap.c | 162 +++++++++++++++++++++++++++++
> 5 files changed, 193 insertions(+)
> create mode 100644 drivers/usb/cdns3/Kconfig
> create mode 100644 drivers/usb/cdns3/Makefile
> create mode 100644 drivers/usb/cdns3/cdns3-pci-wrap.c
>
> diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig
> index 987fc5ba6321..5f9334019d04 100644
> --- a/drivers/usb/Kconfig
> +++ b/drivers/usb/Kconfig
> @@ -112,6 +112,8 @@ source "drivers/usb/usbip/Kconfig"
>
> endif
>
> +source "drivers/usb/cdns3/Kconfig"
> +
> source "drivers/usb/mtu3/Kconfig"
>
> source "drivers/usb/musb/Kconfig"
> diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
> index 7d1b8c82b208..82093a60ea2c 100644
> --- a/drivers/usb/Makefile
> +++ b/drivers/usb/Makefile
> @@ -8,6 +8,8 @@
> obj-$(CONFIG_USB) += core/
> obj-$(CONFIG_USB_SUPPORT) += phy/
>
> +obj-$(CONFIG_USB_CDNS3) += cdns3/
> +
> obj-$(CONFIG_USB_DWC3) += dwc3/
> obj-$(CONFIG_USB_DWC2) += dwc2/
> obj-$(CONFIG_USB_ISP1760) += isp1760/
> diff --git a/drivers/usb/cdns3/Kconfig b/drivers/usb/cdns3/Kconfig
> new file mode 100644
> index 000000000000..888458372adb
> --- /dev/null
> +++ b/drivers/usb/cdns3/Kconfig
> @@ -0,0 +1,24 @@
> +config USB_CDNS3
> + tristate "Cadence USB3 Dual-Role Controller"
> + depends on ((USB_XHCI_HCD && USB_GADGET) || (USB_XHCI_HCD && !USB_GADGET) || (!USB_XHCI_HCD && USB_GADGET)) && HAS_DMA
Why not depend on USB instead of USB_XHCI_HCD?
> + help
> + Say Y here if your system has a cadence USB3 dual-role controller.
> + It supports: dual-role switch Host-only, and Peripheral-only.
Need a coma between switch and Host-only.
> +
> + If you choose to build this driver is a dynamically linked
> + module, the module will be called cdns3.ko.
> +
> +if USB_CDNS3
> +
> +config USB_CDNS3_PCI_WRAP
> + tristate "PCIe-based Platforms"
> + depends on USB_PCI && ACPI
> + default USB_CDNS3
> + help
> + If you're using the USBSS Core IP with a PCIe, please say
> + 'Y' or 'M' here.
> +
> + If you choose to build this driver as module it will
> + be dynamically linked and module will be called cdns3-pci.ko
> +
> +endif
> diff --git a/drivers/usb/cdns3/Makefile b/drivers/usb/cdns3/Makefile
> new file mode 100644
> index 000000000000..dcdd62003c6a
> --- /dev/null
> +++ b/drivers/usb/cdns3/Makefile
> @@ -0,0 +1,3 @@
> +obj-$(CONFIG_USB_CDNS3_PCI_WRAP) += cdns3-pci.o
> +
> +cdns3-pci-y := cdns3-pci-wrap.o
> diff --git a/drivers/usb/cdns3/cdns3-pci-wrap.c b/drivers/usb/cdns3/cdns3-pci-wrap.c
> new file mode 100644
> index 000000000000..6c229ab6dffb
> --- /dev/null
> +++ b/drivers/usb/cdns3/cdns3-pci-wrap.c
> @@ -0,0 +1,162 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Cadence USBSS PCI Glue driver
> + *
> + * Copyright (C) 2018 Cadence.
> + *
> + * Author: Pawel Laszczak <pawell@cadence.com>
> + */
> +
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include <linux/pci.h>
> +#include <linux/platform_device.h>
> +#include <linux/dma-mapping.h>
> +#include <linux/slab.h>
> +
> +struct cdns3_wrap {
> + struct platform_device *plat_dev;
> + struct pci_dev *hg_dev;
> + struct resource dev_res[4];
> +};
> +
> +struct cdns3_wrap wrap;
> +
> +#define RES_IRQ_ID 0
> +#define RES_HOST_ID 1
> +#define RES_DEV_ID 2
> +#define RES_DRD_ID 3
> +
> +#define PCI_BAR_HOST 0
> +#define PCI_BAR_DEV 2
> +#define PCI_BAR_OTG 4
> +
> +#define PCI_DEV_FN_HOST_DEVICE 0
> +#define PCI_DEV_FN_OTG 1
> +
> +#define PCI_DRIVER_NAME "cdns3-pci-usbss"
> +#define PLAT_DRIVER_NAME "cdns-usb3"
> +
> +#define CDNS_VENDOR_ID 0x17cd
> +#define CDNS_DEVICE_ID 0x0100
> +
> +/**
> + * cdns3_pci_probe - Probe function for Cadence USB wrapper driver
> + * @pdev: platform device object
> + * @id: pci device id
> + *
> + * Returns 0 on success otherwise negative errno
> + */
> +static int cdns3_pci_probe(struct pci_dev *pdev,
> + const struct pci_device_id *id)
> +{
> + struct platform_device_info plat_info;
> + struct cdns3_wrap *wrap;
> + struct resource *res;
> + int err;
> +
> + /*
> + * for GADGET/HOST PCI (devfn) function number is 0,
> + * for OTG PCI (devfn) function number is 1
> + */
> + if (!id || pdev->devfn != PCI_DEV_FN_HOST_DEVICE)
> + return -EINVAL;
> +
> + err = pcim_enable_device(pdev);
> + if (err) {
> + dev_err(&pdev->dev, "Enabling PCI device has failed %d\n", err);
> + return err;
> + }
> +
> + pci_set_master(pdev);
> + wrap = devm_kzalloc(&pdev->dev, sizeof(*wrap), GFP_KERNEL);
> + if (!wrap) {
> + dev_err(&pdev->dev, "Failed to load PCI module\n");
> + return -ENOMEM;
> + }
> +
> + /* function 0: host(BAR_0) + device(BAR_1) + otg(BAR_2)). */
> + memset(wrap->dev_res, 0x00,
> + sizeof(struct resource) * ARRAY_SIZE(wrap->dev_res));
> + dev_info(&pdev->dev, "Initialize Device resources\n");
> + res = wrap->dev_res;
> +
> +#if IS_ENABLED(CONFIG_USB_CDNS3_GADGET)
Why depend on Config options to populate resources? The resources should be there regardless.
It is a lot simpler that way as it reflects the hardware as-is.
> + res[RES_DEV_ID].start = pci_resource_start(pdev, PCI_BAR_DEV);
> + res[RES_DEV_ID].end = pci_resource_end(pdev, PCI_BAR_DEV);
> + res[RES_DEV_ID].name = "cdns3-dev-regs";
> + res[RES_DEV_ID].flags = IORESOURCE_MEM;
> + dev_info(&pdev->dev, "USBSS-DEV physical base addr: %pa\n",
> + &res[RES_DEV_ID].start);
> +
dev_dbg() for this and all occurrences below?
> +#endif
> +
> +#if IS_ENABLED(CONFIG_USB_CDNS3_HOST)
> + res[RES_HOST_ID].start = pci_resource_start(pdev, PCI_BAR_HOST);
> + res[RES_HOST_ID].end = pci_resource_end(pdev, PCI_BAR_HOST);
> + res[RES_HOST_ID].name = "cdns3-xhci-regs";
> + res[RES_HOST_ID].flags = IORESOURCE_MEM;
> + dev_info(&pdev->dev, "USBSS-XHCI physical base addr: %pa\n",
> + &res[RES_HOST_ID].start);
> +#endif
> +
> + res[RES_DRD_ID].start = pci_resource_start(pdev, PCI_BAR_OTG);
> + res[RES_DRD_ID].end = pci_resource_end(pdev, PCI_BAR_OTG);
> + res[RES_DRD_ID].name = "cdns3-otg";
> + res[RES_DRD_ID].flags = IORESOURCE_MEM;
> + dev_info(&pdev->dev, "USBSS-DRD physical base addr: %pa\n",
> + &res[RES_DRD_ID].start);
> +
> + /* Interrupt common for both device and XHCI */
> + wrap->dev_res[RES_IRQ_ID].start = pdev->irq;
> + wrap->dev_res[RES_IRQ_ID].name = "cdns3-irq";
> + wrap->dev_res[RES_IRQ_ID].flags = IORESOURCE_IRQ;
> +
> + /* set up platform device info */
> + memset(&plat_info, 0, sizeof(plat_info));
> + plat_info.parent = &pdev->dev;
> + plat_info.fwnode = pdev->dev.fwnode;
> + plat_info.name = PLAT_DRIVER_NAME;
> + plat_info.id = pdev->devfn;
> + plat_info.res = wrap->dev_res;
> + plat_info.num_res = ARRAY_SIZE(wrap->dev_res);
> + plat_info.dma_mask = pdev->dma_mask;
> +
> + /* register platform device */
> + wrap->plat_dev = platform_device_register_full(&plat_info);
> + if (IS_ERR(wrap->plat_dev)) {
> + err = PTR_ERR(wrap->plat_dev);
> + return err;
> + }
> +
> + pci_set_drvdata(pdev, wrap);
> +
> + return err;
> +}
> +
> +void cdns3_pci_remove(struct pci_dev *pdev)
> +{
> + struct cdns3_wrap *wrap = (struct cdns3_wrap *)pci_get_drvdata(pdev);
> +
> + platform_device_unregister(wrap->plat_dev);
> +}
> +
> +static const struct pci_device_id cdns3_pci_ids[] = {
> + { PCI_DEVICE(CDNS_VENDOR_ID, CDNS_DEVICE_ID), },
> + { 0, }
> +};
> +
> +static struct pci_driver cdns3_pci_driver = {
> + .name = PCI_DRIVER_NAME,
> + .id_table = cdns3_pci_ids,
> + .probe = cdns3_pci_probe,
> + .remove = cdns3_pci_remove,
> +};
> +
> +module_pci_driver(cdns3_pci_driver);
> +MODULE_DEVICE_TABLE(pci, cdns3_pci_ids);
> +
> +MODULE_AUTHOR("Pawel Laszczak <pawell@cadence.com>");
> +MODULE_LICENSE("GPL v2");
> +MODULE_DESCRIPTION("Cadence USBSS PCI wrapperr");
> +
>
cheers,
-roger
--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
next reply other threads:[~2018-11-06 13:48 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-06 13:48 Roger Quadros [this message]
2018-11-06 13:48 ` [RFC PATCH v1 01/14] usb:cdns3: add pci to platform driver wrapper Roger Quadros
-- strict thread matches above, loose matches on Subject: below --
2018-11-08 14:22 [RFC,v1,14/14] usb:cdns3: Feature for changing role Roger Quadros
2018-11-08 14:22 ` [RFC PATCH v1 14/14] " Roger Quadros
2018-11-08 12:03 [RFC,v1,13/14] usb:cdns3: Adds debugging function Pawel Laszczak
2018-11-08 12:03 ` [RFC PATCH v1 13/14] " Pawel Laszczak
2018-11-08 11:51 [RFC,v1,14/14] usb:cdns3: Feature for changing role Pawel Laszczak
2018-11-08 11:51 ` [RFC PATCH v1 14/14] " Pawel Laszczak
2018-11-08 11:38 [RFC,v1,03/14] usb:cdns3: Driver initialization code Pawel Laszczak
2018-11-08 11:38 ` [RFC PATCH v1 03/14] " Pawel Laszczak
2018-11-08 11:33 [RFC,v1,04/14] usb:cdns3: Added DRD support Pawel Laszczak
2018-11-08 11:33 ` [RFC PATCH v1 04/14] " Pawel Laszczak
2018-11-08 9:34 [RFC,v1,13/14] usb:cdns3: Adds debugging function Roger Quadros
2018-11-08 9:34 ` [RFC PATCH v1 13/14] " Roger Quadros
2018-11-07 13:14 [RFC,v1,03/14] usb:cdns3: Driver initialization code Pawel Laszczak
2018-11-07 13:14 ` [RFC PATCH v1 03/14] " Pawel Laszczak
2018-11-07 8:42 [RFC,v1,01/14] usb:cdns3: add pci to platform driver wrapper Pawel Laszczak
2018-11-07 8:42 ` [RFC PATCH v1 01/14] " Pawel Laszczak
2018-11-06 14:51 [RFC,v1,14/14] usb:cdns3: Feature for changing role Roger Quadros
2018-11-06 14:51 ` [RFC PATCH v1 14/14] " Roger Quadros
2018-11-06 14:44 [RFC,v1,03/14] usb:cdns3: Driver initialization code Roger Quadros
2018-11-06 14:44 ` [RFC PATCH v1 03/14] " Roger Quadros
2018-11-06 14:32 [RFC,v1,04/14] usb:cdns3: Added DRD support Roger Quadros
2018-11-06 14:32 ` [RFC PATCH v1 04/14] " Roger Quadros
2018-11-06 14:18 [RFC,v1,03/14] usb:cdns3: Driver initialization code Roger Quadros
2018-11-06 14:18 ` [RFC PATCH v1 03/14] " Roger Quadros
2018-11-05 6:17 [RFC,v1,13/14] usb:cdns3: Adds debugging function Pawel Laszczak
2018-11-05 6:17 ` [RFC PATCH v1 13/14] " Pawel Laszczak
2018-11-03 19:14 [RFC,v1,13/14] " Joe Perches
2018-11-03 19:14 ` [RFC PATCH v1 13/14] " Joe Perches
2018-11-03 17:51 [RFC,v1,14/14] usb:cdns3: Feature for changing role Pawel Laszczak
2018-11-03 17:51 ` [RFC PATCH v1 14/14] " Pawel Laszczak
2018-11-03 17:51 [RFC,v1,13/14] usb:cdns3: Adds debugging function Pawel Laszczak
2018-11-03 17:51 ` [RFC PATCH v1 13/14] " Pawel Laszczak
2018-11-03 17:51 [RFC,v1,12/14] usb:cdns3: Adds transfer related function Pawel Laszczak
2018-11-03 17:51 ` [RFC PATCH v1 12/14] " Pawel Laszczak
2018-11-03 17:51 [RFC,v1,11/14] usb:cdns3: Adds enumeration " Pawel Laszczak
2018-11-03 17:51 ` [RFC PATCH v1 11/14] " Pawel Laszczak
2018-11-03 17:51 [RFC,v1,10/14] usb:cdns3: Implements ISR functionality Pawel Laszczak
2018-11-03 17:51 ` [RFC PATCH v1 10/14] " Pawel Laszczak
2018-11-03 17:51 [RFC,v1,09/14] usb:cdns3: Ep0 operations part of the API Pawel Laszczak
2018-11-03 17:51 ` [RFC PATCH v1 09/14] " Pawel Laszczak
2018-11-03 17:51 [RFC,v1,08/14] usb:cdns3: EpX " Pawel Laszczak
2018-11-03 17:51 ` [RFC PATCH v1 08/14] " Pawel Laszczak
2018-11-03 17:51 [RFC,v1,07/14] usb:cdns3: Implements device " Pawel Laszczak
2018-11-03 17:51 ` [RFC PATCH v1 07/14] " Pawel Laszczak
2018-11-03 17:51 [RFC,v1,06/14] usb:cdns3: Initialization code for Device side Pawel Laszczak
2018-11-03 17:51 ` [RFC PATCH v1 06/14] " Pawel Laszczak
2018-11-03 17:51 [RFC,v1,05/14] usb:cdns3: Added Wrapper to XCHI driver Pawel Laszczak
2018-11-03 17:51 ` [RFC PATCH v1 05/14] " Pawel Laszczak
2018-11-03 17:51 [RFC,v1,04/14] usb:cdns3: Added DRD support Pawel Laszczak
2018-11-03 17:51 ` [RFC PATCH v1 04/14] " Pawel Laszczak
2018-11-03 17:51 [RFC,v1,03/14] usb:cdns3: Driver initialization code Pawel Laszczak
2018-11-03 17:51 ` [RFC PATCH v1 03/14] " Pawel Laszczak
2018-11-03 17:51 [RFC,v1,02/14] usb:cdns3: Device side header file Pawel Laszczak
2018-11-03 17:51 ` [RFC PATCH v1 02/14] " Pawel Laszczak
2018-11-03 17:51 [RFC,v1,01/14] usb:cdns3: add pci to platform driver wrapper Pawel Laszczak
2018-11-03 17:51 ` [RFC PATCH v1 01/14] " Pawel Laszczak
2018-11-03 17:51 [RFC PATCH v1 00/14] Introduced new Cadence USBSS DRD Driver Pawel Laszczak
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=5BE19BB5.3030006@ti.com \
--to=rogerq@ti.com \
--cc=adouglas@cadence.com \
--cc=gregkh@linuxfoundation.org \
--cc=jbergsagel@ti.com \
--cc=kurahul@cadence.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=pawell@cadence.com \
--cc=peter.chen@nxp.com \
--cc=pjez@cadence.com \
/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.