* [PATCH 0/4] Panel HIMAX support for Microchip's AC40T08A MIPI display
@ 2024-06-25 9:08 Manikandan Muralidharan
2024-06-25 9:08 ` [PATCH 1/4] dt-bindings: display: himax-hx8394: remove reset-gpio from required properties Manikandan Muralidharan
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Manikandan Muralidharan @ 2024-06-25 9:08 UTC (permalink / raw)
To: megi, javierm, neil.armstrong, quic_jesszhan, maarten.lankhorst,
mripard, tzimmermann, airlied, daniel, robh, krzk+dt, conor+dt,
dri-devel, devicetree, linux-kernel
Cc: manikandan.m
This patch series adds panel himax display controller support for the
Microchip's AC40T08A MIPI display.
Manikandan Muralidharan (4):
dt-bindings: display: himax-hx8394: remove reset-gpio from required
properties
drm/panel: himax-hx8394: switch to devm_gpiod_get_optional() for
reset_gpio
dt-bindings: display: himax-hx8394: Add Microchip AC40T08A MIPI
Display panel
drm/panel: himax-hx8394: Add Support for Microchip AC40T08A MIPI
Display Panel
.../bindings/display/panel/himax,hx8394.yaml | 2 +-
drivers/gpu/drm/panel/panel-himax-hx8394.c | 153 +++++++++++++++++-
2 files changed, 153 insertions(+), 2 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/4] dt-bindings: display: himax-hx8394: remove reset-gpio from required properties
2024-06-25 9:08 [PATCH 0/4] Panel HIMAX support for Microchip's AC40T08A MIPI display Manikandan Muralidharan
@ 2024-06-25 9:08 ` Manikandan Muralidharan
2024-06-25 15:39 ` Conor Dooley
2024-06-25 9:08 ` [PATCH 2/4] drm/panel: himax-hx8394: switch to devm_gpiod_get_optional() for reset_gpio Manikandan Muralidharan
` (2 subsequent siblings)
3 siblings, 1 reply; 7+ messages in thread
From: Manikandan Muralidharan @ 2024-06-25 9:08 UTC (permalink / raw)
To: megi, javierm, neil.armstrong, quic_jesszhan, maarten.lankhorst,
mripard, tzimmermann, airlied, daniel, robh, krzk+dt, conor+dt,
dri-devel, devicetree, linux-kernel
Cc: manikandan.m
Remove "reset-gpio" property from required properties list and
make it optional.When interfaced with some boards where reset line is not
populated it leads to driver probe issues.
Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
---
.../devicetree/bindings/display/panel/himax,hx8394.yaml | 1 -
1 file changed, 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml b/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml
index 644387e4fb6f..017cb19ed64f 100644
--- a/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml
+++ b/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml
@@ -46,7 +46,6 @@ properties:
required:
- compatible
- reg
- - reset-gpios
- backlight
- port
- vcc-supply
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/4] drm/panel: himax-hx8394: switch to devm_gpiod_get_optional() for reset_gpio
2024-06-25 9:08 [PATCH 0/4] Panel HIMAX support for Microchip's AC40T08A MIPI display Manikandan Muralidharan
2024-06-25 9:08 ` [PATCH 1/4] dt-bindings: display: himax-hx8394: remove reset-gpio from required properties Manikandan Muralidharan
@ 2024-06-25 9:08 ` Manikandan Muralidharan
2024-06-25 9:08 ` [PATCH 3/4] dt-bindings: display: himax-hx8394: Add Microchip AC40T08A MIPI Display panel Manikandan Muralidharan
2024-06-25 9:08 ` [PATCH 4/4] drm/panel: himax-hx8394: Add Support for Microchip AC40T08A MIPI Display Panel Manikandan Muralidharan
3 siblings, 0 replies; 7+ messages in thread
From: Manikandan Muralidharan @ 2024-06-25 9:08 UTC (permalink / raw)
To: megi, javierm, neil.armstrong, quic_jesszhan, maarten.lankhorst,
mripard, tzimmermann, airlied, daniel, robh, krzk+dt, conor+dt,
dri-devel, devicetree, linux-kernel
Cc: manikandan.m
Switch the driver to use devm_gpiod_get_optional() on reset_gpio to avoid
driver probe issues when reset line is not specified.
Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
---
drivers/gpu/drm/panel/panel-himax-hx8394.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/panel/panel-himax-hx8394.c b/drivers/gpu/drm/panel/panel-himax-hx8394.c
index cb9f46e853de..3be461fc5615 100644
--- a/drivers/gpu/drm/panel/panel-himax-hx8394.c
+++ b/drivers/gpu/drm/panel/panel-himax-hx8394.c
@@ -486,7 +486,7 @@ static int hx8394_probe(struct mipi_dsi_device *dsi)
if (!ctx)
return -ENOMEM;
- ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
+ ctx->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH);
if (IS_ERR(ctx->reset_gpio))
return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio),
"Failed to get reset gpio\n");
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/4] dt-bindings: display: himax-hx8394: Add Microchip AC40T08A MIPI Display panel
2024-06-25 9:08 [PATCH 0/4] Panel HIMAX support for Microchip's AC40T08A MIPI display Manikandan Muralidharan
2024-06-25 9:08 ` [PATCH 1/4] dt-bindings: display: himax-hx8394: remove reset-gpio from required properties Manikandan Muralidharan
2024-06-25 9:08 ` [PATCH 2/4] drm/panel: himax-hx8394: switch to devm_gpiod_get_optional() for reset_gpio Manikandan Muralidharan
@ 2024-06-25 9:08 ` Manikandan Muralidharan
2024-06-25 15:38 ` Conor Dooley
2024-06-25 9:08 ` [PATCH 4/4] drm/panel: himax-hx8394: Add Support for Microchip AC40T08A MIPI Display Panel Manikandan Muralidharan
3 siblings, 1 reply; 7+ messages in thread
From: Manikandan Muralidharan @ 2024-06-25 9:08 UTC (permalink / raw)
To: megi, javierm, neil.armstrong, quic_jesszhan, maarten.lankhorst,
mripard, tzimmermann, airlied, daniel, robh, krzk+dt, conor+dt,
dri-devel, devicetree, linux-kernel
Cc: manikandan.m
Add compatible string for the Microchip's AC40T08A MIPI Display
panel.This panel uses a Himax HX8394 display controller.
Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
---
.../devicetree/bindings/display/panel/himax,hx8394.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml b/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml
index 017cb19ed64f..d547df794b3b 100644
--- a/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml
+++ b/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml
@@ -24,6 +24,7 @@ properties:
- enum:
- hannstar,hsd060bhw4
- powkiddy,x55-panel
+ - microchip,ac40t08a-mipi-panel
- const: himax,hx8394
reg:
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 4/4] drm/panel: himax-hx8394: Add Support for Microchip AC40T08A MIPI Display Panel
2024-06-25 9:08 [PATCH 0/4] Panel HIMAX support for Microchip's AC40T08A MIPI display Manikandan Muralidharan
` (2 preceding siblings ...)
2024-06-25 9:08 ` [PATCH 3/4] dt-bindings: display: himax-hx8394: Add Microchip AC40T08A MIPI Display panel Manikandan Muralidharan
@ 2024-06-25 9:08 ` Manikandan Muralidharan
3 siblings, 0 replies; 7+ messages in thread
From: Manikandan Muralidharan @ 2024-06-25 9:08 UTC (permalink / raw)
To: megi, javierm, neil.armstrong, quic_jesszhan, maarten.lankhorst,
mripard, tzimmermann, airlied, daniel, robh, krzk+dt, conor+dt,
dri-devel, devicetree, linux-kernel
Cc: manikandan.m
Add support for the Microchip AC40T08A MIPI Display panel. This panel uses
a Himax HX8394 display controller and requires a vendor provided init
sequence. The display resolution is 720x1280@60Hz with width and height
of 76mm and 132mm respectively.
Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
---
drivers/gpu/drm/panel/panel-himax-hx8394.c | 151 +++++++++++++++++++++
1 file changed, 151 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-himax-hx8394.c b/drivers/gpu/drm/panel/panel-himax-hx8394.c
index 3be461fc5615..92b03a2f65a3 100644
--- a/drivers/gpu/drm/panel/panel-himax-hx8394.c
+++ b/drivers/gpu/drm/panel/panel-himax-hx8394.c
@@ -339,6 +339,156 @@ static const struct hx8394_panel_desc powkiddy_x55_desc = {
.init_sequence = powkiddy_x55_init_sequence,
};
+static int mchp_ac40t08a_init_sequence(struct hx8394 *ctx)
+{
+ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
+
+ /* DCS commands do not seem to be sent correclty without this delay */
+ msleep(20);
+
+ /* 5.19.8 SETEXTC: Set extension command (B9h) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETEXTC,
+ 0xff, 0x83, 0x94);
+
+ /* 5.19.9 SETMIPI: Set MIPI control (BAh) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETMIPI,
+ 0x63, 0x03, 0x68, 0x6b, 0xb2, 0xc0);
+
+ /* 5.19.2 SETPOWER: Set power (B1h) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETPOWER,
+ 0x48, 0x12, 0x72, 0x09, 0x32, 0x54,
+ 0x71, 0x71, 0x57, 0x47);
+
+ /* 5.19.3 SETDISP: Set display related register (B2h) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETDISP,
+ 0x00, 0x80, 0x64, 0x0c, 0x0d, 0x2f);
+
+ /* 5.19.4 SETCYC: Set display waveform cycles (B4h) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETCYC,
+ 0x73, 0x74, 0x73, 0x74, 0x73, 0x74,
+ 0x01, 0x0c, 0x86, 0x75, 0x00, 0x3f,
+ 0x73, 0x74, 0x73, 0x74, 0x73, 0x74,
+ 0x01, 0x0c, 0x86);
+
+ /* 5.19.5 SETVCOM: Set VCOM voltage (B6h) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETVCOM,
+ 0x6e, 0x6e);
+
+ /* 5.19.19 SETGIP0: Set GIP Option0 (D3h) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP0,
+ 0x00, 0x00, 0x07, 0x07, 0x40, 0x07,
+ 0x0c, 0x00, 0x08, 0x10, 0x08, 0x00,
+ 0x08, 0x54, 0x15, 0x0a, 0x05, 0x0a,
+ 0x02, 0x15, 0x06, 0x05, 0x06, 0x47,
+ 0x44, 0x0a, 0x0a, 0x4b, 0x10, 0x07,
+ 0x07, 0x0c, 0x40);
+
+ /* 5.19.20 Set GIP Option1 (D5h) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP1,
+ 0x1c, 0x1c, 0x1d, 0x1d, 0x00, 0x01,
+ 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x24, 0x25,
+ 0x18, 0x18, 0x26, 0x27, 0x18, 0x18,
+ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+ 0x18, 0x18, 0x20, 0x21, 0x18, 0x18,
+ 0x18, 0x18);
+
+ /* 5.19.21 Set GIP Option2 (D6h) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGIP2,
+ 0x1c, 0x1c, 0x1d, 0x1d, 0x07, 0x06,
+ 0x05, 0x04, 0x03, 0x02, 0x01, 0x00,
+ 0x0b, 0x0a, 0x09, 0x08, 0x21, 0x20,
+ 0x18, 0x18, 0x27, 0x26, 0x18, 0x18,
+ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+ 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
+ 0x18, 0x18, 0x25, 0x24, 0x18, 0x18,
+ 0x18, 0x18);
+
+ /* 5.19.25 SETGAMMA: Set gamma curve related setting (E0h) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETGAMMA,
+ 0x00, 0x0a, 0x15, 0x1b, 0x1e, 0x21,
+ 0x24, 0x22, 0x47, 0x56, 0x65, 0x66,
+ 0x6e, 0x82, 0x88, 0x8b, 0x9a, 0x9d,
+ 0x98, 0xa8, 0xb9, 0x5d, 0x5c, 0x61,
+ 0x66, 0x6a, 0x6f, 0x7f, 0x7f, 0x00,
+ 0x0a, 0x15, 0x1b, 0x1e, 0x21, 0x24,
+ 0x22, 0x47, 0x56, 0x65, 0x65, 0x6e,
+ 0x81, 0x87, 0x8b, 0x98, 0x9d, 0x99,
+ 0xa8, 0xba, 0x5d, 0x5d, 0x62, 0x67,
+ 0x6b, 0x72, 0x7f, 0x7f);
+
+ /* Unknown command, not listed in the HX8394-F datasheet (C0H) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_UNKNOWN1,
+ 0x1f, 0x73);
+
+ /* Set CABC control (C9h)*/
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETCABC,
+ 0x76, 0x00, 0x30);
+
+ /* 5.19.17 SETPANEL (CCh) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETPANEL,
+ 0x0b);
+
+ /* Unknown command, not listed in the HX8394-F datasheet (D4h) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_UNKNOWN3,
+ 0x02);
+
+ /* 5.19.11 Set register bank (BDh) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETREGBANK,
+ 0x02);
+
+ /* 5.19.11 Set register bank (D8h) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_UNKNOWN4,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff);
+
+ /* 5.19.11 Set register bank (BDh) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETREGBANK,
+ 0x00);
+
+ /* 5.19.11 Set register bank (BDh) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETREGBANK,
+ 0x01);
+
+ /* 5.19.2 SETPOWER: Set power (B1h) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETPOWER,
+ 0x00);
+
+ /* 5.19.11 Set register bank (BDh) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_SETREGBANK,
+ 0x00);
+
+ /* Unknown command, not listed in the HX8394-F datasheet (C6h) */
+ mipi_dsi_dcs_write_seq(dsi, HX8394_CMD_UNKNOWN2,
+ 0xed);
+
+ return 0;
+}
+
+static const struct drm_display_mode mchp_ac40t08a_mode = {
+ .hdisplay = 720,
+ .hsync_start = 720 + 12,
+ .hsync_end = 720 + 12 + 24,
+ .htotal = 720 + 12 + 12 + 24,
+ .vdisplay = 1280,
+ .vsync_start = 1280 + 13,
+ .vsync_end = 1280 + 14,
+ .vtotal = 1280 + 14 + 13,
+ .clock = 60226,
+ .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
+ .width_mm = 76,
+ .height_mm = 132,
+};
+
+static const struct hx8394_panel_desc mchp_ac40t08a_desc = {
+ .mode = &mchp_ac40t08a_mode,
+ .lanes = 4,
+ .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST,
+ .format = MIPI_DSI_FMT_RGB888,
+ .init_sequence = mchp_ac40t08a_init_sequence,
+};
+
static int hx8394_enable(struct drm_panel *panel)
{
struct hx8394 *ctx = panel_to_hx8394(panel);
@@ -555,6 +705,7 @@ static void hx8394_remove(struct mipi_dsi_device *dsi)
static const struct of_device_id hx8394_of_match[] = {
{ .compatible = "hannstar,hsd060bhw4", .data = &hsd060bhw4_desc },
{ .compatible = "powkiddy,x55-panel", .data = &powkiddy_x55_desc },
+ { .compatible = "microchip,ac40t08a-mipi-panel", .data = &mchp_ac40t08a_desc },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, hx8394_of_match);
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 3/4] dt-bindings: display: himax-hx8394: Add Microchip AC40T08A MIPI Display panel
2024-06-25 9:08 ` [PATCH 3/4] dt-bindings: display: himax-hx8394: Add Microchip AC40T08A MIPI Display panel Manikandan Muralidharan
@ 2024-06-25 15:38 ` Conor Dooley
0 siblings, 0 replies; 7+ messages in thread
From: Conor Dooley @ 2024-06-25 15:38 UTC (permalink / raw)
To: Manikandan Muralidharan
Cc: megi, javierm, neil.armstrong, quic_jesszhan, maarten.lankhorst,
mripard, tzimmermann, airlied, daniel, robh, krzk+dt, conor+dt,
dri-devel, devicetree, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1021 bytes --]
On Tue, Jun 25, 2024 at 02:38:52PM +0530, Manikandan Muralidharan wrote:
> Add compatible string for the Microchip's AC40T08A MIPI Display
> panel.This panel uses a Himax HX8394 display controller.
>
> Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
> ---
> .../devicetree/bindings/display/panel/himax,hx8394.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml b/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml
> index 017cb19ed64f..d547df794b3b 100644
> --- a/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml
> @@ -24,6 +24,7 @@ properties:
> - enum:
> - hannstar,hsd060bhw4
> - powkiddy,x55-panel
> + - microchip,ac40t08a-mipi-panel
Please add this in alphabetical order.
> - const: himax,hx8394
>
> reg:
> --
> 2.25.1
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/4] dt-bindings: display: himax-hx8394: remove reset-gpio from required properties
2024-06-25 9:08 ` [PATCH 1/4] dt-bindings: display: himax-hx8394: remove reset-gpio from required properties Manikandan Muralidharan
@ 2024-06-25 15:39 ` Conor Dooley
0 siblings, 0 replies; 7+ messages in thread
From: Conor Dooley @ 2024-06-25 15:39 UTC (permalink / raw)
To: Manikandan Muralidharan
Cc: megi, javierm, neil.armstrong, quic_jesszhan, maarten.lankhorst,
mripard, tzimmermann, airlied, daniel, robh, krzk+dt, conor+dt,
dri-devel, devicetree, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1081 bytes --]
On Tue, Jun 25, 2024 at 02:38:50PM +0530, Manikandan Muralidharan wrote:
> Remove "reset-gpio" property from required properties list and
> make it optional.When interfaced with some boards where reset line is not
> populated it leads to driver probe issues.
>
> Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
> ---
> .../devicetree/bindings/display/panel/himax,hx8394.yaml | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml b/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml
> index 644387e4fb6f..017cb19ed64f 100644
> --- a/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml
> @@ -46,7 +46,6 @@ properties:
> required:
> - compatible
> - reg
> - - reset-gpios
If this is just the case for the new microchip panel, please make the
removal of required be conditional for that panel only and squash both
binding patches.
Thanks,
Conor.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-06-25 15:40 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-25 9:08 [PATCH 0/4] Panel HIMAX support for Microchip's AC40T08A MIPI display Manikandan Muralidharan
2024-06-25 9:08 ` [PATCH 1/4] dt-bindings: display: himax-hx8394: remove reset-gpio from required properties Manikandan Muralidharan
2024-06-25 15:39 ` Conor Dooley
2024-06-25 9:08 ` [PATCH 2/4] drm/panel: himax-hx8394: switch to devm_gpiod_get_optional() for reset_gpio Manikandan Muralidharan
2024-06-25 9:08 ` [PATCH 3/4] dt-bindings: display: himax-hx8394: Add Microchip AC40T08A MIPI Display panel Manikandan Muralidharan
2024-06-25 15:38 ` Conor Dooley
2024-06-25 9:08 ` [PATCH 4/4] drm/panel: himax-hx8394: Add Support for Microchip AC40T08A MIPI Display Panel Manikandan Muralidharan
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).