From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Shang Ye <yesh25@mail2.sysu.edu.cn>,
gurevitch <mail@gurevit.ch>, Egor Ignatov <egori@altlinux.org>,
Anton Zhilyaev <anton@cpp.in>,
Hans de Goede <hdegoede@redhat.com>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.1 058/100] Input: atkbd - skip ATKBD_CMD_GETID in translated mode
Date: Thu, 18 Jan 2024 11:49:06 +0100 [thread overview]
Message-ID: <20240118104313.440709242@linuxfoundation.org> (raw)
In-Reply-To: <20240118104310.892180084@linuxfoundation.org>
6.1-stable review patch. If anyone has any objections, please let me know.
------------------
From: Hans de Goede <hdegoede@redhat.com>
[ Upstream commit 936e4d49ecbc8c404790504386e1422b599dec39 ]
There have been multiple reports of keyboard issues on recent laptop models
which can be worked around by setting i8042.dumbkbd, with the downside
being this breaks the capslock LED.
It seems that these issues are caused by recent laptops getting confused by
ATKBD_CMD_GETID. Rather then adding and endless growing list of quirks for
this, just skip ATKBD_CMD_GETID alltogether on laptops in translated mode.
The main goal of sending ATKBD_CMD_GETID is to skip binding to ps/2
mice/touchpads and those are never used in translated mode.
Examples of laptop models which benefit from skipping ATKBD_CMD_GETID:
* "HP Laptop 15s-fq2xxx", "HP laptop 15s-fq4xxx" and "HP Laptop 15-dy2xxx"
models the kbd stops working for the first 2 - 5 minutes after boot
(waiting for EC watchdog reset?)
* On "HP Spectre x360 13-aw2xxx" atkbd fails to probe the keyboard
* At least 9 different Lenovo models have issues with ATKBD_CMD_GETID, see:
https://github.com/yescallop/atkbd-nogetid
This has been tested on:
1. A MSI B550M PRO-VDH WIFI desktop, where the i8042 controller is not
in translated mode when no keyboard is plugged in and with a ps/2 kbd
a "AT Translated Set 2 keyboard" /dev/input/event# node shows up
2. A Lenovo ThinkPad X1 Yoga gen 8 (always has a translated set 2 keyboard)
Reported-by: Shang Ye <yesh25@mail2.sysu.edu.cn>
Closes: https://lore.kernel.org/linux-input/886D6167733841AE+20231017135318.11142-1-yesh25@mail2.sysu.edu.cn/
Closes: https://github.com/yescallop/atkbd-nogetid
Reported-by: gurevitch <mail@gurevit.ch>
Closes: https://lore.kernel.org/linux-input/2iAJTwqZV6lQs26cTb38RNYqxvsink6SRmrZ5h0cBUSuf9NT0tZTsf9fEAbbto2maavHJEOP8GA1evlKa6xjKOsaskDhtJWxjcnrgPigzVo=@gurevit.ch/
Reported-by: Egor Ignatov <egori@altlinux.org>
Closes: https://lore.kernel.org/all/20210609073333.8425-1-egori@altlinux.org/
Reported-by: Anton Zhilyaev <anton@cpp.in>
Closes: https://lore.kernel.org/linux-input/20210201160336.16008-1-anton@cpp.in/
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=2086156
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20231115174625.7462-1-hdegoede@redhat.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/input/keyboard/atkbd.c | 46 +++++++++++++++++++++++++++++++---
1 file changed, 42 insertions(+), 4 deletions(-)
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index 246958795f60..e1e4f1133296 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -746,6 +746,44 @@ static void atkbd_deactivate(struct atkbd *atkbd)
ps2dev->serio->phys);
}
+#ifdef CONFIG_X86
+static bool atkbd_is_portable_device(void)
+{
+ static const char * const chassis_types[] = {
+ "8", /* Portable */
+ "9", /* Laptop */
+ "10", /* Notebook */
+ "14", /* Sub-Notebook */
+ "31", /* Convertible */
+ "32", /* Detachable */
+ };
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(chassis_types); i++)
+ if (dmi_match(DMI_CHASSIS_TYPE, chassis_types[i]))
+ return true;
+
+ return false;
+}
+
+/*
+ * On many modern laptops ATKBD_CMD_GETID may cause problems, on these laptops
+ * the controller is always in translated mode. In this mode mice/touchpads will
+ * not work. So in this case simply assume a keyboard is connected to avoid
+ * confusing some laptop keyboards.
+ *
+ * Skipping ATKBD_CMD_GETID ends up using a fake keyboard id. Using a fake id is
+ * ok in translated mode, only atkbd_select_set() checks atkbd->id and in
+ * translated mode that is a no-op.
+ */
+static bool atkbd_skip_getid(struct atkbd *atkbd)
+{
+ return atkbd->translated && atkbd_is_portable_device();
+}
+#else
+static inline bool atkbd_skip_getid(struct atkbd *atkbd) { return false; }
+#endif
+
/*
* atkbd_probe() probes for an AT keyboard on a serio port.
*/
@@ -775,12 +813,12 @@ static int atkbd_probe(struct atkbd *atkbd)
*/
param[0] = param[1] = 0xa5; /* initialize with invalid values */
- if (ps2_command(ps2dev, param, ATKBD_CMD_GETID)) {
+ if (atkbd_skip_getid(atkbd) || ps2_command(ps2dev, param, ATKBD_CMD_GETID)) {
/*
- * If the get ID command failed, we check if we can at least set the LEDs on
- * the keyboard. This should work on every keyboard out there. It also turns
- * the LEDs off, which we want anyway.
+ * If the get ID command was skipped or failed, we check if we can at least set
+ * the LEDs on the keyboard. This should work on every keyboard out there.
+ * It also turns the LEDs off, which we want anyway.
*/
param[0] = 0;
if (ps2_command(ps2dev, param, ATKBD_CMD_SETLEDS))
--
2.43.0
next prev parent reply other threads:[~2024-01-18 11:00 UTC|newest]
Thread overview: 119+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-18 10:48 [PATCH 6.1 000/100] 6.1.74-rc1 review Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 001/100] f2fs: explicitly null-terminate the xattr list Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 002/100] pinctrl: lochnagar: Dont build on MIPS Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 003/100] ALSA: hda - Fix speaker and headset mic pin config for CHUWI CoreBook XPro Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 004/100] mptcp: fix uninit-value in mptcp_incoming_options Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 005/100] wifi: cfg80211: lock wiphy mutex for rfkill poll Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 006/100] wifi: avoid offset calculation on NULL pointer Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 007/100] wifi: mac80211: handle 320 MHz in ieee80211_ht_cap_ie_to_sta_ht_cap Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 008/100] debugfs: fix automount d_fsdata usage Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 009/100] ALSA: hda: intel-nhlt: Ignore vbps when looking for DMIC 32 bps format Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 010/100] nvme-core: fix a memory leak in nvme_ns_info_from_identify() Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 011/100] drm/amd/display: update dcn315 lpddr pstate latency Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 012/100] drm/amdgpu: Fix cat debugfs amdgpu_regs_didt causes kernel null pointer Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 013/100] smb: client, common: fix fortify warnings Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 014/100] blk-mq: dont count completed flush data request as inflight in case of quiesce Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 015/100] nvme-core: check for too small lba shift Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 016/100] hwtracing: hisi_ptt: Handle the interrupt in hardirq context Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 017/100] hwtracing: hisi_ptt: Dont try to attach a task Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 018/100] ASoC: wm8974: Correct boost mixer inputs Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 019/100] arm64: dts: rockchip: fix rk356x pcie msg interrupt name Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 020/100] ASoC: Intel: Skylake: Fix mem leak in few functions Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 021/100] ASoC: nau8822: Fix incorrect type in assignment and cast to restricted __be16 Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 022/100] ASoC: Intel: Skylake: mem leak in skl register function Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 023/100] ASoC: cs43130: Fix the position of const qualifier Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 024/100] ASoC: cs43130: Fix incorrect frame delay configuration Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 025/100] ASoC: rt5650: add mutex to avoid the jack detection failure Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 026/100] ASoC: Intel: skl_hda_dsp_generic: Drop HDMI routes when HDMI is not available Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 027/100] nouveau/tu102: flush all pdbs on vmm flush Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 028/100] ASoC: amd: yc: Add DMI entry to support System76 Pangolin 13 Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 029/100] ASoC: hdac_hda: Conditionally register dais for HDMI and Analog Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 030/100] net/tg3: fix race condition in tg3_reset_task() Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 031/100] ASoC: da7219: Support low DC impedance headset Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 032/100] ASoC: ops: add correct range check for limiting volume Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 033/100] nvme: introduce helper function to get ctrl state Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 034/100] nvme: prevent potential spectre v1 gadget Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 035/100] arm64: dts: rockchip: Fix PCI node addresses on rk3399-gru Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 036/100] mips/smp: Call rcutree_report_cpu_starting() earlier Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 037/100] drm/amdgpu: Add NULL checks for function pointers Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 038/100] drm/exynos: fix a potential error pointer dereference Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 039/100] drm/exynos: fix a wrong error checking Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 040/100] hwmon: (corsair-psu) Fix probe when built-in Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 041/100] LoongArch: Preserve syscall nr across execve() Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 042/100] clk: rockchip: rk3568: Add PLL rate for 292.5MHz Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 043/100] clk: rockchip: rk3128: Fix HCLK_OTG gate register Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 044/100] jbd2: correct the printing of write_flags in jbd2_write_superblock() Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 045/100] jbd2: increase the journal IOs priority Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 046/100] drm/crtc: Fix uninit-value bug in drm_mode_setcrtc Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 047/100] neighbour: Dont let neigh_forced_gc() disable preemption for long Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 048/100] platform/x86: intel-vbtn: Fix missing tablet-mode-switch events Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 049/100] jbd2: fix soft lockup in journal_finish_inode_data_buffers() Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 050/100] tracing: Have large events show up as [LINE TOO BIG] instead of nothing Greg Kroah-Hartman
2024-01-18 10:48 ` [PATCH 6.1 051/100] tracing: Add size check when printing trace_marker output Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 052/100] stmmac: dwmac-loongson: drop useless check for compatible fallback Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 053/100] MIPS: dts: loongson: drop incorrect dwmac fallback compatible Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 054/100] tracing: Fix uaf issue when open the hist or hist_debug file Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 055/100] ring-buffer: Do not record in NMI if the arch does not support cmpxchg in NMI Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 056/100] Input: psmouse - enable Synaptics InterTouch for ThinkPad L14 G1 Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 057/100] reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning Greg Kroah-Hartman
2024-01-18 10:49 ` Greg Kroah-Hartman [this message]
2024-01-18 10:49 ` [PATCH 6.1 059/100] Input: i8042 - add nomux quirk for Acer P459-G2-M Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 060/100] s390/scm: fix virtual vs physical address confusion Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 061/100] ARC: fix spare error Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 062/100] wifi: iwlwifi: pcie: avoid a NULL pointer dereference Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 063/100] Input: xpad - add Razer Wolverine V2 support Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 064/100] kselftest: alsa: fixed a print formatting warning Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 065/100] HID: nintendo: fix initializer element is not constant error Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 066/100] platform/x86: thinkpad_acpi: fix for incorrect fan reporting on some ThinkPad systems Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 067/100] ASoC: Intel: bytcr_rt5640: Add quirk for the Medion Lifetab S10346 Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 068/100] ASoC: Intel: bytcr_rt5640: Add new swapped-speakers quirk Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 069/100] ALSA: hda/realtek: Add quirks for ASUS Zenbook 2022 Models Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 070/100] dm audit: fix Kconfig so DM_AUDIT depends on BLK_DEV_DM Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 071/100] HID: nintendo: Prevent divide-by-zero on code Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 072/100] smb: client: fix potential OOB in smb2_dump_detail() Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 073/100] i2c: rk3x: fix potential spinlock recursion on poll Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 074/100] drm/amd/display: get dprefclk ss info from integration info table Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 075/100] pinctrl: cy8c95x0: Fix typo Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 076/100] pinctrl: cy8c95x0: Fix get_pincfg Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 077/100] ida: Fix crash in ida_free when the bitmap is empty Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 078/100] virtio_blk: fix snprintf truncation compiler warning Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 079/100] net: qrtr: ns: Return 0 if server port is not present Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 080/100] ARM: sun9i: smp: fix return code check of of_property_match_string Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 081/100] drm/crtc: fix uninitialized variable use Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 082/100] ALSA: hda/realtek: Fix mute and mic-mute LEDs for HP Envy X360 13-ay0xxx Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 083/100] ACPI: resource: Add another DMI match for the TongFang GMxXGxx Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 084/100] ASoC: SOF: Intel: hda-codec: Delay the codec device registration Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 085/100] btf, scripts: Exclude Rust CUs with pahole Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 086/100] bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25 Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 087/100] ksmbd: dont allow O_TRUNC open on read-only share Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 088/100] ksmbd: free ppace array on error in parse_dacl Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 089/100] Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d" Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 090/100] binder: use EPOLLERR from eventpoll.h Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 091/100] binder: fix use-after-free in shinkers callback Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 092/100] binder: fix trivial typo of binder_free_buf_locked() Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 093/100] binder: fix comment on binder_alloc_new_buf() return value Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 094/100] uio: Fix use-after-free in uio_open Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 095/100] parport: parport_serial: Add Brainboxes BAR details Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 096/100] parport: parport_serial: Add Brainboxes device IDs and geometry Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 097/100] leds: ledtrig-tty: Free allocated ttyname buffer on deactivate Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 098/100] PCI: Add ACS quirk for more Zhaoxin Root Ports Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 099/100] coresight: etm4x: Fix width of CCITMIN field Greg Kroah-Hartman
2024-01-18 10:49 ` [PATCH 6.1 100/100] scripts/decode_stacktrace.sh: optionally use LLVM utilities Greg Kroah-Hartman
2024-01-18 11:36 ` [PATCH 6.1 000/100] 6.1.74-rc1 review Pavel Machek
2024-01-18 18:35 ` SeongJae Park
2024-01-18 19:10 ` Florian Fainelli
2024-01-19 3:52 ` Naresh Kamboju
2024-01-19 5:40 ` Greg Kroah-Hartman
2024-01-19 16:07 ` Stefan Wiehler
2024-01-19 16:10 ` Greg Kroah-Hartman
2024-01-19 16:38 ` [PATCH] mips/smp: Call rcu_cpu_starting() earlier Stefan Wiehler
2024-01-20 6:38 ` Greg Kroah-Hartman
2024-01-21 16:52 ` Florian Fainelli
2024-01-22 17:07 ` Greg Kroah-Hartman
2024-01-18 20:13 ` [PATCH 6.1 000/100] 6.1.74-rc1 review Sven Joachim
2024-01-19 0:44 ` Shuah Khan
2024-01-19 1:05 ` Allen
2024-01-19 8:59 ` Yann Sionneau
2024-01-19 14:11 ` Jon Hunter
2024-01-20 0:46 ` Ron Economos
2024-01-20 2:18 ` Miguel Ojeda
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=20240118104313.440709242@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=anton@cpp.in \
--cc=dmitry.torokhov@gmail.com \
--cc=egori@altlinux.org \
--cc=hdegoede@redhat.com \
--cc=mail@gurevit.ch \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
--cc=yesh25@mail2.sysu.edu.cn \
/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;
as well as URLs for NNTP newsgroup(s).