From: Icenowy Zheng <icenowy@aosc.io> To: Jagan Teki <jagan@amarulasolutions.com>, Maxime Ripard <mripard@kernel.org>, Chen-Yu Tsai <wens@csie.org>, David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch> Cc: michael@amarulasolutions.com, linux-sunxi <linux-sunxi@googlegroups.com>, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: Re: [PATCH v11 1/7] drm/sun4i: dsi: Fix TCON DRQ set bits Date: Thu, 03 Oct 2019 14:51:42 +0800 [thread overview] Message-ID: <DB2FB6E5-E4B5-40F4-A05F-9A2303FCA1AE@aosc.io> (raw) In-Reply-To: <20191003064527.15128-2-jagan@amarulasolutions.com> 于 2019年10月3日 GMT+08:00 下午2:45:21, Jagan Teki <jagan@amarulasolutions.com> 写到: >The LCD timing definitions between Linux DRM vs Allwinner are >different, >below diagram shows this clear differences. > > Active Front Sync Back > Region Porch Porch ><-----------------------><----------------><--------------><--------------> > //////////////////////| > ////////////////////// | >////////////////////// |.................. >................ > ________________ ><----- [hv]display -----> ><------------- [hv]sync_start ------------> ><--------------------- [hv]sync_end ----------------------> ><-------------------------------- [hv]total >------------------------------> > ><----- lcd_[xy] --------> <- lcd_[hv]spw -> > <---------- lcd_[hv]bp ---------> ><-------------------------------- lcd_[hv]t >------------------------------> > >The DSI driver misinterpreted the hbp term from the BSP code to refer >only to the backporch, when in fact it was backporch + sync. Thus the >driver incorrectly used the horizontal front porch plus sync in its >calculation of the DRQ set bit value, when it should not have included >the sync timing. > >Including additional sync timings leads to flip_done timed out as: I don't think attaching this error infomation is useful at all. It's just timing mismatch. > >WARNING: CPU: 0 PID: 31 at drivers/gpu/drm/drm_atomic_helper.c:1429 >drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0 >[CRTC:46:crtc-0] vblank wait timed out >Modules linked in: >CPU: 0 PID: 31 Comm: kworker/0:1 Not tainted >5.1.0-next-20190514-00026-g01f0c75b902d-dirty #13 >Hardware name: Allwinner sun8i Family >Workqueue: events deferred_probe_work_func >[<c010ed54>] (unwind_backtrace) from [<c010b76c>] >(show_stack+0x10/0x14) >[<c010b76c>] (show_stack) from [<c0688c70>] (dump_stack+0x84/0x98) >[<c0688c70>] (dump_stack) from [<c011d9e4>] (__warn+0xfc/0x114) >[<c011d9e4>] (__warn) from [<c011da40>] (warn_slowpath_fmt+0x44/0x68) >[<c011da40>] (warn_slowpath_fmt) from [<c040cd50>] >(drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0) >[<c040cd50>] (drm_atomic_helper_wait_for_vblanks.part.1) from >[<c040e694>] (drm_atomic_helper_commit_tail_rpm+0x5c/0x6c) >[<c040e694>] (drm_atomic_helper_commit_tail_rpm) from [<c040e4dc>] >(commit_tail+0x40/0x6c) >[<c040e4dc>] (commit_tail) from [<c040e5cc>] >(drm_atomic_helper_commit+0xbc/0x128) >[<c040e5cc>] (drm_atomic_helper_commit) from [<c0411b64>] >(restore_fbdev_mode_atomic+0x1cc/0x1dc) >[<c0411b64>] (restore_fbdev_mode_atomic) from [<c04156f8>] >(drm_fb_helper_restore_fbdev_mode_unlocked+0x54/0xa0) >[<c04156f8>] (drm_fb_helper_restore_fbdev_mode_unlocked) from >[<c0415774>] (drm_fb_helper_set_par+0x30/0x54) >[<c0415774>] (drm_fb_helper_set_par) from [<c03ad450>] >(fbcon_init+0x560/0x5ac) >[<c03ad450>] (fbcon_init) from [<c03eb8a0>] (visual_init+0xbc/0x104) >[<c03eb8a0>] (visual_init) from [<c03ed1b8>] >(do_bind_con_driver+0x1b0/0x390) >[<c03ed1b8>] (do_bind_con_driver) from [<c03ed780>] >(do_take_over_console+0x13c/0x1c4) >[<c03ed780>] (do_take_over_console) from [<c03ad800>] >(do_fbcon_takeover+0x74/0xcc) >[<c03ad800>] (do_fbcon_takeover) from [<c013c9c8>] >(notifier_call_chain+0x44/0x84) >[<c013c9c8>] (notifier_call_chain) from [<c013cd20>] >(__blocking_notifier_call_chain+0x48/0x60) >[<c013cd20>] (__blocking_notifier_call_chain) from [<c013cd50>] >(blocking_notifier_call_chain+0x18/0x20) >[<c013cd50>] (blocking_notifier_call_chain) from [<c03a6e44>] >(register_framebuffer+0x1e0/0x2f8) >[<c03a6e44>] (register_framebuffer) from [<c04153c0>] >(__drm_fb_helper_initial_config_and_unlock+0x2fc/0x50c) >[<c04153c0>] (__drm_fb_helper_initial_config_and_unlock) from >[<c04158c8>] (drm_fbdev_client_hotplug+0xe8/0x1b8) >[<c04158c8>] (drm_fbdev_client_hotplug) from [<c0415a20>] >(drm_fbdev_generic_setup+0x88/0x118) >[<c0415a20>] (drm_fbdev_generic_setup) from [<c043f060>] >(sun4i_drv_bind+0x128/0x160) >[<c043f060>] (sun4i_drv_bind) from [<c044b598>] >(try_to_bring_up_master+0x164/0x1a0) >[<c044b598>] (try_to_bring_up_master) from [<c044b668>] >(__component_add+0x94/0x140) >[<c044b668>] (__component_add) from [<c0445e1c>] >(sun6i_dsi_probe+0x144/0x234) >[<c0445e1c>] (sun6i_dsi_probe) from [<c0452ef4>] >(platform_drv_probe+0x48/0x9c) >[<c0452ef4>] (platform_drv_probe) from [<c04512cc>] >(really_probe+0x1dc/0x2c8) >[<c04512cc>] (really_probe) from [<c0451518>] >(driver_probe_device+0x60/0x160) >[<c0451518>] (driver_probe_device) from [<c044f7a4>] >(bus_for_each_drv+0x74/0xb8) >[<c044f7a4>] (bus_for_each_drv) from [<c045107c>] >(__device_attach+0xd0/0x13c) >[<c045107c>] (__device_attach) from [<c0450474>] >(bus_probe_device+0x84/0x8c) >[<c0450474>] (bus_probe_device) from [<c0450900>] >(deferred_probe_work_func+0x64/0x90) >[<c0450900>] (deferred_probe_work_func) from [<c0135970>] >(process_one_work+0x204/0x420) >[<c0135970>] (process_one_work) from [<c013690c>] >(worker_thread+0x274/0x5a0) >[<c013690c>] (worker_thread) from [<c013b3d8>] (kthread+0x11c/0x14c) >[<c013b3d8>] (kthread) from [<c01010e8>] (ret_from_fork+0x14/0x2c) >Exception stack(0xde539fb0 to 0xde539ff8) >9fa0: 00000000 00000000 00000000 >00000000 >9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 >00000000 >9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 >---[ end trace b57eb1e5c64c6b8b ]--- >random: fast init done >[drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:46:crtc-0] >flip_done timed out >[drm:drm_atomic_helper_wait_for_dependencies] *ERROR* >[CONNECTOR:48:DSI-1] flip_done timed out >[drm:drm_atomic_helper_wait_for_dependencies] *ERROR* >[PLANE:30:plane-0] flip_done timed out > >With the terms(as described in above diagram) fixed, the panel >displays correctly without any timeouts. > >Tested-by: Merlijn Wajer <merlijn@wizzup.org> >Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> >--- > drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > >diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c >b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c >index 1636344ba9ec..f83522717488 100644 >--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c >+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c >@@ -437,9 +437,9 @@ static void sun6i_dsi_setup_burst(struct sun6i_dsi >*dsi, > SUN6I_DSI_BURST_LINE_SYNC_POINT(SUN6I_DSI_SYNC_POINT)); > > val = SUN6I_DSI_TCON_DRQ_ENABLE_MODE; >- } else if ((mode->hsync_end - mode->hdisplay) > 20) { >+ } else if ((mode->hsync_start - mode->hdisplay) > 20) { > /* Maaaaaagic */ >- u16 drq = (mode->hsync_end - mode->hdisplay) - 20; >+ u16 drq = (mode->hsync_start - mode->hdisplay) - 20; > > drq *= mipi_dsi_pixel_format_to_bpp(device->format); > drq /= 32; -- 使用 K-9 Mail 发送自我的Android设备。
WARNING: multiple messages have this Message-ID (diff)
From: Icenowy Zheng <icenowy@aosc.io> To: Jagan Teki <jagan@amarulasolutions.com>, Maxime Ripard <mripard@kernel.org>, Chen-Yu Tsai <wens@csie.org>, David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch> Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-sunxi <linux-sunxi@googlegroups.com>, michael@amarulasolutions.com, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v11 1/7] drm/sun4i: dsi: Fix TCON DRQ set bits Date: Thu, 03 Oct 2019 14:51:42 +0800 [thread overview] Message-ID: <DB2FB6E5-E4B5-40F4-A05F-9A2303FCA1AE@aosc.io> (raw) In-Reply-To: <20191003064527.15128-2-jagan@amarulasolutions.com> 于 2019年10月3日 GMT+08:00 下午2:45:21, Jagan Teki <jagan@amarulasolutions.com> 写到: >The LCD timing definitions between Linux DRM vs Allwinner are >different, >below diagram shows this clear differences. > > Active Front Sync Back > Region Porch Porch ><-----------------------><----------------><--------------><--------------> > //////////////////////| > ////////////////////// | >////////////////////// |.................. >................ > ________________ ><----- [hv]display -----> ><------------- [hv]sync_start ------------> ><--------------------- [hv]sync_end ----------------------> ><-------------------------------- [hv]total >------------------------------> > ><----- lcd_[xy] --------> <- lcd_[hv]spw -> > <---------- lcd_[hv]bp ---------> ><-------------------------------- lcd_[hv]t >------------------------------> > >The DSI driver misinterpreted the hbp term from the BSP code to refer >only to the backporch, when in fact it was backporch + sync. Thus the >driver incorrectly used the horizontal front porch plus sync in its >calculation of the DRQ set bit value, when it should not have included >the sync timing. > >Including additional sync timings leads to flip_done timed out as: I don't think attaching this error infomation is useful at all. It's just timing mismatch. > >WARNING: CPU: 0 PID: 31 at drivers/gpu/drm/drm_atomic_helper.c:1429 >drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0 >[CRTC:46:crtc-0] vblank wait timed out >Modules linked in: >CPU: 0 PID: 31 Comm: kworker/0:1 Not tainted >5.1.0-next-20190514-00026-g01f0c75b902d-dirty #13 >Hardware name: Allwinner sun8i Family >Workqueue: events deferred_probe_work_func >[<c010ed54>] (unwind_backtrace) from [<c010b76c>] >(show_stack+0x10/0x14) >[<c010b76c>] (show_stack) from [<c0688c70>] (dump_stack+0x84/0x98) >[<c0688c70>] (dump_stack) from [<c011d9e4>] (__warn+0xfc/0x114) >[<c011d9e4>] (__warn) from [<c011da40>] (warn_slowpath_fmt+0x44/0x68) >[<c011da40>] (warn_slowpath_fmt) from [<c040cd50>] >(drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0) >[<c040cd50>] (drm_atomic_helper_wait_for_vblanks.part.1) from >[<c040e694>] (drm_atomic_helper_commit_tail_rpm+0x5c/0x6c) >[<c040e694>] (drm_atomic_helper_commit_tail_rpm) from [<c040e4dc>] >(commit_tail+0x40/0x6c) >[<c040e4dc>] (commit_tail) from [<c040e5cc>] >(drm_atomic_helper_commit+0xbc/0x128) >[<c040e5cc>] (drm_atomic_helper_commit) from [<c0411b64>] >(restore_fbdev_mode_atomic+0x1cc/0x1dc) >[<c0411b64>] (restore_fbdev_mode_atomic) from [<c04156f8>] >(drm_fb_helper_restore_fbdev_mode_unlocked+0x54/0xa0) >[<c04156f8>] (drm_fb_helper_restore_fbdev_mode_unlocked) from >[<c0415774>] (drm_fb_helper_set_par+0x30/0x54) >[<c0415774>] (drm_fb_helper_set_par) from [<c03ad450>] >(fbcon_init+0x560/0x5ac) >[<c03ad450>] (fbcon_init) from [<c03eb8a0>] (visual_init+0xbc/0x104) >[<c03eb8a0>] (visual_init) from [<c03ed1b8>] >(do_bind_con_driver+0x1b0/0x390) >[<c03ed1b8>] (do_bind_con_driver) from [<c03ed780>] >(do_take_over_console+0x13c/0x1c4) >[<c03ed780>] (do_take_over_console) from [<c03ad800>] >(do_fbcon_takeover+0x74/0xcc) >[<c03ad800>] (do_fbcon_takeover) from [<c013c9c8>] >(notifier_call_chain+0x44/0x84) >[<c013c9c8>] (notifier_call_chain) from [<c013cd20>] >(__blocking_notifier_call_chain+0x48/0x60) >[<c013cd20>] (__blocking_notifier_call_chain) from [<c013cd50>] >(blocking_notifier_call_chain+0x18/0x20) >[<c013cd50>] (blocking_notifier_call_chain) from [<c03a6e44>] >(register_framebuffer+0x1e0/0x2f8) >[<c03a6e44>] (register_framebuffer) from [<c04153c0>] >(__drm_fb_helper_initial_config_and_unlock+0x2fc/0x50c) >[<c04153c0>] (__drm_fb_helper_initial_config_and_unlock) from >[<c04158c8>] (drm_fbdev_client_hotplug+0xe8/0x1b8) >[<c04158c8>] (drm_fbdev_client_hotplug) from [<c0415a20>] >(drm_fbdev_generic_setup+0x88/0x118) >[<c0415a20>] (drm_fbdev_generic_setup) from [<c043f060>] >(sun4i_drv_bind+0x128/0x160) >[<c043f060>] (sun4i_drv_bind) from [<c044b598>] >(try_to_bring_up_master+0x164/0x1a0) >[<c044b598>] (try_to_bring_up_master) from [<c044b668>] >(__component_add+0x94/0x140) >[<c044b668>] (__component_add) from [<c0445e1c>] >(sun6i_dsi_probe+0x144/0x234) >[<c0445e1c>] (sun6i_dsi_probe) from [<c0452ef4>] >(platform_drv_probe+0x48/0x9c) >[<c0452ef4>] (platform_drv_probe) from [<c04512cc>] >(really_probe+0x1dc/0x2c8) >[<c04512cc>] (really_probe) from [<c0451518>] >(driver_probe_device+0x60/0x160) >[<c0451518>] (driver_probe_device) from [<c044f7a4>] >(bus_for_each_drv+0x74/0xb8) >[<c044f7a4>] (bus_for_each_drv) from [<c045107c>] >(__device_attach+0xd0/0x13c) >[<c045107c>] (__device_attach) from [<c0450474>] >(bus_probe_device+0x84/0x8c) >[<c0450474>] (bus_probe_device) from [<c0450900>] >(deferred_probe_work_func+0x64/0x90) >[<c0450900>] (deferred_probe_work_func) from [<c0135970>] >(process_one_work+0x204/0x420) >[<c0135970>] (process_one_work) from [<c013690c>] >(worker_thread+0x274/0x5a0) >[<c013690c>] (worker_thread) from [<c013b3d8>] (kthread+0x11c/0x14c) >[<c013b3d8>] (kthread) from [<c01010e8>] (ret_from_fork+0x14/0x2c) >Exception stack(0xde539fb0 to 0xde539ff8) >9fa0: 00000000 00000000 00000000 >00000000 >9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 >00000000 >9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 >---[ end trace b57eb1e5c64c6b8b ]--- >random: fast init done >[drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:46:crtc-0] >flip_done timed out >[drm:drm_atomic_helper_wait_for_dependencies] *ERROR* >[CONNECTOR:48:DSI-1] flip_done timed out >[drm:drm_atomic_helper_wait_for_dependencies] *ERROR* >[PLANE:30:plane-0] flip_done timed out > >With the terms(as described in above diagram) fixed, the panel >displays correctly without any timeouts. > >Tested-by: Merlijn Wajer <merlijn@wizzup.org> >Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> >--- > drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > >diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c >b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c >index 1636344ba9ec..f83522717488 100644 >--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c >+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c >@@ -437,9 +437,9 @@ static void sun6i_dsi_setup_burst(struct sun6i_dsi >*dsi, > SUN6I_DSI_BURST_LINE_SYNC_POINT(SUN6I_DSI_SYNC_POINT)); > > val = SUN6I_DSI_TCON_DRQ_ENABLE_MODE; >- } else if ((mode->hsync_end - mode->hdisplay) > 20) { >+ } else if ((mode->hsync_start - mode->hdisplay) > 20) { > /* Maaaaaagic */ >- u16 drq = (mode->hsync_end - mode->hdisplay) - 20; >+ u16 drq = (mode->hsync_start - mode->hdisplay) - 20; > > drq *= mipi_dsi_pixel_format_to_bpp(device->format); > drq /= 32; -- 使用 K-9 Mail 发送自我的Android设备。 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-10-03 6:51 UTC|newest] Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-10-03 6:45 [PATCH v11 0/7] drm/sun4i: dsi: Fixes/updates (A33 reworked!) Jagan Teki 2019-10-03 6:45 ` Jagan Teki 2019-10-03 6:45 ` Jagan Teki 2019-10-03 6:45 ` [PATCH v11 1/7] drm/sun4i: dsi: Fix TCON DRQ set bits Jagan Teki 2019-10-03 6:45 ` Jagan Teki 2019-10-03 6:45 ` Jagan Teki 2019-10-03 6:51 ` Icenowy Zheng [this message] 2019-10-03 6:51 ` Icenowy Zheng 2019-10-03 6:55 ` [linux-sunxi] " Jagan Teki 2019-10-03 6:55 ` Jagan Teki 2019-10-03 13:17 ` Maxime Ripard 2019-10-03 13:17 ` Maxime Ripard 2019-10-03 15:16 ` Jagan Teki 2019-10-03 15:16 ` Jagan Teki 2019-10-03 15:16 ` Jagan Teki 2019-10-07 11:19 ` Maxime Ripard 2019-10-07 11:19 ` Maxime Ripard 2019-10-03 6:45 ` [PATCH v11 2/7] drm/sun4i: dsi: Update start value in video start delay Jagan Teki 2019-10-03 6:45 ` Jagan Teki 2019-10-03 6:52 ` Icenowy Zheng 2019-10-03 6:52 ` Icenowy Zheng 2019-10-03 6:52 ` Icenowy Zheng 2019-10-03 6:45 ` [PATCH v11 3/7] drm/sun4i: dsi: Fix video start delay computation Jagan Teki 2019-10-03 6:45 ` Jagan Teki 2019-10-03 6:45 ` [PATCH v11 4/7] dt-bindings: sun6i-dsi: Add VCC-DSI supply property Jagan Teki 2019-10-03 6:45 ` Jagan Teki 2019-10-03 11:47 ` Maxime Ripard 2019-10-03 11:47 ` Maxime Ripard 2019-10-03 13:04 ` Icenowy Zheng 2019-10-03 13:04 ` Icenowy Zheng 2019-10-03 13:30 ` Maxime Ripard 2019-10-03 13:30 ` Maxime Ripard 2019-10-03 13:30 ` Maxime Ripard 2019-10-03 6:45 ` [PATCH v11 5/7] drm/sun4i: sun6i_mipi_dsi: Add VCC-DSI regulator support Jagan Teki 2019-10-03 6:45 ` Jagan Teki 2019-10-03 6:45 ` Jagan Teki 2019-10-03 6:55 ` Chen-Yu Tsai 2019-10-03 6:55 ` Chen-Yu Tsai 2019-10-03 7:01 ` Jagan Teki 2019-10-03 7:01 ` Jagan Teki 2019-10-03 7:01 ` Jagan Teki 2019-10-03 11:46 ` Maxime Ripard 2019-10-03 11:46 ` Maxime Ripard 2019-10-03 6:45 ` [PATCH v11 6/7] drm/panel: Add Bananapi S070WV20-CT16 ICN6211 MIPI-DSI to RGB bridge Jagan Teki 2019-10-03 6:45 ` Jagan Teki 2019-10-03 6:45 ` Jagan Teki 2019-10-03 6:50 ` Jagan Teki 2019-10-03 6:50 ` Jagan Teki 2019-10-03 6:50 ` Jagan Teki 2019-10-03 6:45 ` [PATCH v11 7/7] ARM: dts: sun8i: bananapi-m2m: Enable Bananapi S070WV20-CT16 DSI panel Jagan Teki 2019-10-03 6:45 ` Jagan Teki 2019-10-03 6:45 ` Jagan Teki 2019-10-03 6:50 ` Jagan Teki 2019-10-03 6:50 ` Jagan Teki 2019-10-03 6:50 ` Jagan Teki
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=DB2FB6E5-E4B5-40F4-A05F-9A2303FCA1AE@aosc.io \ --to=icenowy@aosc.io \ --cc=airlied@linux.ie \ --cc=daniel@ffwll.ch \ --cc=devicetree@vger.kernel.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=jagan@amarulasolutions.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-sunxi@googlegroups.com \ --cc=michael@amarulasolutions.com \ --cc=mripard@kernel.org \ --cc=wens@csie.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.