[PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel

David Heidelberg via B4 Relay posted 3 patches 2 weeks, 4 days ago
[PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel
Posted by David Heidelberg via B4 Relay 2 weeks, 4 days ago
From: Molly Sophia <mollysophia379@gmail.com>

Novatek NT35596s is a generic DSI IC that drives command and video mode
panels.
Currently add support for the LCD panel from JDI connected with this IC,
as found on Xiaomi Mi Mix 2S phones.

Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
---
 drivers/gpu/drm/panel/Kconfig                  |   7 +-
 drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 225 ++++++++++++++++++++++++-
 2 files changed, 222 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig
index 407c5f6a268b2ec66e5d0eddae26b3368e4cb2cb..dd2ea9f87292a5a99ae91b14b3f0d197c4db944f 100644
--- a/drivers/gpu/drm/panel/Kconfig
+++ b/drivers/gpu/drm/panel/Kconfig
@@ -521,14 +521,15 @@ config DRM_PANEL_NOVATEK_NT36523
 	  Boe panels used in Xiaomi Mi Pad 5 and 5 Pro tablets.
 
 config DRM_PANEL_NOVATEK_NT36672A
-	tristate "Novatek NT36672A DSI panel"
+	tristate "Novatek NT36672A/NT35596S DSI panel"
 	depends on OF
 	depends on DRM_MIPI_DSI
 	depends on BACKLIGHT_CLASS_DEVICE
 	help
 	  Say Y here if you want to enable support for the panels built
-	  around the Novatek NT36672A display controller, such as some
-	  Tianma panels used in a few Xiaomi Poco F1 mobile phones.
+	  around the Novatek NT36672A or NT35596S display controller, such
+	  as some Tianma panels used in a few Xiaomi Poco F1 mobile phones
+	  or the JDI panels used in Xiaomi Mi Mix2S mobile phones.
 
 config DRM_PANEL_NOVATEK_NT36672E
 	tristate "Novatek NT36672E DSI panel"
diff --git a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c
index f7518ec469176a4e2d4f2b03f8e77f03511a12a7..a0271ca5feeb125a9d57b3b1ac47a7933cf06226 100644
--- a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c
+++ b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c
@@ -3,13 +3,16 @@
  * Copyright (C) 2020 Linaro Ltd
  * Author: Sumit Semwal <sumit.semwal@linaro.org>
  *
- * This driver is for the DSI interface to panels using the NT36672A display driver IC
- * from Novatek.
- * Currently supported are the Tianma FHD+ panels found in some Xiaomi phones, including
- * some variants of the Poco F1 phone.
+ * Copyright (C) 2022 Molly Sophia <mollysophia379@gmail.com>
  *
- * Panels using the Novatek NT37762A IC should add appropriate configuration per-panel and
- * use this driver.
+ * This driver is for the DSI interface to panels using the NT36672A/NT35596S
+ * display driver IC from Novatek.
+ * Currently supported are the Tianma FHD+ panels found in some Xiaomi phones,
+ * including some variants of the Poco F1 phone, and the JDI FHD+ panels found
+ * in Xiaomi Mi Mix 2S phones.
+ *
+ * Panels using the Novatek NT37762A or NT35596S IC should add appropriate
+ * configuration per-panel and use this driver.
  */
 
 #include <linux/delay.h>
@@ -591,6 +594,212 @@ static const struct nt36672a_panel_desc tianma_fhd_video_panel_desc = {
 	.num_off_cmds = ARRAY_SIZE(tianma_fhd_video_off_cmds),
 };
 
+static const struct nt36672a_panel_cmd jdi_nt35596s_video_on_cmds[] = {
+	{ .data = { 0xff, 0x24 } },
+	{ .data = { 0x9d, 0x34 } },
+	{ .data = { 0xfb, 0x01 } },
+	{ .data = { 0xc4, 0x25 } },
+	{ .data = { 0xd1, 0x08 } },
+	{ .data = { 0xd2, 0x84 } },
+	{ .data = { 0xff, 0x26 } },
+	{ .data = { 0xfb, 0x01 } },
+	{ .data = { 0x03, 0x1c } },
+	{ .data = { 0x3b, 0x08 } },
+	{ .data = { 0x6b, 0x08 } },
+	{ .data = { 0x97, 0x08 } },
+	{ .data = { 0xc5, 0x08 } },
+	{ .data = { 0xfb, 0x01 } },
+	{ .data = { 0xff, 0x23 } },
+	{ .data = { 0xfb, 0x01 } },
+	{ .data = { 0x01, 0x84 } },
+	{ .data = { 0x05, 0x2d } },
+	{ .data = { 0x06, 0x00 } },
+	{ .data = { 0x33, 0x07 } },
+	{ .data = { 0x21, 0xee } },
+	{ .data = { 0x22, 0xed } },
+	{ .data = { 0x23, 0xea } },
+	{ .data = { 0x24, 0xe8 } },
+	{ .data = { 0x25, 0xe5 } },
+	{ .data = { 0x26, 0xe2 } },
+	{ .data = { 0x27, 0xde } },
+	{ .data = { 0x28, 0xbb } },
+	{ .data = { 0x29, 0x87 } },
+	{ .data = { 0x2a, 0x77 } },
+	{ .data = { 0x32, 0x0c } },
+	{ .data = { 0x13, 0x3f } },
+	{ .data = { 0x14, 0x34 } },
+	{ .data = { 0x15, 0x2a } },
+	{ .data = { 0x16, 0x25 } },
+	{ .data = { 0x17, 0x9d } },
+	{ .data = { 0x18, 0x9a } },
+	{ .data = { 0x19, 0x97 } },
+	{ .data = { 0x1a, 0x94 } },
+	{ .data = { 0x1b, 0x91 } },
+	{ .data = { 0x1c, 0x8e } },
+	{ .data = { 0x1d, 0x8b } },
+	{ .data = { 0x1e, 0x89 } },
+	{ .data = { 0x1f, 0x86 } },
+	{ .data = { 0x20, 0x83 } },
+	{ .data = { 0xff, 0x22 } },
+	{ .data = { 0x00, 0x0a } },
+	{ .data = { 0x01, 0x43 } },
+	{ .data = { 0x02, 0x5b } },
+	{ .data = { 0x03, 0x6a } },
+	{ .data = { 0x04, 0x7a } },
+	{ .data = { 0x05, 0x82 } },
+	{ .data = { 0x06, 0x85 } },
+	{ .data = { 0x07, 0x80 } },
+	{ .data = { 0x08, 0x7c } },
+	{ .data = { 0x09, 0x7c } },
+	{ .data = { 0x0a, 0x74 } },
+	{ .data = { 0x0b, 0x71 } },
+	{ .data = { 0x0c, 0x6e } },
+	{ .data = { 0x0d, 0x68 } },
+	{ .data = { 0x0e, 0x65 } },
+	{ .data = { 0x0f, 0x5c } },
+	{ .data = { 0x10, 0x32 } },
+	{ .data = { 0x11, 0x18 } },
+	{ .data = { 0x12, 0x00 } },
+	{ .data = { 0x13, 0x00 } },
+	{ .data = { 0x1a, 0x00 } },
+	{ .data = { 0x1b, 0x00 } },
+	{ .data = { 0x1c, 0x00 } },
+	{ .data = { 0x1d, 0x00 } },
+	{ .data = { 0x1e, 0x00 } },
+	{ .data = { 0x1f, 0x00 } },
+	{ .data = { 0x20, 0x00 } },
+	{ .data = { 0x21, 0x00 } },
+	{ .data = { 0x22, 0x00 } },
+	{ .data = { 0x23, 0x00 } },
+	{ .data = { 0x24, 0x00 } },
+	{ .data = { 0x25, 0x00 } },
+	{ .data = { 0x26, 0x00 } },
+	{ .data = { 0x27, 0x00 } },
+	{ .data = { 0x28, 0x00 } },
+	{ .data = { 0x29, 0x00 } },
+	{ .data = { 0x2a, 0x00 } },
+	{ .data = { 0x2b, 0x00 } },
+	{ .data = { 0x2f, 0x00 } },
+	{ .data = { 0x30, 0x00 } },
+	{ .data = { 0x31, 0x00 } },
+	{ .data = { 0x32, 0x0c } },
+	{ .data = { 0x33, 0x0c } },
+	{ .data = { 0x34, 0x0c } },
+	{ .data = { 0x35, 0x0b } },
+	{ .data = { 0x36, 0x09 } },
+	{ .data = { 0x37, 0x09 } },
+	{ .data = { 0x38, 0x08 } },
+	{ .data = { 0x39, 0x05 } },
+	{ .data = { 0x3a, 0x03 } },
+	{ .data = { 0x3b, 0x00 } },
+	{ .data = { 0x3f, 0x00 } },
+	{ .data = { 0x40, 0x00 } },
+	{ .data = { 0x41, 0x00 } },
+	{ .data = { 0x42, 0x00 } },
+	{ .data = { 0x43, 0x00 } },
+	{ .data = { 0x44, 0x00 } },
+	{ .data = { 0x45, 0x00 } },
+	{ .data = { 0x46, 0x00 } },
+	{ .data = { 0x47, 0x00 } },
+	{ .data = { 0x48, 0x00 } },
+	{ .data = { 0x49, 0x03 } },
+	{ .data = { 0x4a, 0x06 } },
+	{ .data = { 0x4b, 0x07 } },
+	{ .data = { 0x4c, 0x07 } },
+	{ .data = { 0x53, 0x01 } },
+	{ .data = { 0x54, 0x01 } },
+	{ .data = { 0x55, 0x89 } },
+	{ .data = { 0x56, 0x00 } },
+	{ .data = { 0x58, 0x00 } },
+	{ .data = { 0x68, 0x00 } },
+	{ .data = { 0x84, 0xff } },
+	{ .data = { 0x85, 0xff } },
+	{ .data = { 0x86, 0x03 } },
+	{ .data = { 0x87, 0x00 } },
+	{ .data = { 0x88, 0x00 } },
+	{ .data = { 0xa2, 0x20 } },
+	{ .data = { 0xa9, 0x01 } },
+	{ .data = { 0xaa, 0x12 } },
+	{ .data = { 0xab, 0x13 } },
+	{ .data = { 0xac, 0x0a } },
+	{ .data = { 0xad, 0x74 } },
+	{ .data = { 0xaf, 0x33 } },
+	{ .data = { 0xb0, 0x03 } },
+	{ .data = { 0xb1, 0x14 } },
+	{ .data = { 0xb2, 0x42 } },
+	{ .data = { 0xb3, 0x40 } },
+	{ .data = { 0xb4, 0xa5 } },
+	{ .data = { 0xb6, 0x44 } },
+	{ .data = { 0xb7, 0x04 } },
+	{ .data = { 0xb8, 0x14 } },
+	{ .data = { 0xb9, 0x42 } },
+	{ .data = { 0xba, 0x40 } },
+	{ .data = { 0xbb, 0xa5 } },
+	{ .data = { 0xbd, 0x44 } },
+	{ .data = { 0xbe, 0x04 } },
+	{ .data = { 0xbf, 0x00 } },
+	{ .data = { 0xc0, 0x75 } },
+	{ .data = { 0xc1, 0x6a } },
+	{ .data = { 0xc2, 0xa5 } },
+	{ .data = { 0xc4, 0x22 } },
+	{ .data = { 0xc5, 0x02 } },
+	{ .data = { 0xc6, 0x00 } },
+	{ .data = { 0xc7, 0x95 } },
+	{ .data = { 0xc8, 0x8a } },
+	{ .data = { 0xc9, 0xa5 } },
+	{ .data = { 0xcb, 0x22 } },
+	{ .data = { 0xcc, 0x02 } },
+	{ .data = { 0xcd, 0x00 } },
+	{ .data = { 0xce, 0xb5 } },
+	{ .data = { 0xcf, 0xaa } },
+	{ .data = { 0xd0, 0xa5 } },
+	{ .data = { 0xd2, 0x22 } },
+	{ .data = { 0xd3, 0x02 } },
+	{ .data = { 0xfb, 0x01 } },
+	{ .data = { 0xff, 0x10 } },
+	{ .data = { 0x26, 0x02 } },
+	{ .data = { 0x35, 0x00 } },
+	{ .data = { 0x51, 0xff } },
+	{ .data = { 0x53, 0x24 } },
+	{ .data = { 0x55, 0x00 } },
+	{ .data = { 0xb0, 0x00 } },
+};
+
+static const struct drm_display_mode jdi_nt35596s_video_panel_mode = {
+	.clock = (1080 + 16 + 28 + 40) * (2160 + 7 + 4 + 24) * 60 / 1000,
+
+	.hdisplay = 1080,
+	.hsync_start = 1080 + 16,
+	.hsync_end = 1080 + 16 + 28,
+	.htotal = 1080 + 16 + 28 + 40,
+
+	.vdisplay = 2160,
+	.vsync_start = 2160 + 7,
+	.vsync_end = 2160 + 7 + 4,
+	.vtotal = 2160 + 7 + 4 + 24,
+
+	.type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
+};
+
+static const struct nt36672a_panel_desc jdi_nt35596s_video_panel_desc = {
+	.display_mode = &jdi_nt35596s_video_panel_mode,
+
+	.width_mm = 68,
+	.height_mm = 136,
+
+	.mode_flags = MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_VIDEO |
+		      MIPI_DSI_MODE_VIDEO_HSE | MIPI_DSI_CLOCK_NON_CONTINUOUS |
+		      MIPI_DSI_MODE_VIDEO_BURST,
+	.format = MIPI_DSI_FMT_RGB888,
+	.lanes = 4,
+	.on_cmds_1 = jdi_nt35596s_video_on_cmds,
+	.num_on_cmds_1 = ARRAY_SIZE(jdi_nt35596s_video_on_cmds),
+	.on_cmds_2 = NULL,
+	.num_on_cmds_2 = 0,
+	.off_cmds = NULL,
+	.num_off_cmds = 0,
+};
+
 static int nt36672a_panel_add(struct nt36672a_panel *pinfo)
 {
 	struct device *dev = &pinfo->link->dev;
@@ -668,6 +877,7 @@ static void nt36672a_panel_remove(struct mipi_dsi_device *dsi)
 
 static const struct of_device_id tianma_fhd_video_of_match[] = {
 	{ .compatible = "tianma,fhd-video", .data = &tianma_fhd_video_panel_desc },
+	{ .compatible = "jdi,fhd-nt35596s", .data = &jdi_nt35596s_video_panel_desc },
 	{ },
 };
 MODULE_DEVICE_TABLE(of, tianma_fhd_video_of_match);
@@ -683,5 +893,6 @@ static struct mipi_dsi_driver nt36672a_panel_driver = {
 module_mipi_dsi_driver(nt36672a_panel_driver);
 
 MODULE_AUTHOR("Sumit Semwal <sumit.semwal@linaro.org>");
-MODULE_DESCRIPTION("NOVATEK NT36672A based MIPI-DSI LCD panel driver");
+MODULE_AUTHOR("Molly Sophia <mollysophia379@gmail.com>");
+MODULE_DESCRIPTION("NOVATEK NT36672A/NT35596S based MIPI-DSI LCD panel driver");
 MODULE_LICENSE("GPL");

-- 
2.51.0
Re: [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel
Posted by Dmitry Baryshkov 2 weeks, 3 days ago
On Sat, Sep 13, 2025 at 09:19:48PM +0200, David Heidelberg via B4 Relay wrote:
> From: Molly Sophia <mollysophia379@gmail.com>
> 
> Novatek NT35596s is a generic DSI IC that drives command and video mode
> panels.
> Currently add support for the LCD panel from JDI connected with this IC,
> as found on Xiaomi Mi Mix 2S phones.

Why are you adding it to the existing driver rather than adding a new
one?

> 
> Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
> Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
>  drivers/gpu/drm/panel/Kconfig                  |   7 +-
>  drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 225 ++++++++++++++++++++++++-
>  2 files changed, 222 insertions(+), 10 deletions(-)
> 
>  
>  MODULE_AUTHOR("Sumit Semwal <sumit.semwal@linaro.org>");
> -MODULE_DESCRIPTION("NOVATEK NT36672A based MIPI-DSI LCD panel driver");
> +MODULE_AUTHOR("Molly Sophia <mollysophia379@gmail.com>");

??

> +MODULE_DESCRIPTION("NOVATEK NT36672A/NT35596S based MIPI-DSI LCD panel driver");
>  MODULE_LICENSE("GPL");
> 
> -- 
> 2.51.0
> 
> 

-- 
With best wishes
Dmitry
Re: [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel
Posted by David Heidelberg 2 weeks, 3 days ago
On 15/09/2025 03:29, Dmitry Baryshkov wrote:
> On Sat, Sep 13, 2025 at 09:19:48PM +0200, David Heidelberg via B4 Relay wrote:
>> From: Molly Sophia <mollysophia379@gmail.com>
>>
>> Novatek NT35596s is a generic DSI IC that drives command and video mode
>> panels.
>> Currently add support for the LCD panel from JDI connected with this IC,
>> as found on Xiaomi Mi Mix 2S phones.
> 
> Why are you adding it to the existing driver rather than adding a new
> one?

Hello, originally it started as a standalone driver (see v2 patchset), 
but got merged due to similarities.

v2 patchset:
https://www.mail-archive.com/dri-devel@lists.freedesktop.org/msg404290.html

If it's desired, I can switch it back to the standalone driver.

> 
>>
>> Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
>> Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
>> Signed-off-by: David Heidelberg <david@ixit.cz>
>> ---
>>   drivers/gpu/drm/panel/Kconfig                  |   7 +-
>>   drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 225 ++++++++++++++++++++++++-
>>   2 files changed, 222 insertions(+), 10 deletions(-)
>>
>>   
>>   MODULE_AUTHOR("Sumit Semwal <sumit.semwal@linaro.org>");
>> -MODULE_DESCRIPTION("NOVATEK NT36672A based MIPI-DSI LCD panel driver");
>> +MODULE_AUTHOR("Molly Sophia <mollysophia379@gmail.com>");
> 
> ??

What's wrong with it?

David

> 
>> +MODULE_DESCRIPTION("NOVATEK NT36672A/NT35596S based MIPI-DSI LCD panel driver");
>>   MODULE_LICENSE("GPL");
>>
>> -- 
>> 2.51.0
>>
>>
> 

-- 
David Heidelberg
Re: [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel
Posted by Dmitry Baryshkov 2 weeks, 3 days ago
On Mon, Sep 15, 2025 at 12:11:49PM +0200, David Heidelberg wrote:
> On 15/09/2025 03:29, Dmitry Baryshkov wrote:
> > On Sat, Sep 13, 2025 at 09:19:48PM +0200, David Heidelberg via B4 Relay wrote:
> > > From: Molly Sophia <mollysophia379@gmail.com>
> > > 
> > > Novatek NT35596s is a generic DSI IC that drives command and video mode
> > > panels.
> > > Currently add support for the LCD panel from JDI connected with this IC,
> > > as found on Xiaomi Mi Mix 2S phones.
> > 
> > Why are you adding it to the existing driver rather than adding a new
> > one?
> 
> Hello, originally it started as a standalone driver (see v2 patchset), but
> got merged due to similarities.

I'm not sure, you had to get rid of the two command sets. On the other
hand, adding a new module will add a lot of boilerplate. Let's keep it
as is. Please add some notes to the commit message.

> 
> v2 patchset:
> https://www.mail-archive.com/dri-devel@lists.freedesktop.org/msg404290.html
> 
> If it's desired, I can switch it back to the standalone driver.
> 
> > 
> > > 
> > > Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
> > > Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
> > > Signed-off-by: David Heidelberg <david@ixit.cz>
> > > ---
> > >   drivers/gpu/drm/panel/Kconfig                  |   7 +-
> > >   drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 225 ++++++++++++++++++++++++-
> > >   2 files changed, 222 insertions(+), 10 deletions(-)
> > > 
> > >   MODULE_AUTHOR("Sumit Semwal <sumit.semwal@linaro.org>");
> > > -MODULE_DESCRIPTION("NOVATEK NT36672A based MIPI-DSI LCD panel driver");
> > > +MODULE_AUTHOR("Molly Sophia <mollysophia379@gmail.com>");
> > 
> > ??
> 
> What's wrong with it?

I thought that the module can have only one MODULE_AUTHOR declaration, I
was wrong. This is fine.

> 
> David
> 
> > 
> > > +MODULE_DESCRIPTION("NOVATEK NT36672A/NT35596S based MIPI-DSI LCD panel driver");
> > >   MODULE_LICENSE("GPL");
> > > 
> > > -- 
> > > 2.51.0
> > > 
> > > 
> > 
> 
> -- 
> David Heidelberg
> 

-- 
With best wishes
Dmitry
Re: [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel
Posted by David Heidelberg 2 weeks, 3 days ago
On 15/09/2025 13:11, Dmitry Baryshkov wrote:
> On Mon, Sep 15, 2025 at 12:11:49PM +0200, David Heidelberg wrote:
>> On 15/09/2025 03:29, Dmitry Baryshkov wrote:
>>> On Sat, Sep 13, 2025 at 09:19:48PM +0200, David Heidelberg via B4 Relay wrote:
>>>> From: Molly Sophia <mollysophia379@gmail.com>
>>>>
>>>> Novatek NT35596s is a generic DSI IC that drives command and video mode
>>>> panels.
>>>> Currently add support for the LCD panel from JDI connected with this IC,
>>>> as found on Xiaomi Mi Mix 2S phones.
>>>
>>> Why are you adding it to the existing driver rather than adding a new
>>> one?
>>
>> Hello, originally it started as a standalone driver (see v2 patchset), but
>> got merged due to similarities.
> 
> I'm not sure, you had to get rid of the two command sets. On the other
> hand, adding a new module will add a lot of boilerplate. Let's keep it
> as is. Please add some notes to the commit message.

Ok, I found out in the meantime that Alexey is working on refactoring 
nt36672a, so we’ll coordinate. I’ll likely need to rebase this changeset 
on top of the refactored nt36672a, or possibly move it into a separate 
driver.

See https://github.com/sdm660-mainline/linux/pull/114/commits

> 
>>
>> v2 patchset:
>> https://www.mail-archive.com/dri-devel@lists.freedesktop.org/msg404290.html
>>
>> If it's desired, I can switch it back to the standalone driver.
>>
>>>
>>>>
>>>> Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
>>>> Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
>>>> Signed-off-by: David Heidelberg <david@ixit.cz>
>>>> ---
>>>>    drivers/gpu/drm/panel/Kconfig                  |   7 +-
>>>>    drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 225 ++++++++++++++++++++++++-
>>>>    2 files changed, 222 insertions(+), 10 deletions(-)
>>>>
>>>>    MODULE_AUTHOR("Sumit Semwal <sumit.semwal@linaro.org>");
>>>> -MODULE_DESCRIPTION("NOVATEK NT36672A based MIPI-DSI LCD panel driver");
>>>> +MODULE_AUTHOR("Molly Sophia <mollysophia379@gmail.com>");
>>>
>>> ??
>>
>> What's wrong with it?
> 
> I thought that the module can have only one MODULE_AUTHOR declaration, I
> was wrong. This is fine.

Yeah, it's not usual to have more than one.

> 
>>
>> David
>>
>>>
>>>> +MODULE_DESCRIPTION("NOVATEK NT36672A/NT35596S based MIPI-DSI LCD panel driver");
>>>>    MODULE_LICENSE("GPL");
>>>>
>>>> -- 
>>>> 2.51.0
>>>>
>>>>
>>>
>>
>> -- 
>> David Heidelberg
>>
> 

-- 
David Heidelberg

Re: [PATCH v6 2/3] drm: panel: nt36672a: Add support for novatek nt35596s panel
Posted by Dmitry Baryshkov 2 weeks, 2 days ago
On Mon, Sep 15, 2025 at 05:06:51PM +0200, David Heidelberg wrote:
> 
> On 15/09/2025 13:11, Dmitry Baryshkov wrote:
> > On Mon, Sep 15, 2025 at 12:11:49PM +0200, David Heidelberg wrote:
> > > On 15/09/2025 03:29, Dmitry Baryshkov wrote:
> > > > On Sat, Sep 13, 2025 at 09:19:48PM +0200, David Heidelberg via B4 Relay wrote:
> > > > > From: Molly Sophia <mollysophia379@gmail.com>
> > > > > 
> > > > > Novatek NT35596s is a generic DSI IC that drives command and video mode
> > > > > panels.
> > > > > Currently add support for the LCD panel from JDI connected with this IC,
> > > > > as found on Xiaomi Mi Mix 2S phones.
> > > > 
> > > > Why are you adding it to the existing driver rather than adding a new
> > > > one?
> > > 
> > > Hello, originally it started as a standalone driver (see v2 patchset), but
> > > got merged due to similarities.
> > 
> > I'm not sure, you had to get rid of the two command sets. On the other
> > hand, adding a new module will add a lot of boilerplate. Let's keep it
> > as is. Please add some notes to the commit message.
> 
> Ok, I found out in the meantime that Alexey is working on refactoring
> nt36672a, so we’ll coordinate. I’ll likely need to rebase this changeset on
> top of the refactored nt36672a, or possibly move it into a separate driver.
> 
> See https://github.com/sdm660-mainline/linux/pull/114/commits

I think it fits even more after refactoring. I hope Alexey will post the
refacrorings soon.

> 
> > 
> > > 
> > > v2 patchset:
> > > https://www.mail-archive.com/dri-devel@lists.freedesktop.org/msg404290.html
> > > 
> > > If it's desired, I can switch it back to the standalone driver.
> > > 
> > > > 
> > > > > 
> > > > > Signed-off-by: Molly Sophia <mollysophia379@gmail.com>
> > > > > Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
> > > > > Signed-off-by: David Heidelberg <david@ixit.cz>
> > > > > ---
> > > > >    drivers/gpu/drm/panel/Kconfig                  |   7 +-
> > > > >    drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 225 ++++++++++++++++++++++++-
> > > > >    2 files changed, 222 insertions(+), 10 deletions(-)
> > > > > 
> > > > >    MODULE_AUTHOR("Sumit Semwal <sumit.semwal@linaro.org>");
> > > > > -MODULE_DESCRIPTION("NOVATEK NT36672A based MIPI-DSI LCD panel driver");
> > > > > +MODULE_AUTHOR("Molly Sophia <mollysophia379@gmail.com>");
> > > > 
> > > > ??
> > > 
> > > What's wrong with it?
> > 
> > I thought that the module can have only one MODULE_AUTHOR declaration, I
> > was wrong. This is fine.
> 
> Yeah, it's not usual to have more than one.
> 
> > 
> > > 
> > > David
> > > 
> > > > 
> > > > > +MODULE_DESCRIPTION("NOVATEK NT36672A/NT35596S based MIPI-DSI LCD panel driver");
> > > > >    MODULE_LICENSE("GPL");
> > > > > 
> > > > > -- 
> > > > > 2.51.0
> > > > > 
> > > > > 
> > > > 
> > > 
> > > -- 
> > > David Heidelberg
> > > 
> > 
> 
> -- 
> David Heidelberg
> 

-- 
With best wishes
Dmitry