devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] Add generic panel-dsi to panel-simple
@ 2024-04-18 14:01 Johan Adolfsson
  2024-04-18 14:01 ` [PATCH 1/2] drm/panel: panel-simple: Add generic panel-dsi driver Johan Adolfsson
  2024-04-18 14:01 ` [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic panel-dsi Johan Adolfsson
  0 siblings, 2 replies; 11+ messages in thread
From: Johan Adolfsson @ 2024-04-18 14:01 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding
  Cc: Johan Adolfsson, dri-devel, linux-kernel, devicetree, kernel

Adds a generic panel-dsi panel similar to panel-dpi to panel-simple.
Allows override of timings, flags and lanes using devicetree.

Signed-off-by: Johan Adolfsson <johan.adolfsson@axis.com>
---
Johan Adolfsson (2):
      drm/panel: panel-simple: Add generic panel-dsi driver
      dt-bindings: panel-simple-dsi: Add generic panel-dsi

 .../bindings/display/panel/panel-simple-dsi.yaml   |  2 +
 drivers/gpu/drm/panel/panel-simple.c               | 76 +++++++++++++++++++++-
 2 files changed, 75 insertions(+), 3 deletions(-)
---
base-commit: e8f897f4afef0031fe618a8e94127a0934896aba
change-id: 20240308-foo-fix-5ea945a14e2b

Best regards,
-- 
Johan Adolfsson <johan.adolfsson@axis.com>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/2] drm/panel: panel-simple: Add generic panel-dsi driver
  2024-04-18 14:01 [PATCH 0/2] Add generic panel-dsi to panel-simple Johan Adolfsson
