From: Takashi Iwai <tiwai@suse.de>
To: Mark Brown <broonie@kernel.org>
Cc: linux-sound@vger.kernel.org, Takashi Iwai <tiwai@suse.de>
Subject: [PATCH v2 60/88] ASoC: img: Convert to RUNTIME_PM_OPS() and co
Date: Mon, 17 Mar 2025 10:55:22 +0100 [thread overview]
Message-ID: <20250317095603.20073-61-tiwai@suse.de> (raw)
In-Reply-To: <20250317095603.20073-1-tiwai@suse.de>
Use the newer RUNTIME_PM_OPS() and SYSTEM_SLEEP_PM_OPS() macros
instead of SET_RUNTIME_PM_OPS() and SET_SYSTEM_SLEEP_PM_OPS() together
with pm_ptr(), which allows us dropping superfluous CONFIG_PM_SLEEP
ifdefs.
This optimizes slightly when CONFIG_PM is disabled, too.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
sound/soc/img/img-i2s-in.c | 9 +++------
sound/soc/img/img-i2s-out.c | 9 +++------
sound/soc/img/img-parallel-out.c | 5 ++---
sound/soc/img/img-spdif-in.c | 9 +++------
sound/soc/img/img-spdif-out.c | 10 ++++------
sound/soc/img/pistachio-internal-dac.c | 8 +++-----
6 files changed, 18 insertions(+), 32 deletions(-)
diff --git a/sound/soc/img/img-i2s-in.c b/sound/soc/img/img-i2s-in.c
index 6a988976fb0d..98d2ab68883a 100644
--- a/sound/soc/img/img-i2s-in.c
+++ b/sound/soc/img/img-i2s-in.c
@@ -539,7 +539,6 @@ static void img_i2s_in_dev_remove(struct platform_device *pdev)
img_i2s_in_runtime_suspend(&pdev->dev);
}
-#ifdef CONFIG_PM_SLEEP
static int img_i2s_in_suspend(struct device *dev)
{
struct img_i2s_in *i2s = dev_get_drvdata(dev);
@@ -586,7 +585,6 @@ static int img_i2s_in_resume(struct device *dev)
return 0;
}
-#endif
static const struct of_device_id img_i2s_in_of_match[] = {
{ .compatible = "img,i2s-in" },
@@ -595,16 +593,15 @@ static const struct of_device_id img_i2s_in_of_match[] = {
MODULE_DEVICE_TABLE(of, img_i2s_in_of_match);
static const struct dev_pm_ops img_i2s_in_pm_ops = {
- SET_RUNTIME_PM_OPS(img_i2s_in_runtime_suspend,
- img_i2s_in_runtime_resume, NULL)
- SET_SYSTEM_SLEEP_PM_OPS(img_i2s_in_suspend, img_i2s_in_resume)
+ RUNTIME_PM_OPS(img_i2s_in_runtime_suspend, img_i2s_in_runtime_resume, NULL)
+ SYSTEM_SLEEP_PM_OPS(img_i2s_in_suspend, img_i2s_in_resume)
};
static struct platform_driver img_i2s_in_driver = {
.driver = {
.name = "img-i2s-in",
.of_match_table = img_i2s_in_of_match,
- .pm = &img_i2s_in_pm_ops
+ .pm = pm_ptr(&img_i2s_in_pm_ops)
},
.probe = img_i2s_in_probe,
.remove = img_i2s_in_dev_remove
diff --git a/sound/soc/img/img-i2s-out.c b/sound/soc/img/img-i2s-out.c
index 1211e6184d97..aedcf56a5359 100644
--- a/sound/soc/img/img-i2s-out.c
+++ b/sound/soc/img/img-i2s-out.c
@@ -539,7 +539,6 @@ static void img_i2s_out_dev_remove(struct platform_device *pdev)
img_i2s_out_runtime_suspend(&pdev->dev);
}
-#ifdef CONFIG_PM_SLEEP
static int img_i2s_out_suspend(struct device *dev)
{
struct img_i2s_out *i2s = dev_get_drvdata(dev);
@@ -586,7 +585,6 @@ static int img_i2s_out_resume(struct device *dev)
return 0;
}
-#endif
static const struct of_device_id img_i2s_out_of_match[] = {
{ .compatible = "img,i2s-out" },
@@ -595,16 +593,15 @@ static const struct of_device_id img_i2s_out_of_match[] = {
MODULE_DEVICE_TABLE(of, img_i2s_out_of_match);
static const struct dev_pm_ops img_i2s_out_pm_ops = {
- SET_RUNTIME_PM_OPS(img_i2s_out_runtime_suspend,
- img_i2s_out_runtime_resume, NULL)
- SET_SYSTEM_SLEEP_PM_OPS(img_i2s_out_suspend, img_i2s_out_resume)
+ RUNTIME_PM_OPS(img_i2s_out_runtime_suspend, img_i2s_out_runtime_resume, NULL)
+ SYSTEM_SLEEP_PM_OPS(img_i2s_out_suspend, img_i2s_out_resume)
};
static struct platform_driver img_i2s_out_driver = {
.driver = {
.name = "img-i2s-out",
.of_match_table = img_i2s_out_of_match,
- .pm = &img_i2s_out_pm_ops
+ .pm = pm_ptr(&img_i2s_out_pm_ops)
},
.probe = img_i2s_out_probe,
.remove = img_i2s_out_dev_remove
diff --git a/sound/soc/img/img-parallel-out.c b/sound/soc/img/img-parallel-out.c
index 4ec63119d67c..86b60e6dab38 100644
--- a/sound/soc/img/img-parallel-out.c
+++ b/sound/soc/img/img-parallel-out.c
@@ -300,15 +300,14 @@ static const struct of_device_id img_prl_out_of_match[] = {
MODULE_DEVICE_TABLE(of, img_prl_out_of_match);
static const struct dev_pm_ops img_prl_out_pm_ops = {
- SET_RUNTIME_PM_OPS(img_prl_out_suspend,
- img_prl_out_resume, NULL)
+ RUNTIME_PM_OPS(img_prl_out_suspend, img_prl_out_resume, NULL)
};
static struct platform_driver img_prl_out_driver = {
.driver = {
.name = "img-parallel-out",
.of_match_table = img_prl_out_of_match,
- .pm = &img_prl_out_pm_ops
+ .pm = pm_ptr(&img_prl_out_pm_ops)
},
.probe = img_prl_out_probe,
.remove = img_prl_out_dev_remove
diff --git a/sound/soc/img/img-spdif-in.c b/sound/soc/img/img-spdif-in.c
index 3c513f5b8c54..82295e2508fa 100644
--- a/sound/soc/img/img-spdif-in.c
+++ b/sound/soc/img/img-spdif-in.c
@@ -817,7 +817,6 @@ static void img_spdif_in_dev_remove(struct platform_device *pdev)
img_spdif_in_runtime_suspend(&pdev->dev);
}
-#ifdef CONFIG_PM_SLEEP
static int img_spdif_in_suspend(struct device *dev)
{
struct img_spdif_in *spdif = dev_get_drvdata(dev);
@@ -857,7 +856,6 @@ static int img_spdif_in_resume(struct device *dev)
return 0;
}
-#endif
static const struct of_device_id img_spdif_in_of_match[] = {
{ .compatible = "img,spdif-in" },
@@ -866,16 +864,15 @@ static const struct of_device_id img_spdif_in_of_match[] = {
MODULE_DEVICE_TABLE(of, img_spdif_in_of_match);
static const struct dev_pm_ops img_spdif_in_pm_ops = {
- SET_RUNTIME_PM_OPS(img_spdif_in_runtime_suspend,
- img_spdif_in_runtime_resume, NULL)
- SET_SYSTEM_SLEEP_PM_OPS(img_spdif_in_suspend, img_spdif_in_resume)
+ RUNTIME_PM_OPS(img_spdif_in_runtime_suspend, img_spdif_in_runtime_resume, NULL)
+ SYSTEM_SLEEP_PM_OPS(img_spdif_in_suspend, img_spdif_in_resume)
};
static struct platform_driver img_spdif_in_driver = {
.driver = {
.name = "img-spdif-in",
.of_match_table = img_spdif_in_of_match,
- .pm = &img_spdif_in_pm_ops
+ .pm = pm_ptr(&img_spdif_in_pm_ops)
},
.probe = img_spdif_in_probe,
.remove = img_spdif_in_dev_remove
diff --git a/sound/soc/img/img-spdif-out.c b/sound/soc/img/img-spdif-out.c
index 402695b5fc41..52f696219ef4 100644
--- a/sound/soc/img/img-spdif-out.c
+++ b/sound/soc/img/img-spdif-out.c
@@ -409,7 +409,6 @@ static void img_spdif_out_dev_remove(struct platform_device *pdev)
img_spdif_out_runtime_suspend(&pdev->dev);
}
-#ifdef CONFIG_PM_SLEEP
static int img_spdif_out_suspend(struct device *dev)
{
struct img_spdif_out *spdif = dev_get_drvdata(dev);
@@ -448,7 +447,7 @@ static int img_spdif_out_resume(struct device *dev)
return 0;
}
-#endif
+
static const struct of_device_id img_spdif_out_of_match[] = {
{ .compatible = "img,spdif-out" },
{}
@@ -456,16 +455,15 @@ static const struct of_device_id img_spdif_out_of_match[] = {
MODULE_DEVICE_TABLE(of, img_spdif_out_of_match);
static const struct dev_pm_ops img_spdif_out_pm_ops = {
- SET_RUNTIME_PM_OPS(img_spdif_out_runtime_suspend,
- img_spdif_out_runtime_resume, NULL)
- SET_SYSTEM_SLEEP_PM_OPS(img_spdif_out_suspend, img_spdif_out_resume)
+ RUNTIME_PM_OPS(img_spdif_out_runtime_suspend, img_spdif_out_runtime_resume, NULL)
+ SYSTEM_SLEEP_PM_OPS(img_spdif_out_suspend, img_spdif_out_resume)
};
static struct platform_driver img_spdif_out_driver = {
.driver = {
.name = "img-spdif-out",
.of_match_table = img_spdif_out_of_match,
- .pm = &img_spdif_out_pm_ops
+ .pm = pm_ptr(&img_spdif_out_pm_ops)
},
.probe = img_spdif_out_probe,
.remove = img_spdif_out_dev_remove
diff --git a/sound/soc/img/pistachio-internal-dac.c b/sound/soc/img/pistachio-internal-dac.c
index fdeceb271e7f..ec4f891295c9 100644
--- a/sound/soc/img/pistachio-internal-dac.c
+++ b/sound/soc/img/pistachio-internal-dac.c
@@ -224,7 +224,6 @@ static void pistachio_internal_dac_remove(struct platform_device *pdev)
regulator_disable(dac->supply);
}
-#ifdef CONFIG_PM
static int pistachio_internal_dac_rt_resume(struct device *dev)
{
struct pistachio_internal_dac *dac = dev_get_drvdata(dev);
@@ -251,11 +250,10 @@ static int pistachio_internal_dac_rt_suspend(struct device *dev)
return 0;
}
-#endif
static const struct dev_pm_ops pistachio_internal_dac_pm_ops = {
- SET_RUNTIME_PM_OPS(pistachio_internal_dac_rt_suspend,
- pistachio_internal_dac_rt_resume, NULL)
+ RUNTIME_PM_OPS(pistachio_internal_dac_rt_suspend,
+ pistachio_internal_dac_rt_resume, NULL)
};
static const struct of_device_id pistachio_internal_dac_of_match[] = {
@@ -268,7 +266,7 @@ static struct platform_driver pistachio_internal_dac_plat_driver = {
.driver = {
.name = "img-pistachio-internal-dac",
.of_match_table = pistachio_internal_dac_of_match,
- .pm = &pistachio_internal_dac_pm_ops
+ .pm = pm_ptr(&pistachio_internal_dac_pm_ops)
},
.probe = pistachio_internal_dac_probe,
.remove = pistachio_internal_dac_remove
--
2.43.0
next prev parent reply other threads:[~2025-03-17 9:59 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-17 9:54 [PATCH v2 00/88] ASoC: Convert to modern PM macros Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 01/88] ASoC: au1x: Convert to DEFINE_SIMPLE_DEV_PM_OPS() Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 02/88] ASoC: ak4375: Convert to RUNTIME_PM_OPS() & co Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 03/88] ASoC: ak4458: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 04/88] ASoC: ak5558: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 05/88] ASoC: cs35l32: Convert to RUNTIME_PM_OPS() Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 06/88] ASoC: cs35l33: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 07/88] ASoC: cs35l34: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 08/88] ASoC: cs4234: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 09/88] ASoC: cs42l42: Convert to RUNTIME_PM_OPS() & co Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 10/88] ASoC: cs42l51: Convert to SYSTEM_SLEEP_PM_OPS() Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 11/88] ASoC: cs42l83: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 12/88] ASoC: cs42xx8: Convert to EXPORT_GPL_DEV_PM_OPS() Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 13/88] ASoC: cs43130: Convert to RUNTIME_PM_OPS() Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 14/88] ASoC: cs4349: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 15/88] ASoC: cs53l30: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 16/88] ASoC: cx2072x: Convert to RUNTIME_PM_OPS() & co Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 17/88] ASoC: da7213: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 18/88] ASoC: hdac_hdmi: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 19/88] ASoC: lpass: Convert to RUNTIME_PM_OPS() Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 20/88] ASoC: max98090: Convert to RUNTIME_PM_OPS() & co Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 21/88] ASoC: max98373: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 22/88] ASoC: max98390: Convert to SYSTEM_SLEEP_PM_OPS() Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 23/88] ASoC: max98396: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 24/88] ASoC: max98520: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 25/88] ASoC: max9860: Convert to RUNTIME_PM_OPS() Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 26/88] ASoC: max98927: Convert to SYSTEM_SLEEP_PM_OPS() Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 27/88] ASoC: mt6660: Convert to RUNTIME_PM_OPS() Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 28/88] ASoC: pcm512x: Convert to EXPORT_GPL_DEV_PM_OPS() Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 29/88] ASoC: rt1017-sdca-sdw: Convert to RUNTIME_PM_OPS() & co Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 30/88] ASoC: rt1308-sdw: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 31/88] ASoC: rt1316-sdw: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 32/88] ASoC: rt1318-sdw: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 33/88] ASoC: rt1320-sdw: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 34/88] ASoC: rt5514: Convert to SYSTEM_SLEEP_PM_OPS() Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 35/88] ASoC: rt5645: " Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 36/88] ASoC: rt5682-sdw: Convert to RUNTIME_PM_OPS() & co Takashi Iwai
2025-03-17 9:54 ` [PATCH v2 37/88] ASoC: rt700-sdw: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 38/88] ASoC: rt711: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 39/88] ASoC: rt712: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 40/88] ASoC: rt715: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 41/88] ASoC: rt721: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 42/88] ASoC: rt722: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 43/88] ASoC: rt9120: Convert to RUNTIME_PM_OPS() Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 44/88] ASoC: rtq9128: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 45/88] ASoC: tas2552: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 46/88] ASoC: ts3a227e: Convert to SYSTEM_SLEEP_PM_OPS() Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 47/88] ASoC: wcd937x: Convert to RUNTIME_PM_OPS() Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 48/88] ASoC: wcd938x: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 49/88] ASoC: wcd939x: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 50/88] ASoC: wm2200: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 51/88] ASoC: wm5100: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 52/88] ASoC: wm8804: Convert to EXPORT_GPL_DEV_PM_OPS() Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 53/88] ASoC: wm8962: Convert to RUNTIME_PM_OPS() & co Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 54/88] ASoC: wm8994: Convert to SYSTEM_SLEEP_PM_OPS() Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 55/88] ASoC: wsa881x: Convert to RUNTIME_PM_OPS() Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 56/88] ASoC: wsa883x: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 57/88] ASoC: wsa884x: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 58/88] ASoC: dwc: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 59/88] ASoC: fsl: Convert to RUNTIME_PM_OPS() and co Takashi Iwai
2025-03-17 9:55 ` Takashi Iwai [this message]
2025-03-17 9:55 ` [PATCH v2 61/88] ASoC: intel: avs: Convert to RUNTIME_PM_OPS() Takashi Iwai
2025-03-17 10:04 ` Cezary Rojewski
2025-03-17 9:55 ` [PATCH v2 62/88] ASoC: intel: catpt: Convert to RUNTIME_PM_OPS() & co Takashi Iwai
2025-03-17 10:08 ` Cezary Rojewski
2025-03-17 10:13 ` Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 63/88] ASoC: mediatek: mt2701: Convert to RUNTIME_PM_OPS() Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 64/88] ASoC: mediatek: mt6797: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 65/88] ASoC: mediatek: mt7986: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 66/88] ASoC: mediatek: mt8173: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 67/88] ASoC: mediatek: mt8183: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 68/88] ASoC: mediatek: mt8186: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 69/88] ASoC: mediatek: mt8188: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 70/88] ASoC: mediatek: mt8192: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 71/88] ASoC: mediatek: mt8195: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 72/88] ASoC: mediatek: mt8365: Convert to RUNTIME_PM_OPS() & co Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 73/88] ASoC: qcom: Convert to SYSTEM_SLEEP_PM_OPS() Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 74/88] ASoC: rcar: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 75/88] ASoC: rockchip: Convert to RUNTIME_PM_OPS() & co Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 76/88] ASoC: samsung: " Takashi Iwai
2025-03-17 11:39 ` Sylwester Nawrocki
2025-03-17 9:55 ` [PATCH v2 77/88] ASoC: SOF: acpi: Convert to EXPORT_NS_DEV_PM_OPS() Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 78/88] ASoC: SOF: pci: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 79/88] ASoC: SOF: of: Convert to EXPORT_DEV_PM_OPS() Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 80/88] ASoC: stm: Convert to SYSTEM_SLEEP_PM_OPS() Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 81/88] ASoC: sunxi: Convert to RUNTIME_PM_OPS() Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 82/88] ASoC: tegra186: Convert to RUNTIME_PM_OPS() & co Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 83/88] ASoC: tegra210: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 84/88] ASoC: tegra20: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 85/88] ASoC: tegra30: " Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 86/88] ASoC: xtensa: Convert to RUNTIME_PM_OPS() Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 87/88] ASoC: amd: Convert to RUNTIME_PM_OPS() & co Takashi Iwai
2025-03-17 9:55 ` [PATCH v2 88/88] ASoC: pcm3168a: Convert to EXPORT_GPL_DEV_PM_OPS() Takashi Iwai
2025-03-17 21:54 ` [PATCH v2 00/88] ASoC: Convert to modern PM macros Mark Brown
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=20250317095603.20073-61-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=broonie@kernel.org \
--cc=linux-sound@vger.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox