From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> To: Hans de Goede <hdegoede@redhat.com> Cc: Tejun Heo <tj@kernel.org>, Maxime Ripard <maxime.ripard@free-electrons.com>, Oliver Schinagl <oliver@schinagl.nl>, Richard Zhu <Hong-Xing.Zhu@freescale.com>, Roger Quadros <rogerq@ti.com>, Lee Jones <lee.jones@linaro.org>, linux-ide@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree <devicetree@vger.kernel.org>, linux-sunxi@googlegroups.com Subject: Re: [PATCH v7 02/15] ahci-platform: Add support for devices with more then 1 clock Date: Mon, 03 Mar 2014 18:40:04 +0100 [thread overview] Message-ID: <1913842.kQBYcblUGT@amdc1032> (raw) In-Reply-To: <1393084424-31099-3-git-send-email-hdegoede@redhat.com> Hi, On Saturday, February 22, 2014 04:53:31 PM Hans de Goede wrote: > The allwinner-sun4i AHCI controller needs 2 clocks to be enabled and the > imx AHCI controller needs 3 clocks to be enabled. > > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > --- > .../devicetree/bindings/ata/ahci-platform.txt | 1 + > drivers/ata/ahci.h | 3 +- > drivers/ata/ahci_platform.c | 119 ++++++++++++++++----- > include/linux/ahci_platform.h | 4 + > 4 files changed, 99 insertions(+), 28 deletions(-) > > diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.txt b/Documentation/devicetree/bindings/ata/ahci-platform.txt > index 89de156..3ced07d 100644 > --- a/Documentation/devicetree/bindings/ata/ahci-platform.txt > +++ b/Documentation/devicetree/bindings/ata/ahci-platform.txt > @@ -10,6 +10,7 @@ Required properties: > > Optional properties: > - dma-coherent : Present if dma operations are coherent > +- clocks : a list of phandle + clock specifier pairs > > Example: > sata@ffe08000 { > diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h > index 64d1a99..c12862b 100644 > --- a/drivers/ata/ahci.h > +++ b/drivers/ata/ahci.h > @@ -51,6 +51,7 @@ > > enum { > AHCI_MAX_PORTS = 32, > + AHCI_MAX_CLKS = 3, > AHCI_MAX_SG = 168, /* hardware max is 64K */ > AHCI_DMA_BOUNDARY = 0xffffffff, > AHCI_MAX_CMDS = 32, > @@ -321,7 +322,7 @@ struct ahci_host_priv { > u32 em_loc; /* enclosure management location */ > u32 em_buf_sz; /* EM buffer size in byte */ > u32 em_msg_type; /* EM message type */ > - struct clk *clk; /* Only for platforms supporting clk */ > + struct clk *clks[AHCI_MAX_CLKS]; /* Optional */ > void *plat_data; /* Other platform data */ > /* > * Optional ahci_start_engine override, if not set this gets set to the > diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c > index 4b231ba..609975d 100644 > --- a/drivers/ata/ahci_platform.c > +++ b/drivers/ata/ahci_platform.c > @@ -87,6 +87,66 @@ static struct scsi_host_template ahci_platform_sht = { > AHCI_SHT("ahci_platform"), > }; > > +/** > + * ahci_platform_enable_clks - Enable platform clocks > + * @hpriv: host private area to store config values > + * > + * This function enables all the clks found in hpriv->clks, starting > + * at index 0. If any clk fails to enable it disables all the clks > + * already enabled in reverse order, and then returns an error. > + * > + * LOCKING: > + * None. > + * > + * RETURNS: > + * 0 on success otherwise a negative error code > + */ > +int ahci_platform_enable_clks(struct ahci_host_priv *hpriv) > +{ > + int c, rc; > + > + for (c = 0; c < AHCI_MAX_CLKS && hpriv->clks[c]; c++) { > + rc = clk_prepare_enable(hpriv->clks[c]); > + if (rc) > + goto disable_unprepare_clk; > + } > + return 0; > + > +disable_unprepare_clk: > + while (--c >= 0) > + clk_disable_unprepare(hpriv->clks[c]); > + return rc; > +} > +EXPORT_SYMBOL_GPL(ahci_platform_enable_clks); > + > +/** > + * ahci_platform_disable_clks - Disable platform clocks > + * @hpriv: host private area to store config values > + * > + * This function disables all the clks found in hpriv->clks, in reverse > + * order of ahci_platform_enable_clks (starting at the end of the array). > + * > + * LOCKING: > + * None. > + */ > +void ahci_platform_disable_clks(struct ahci_host_priv *hpriv) > +{ > + int c; > + > + for (c = AHCI_MAX_CLKS - 1; c >= 0; c--) > + if (hpriv->clks[c]) > + clk_disable_unprepare(hpriv->clks[c]); > +} > +EXPORT_SYMBOL_GPL(ahci_platform_disable_clks); > + > +static void ahci_put_clks(struct ahci_host_priv *hpriv) > +{ > + int c; > + > + for (c = 0; c < AHCI_MAX_CLKS && hpriv->clks[c]; c++) > + clk_put(hpriv->clks[c]); > +} > + > static int ahci_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > @@ -97,6 +157,7 @@ static int ahci_probe(struct platform_device *pdev) > struct ahci_host_priv *hpriv; > struct ata_host *host; > struct resource *mem; > + struct clk *clk; > int irq; > int n_ports; > int i; > @@ -131,17 +192,31 @@ static int ahci_probe(struct platform_device *pdev) > return -ENOMEM; > } > > - hpriv->clk = clk_get(dev, NULL); > - if (IS_ERR(hpriv->clk)) { > - dev_err(dev, "can't get clock\n"); > - } else { > - rc = clk_prepare_enable(hpriv->clk); > - if (rc) { > - dev_err(dev, "clock prepare enable failed"); > - goto free_clk; > + for (i = 0; i < AHCI_MAX_CLKS; i++) { > + /* > + * For now we must use clk_get(dev, NULL) for the first clock, > + * because some platforms (da850, spear13xx) are not yet > + * converted to use devicetree for clocks. For new platforms > + * this is equivalent to of_clk_get(dev->of_node, 0). > + */ > + if (i == 0) > + clk = clk_get(dev, NULL); > + else > + clk = of_clk_get(dev->of_node, i); > + > + if (IS_ERR(clk)) { > + rc = PTR_ERR(clk); > + if (rc == -EPROBE_DEFER) > + goto free_clk; > + break; > } > + hpriv->clks[i] = clk; > } > > + rc = ahci_enable_clks(dev, hpriv); This should be ahci_platform_enable_clks(). > + if (rc) > + goto free_clk; > + > /* > * Some platforms might need to prepare for mmio region access, > * which could be done in the following init call. So, the mmio > @@ -222,11 +297,9 @@ pdata_exit: > if (pdata && pdata->exit) > pdata->exit(dev); > disable_unprepare_clk: > - if (!IS_ERR(hpriv->clk)) > - clk_disable_unprepare(hpriv->clk); > + ahci_disable_clks(hpriv); ahci_platform_disable_clks() > free_clk: > - if (!IS_ERR(hpriv->clk)) > - clk_put(hpriv->clk); > + ahci_put_clks(hpriv); > return rc; > } > > @@ -239,10 +312,8 @@ static void ahci_host_stop(struct ata_host *host) > if (pdata && pdata->exit) > pdata->exit(dev); > > - if (!IS_ERR(hpriv->clk)) { > - clk_disable_unprepare(hpriv->clk); > - clk_put(hpriv->clk); > - } > + ahci_disable_clks(hpriv); ahci_platform_disable_clks() > + ahci_put_clks(hpriv); > } > > #ifdef CONFIG_PM_SLEEP > @@ -277,8 +348,7 @@ static int ahci_suspend(struct device *dev) > if (pdata && pdata->suspend) > return pdata->suspend(dev); > > - if (!IS_ERR(hpriv->clk)) > - clk_disable_unprepare(hpriv->clk); > + ahci_disable_clks(hpriv); ahci_platform_disable_clks() > return 0; > } > @@ -290,13 +360,9 @@ static int ahci_resume(struct device *dev) > struct ahci_host_priv *hpriv = host->private_data; > int rc; > > - if (!IS_ERR(hpriv->clk)) { > - rc = clk_prepare_enable(hpriv->clk); > - if (rc) { > - dev_err(dev, "clock prepare enable failed"); > - return rc; > - } > - } > + rc = ahci_enable_clks(dev, hpriv); ahci_platform_enable_clks() > + if (rc) > + return rc; > > if (pdata && pdata->resume) { > rc = pdata->resume(dev); > @@ -317,8 +383,7 @@ static int ahci_resume(struct device *dev) > return 0; > > disable_unprepare_clk: > - if (!IS_ERR(hpriv->clk)) > - clk_disable_unprepare(hpriv->clk); > + ahci_disable_clks(hpriv); ahci_platform_disable_clks() [...] All code in question gets rewritten in patch #4/15 so the actual problem is the broken bisectability between patch #2 and #4. It seems too late to fix it now but in the future please remember to build-test each patch separately (in addition to testing the whole patchset). Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics
WARNING: multiple messages have this Message-ID (diff)
From: b.zolnierkie@samsung.com (Bartlomiej Zolnierkiewicz) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v7 02/15] ahci-platform: Add support for devices with more then 1 clock Date: Mon, 03 Mar 2014 18:40:04 +0100 [thread overview] Message-ID: <1913842.kQBYcblUGT@amdc1032> (raw) In-Reply-To: <1393084424-31099-3-git-send-email-hdegoede@redhat.com> Hi, On Saturday, February 22, 2014 04:53:31 PM Hans de Goede wrote: > The allwinner-sun4i AHCI controller needs 2 clocks to be enabled and the > imx AHCI controller needs 3 clocks to be enabled. > > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > --- > .../devicetree/bindings/ata/ahci-platform.txt | 1 + > drivers/ata/ahci.h | 3 +- > drivers/ata/ahci_platform.c | 119 ++++++++++++++++----- > include/linux/ahci_platform.h | 4 + > 4 files changed, 99 insertions(+), 28 deletions(-) > > diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.txt b/Documentation/devicetree/bindings/ata/ahci-platform.txt > index 89de156..3ced07d 100644 > --- a/Documentation/devicetree/bindings/ata/ahci-platform.txt > +++ b/Documentation/devicetree/bindings/ata/ahci-platform.txt > @@ -10,6 +10,7 @@ Required properties: > > Optional properties: > - dma-coherent : Present if dma operations are coherent > +- clocks : a list of phandle + clock specifier pairs > > Example: > sata at ffe08000 { > diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h > index 64d1a99..c12862b 100644 > --- a/drivers/ata/ahci.h > +++ b/drivers/ata/ahci.h > @@ -51,6 +51,7 @@ > > enum { > AHCI_MAX_PORTS = 32, > + AHCI_MAX_CLKS = 3, > AHCI_MAX_SG = 168, /* hardware max is 64K */ > AHCI_DMA_BOUNDARY = 0xffffffff, > AHCI_MAX_CMDS = 32, > @@ -321,7 +322,7 @@ struct ahci_host_priv { > u32 em_loc; /* enclosure management location */ > u32 em_buf_sz; /* EM buffer size in byte */ > u32 em_msg_type; /* EM message type */ > - struct clk *clk; /* Only for platforms supporting clk */ > + struct clk *clks[AHCI_MAX_CLKS]; /* Optional */ > void *plat_data; /* Other platform data */ > /* > * Optional ahci_start_engine override, if not set this gets set to the > diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c > index 4b231ba..609975d 100644 > --- a/drivers/ata/ahci_platform.c > +++ b/drivers/ata/ahci_platform.c > @@ -87,6 +87,66 @@ static struct scsi_host_template ahci_platform_sht = { > AHCI_SHT("ahci_platform"), > }; > > +/** > + * ahci_platform_enable_clks - Enable platform clocks > + * @hpriv: host private area to store config values > + * > + * This function enables all the clks found in hpriv->clks, starting > + * at index 0. If any clk fails to enable it disables all the clks > + * already enabled in reverse order, and then returns an error. > + * > + * LOCKING: > + * None. > + * > + * RETURNS: > + * 0 on success otherwise a negative error code > + */ > +int ahci_platform_enable_clks(struct ahci_host_priv *hpriv) > +{ > + int c, rc; > + > + for (c = 0; c < AHCI_MAX_CLKS && hpriv->clks[c]; c++) { > + rc = clk_prepare_enable(hpriv->clks[c]); > + if (rc) > + goto disable_unprepare_clk; > + } > + return 0; > + > +disable_unprepare_clk: > + while (--c >= 0) > + clk_disable_unprepare(hpriv->clks[c]); > + return rc; > +} > +EXPORT_SYMBOL_GPL(ahci_platform_enable_clks); > + > +/** > + * ahci_platform_disable_clks - Disable platform clocks > + * @hpriv: host private area to store config values > + * > + * This function disables all the clks found in hpriv->clks, in reverse > + * order of ahci_platform_enable_clks (starting at the end of the array). > + * > + * LOCKING: > + * None. > + */ > +void ahci_platform_disable_clks(struct ahci_host_priv *hpriv) > +{ > + int c; > + > + for (c = AHCI_MAX_CLKS - 1; c >= 0; c--) > + if (hpriv->clks[c]) > + clk_disable_unprepare(hpriv->clks[c]); > +} > +EXPORT_SYMBOL_GPL(ahci_platform_disable_clks); > + > +static void ahci_put_clks(struct ahci_host_priv *hpriv) > +{ > + int c; > + > + for (c = 0; c < AHCI_MAX_CLKS && hpriv->clks[c]; c++) > + clk_put(hpriv->clks[c]); > +} > + > static int ahci_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > @@ -97,6 +157,7 @@ static int ahci_probe(struct platform_device *pdev) > struct ahci_host_priv *hpriv; > struct ata_host *host; > struct resource *mem; > + struct clk *clk; > int irq; > int n_ports; > int i; > @@ -131,17 +192,31 @@ static int ahci_probe(struct platform_device *pdev) > return -ENOMEM; > } > > - hpriv->clk = clk_get(dev, NULL); > - if (IS_ERR(hpriv->clk)) { > - dev_err(dev, "can't get clock\n"); > - } else { > - rc = clk_prepare_enable(hpriv->clk); > - if (rc) { > - dev_err(dev, "clock prepare enable failed"); > - goto free_clk; > + for (i = 0; i < AHCI_MAX_CLKS; i++) { > + /* > + * For now we must use clk_get(dev, NULL) for the first clock, > + * because some platforms (da850, spear13xx) are not yet > + * converted to use devicetree for clocks. For new platforms > + * this is equivalent to of_clk_get(dev->of_node, 0). > + */ > + if (i == 0) > + clk = clk_get(dev, NULL); > + else > + clk = of_clk_get(dev->of_node, i); > + > + if (IS_ERR(clk)) { > + rc = PTR_ERR(clk); > + if (rc == -EPROBE_DEFER) > + goto free_clk; > + break; > } > + hpriv->clks[i] = clk; > } > > + rc = ahci_enable_clks(dev, hpriv); This should be ahci_platform_enable_clks(). > + if (rc) > + goto free_clk; > + > /* > * Some platforms might need to prepare for mmio region access, > * which could be done in the following init call. So, the mmio > @@ -222,11 +297,9 @@ pdata_exit: > if (pdata && pdata->exit) > pdata->exit(dev); > disable_unprepare_clk: > - if (!IS_ERR(hpriv->clk)) > - clk_disable_unprepare(hpriv->clk); > + ahci_disable_clks(hpriv); ahci_platform_disable_clks() > free_clk: > - if (!IS_ERR(hpriv->clk)) > - clk_put(hpriv->clk); > + ahci_put_clks(hpriv); > return rc; > } > > @@ -239,10 +312,8 @@ static void ahci_host_stop(struct ata_host *host) > if (pdata && pdata->exit) > pdata->exit(dev); > > - if (!IS_ERR(hpriv->clk)) { > - clk_disable_unprepare(hpriv->clk); > - clk_put(hpriv->clk); > - } > + ahci_disable_clks(hpriv); ahci_platform_disable_clks() > + ahci_put_clks(hpriv); > } > > #ifdef CONFIG_PM_SLEEP > @@ -277,8 +348,7 @@ static int ahci_suspend(struct device *dev) > if (pdata && pdata->suspend) > return pdata->suspend(dev); > > - if (!IS_ERR(hpriv->clk)) > - clk_disable_unprepare(hpriv->clk); > + ahci_disable_clks(hpriv); ahci_platform_disable_clks() > return 0; > } > @@ -290,13 +360,9 @@ static int ahci_resume(struct device *dev) > struct ahci_host_priv *hpriv = host->private_data; > int rc; > > - if (!IS_ERR(hpriv->clk)) { > - rc = clk_prepare_enable(hpriv->clk); > - if (rc) { > - dev_err(dev, "clock prepare enable failed"); > - return rc; > - } > - } > + rc = ahci_enable_clks(dev, hpriv); ahci_platform_enable_clks() > + if (rc) > + return rc; > > if (pdata && pdata->resume) { > rc = pdata->resume(dev); > @@ -317,8 +383,7 @@ static int ahci_resume(struct device *dev) > return 0; > > disable_unprepare_clk: > - if (!IS_ERR(hpriv->clk)) > - clk_disable_unprepare(hpriv->clk); > + ahci_disable_clks(hpriv); ahci_platform_disable_clks() [...] All code in question gets rewritten in patch #4/15 so the actual problem is the broken bisectability between patch #2 and #4. It seems too late to fix it now but in the future please remember to build-test each patch separately (in addition to testing the whole patchset). Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics
next prev parent reply other threads:[~2014-03-03 17:40 UTC|newest] Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-02-22 15:53 (unknown), Hans de Goede 2014-02-22 15:53 ` No subject Hans de Goede [not found] ` <1393084424-31099-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2014-02-22 15:53 ` [PATCH v7 01/15] libahci: Allow drivers to override start_engine Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 02/15] ahci-platform: Add support for devices with more then 1 clock Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-03-03 17:40 ` Bartlomiej Zolnierkiewicz [this message] 2014-03-03 17:40 ` Bartlomiej Zolnierkiewicz 2014-02-22 15:53 ` [PATCH v7 03/15] ahci-platform: Add support for an optional regulator for sata-target power Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 04/15] ahci-platform: Add enable_ / disable_resources helper functions Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 05/15] ahci-platform: "Library-ise" ahci_probe functionality Hans de Goede 2014-02-22 15:53 ` Hans de Goede [not found] ` <1393084424-31099-6-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2014-03-03 18:38 ` Bartlomiej Zolnierkiewicz 2014-03-03 18:38 ` Bartlomiej Zolnierkiewicz 2014-02-22 15:53 ` [PATCH v7 06/15] ahci-platform: "Library-ise" suspend / resume functionality Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 07/15] ARM: sunxi: Add support for Allwinner SUNXi SoCs sata to ahci_platform Hans de Goede 2014-02-22 15:53 ` Hans de Goede [not found] ` <1393084424-31099-8-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2014-02-22 20:40 ` Tejun Heo 2014-02-22 20:40 ` Tejun Heo 2014-02-22 15:53 ` [PATCH v7 08/15] ahci-imx: Port to library-ised ahci_platform Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-28 21:08 ` Russell King - ARM Linux 2014-02-28 21:08 ` Russell King - ARM Linux [not found] ` <20140228210820.GZ21483-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org> 2014-03-01 10:38 ` Hans de Goede 2014-03-01 10:38 ` Hans de Goede 2014-03-01 11:24 ` Russell King - ARM Linux 2014-03-01 11:24 ` Russell King - ARM Linux [not found] ` <20140301112424.GB21483-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org> 2014-03-01 12:54 ` Hans de Goede 2014-03-01 12:54 ` Hans de Goede [not found] ` <1393084424-31099-9-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2014-03-04 12:04 ` Bartlomiej Zolnierkiewicz 2014-03-04 12:04 ` Bartlomiej Zolnierkiewicz 2014-02-22 15:53 ` [PATCH v7 09/15] ata: ahci_platform: Add DT compatible for Synopsis DWC AHCI controller Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 10/15] ata: ahci_platform: Update DT compatible list Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 11/15] ata: ahci_platform: Manage SATA PHY Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 12/15] ata: ahci_platform: runtime resume the device before use Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 13/15] ARM: sun4i: dt: Remove grouping + simple-bus compatible for regulators Hans de Goede 2014-02-22 15:53 ` Hans de Goede [not found] ` <1393084424-31099-14-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2014-02-22 21:44 ` Maxime Ripard 2014-02-22 21:44 ` Maxime Ripard 2014-02-23 8:03 ` Hans de Goede 2014-02-23 8:03 ` Hans de Goede [not found] ` <5309AB64.7010603-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2014-02-24 9:14 ` Maxime Ripard 2014-02-24 9:14 ` Maxime Ripard 2014-02-22 15:53 ` [PATCH v7 14/15] ARM: sun4i: dt: Add ahci / sata support Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 15/15] ARM: sun7i: " Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 16:26 ` [PATCH v7 00/15] ahci: library-ise ahci_platform, add sunxi driver and cleanup imx driver Hans de Goede 2014-02-22 16:26 ` Hans de Goede [not found] ` <5308CFC8.4020400-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2014-02-22 20:37 ` Tejun Heo 2014-02-22 20:37 ` Tejun Heo
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=1913842.kQBYcblUGT@amdc1032 \ --to=b.zolnierkie@samsung.com \ --cc=Hong-Xing.Zhu@freescale.com \ --cc=devicetree@vger.kernel.org \ --cc=hdegoede@redhat.com \ --cc=lee.jones@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-ide@vger.kernel.org \ --cc=linux-sunxi@googlegroups.com \ --cc=maxime.ripard@free-electrons.com \ --cc=oliver@schinagl.nl \ --cc=rogerq@ti.com \ --cc=tj@kernel.org \ /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: linkBe 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.