@ 2024-04-18 14:01 ` Johan Adolfsson
  2024-04-18 23:06   ` Krzysztof Kozlowski
  2024-04-18 14:01 ` [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic panel-dsi Johan Adolfsson
  1 sibling, 1 reply; 11+ messages in thread
From: Johan Adolfsson @ 2024-04-18 14:01 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding
  Cc: Johan Adolfsson, dri-devel, linux-kernel, devicetree, kernel

Add generic panel-dsi panel, similar to panel-dpi that can have it's
timing, lanes and flags overridden by devicetree.
Add some dev_err() and dev_warn() calls.

Signed-off-by: Johan Adolfsson <johan.adolfsson@axis.com>
---
 drivers/gpu/drm/panel/panel-simple.c | 76 ++++++++++++++++++++++++++++++++++--
 1 file changed, 73 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index d493ee735c73..3b812fb9ae9e 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -455,7 +455,9 @@ static const struct drm_panel_funcs panel_simple_funcs = {
 	.get_timings = panel_simple_get_timings,
 };
 
-static struct panel_desc panel_dpi;
+static struct panel_desc panel_dpi = {
+	.connector_type = DRM_MODE_CONNECTOR_DPI
+};
 
 static int panel_dpi_probe(struct device *dev,
 			   struct panel_simple *panel)
@@ -471,6 +473,8 @@ static int panel_dpi_probe(struct device *dev,
 	desc = devm_kzalloc(dev, sizeof(*desc), GFP_KERNEL);
 	if (!desc)
 		return -ENOMEM;
+	if (panel->desc)
+		*desc = *panel->desc;
 
 	timing = devm_kzalloc(dev, sizeof(*timing), GFP_KERNEL);
 	if (!timing)
@@ -503,6 +507,20 @@ static int panel_dpi_probe(struct device *dev,
 	return 0;
 }
 
+static int panel_dsi_probe(struct device *dev,
+			   struct panel_simple *panel)
+{
+	int ret;
+
+	ret = panel_dpi_probe(dev, panel);
+	if (panel->desc) {
+		struct panel_desc *desc = (struct panel_desc *)panel->desc;
+
+		desc->connector_type = DRM_MODE_CONNECTOR_DSI;
+	}
+	return ret;
+}
+
 #define PANEL_SIMPLE_BOUNDS_CHECK(to_check, bounds, field) \
 	(to_check->field.typ >= bounds->field.min && \
 	 to_check->field.typ <= bounds->field.max)
@@ -533,11 +551,16 @@ static void panel_simple_parse_panel_timing_node(struct device *dev,
 		    !PANEL_SIMPLE_BOUNDS_CHECK(ot, dt, vactive) ||
 		    !PANEL_SIMPLE_BOUNDS_CHECK(ot, dt, vfront_porch) ||
 		    !PANEL_SIMPLE_BOUNDS_CHECK(ot, dt, vback_porch) ||
-		    !PANEL_SIMPLE_BOUNDS_CHECK(ot, dt, vsync_len))
+		    !PANEL_SIMPLE_BOUNDS_CHECK(ot, dt, vsync_len)) {
+			dev_warn(dev, "timing bounds failed\n");
 			continue;
+		}
 
-		if (ot->flags != dt->flags)
+		/* Allow mismatch in flags for last entry */
+		if (i + 1 < panel->desc->num_timings && ot->flags != dt->flags) {
+			dev_warn(dev, "flags mismatch: ot %x vs dt %x\n", ot->flags, dt->flags);
 			continue;
+		}
 
 		videomode_from_timing(ot, &vm);
 		drm_display_mode_from_videomode(&vm, &panel->override_mode);
@@ -4752,6 +4775,39 @@ struct panel_desc_dsi {
 	unsigned int lanes;
 };
 
+static const struct display_timing generic_800x480_timing = {
+	.pixelclock = { 16400000, 864 * 490 * 60, (1920 + 512) * (1920 + 512) * 60 },
+	.hactive = { 400, 800, 1920 },
+	.hfront_porch = { 2, 16, 512 },
+	.hback_porch = { 2, 16, 512 },
+	.hsync_len = { 1, 10, 40 },
+	.vactive = { 400, 480, 1920 },
+	.vfront_porch = { 2, 5, 512 },
+	.vback_porch = { 2, 5, 512 },
+	.vsync_len = { 1, 10, 20 },
+	.flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
+		 DISPLAY_FLAGS_SYNC_POSEDGE
+};
+
+static struct panel_desc_dsi panel_dsi = {
+	.desc = {
+		.timings = &generic_800x480_timing,
+		.num_timings = 1,
+		.bpc = 8,
+		.size = {
+			.width = 152,
+			.height = 91,
+		},
+		.connector_type = DRM_MODE_CONNECTOR_DSI,
+	 },
+	.flags = MIPI_DSI_MODE_VIDEO |
+		 MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
+		 MIPI_DSI_MODE_VIDEO_HSE | /* Needed to generate Hsync End Short package */
+		 MIPI_DSI_MODE_VIDEO_NO_HBP,
+	.format = MIPI_DSI_FMT_RGB888,
+	.lanes = 2,
+};
+
 static const struct drm_display_mode auo_b080uan01_mode = {
 	.clock = 154500,
 	.hdisplay = 1200,
@@ -4976,6 +5032,9 @@ static const struct of_device_id dsi_of_match[] = {
 	}, {
 		.compatible = "osddisplays,osd101t2045-53ts",
 		.data = &osd101t2045_53ts
+	}, {
+		.compatible = "panel-dsi",
+		.data = &panel_dsi,
 	}, {
 		/* sentinel */
 	}
@@ -4992,17 +5051,28 @@ static int panel_simple_dsi_probe(struct mipi_dsi_device *dsi)
 		return -ENODEV;
 
 	err = panel_simple_probe(&dsi->dev, &desc->desc);
+	if (err)
+		dev_err(&dsi->dev, "%s: err %i\n", __func__, err);
+
+	if (desc == &panel_dsi) {
+		struct panel_simple *panel = mipi_dsi_get_drvdata(dsi);
+		/* Handle the generic panel-dsi binding */
+		err = panel_dsi_probe(&dsi->dev, panel);
+	}
+
 	if (err < 0)
 		return err;
 
 	dsi->mode_flags = desc->flags;
 	dsi->format = desc->format;
 	dsi->lanes = desc->lanes;
+	of_property_read_u32(dsi->dev.of_node, "lanes", &dsi->lanes);
 
 	err = mipi_dsi_attach(dsi);
 	if (err) {
 		struct panel_simple *panel = mipi_dsi_get_drvdata(dsi);
 
+		dev_err(&dsi->dev, "probe attach err: %i", err);
 		drm_panel_remove(&panel->base);
 	}
 

-- 
2.30.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic panel-dsi
  2024-04-18 14:01 [PATCH 0/2] Add generic panel-dsi to panel-simple Johan Adolfsson
  2024-04-18 14:01 ` [PATCH 1/2] drm/panel: panel-simple: Add generic panel-dsi driver Johan Adolfsson
