From: Lukasz Majewski <l.majewski@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [u-boot 12/40] usb: dwc3: remove pm related operations from dwc3 driver
Date: Mon, 16 Feb 2015 11:26:30 +0100 [thread overview]
Message-ID: <20150216112630.2ded0280@amdc2363> (raw)
In-Reply-To: <1423212497-11970-13-git-send-email-kishon@ti.com>
Hi Kishon,
> Removed all pm related operations including pm_runtime APIs,
> suspend/resume hooks as support for these are not present in u-boot.
>
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> ---
> drivers/usb/dwc3/core.c | 96
> ------------------------------------------
> drivers/usb/dwc3/core.h | 16 -------
> drivers/usb/dwc3/dwc3-omap.c | 61 +++------------------------
> drivers/usb/dwc3/gadget.c | 55 ------------------------ 4 files
> changed, 5 insertions(+), 223 deletions(-)
>
> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> index b79a8b3..ebfb6ca 100644
> --- a/drivers/usb/dwc3/core.c
> +++ b/drivers/usb/dwc3/core.c
> @@ -20,7 +20,6 @@
> #include <linux/slab.h>
> #include <linux/spinlock.h>
> #include <linux/platform_device.h>
> -#include <linux/pm_runtime.h>
> #include <linux/interrupt.h>
> #include <linux/ioport.h>
> #include <linux/io.h>
> @@ -884,10 +883,6 @@ static int dwc3_probe(struct platform_device
> *pdev) dma_set_coherent_mask(dev, dev->parent->coherent_dma_mask);
> }
>
> - pm_runtime_enable(dev);
> - pm_runtime_get_sync(dev);
> - pm_runtime_forbid(dev);
> -
> dwc3_cache_hwparams(dwc);
>
> ret = dwc3_alloc_event_buffers(dwc, DWC3_EVENT_BUFFERS_SIZE);
> @@ -937,8 +932,6 @@ static int dwc3_probe(struct platform_device
> *pdev) goto err3;
> }
>
> - pm_runtime_allow(dev);
> -
> return 0;
>
> err3:
> @@ -980,97 +973,9 @@ static int dwc3_remove(struct platform_device
> *pdev)
> dwc3_core_exit(dwc);
>
> - pm_runtime_put_sync(&pdev->dev);
> - pm_runtime_disable(&pdev->dev);
> -
> - return 0;
> -}
> -
> -#ifdef CONFIG_PM_SLEEP
> -static int dwc3_suspend(struct device *dev)
> -{
> - struct dwc3 *dwc = dev_get_drvdata(dev);
> - unsigned long flags;
> -
> - spin_lock_irqsave(&dwc->lock, flags);
> -
> - switch (dwc->dr_mode) {
> - case USB_DR_MODE_PERIPHERAL:
> - case USB_DR_MODE_OTG:
> - dwc3_gadget_suspend(dwc);
> - /* FALLTHROUGH */
> - case USB_DR_MODE_HOST:
> - default:
> - dwc3_event_buffers_cleanup(dwc);
> - break;
> - }
> -
> - dwc->gctl = dwc3_readl(dwc->regs, DWC3_GCTL);
> - spin_unlock_irqrestore(&dwc->lock, flags);
> -
> - usb_phy_shutdown(dwc->usb3_phy);
> - usb_phy_shutdown(dwc->usb2_phy);
> - phy_exit(dwc->usb2_generic_phy);
> - phy_exit(dwc->usb3_generic_phy);
> -
> return 0;
> }
>
> -static int dwc3_resume(struct device *dev)
> -{
> - struct dwc3 *dwc = dev_get_drvdata(dev);
> - unsigned long flags;
> - int ret;
> -
> - usb_phy_init(dwc->usb3_phy);
> - usb_phy_init(dwc->usb2_phy);
> - ret = phy_init(dwc->usb2_generic_phy);
> - if (ret < 0)
> - return ret;
> -
> - ret = phy_init(dwc->usb3_generic_phy);
> - if (ret < 0)
> - goto err_usb2phy_init;
> -
> - spin_lock_irqsave(&dwc->lock, flags);
> -
> - dwc3_event_buffers_setup(dwc);
> - dwc3_writel(dwc->regs, DWC3_GCTL, dwc->gctl);
> -
> - switch (dwc->dr_mode) {
> - case USB_DR_MODE_PERIPHERAL:
> - case USB_DR_MODE_OTG:
> - dwc3_gadget_resume(dwc);
> - /* FALLTHROUGH */
> - case USB_DR_MODE_HOST:
> - default:
> - /* do nothing */
> - break;
> - }
> -
> - spin_unlock_irqrestore(&dwc->lock, flags);
> -
> - pm_runtime_disable(dev);
> - pm_runtime_set_active(dev);
> - pm_runtime_enable(dev);
> -
> - return 0;
> -
> -err_usb2phy_init:
> - phy_exit(dwc->usb2_generic_phy);
> -
> - return ret;
> -}
> -
> -static const struct dev_pm_ops dwc3_dev_pm_ops = {
> - SET_SYSTEM_SLEEP_PM_OPS(dwc3_suspend, dwc3_resume)
> -};
> -
> -#define DWC3_PM_OPS &(dwc3_dev_pm_ops)
> -#else
> -#define DWC3_PM_OPS NULL
> -#endif
> -
> #ifdef CONFIG_OF
> static const struct of_device_id of_dwc3_match[] = {
> {
> @@ -1102,7 +1007,6 @@ static struct platform_driver dwc3_driver = {
> .name = "dwc3",
> .of_match_table = of_match_ptr(of_dwc3_match),
> .acpi_match_table = ACPI_PTR(dwc3_acpi_match),
> - .pm = DWC3_PM_OPS,
> },
> };
>
> diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
> index a7a7082..97f71ad 100644
> --- a/drivers/usb/dwc3/core.h
> +++ b/drivers/usb/dwc3/core.h
> @@ -1012,20 +1012,4 @@ static inline int
> dwc3_send_gadget_generic_command(struct dwc3 *dwc, { return 0; }
> #endif
>
> -/* power management interface */
> -#if !IS_ENABLED(CONFIG_USB_DWC3_HOST)
> -int dwc3_gadget_suspend(struct dwc3 *dwc);
> -int dwc3_gadget_resume(struct dwc3 *dwc);
> -#else
> -static inline int dwc3_gadget_suspend(struct dwc3 *dwc)
> -{
> - return 0;
> -}
> -
> -static inline int dwc3_gadget_resume(struct dwc3 *dwc)
> -{
> - return 0;
> -}
> -#endif /* !IS_ENABLED(CONFIG_USB_DWC3_HOST) */
> -
> #endif /* __DRIVERS_USB_DWC3_CORE_H */
> diff --git a/drivers/usb/dwc3/dwc3-omap.c
> b/drivers/usb/dwc3/dwc3-omap.c index 12b57cf..ce2d6a6 100644
> --- a/drivers/usb/dwc3/dwc3-omap.c
> +++ b/drivers/usb/dwc3/dwc3-omap.c
> @@ -20,7 +20,6 @@
> #include <linux/interrupt.h>
> #include <linux/platform_device.h>
> #include <linux/platform_data/dwc3-omap.h>
> -#include <linux/pm_runtime.h>
> #include <linux/dma-mapping.h>
> #include <linux/ioport.h>
> #include <linux/io.h>
> @@ -509,13 +508,6 @@ static int dwc3_omap_probe(struct
> platform_device *pdev) omap->vbus_reg = vbus_reg;
> dev->dma_mask = &dwc3_omap_dma_mask;
>
> - pm_runtime_enable(dev);
> - ret = pm_runtime_get_sync(dev);
> - if (ret < 0) {
> - dev_err(dev, "get_sync failed with err %d\n", ret);
> - goto err0;
> - }
> -
> dwc3_omap_map_offset(omap);
> dwc3_omap_set_utmi_mode(omap);
>
> @@ -528,38 +520,33 @@ static int dwc3_omap_probe(struct
> platform_device *pdev) if (ret) {
> dev_err(dev, "failed to request IRQ #%d --> %d\n",
> omap->irq, ret);
> - goto err1;
> + goto err0;
> }
>
> dwc3_omap_enable_irqs(omap);
>
> ret = dwc3_omap_extcon_register(omap);
> if (ret < 0)
> - goto err2;
> + goto err1;
>
> ret = of_platform_populate(node, NULL, NULL, dev);
> if (ret) {
> dev_err(&pdev->dev, "failed to create dwc3 core\n");
> - goto err3;
> + goto err2;
> }
>
> return 0;
>
> -err3:
> +err2:
> if (omap->extcon_vbus_dev.edev)
> extcon_unregister_interest(&omap->extcon_vbus_dev);
> if (omap->extcon_id_dev.edev)
> extcon_unregister_interest(&omap->extcon_id_dev);
>
> -err2:
> - dwc3_omap_disable_irqs(omap);
> -
> err1:
> - pm_runtime_put_sync(dev);
> + dwc3_omap_disable_irqs(omap);
>
> err0:
> - pm_runtime_disable(dev);
> -
> return ret;
> }
>
> @@ -573,8 +560,6 @@ static int dwc3_omap_remove(struct
> platform_device *pdev)
> extcon_unregister_interest(&omap->extcon_id_dev);
> dwc3_omap_disable_irqs(omap); device_for_each_child(&pdev->dev, NULL,
> dwc3_omap_remove_core);
> - pm_runtime_put_sync(&pdev->dev);
> - pm_runtime_disable(&pdev->dev);
>
> return 0;
> }
> @@ -590,48 +575,12 @@ static const struct of_device_id
> of_dwc3_match[] = { };
> MODULE_DEVICE_TABLE(of, of_dwc3_match);
>
> -#ifdef CONFIG_PM_SLEEP
> -static int dwc3_omap_suspend(struct device *dev)
> -{
> - struct dwc3_omap *omap = dev_get_drvdata(dev);
> -
> - omap->utmi_otg_status = dwc3_omap_read_utmi_status(omap);
> - dwc3_omap_disable_irqs(omap);
> -
> - return 0;
> -}
> -
> -static int dwc3_omap_resume(struct device *dev)
> -{
> - struct dwc3_omap *omap = dev_get_drvdata(dev);
> -
> - dwc3_omap_write_utmi_status(omap, omap->utmi_otg_status);
> - dwc3_omap_enable_irqs(omap);
> -
> - pm_runtime_disable(dev);
> - pm_runtime_set_active(dev);
> - pm_runtime_enable(dev);
> -
> - return 0;
> -}
> -
> -static const struct dev_pm_ops dwc3_omap_dev_pm_ops = {
> -
> - SET_SYSTEM_SLEEP_PM_OPS(dwc3_omap_suspend, dwc3_omap_resume)
> -};
> -
> -#define DEV_PM_OPS (&dwc3_omap_dev_pm_ops)
> -#else
> -#define DEV_PM_OPS NULL
> -#endif /* CONFIG_PM_SLEEP */
> -
> static struct platform_driver dwc3_omap_driver = {
> .probe = dwc3_omap_probe,
> .remove = dwc3_omap_remove,
> .driver = {
> .name = "omap-dwc3",
> .of_match_table = of_dwc3_match,
> - .pm = DEV_PM_OPS,
> },
> };
>
> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
> index ca0f0cd..7c932c6 100644
> --- a/drivers/usb/dwc3/gadget.c
> +++ b/drivers/usb/dwc3/gadget.c
> @@ -2748,58 +2748,3 @@ void dwc3_gadget_exit(struct dwc3 *dwc)
> dma_free_coherent(dwc->dev, sizeof(*dwc->ctrl_req),
> dwc->ctrl_req, dwc->ctrl_req_addr);
> }
> -
> -int dwc3_gadget_suspend(struct dwc3 *dwc)
> -{
> - if (dwc->pullups_connected) {
> - dwc3_gadget_disable_irq(dwc);
> - dwc3_gadget_run_stop(dwc, true, true);
> - }
> -
> - __dwc3_gadget_ep_disable(dwc->eps[0]);
> - __dwc3_gadget_ep_disable(dwc->eps[1]);
> -
> - dwc->dcfg = dwc3_readl(dwc->regs, DWC3_DCFG);
> -
> - return 0;
> -}
> -
> -int dwc3_gadget_resume(struct dwc3 *dwc)
> -{
> - struct dwc3_ep *dep;
> - int ret;
> -
> - /* Start with SuperSpeed Default */
> - dwc3_gadget_ep0_desc.wMaxPacketSize = cpu_to_le16(512);
> -
> - dep = dwc->eps[0];
> - ret = __dwc3_gadget_ep_enable(dep, &dwc3_gadget_ep0_desc,
> NULL, false,
> - false);
> - if (ret)
> - goto err0;
> -
> - dep = dwc->eps[1];
> - ret = __dwc3_gadget_ep_enable(dep, &dwc3_gadget_ep0_desc,
> NULL, false,
> - false);
> - if (ret)
> - goto err1;
> -
> - /* begin to receive SETUP packets */
> - dwc->ep0state = EP0_SETUP_PHASE;
> - dwc3_ep0_out_start(dwc);
> -
> - dwc3_writel(dwc->regs, DWC3_DCFG, dwc->dcfg);
> -
> - if (dwc->pullups_connected) {
> - dwc3_gadget_enable_irq(dwc);
> - dwc3_gadget_run_stop(dwc, true, false);
> - }
> -
> - return 0;
> -
> -err1:
> - __dwc3_gadget_ep_disable(dwc->eps[0]);
> -
> -err0:
> - return ret;
> -}
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:26 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
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 [this message]
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=20150216112630.2ded0280@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.