@ 2024-04-18 14:01 ` Johan Adolfsson
  2024-04-18 23:04   ` Krzysztof Kozlowski
  1 sibling, 1 reply; 11+ messages in thread
From: Johan Adolfsson @ 2024-04-18 14:01 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Sam Ravnborg, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Daniel Vetter,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding
  Cc: Johan Adolfsson, dri-devel, linux-kernel, devicetree, kernel

panel-dsi is similar to panel-dpi with overridable timings

Signed-off-by: Johan Adolfsson <johan.adolfsson@axis.com>
---
 Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
index f9160d7bac3c..4c9dd4f66a8f 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
@@ -56,6 +56,8 @@ properties:
       - samsung,sofef00
         # Shangai Top Display Optoelectronics 7" TL070WSH30 1024x600 TFT LCD panel
       - tdo,tl070wsh30
+        # Generic dsi panel with timing overridable
+      - panel-dsi
 
   reg:
     maxItems: 1

-- 
2.30.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic panel-dsi
  2024-04-18 14:01 ` [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic panel-dsi Johan Adolfsson
@ 2024-04-18 23:04   ` Krzysztof Kozlowski
  2024-04-22 14:34     ` Johan Adolfsson
  0 siblings, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2024-04-18 23:04 UTC (permalink / raw)
  To: Johan Adolfsson, Neil Armstrong, Jessica Zhang, Sam Ravnborg,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding
  Cc: dri-devel, linux-kernel, devicetree, kernel

On 18/04/2024 16:01, Johan Adolfsson wrote:
> panel-dsi is similar to panel-dpi with overridable timings

???

> 
> Signed-off-by: Johan Adolfsson <johan.adolfsson@axis.com>
> ---
>  Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
> index f9160d7bac3c..4c9dd4f66a8f 100644
> --- a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
> @@ -56,6 +56,8 @@ properties:
>        - samsung,sofef00
>          # Shangai Top Display Optoelectronics 7" TL070WSH30 1024x600 TFT LCD panel
>        - tdo,tl070wsh30
> +        # Generic dsi panel with timing overridable
> +      - panel-dsi

? Devices are not generic. This is very confusing and commit msg does
not help me. Compatibles *must* be specific, see writing-bindings.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] drm/panel: panel-simple: Add generic panel-dsi driver
  2024-04-18 14:01 ` [PATCH 1/2] drm/panel: panel-simple: Add generic panel-dsi driver Johan Adolfsson
@ 2024-04-18 23:06   ` Krzysztof Kozlowski
  2024-04-22 14:05     ` Johan Adolfsson
  0 siblings, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2024-04-18 23:06 UTC (permalink / raw)
  To: Johan Adolfsson, Neil Armstrong, Jessica Zhang, Sam Ravnborg,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding
  Cc: dri-devel, linux-kernel, devicetree, kernel

On 18/04/2024 16:01, Johan Adolfsson wrote:
> Add generic panel-dsi panel, similar to panel-dpi that can have it's
> timing, lanes and flags overridden by devicetree.
> Add some dev_err() and dev_warn() calls.
> 

...

>  		/* sentinel */
>  	}
> @@ -4992,17 +5051,28 @@ static int panel_simple_dsi_probe(struct mipi_dsi_device *dsi)
>  		return -ENODEV;
>  
>  	err = panel_simple_probe(&dsi->dev, &desc->desc);
> +	if (err)
> +		dev_err(&dsi->dev, "%s: err %i\n", __func__, err);

This looks like debugging code.

> +
> +	if (desc == &panel_dsi) {
> +		struct panel_simple *panel = mipi_dsi_get_drvdata(dsi);
> +		/* Handle the generic panel-dsi binding */
> +		err = panel_dsi_probe(&dsi->dev, panel);
> +	}
> +
>  	if (err < 0)
>  		return err;
>  
>  	dsi->mode_flags = desc->flags;
>  	dsi->format = desc->format;
>  	dsi->lanes = desc->lanes;
> +	of_property_read_u32(dsi->dev.of_node, "lanes", &dsi->lanes);

Is this defined in the binding?

>  
>  	err = mipi_dsi_attach(dsi);
>  	if (err) {
>  		struct panel_simple *panel = mipi_dsi_get_drvdata(dsi);
>  
> +		dev_err(&dsi->dev, "probe attach err: %i", err);

Do not introduce unrelated code changes.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: [PATCH 1/2] drm/panel: panel-simple: Add generic panel-dsi driver
  2024-04-18 23:06   ` Krzysztof Kozlowski
@ 2024-04-22 14:05     ` Johan Adolfsson
  2024-04-22 19:43       ` Dmitry Baryshkov
  0 siblings, 1 reply; 11+ messages in thread
From: Johan Adolfsson @ 2024-04-22 14:05 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Neil Armstrong, Jessica Zhang, Sam Ravnborg,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding
  Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, kernel, Johan Adolfsson

Hi,
Sorry for delayed response, still investigating why these mails didn't reach my inbox as expected..

-----Original Message-----
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 
Sent: den 19 april 2024 01:06
To: Johan Adolfsson <Johan.Adolfsson@axis.com>; Neil Armstrong <neil.armstrong@linaro.org>; Jessica Zhang <quic_jesszhan@quicinc.com>; Sam Ravnborg <sam@ravnborg.org>; Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; David Airlie <airlied@gmail.com>; Daniel Vetter <daniel@ffwll.ch>; Rob Herring <robh+dt@kernel.org>; Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>; Conor Dooley <conor+dt@kernel.org>; Thierry Reding <thierry.reding@gmail.com>
Cc: dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org; devicetree@vger.kernel.org; kernel <kernel@axis.com>
Subject: Re: [PATCH 1/2] drm/panel: panel-simple: Add generic panel-dsi driver

On 18/04/2024 16:01, Johan Adolfsson wrote:
> Add generic panel-dsi panel, similar to panel-dpi that can have it's 
> timing, lanes and flags overridden by devicetree.
> Add some dev_err() and dev_warn() calls.
> 

...

>>  		/* sentinel */
>>  	}
>> @@ -4992,17 +5051,28 @@ static int panel_simple_dsi_probe(struct mipi_dsi_device *dsi)
>>  		return -ENODEV;
>>  
>>  	err = panel_simple_probe(&dsi->dev, &desc->desc);
>> +	if (err)
>> +		dev_err(&dsi->dev, "%s: err %i\n", __func__, err);

>This looks like debugging code.
I added it since you don't really get any good hints on where things fails if they do it.
Debugging code or not depends on the definition I guess - it helps the user track down a faulty devicetree,
or as in the case below mismatch with the DSI driver.

...
>>  	dsi->format = desc->format;
>>  	dsi->lanes = desc->lanes;
>> +	of_property_read_u32(dsi->dev.of_node, "lanes", &dsi->lanes);
>
>Is this defined in the binding?

Apparently not which I assumed. Other bindings mentions dsi-lanes, but I guess "num-dsi-lanes" would be more correct.

>>  	err = mipi_dsi_attach(dsi);
>>  	if (err) {
>>  		struct panel_simple *panel = mipi_dsi_get_drvdata(dsi);
>>  
>> +		dev_err(&dsi->dev, "probe attach err: %i", err);
>
>Do not introduce unrelated code changes.

As before, it helps the user who has a messed up devicetree find out, since we now gets some more configurability using devicetree.
Would it be acceptable as a separate commit, or should I simply skip this?


>Best regards,
>Krzysztof

Thanks!

Best regards
/Johan



^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic panel-dsi
  2024-04-18 23:04   ` Krzysztof Kozlowski
@ 2024-04-22 14:34     ` Johan Adolfsson
  2024-04-22 20:56       ` Krzysztof Kozlowski
  0 siblings, 1 reply; 11+ messages in thread
From: Johan Adolfsson @ 2024-04-22 14:34 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Neil Armstrong, Jessica Zhang, Sam Ravnborg,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding
  Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, kernel, Johan Adolfsson



-----Original Message-----
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 
Sent: den 19 april 2024 01:05
To: Johan Adolfsson <Johan.Adolfsson@axis.com>; Neil Armstrong <neil.armstrong@linaro.org>; Jessica Zhang <quic_jesszhan@quicinc.com>; Sam Ravnborg <sam@ravnborg.org>; Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; David Airlie <airlied@gmail.com>; Daniel Vetter <daniel@ffwll.ch>; Rob Herring <robh+dt@kernel.org>; Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>; Conor Dooley <conor+dt@kernel.org>; Thierry Reding <thierry.reding@gmail.com>
Cc: dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org; devicetree@vger.kernel.org; kernel <kernel@axis.com>
Subject: Re: [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic panel-dsi

>On 18/04/2024 16:01, Johan Adolfsson wrote:
>> panel-dsi is similar to panel-dpi with overridable timings
>
>???

I guess a more correct description would be 
"panel-dsi is a fallback in a similar way that panel-dpi is in panel-dpi.yaml .."?

...
>> a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yam
>> l
>> +++ b/Documentation/devicetree/bindings/display/panel/panel-simple-dsi
>> +++ .yaml
>> @@ -56,6 +56,8 @@ properties:
>>        - samsung,sofef00
>>          # Shangai Top Display Optoelectronics 7" TL070WSH30 1024x600 TFT LCD panel
>>        - tdo,tl070wsh30
>> +        # Generic dsi panel with timing overridable
>> +      - panel-dsi
>
>? Devices are not generic. This is very confusing and commit msg does not help me. Compatibles *must* be specific, see writing-bindings.

I guess I see this a generic fallback, that handles any dsi panel as long as the correct timing etc is specified in devictree, similar to what panel-dpi is in panel-dpi.yaml
Maybe phrasing it similar to panel-dpi.yaml is better?

>Best regards,
>Krzysztof

Best regards
/Johan


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] drm/panel: panel-simple: Add generic panel-dsi driver
  2024-04-22 14:05     ` Johan Adolfsson
@ 2024-04-22 19:43       ` Dmitry Baryshkov
  0 siblings, 0 replies; 11+ messages in thread
From: Dmitry Baryshkov @ 2024-04-22 19:43 UTC (permalink / raw)
  To: Johan Adolfsson
  Cc: Krzysztof Kozlowski, Neil Armstrong, Jessica Zhang, Sam Ravnborg,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding, dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, kernel

On Mon, Apr 22, 2024 at 02:05:01PM +0000, Johan Adolfsson wrote:
> Hi,
> Sorry for delayed response, still investigating why these mails didn't reach my inbox as expected..
> 
> -----Original Message-----
> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 
> Sent: den 19 april 2024 01:06
> To: Johan Adolfsson <Johan.Adolfsson@axis.com>; Neil Armstrong <neil.armstrong@linaro.org>; Jessica Zhang <quic_jesszhan@quicinc.com>; Sam Ravnborg <sam@ravnborg.org>; Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; David Airlie <airlied@gmail.com>; Daniel Vetter <daniel@ffwll.ch>; Rob Herring <robh+dt@kernel.org>; Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>; Conor Dooley <conor+dt@kernel.org>; Thierry Reding <thierry.reding@gmail.com>
> Cc: dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org; devicetree@vger.kernel.org; kernel <kernel@axis.com>
> Subject: Re: [PATCH 1/2] drm/panel: panel-simple: Add generic panel-dsi driver
> 
> On 18/04/2024 16:01, Johan Adolfsson wrote:
> > Add generic panel-dsi panel, similar to panel-dpi that can have it's 
> > timing, lanes and flags overridden by devicetree.
> > Add some dev_err() and dev_warn() calls.
> > 
> 
> ...
> 
> >>  		/* sentinel */
> >>  	}
> >> @@ -4992,17 +5051,28 @@ static int panel_simple_dsi_probe(struct mipi_dsi_device *dsi)
> >>  		return -ENODEV;
> >>  
> >>  	err = panel_simple_probe(&dsi->dev, &desc->desc);
> >> +	if (err)
> >> +		dev_err(&dsi->dev, "%s: err %i\n", __func__, err);
> 
> >This looks like debugging code.
> I added it since you don't really get any good hints on where things fails if they do it.
> Debugging code or not depends on the definition I guess - it helps the user track down a faulty devicetree,
> or as in the case below mismatch with the DSI driver.
> 
> ...
> >>  	dsi->format = desc->format;
> >>  	dsi->lanes = desc->lanes;
> >> +	of_property_read_u32(dsi->dev.of_node, "lanes", &dsi->lanes);
> >
> >Is this defined in the binding?
> 
> Apparently not which I assumed. Other bindings mentions dsi-lanes, but I guess "num-dsi-lanes" would be more correct.

Please use drm_of_get_data_lanes_count() and corresponding property from
the bindings.
> 
> >>  	err = mipi_dsi_attach(dsi);
> >>  	if (err) {
> >>  		struct panel_simple *panel = mipi_dsi_get_drvdata(dsi);
> >>  
> >> +		dev_err(&dsi->dev, "probe attach err: %i", err);
> >
> >Do not introduce unrelated code changes.
> 
> As before, it helps the user who has a messed up devicetree find out, since we now gets some more configurability using devicetree.
> Would it be acceptable as a separate commit, or should I simply skip this?
> 
> 
> >Best regards,
> >Krzysztof
> 
> Thanks!
> 
> Best regards
> /Johan
> 
> 

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic panel-dsi
  2024-04-22 14:34     ` Johan Adolfsson
@ 2024-04-22 20:56       ` Krzysztof Kozlowski
  2024-05-13  9:34         ` Johan Adolfsson
  0 siblings, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2024-04-22 20:56 UTC (permalink / raw)
  To: Johan Adolfsson, Neil Armstrong, Jessica Zhang, Sam Ravnborg,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding
  Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, kernel

On 22/04/2024 16:34, Johan Adolfsson wrote:
> 
> 
> -----Original Message-----
> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 
> Sent: den 19 april 2024 01:05
> To: Johan Adolfsson <Johan.Adolfsson@axis.com>; Neil Armstrong <neil.armstrong@linaro.org>; Jessica Zhang <quic_jesszhan@quicinc.com>; Sam Ravnborg <sam@ravnborg.org>; Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; David Airlie <airlied@gmail.com>; Daniel Vetter <daniel@ffwll.ch>; Rob Herring <robh+dt@kernel.org>; Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>; Conor Dooley <conor+dt@kernel.org>; Thierry Reding <thierry.reding@gmail.com>
> Cc: dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org; devicetree@vger.kernel.org; kernel <kernel@axis.com>
> Subject: Re: [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic panel-dsi
> 
>> On 18/04/2024 16:01, Johan Adolfsson wrote:
>>> panel-dsi is similar to panel-dpi with overridable timings
>>
>> ???
> 
> I guess a more correct description would be 
> "panel-dsi is a fallback in a similar way that panel-dpi is in panel-dpi.yaml .."?

I meant how does it explain the hardware.

> 
> ...
>>> a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yam
>>> l
>>> +++ b/Documentation/devicetree/bindings/display/panel/panel-simple-dsi
>>> +++ .yaml
>>> @@ -56,6 +56,8 @@ properties:
>>>        - samsung,sofef00
>>>          # Shangai Top Display Optoelectronics 7" TL070WSH30 1024x600 TFT LCD panel
>>>        - tdo,tl070wsh30
>>> +        # Generic dsi panel with timing overridable
>>> +      - panel-dsi
>>
>> ? Devices are not generic. This is very confusing and commit msg does not help me. Compatibles *must* be specific, see writing-bindings.
> 
> I guess I see this a generic fallback, that handles any dsi panel as long as the correct timing etc is specified in devictree, similar to what panel-dpi is in panel-dpi.yaml
> Maybe phrasing it similar to panel-dpi.yaml is better?

But panel-dpi is quite different. You always have two compatibles. I
don't see two compatibles here.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic panel-dsi
  2024-04-22 20:56       ` Krzysztof Kozlowski
@ 2024-05-13  9:34         ` Johan Adolfsson
  2024-05-13  9:38           ` Krzysztof Kozlowski
  0 siblings, 1 reply; 11+ messages in thread
From: Johan Adolfsson @ 2024-05-13  9:34 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Neil Armstrong, Jessica Zhang, Sam Ravnborg,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding
  Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, kernel, Johan Adolfsson



>-----Original Message-----
>From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 
>Sent: den 22 april 2024 22:57
>To: Johan Adolfsson <Johan.Adolfsson@axis.com>; Neil Armstrong <neil.armstrong@linaro.org>; Jessica Zhang <quic_jesszhan@quicinc.com>; Sam Ravnborg <sam@ravnborg.org>; Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; David Airlie <airlied@gmail.com>; Daniel Vetter <daniel@ffwll.ch>; Rob Herring <robh+dt@kernel.org>; Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>; Conor Dooley <conor+dt@kernel.org>; Thierry Reding <thierry.reding@gmail.com>
>Cc: dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org; devicetree@vger.kernel.org; kernel <kernel@axis.com>
>Subject: Re: [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic panel-dsi>
>
>On 22/04/2024 16:34, Johan Adolfsson wrote:
>> 
>> 
>> -----Original Message-----
>> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>> Sent: den 19 april 2024 01:05
>> To: Johan Adolfsson <Johan.Adolfsson@axis.com>; Neil Armstrong 
..
>> Subject: Re: [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic 
>> panel-dsi
>> 
>>> On 18/04/2024 16:01, Johan Adolfsson wrote:
>>>> panel-dsi is similar to panel-dpi with overridable timings
>>>
>>> ???
>> 
>> I guess a more correct description would be "panel-dsi is a fallback 
>> in a similar way that panel-dpi is in panel-dpi.yaml .."?
>
>I meant how does it explain the hardware.

In our case it's actually an FPGA that takes MIPI DSI input and can support multiple different kind of displays, and what I want to achieve
is to avoid specifying a lot of different panel timings in the driver and have that in devicetree instead. 
I appreciate any suggestions on how to phrase that in an acceptable manner.

>> ...
>>>> a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.y
>>>> am
>>>> l
>>>> +++ b/Documentation/devicetree/bindings/display/panel/panel-simple-d
>>>> +++ si
>>>> +++ .yaml
>>>> @@ -56,6 +56,8 @@ properties:
>>>>        - samsung,sofef00
>>>>          # Shangai Top Display Optoelectronics 7" TL070WSH30 1024x600 TFT LCD panel
>>>>        - tdo,tl070wsh30
>>>> +        # Generic dsi panel with timing overridable
>>>> +      - panel-dsi
>>>
>>> ? Devices are not generic. This is very confusing and commit msg does not help me. Compatibles *must* be specific, see writing-bindings.
>> 
>> I guess I see this a generic fallback, that handles any dsi panel as 
>> long as the correct timing etc is specified in devictree, similar to what panel-dpi is in panel-dpi.yaml Maybe phrasing it similar to panel-dpi.yaml is better?
>
>But panel-dpi is quite different. You always have two compatibles. I don't see two compatibles here.

It doesn't really need two compatibles (in practice at least), the new generic panel-dsi could be enough - I do believe that devices can be generic,
but I admit that I'm not really "fluent" in devicetree and binding descriptions.

>Best regards,
>Krzysztof

Best regards
/Johan


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic panel-dsi
  2024-05-13  9:34         ` Johan Adolfsson
@ 2024-05-13  9:38           ` Krzysztof Kozlowski
  0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2024-05-13  9:38 UTC (permalink / raw)
  To: Johan Adolfsson, Neil Armstrong, Jessica Zhang, Sam Ravnborg,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding
  Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, kernel

On 13/05/2024 11:34, Johan Adolfsson wrote:
> 
> 
>> -----Original Message-----
>> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 
>> Sent: den 22 april 2024 22:57
>> To: Johan Adolfsson <Johan.Adolfsson@axis.com>; Neil Armstrong <neil.armstrong@linaro.org>; Jessica Zhang <quic_jesszhan@quicinc.com>; Sam Ravnborg <sam@ravnborg.org>; Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; David Airlie <airlied@gmail.com>; Daniel Vetter <daniel@ffwll.ch>; Rob Herring <robh+dt@kernel.org>; Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>; Conor Dooley <conor+dt@kernel.org>; Thierry Reding <thierry.reding@gmail.com>
>> Cc: dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org; devicetree@vger.kernel.org; kernel <kernel@axis.com>
>> Subject: Re: [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic panel-dsi>
>>
>> On 22/04/2024 16:34, Johan Adolfsson wrote:
>>>
>>>
>>> -----Original Message-----
>>> From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>>> Sent: den 19 april 2024 01:05
>>> To: Johan Adolfsson <Johan.Adolfsson@axis.com>; Neil Armstrong 
> ..
>>> Subject: Re: [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic 
>>> panel-dsi
>>>
>>>> On 18/04/2024 16:01, Johan Adolfsson wrote:
>>>>> panel-dsi is similar to panel-dpi with overridable timings
>>>>
>>>> ???
>>>
>>> I guess a more correct description would be "panel-dsi is a fallback 
>>> in a similar way that panel-dpi is in panel-dpi.yaml .."?
>>
>> I meant how does it explain the hardware.
> 
> In our case it's actually an FPGA that takes MIPI DSI input and can support multiple different kind of displays, and what I want to achieve
> is to avoid specifying a lot of different panel timings in the driver and have that in devicetree instead. 
> I appreciate any suggestions on how to phrase that in an acceptable manner.
> 
>>> ...
>>>>> a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.y
>>>>> am
>>>>> l
>>>>> +++ b/Documentation/devicetree/bindings/display/panel/panel-simple-d
>>>>> +++ si
>>>>> +++ .yaml
>>>>> @@ -56,6 +56,8 @@ properties:
>>>>>        - samsung,sofef00
>>>>>          # Shangai Top Display Optoelectronics 7" TL070WSH30 1024x600 TFT LCD panel
>>>>>        - tdo,tl070wsh30
>>>>> +        # Generic dsi panel with timing overridable
>>>>> +      - panel-dsi
>>>>
>>>> ? Devices are not generic. This is very confusing and commit msg does not help me. Compatibles *must* be specific, see writing-bindings.
>>>
>>> I guess I see this a generic fallback, that handles any dsi panel as 
>>> long as the correct timing etc is specified in devictree, similar to what panel-dpi is in panel-dpi.yaml Maybe phrasing it similar to panel-dpi.yaml is better?
>>
>> But panel-dpi is quite different. You always have two compatibles. I don't see two compatibles here.
> 
> It doesn't really need two compatibles (in practice at least), the new generic panel-dsi could be enough - I do believe that devices can be generic,
> but I admit that I'm not really "fluent" in devicetree and binding descriptions.

I guess the first comment brought here a bit of naming issue... The
bindings are not "generic".

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2024-05-13  9:38 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-18 14:01 [PATCH 0/2] Add generic panel-dsi to panel-simple Johan Adolfsson
2024-04-18 14:01 ` [PATCH 1/2] drm/panel: panel-simple: Add generic panel-dsi driver Johan Adolfsson
2024-04-18 23:06   ` Krzysztof Kozlowski
2024-04-22 14:05     ` Johan Adolfsson
2024-04-22 19:43       ` Dmitry Baryshkov
2024-04-18 14:01 ` [PATCH 2/2] dt-bindings: panel-simple-dsi: Add generic panel-dsi Johan Adolfsson
2024-04-18 23:04   ` Krzysztof Kozlowski
2024-04-22 14:34     ` Johan Adolfsson
2024-04-22 20:56       ` Krzysztof Kozlowski
2024-05-13  9:34         ` Johan Adolfsson
2024-05-13  9:38           ` Krzysztof Kozlowski

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).