* [PATCH v7 1/5] drm/debugfs: fix printk format for bridge index
2025-02-14 12:57 [PATCH v7 0/5] drm: small cleanups and improvements Luca Ceresoli
@ 2025-02-14 12:57 ` Luca Ceresoli
2025-02-14 12:57 ` [PATCH v7 2/5] drm: of: drm_of_find_panel_or_bridge: move misplaced comment Luca Ceresoli
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Luca Ceresoli @ 2025-02-14 12:57 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Jessica Zhang
Cc: Dmitry Baryshkov, Thomas Petazzoni, dri-devel, linux-kernel,
Luca Ceresoli
idx is an unsigned int, use %u for printk-style strings.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
Changes in v7: none
This patch was added in v6.
---
drivers/gpu/drm/drm_debugfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
index 536409a35df406dae0dd7ade01b3f3d1e2c9e8f9..6b2178864c7ee12db9aa1f562e106b2f604439f8 100644
--- a/drivers/gpu/drm/drm_debugfs.c
+++ b/drivers/gpu/drm/drm_debugfs.c
@@ -748,7 +748,7 @@ static int bridges_show(struct seq_file *m, void *data)
unsigned int idx = 0;
drm_for_each_bridge_in_chain(encoder, bridge) {
- drm_printf(&p, "bridge[%d]: %ps\n", idx++, bridge->funcs);
+ drm_printf(&p, "bridge[%u]: %ps\n", idx++, bridge->funcs);
drm_printf(&p, "\ttype: [%d] %s\n",
bridge->type,
drm_get_connector_type_name(bridge->type));
--
2.48.1
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH v7 2/5] drm: of: drm_of_find_panel_or_bridge: move misplaced comment
2025-02-14 12:57 [PATCH v7 0/5] drm: small cleanups and improvements Luca Ceresoli
2025-02-14 12:57 ` [PATCH v7 1/5] drm/debugfs: fix printk format for bridge index Luca Ceresoli
@ 2025-02-14 12:57 ` Luca Ceresoli
2025-02-14 12:57 ` [PATCH v7 3/5] drm/bridge: panel: use drm_bridge_is_panel() instead of open code Luca Ceresoli
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Luca Ceresoli @ 2025-02-14 12:57 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Jessica Zhang
Cc: Dmitry Baryshkov, Thomas Petazzoni, dri-devel, linux-kernel,
Luca Ceresoli
This comment is misleading as it refers to one of the inner if() branches
only, not the whole outer if(). Move it to the branch it refers to.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
Changes in v7: none
This patch was added in v6.
---
drivers/gpu/drm/drm_of.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c
index 5530919e0ba05f7ce1806730b292319f36e905ed..d0183dea770308e77f05da364ffe087d53f3be36 100644
--- a/drivers/gpu/drm/drm_of.c
+++ b/drivers/gpu/drm/drm_of.c
@@ -268,9 +268,9 @@ int drm_of_find_panel_or_bridge(const struct device_node *np,
*panel = NULL;
}
- /* No panel found yet, check for a bridge next. */
if (bridge) {
if (ret) {
+ /* No panel found yet, check for a bridge next. */
*bridge = of_drm_find_bridge(remote);
if (*bridge)
ret = 0;
--
2.48.1
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH v7 3/5] drm/bridge: panel: use drm_bridge_is_panel() instead of open code
2025-02-14 12:57 [PATCH v7 0/5] drm: small cleanups and improvements Luca Ceresoli
2025-02-14 12:57 ` [PATCH v7 1/5] drm/debugfs: fix printk format for bridge index Luca Ceresoli
2025-02-14 12:57 ` [PATCH v7 2/5] drm: of: drm_of_find_panel_or_bridge: move misplaced comment Luca Ceresoli
@ 2025-02-14 12:57 ` Luca Ceresoli
2025-02-14 12:57 ` [PATCH v7 4/5] drm/bridge: panel: drm_panel_bridge_remove: warn when called on non-panel bridge Luca Ceresoli
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Luca Ceresoli @ 2025-02-14 12:57 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Jessica Zhang
Cc: Dmitry Baryshkov, Thomas Petazzoni, dri-devel, linux-kernel,
Luca Ceresoli
drm_panel_bridge_remove() reads bridge->funcs to find out whether this is a
panel bridge or another kind of bridge. drm_bridge_is_panel() is made
exactly for that, so use it.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
Changes in v7: none
This patch was added in v6.
---
drivers/gpu/drm/bridge/panel.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
index 6e88339dec0f5faee690b7c53e8dcd0f1ee2281c..0c5db13b11dcb90ee88b9932b91aa05fc48d59bd 100644
--- a/drivers/gpu/drm/bridge/panel.c
+++ b/drivers/gpu/drm/bridge/panel.c
@@ -322,7 +322,7 @@ void drm_panel_bridge_remove(struct drm_bridge *bridge)
if (!bridge)
return;
- if (bridge->funcs != &panel_bridge_bridge_funcs)
+ if (!drm_bridge_is_panel(bridge))
return;
panel_bridge = drm_bridge_to_panel_bridge(bridge);
--
2.48.1
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH v7 4/5] drm/bridge: panel: drm_panel_bridge_remove: warn when called on non-panel bridge
2025-02-14 12:57 [PATCH v7 0/5] drm: small cleanups and improvements Luca Ceresoli
` (2 preceding siblings ...)
2025-02-14 12:57 ` [PATCH v7 3/5] drm/bridge: panel: use drm_bridge_is_panel() instead of open code Luca Ceresoli
@ 2025-02-14 12:57 ` Luca Ceresoli
2025-02-14 12:57 ` [PATCH v7 5/5] drm/bridge: panel: forbid initializing a panel with unknown connector type Luca Ceresoli
2025-02-17 13:23 ` [PATCH v7 0/5] drm: small cleanups and improvements Robert Foss
5 siblings, 0 replies; 7+ messages in thread
From: Luca Ceresoli @ 2025-02-14 12:57 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Jessica Zhang
Cc: Dmitry Baryshkov, Thomas Petazzoni, dri-devel, linux-kernel,
Luca Ceresoli
This function is for panel_bridge instances only. The silent return when
invoked on other bridges might hide actual errors, so avoid them to go
unnoticed.
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
Changes in v7: none
This patch was added in v6.
---
drivers/gpu/drm/bridge/panel.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
index 0c5db13b11dcb90ee88b9932b91aa05fc48d59bd..c57036b06493a6922e2cae38bcd1733930ff0073 100644
--- a/drivers/gpu/drm/bridge/panel.c
+++ b/drivers/gpu/drm/bridge/panel.c
@@ -322,8 +322,10 @@ void drm_panel_bridge_remove(struct drm_bridge *bridge)
if (!bridge)
return;
- if (!drm_bridge_is_panel(bridge))
+ if (!drm_bridge_is_panel(bridge)) {
+ drm_warn(bridge->dev, "%s: called on non-panel bridge!\n", __func__);
return;
+ }
panel_bridge = drm_bridge_to_panel_bridge(bridge);
--
2.48.1
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH v7 5/5] drm/bridge: panel: forbid initializing a panel with unknown connector type
2025-02-14 12:57 [PATCH v7 0/5] drm: small cleanups and improvements Luca Ceresoli
` (3 preceding siblings ...)
2025-02-14 12:57 ` [PATCH v7 4/5] drm/bridge: panel: drm_panel_bridge_remove: warn when called on non-panel bridge Luca Ceresoli
@ 2025-02-14 12:57 ` Luca Ceresoli
2025-02-17 13:23 ` [PATCH v7 0/5] drm: small cleanups and improvements Robert Foss
5 siblings, 0 replies; 7+ messages in thread
From: Luca Ceresoli @ 2025-02-14 12:57 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Jessica Zhang
Cc: Dmitry Baryshkov, Thomas Petazzoni, dri-devel, linux-kernel,
Luca Ceresoli
Having an DRM_MODE_CONNECTOR_Unknown connector type is considered bad, and
drm_panel_bridge_add_typed() and derivatives are deprecated for this.
drm_panel_init() won't prevent initializing a panel with a
DRM_MODE_CONNECTOR_Unknown connector type. Luckily there are no in-tree
users doing it, so take this as an opportinuty to document a valid
connector type must be passed.
Returning an error if this rule is violated is not possible because
drm_panel_init() is a void function. Add at least a warning to make any
violations noticeable, especially to non-upstream drivers.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
Changed in v7:
- fix typo in commit message
- rebased on v6 (applies to drm_panel, not bridge/panel.c)
This patch was added in v6.
---
drivers/gpu/drm/drm_panel.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
index 9940e96d35e302080c32b49154bbf19a51c0665e..c627e42a7ce70459f50eb5095fffc806ca45dabf 100644
--- a/drivers/gpu/drm/drm_panel.c
+++ b/drivers/gpu/drm/drm_panel.c
@@ -50,7 +50,7 @@ static LIST_HEAD(panel_list);
* @dev: parent device of the panel
* @funcs: panel operations
* @connector_type: the connector type (DRM_MODE_CONNECTOR_*) corresponding to
- * the panel interface
+ * the panel interface (must NOT be DRM_MODE_CONNECTOR_Unknown)
*
* Initialize the panel structure for subsequent registration with
* drm_panel_add().
@@ -58,6 +58,9 @@ static LIST_HEAD(panel_list);
void drm_panel_init(struct drm_panel *panel, struct device *dev,
const struct drm_panel_funcs *funcs, int connector_type)
{
+ if (connector_type == DRM_MODE_CONNECTOR_Unknown)
+ DRM_WARN("%s: %s: a valid connector type is required!\n", __func__, dev_name(dev));
+
INIT_LIST_HEAD(&panel->list);
INIT_LIST_HEAD(&panel->followers);
mutex_init(&panel->follower_lock);
--
2.48.1
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH v7 0/5] drm: small cleanups and improvements
2025-02-14 12:57 [PATCH v7 0/5] drm: small cleanups and improvements Luca Ceresoli
` (4 preceding siblings ...)
2025-02-14 12:57 ` [PATCH v7 5/5] drm/bridge: panel: forbid initializing a panel with unknown connector type Luca Ceresoli
@ 2025-02-17 13:23 ` Robert Foss
5 siblings, 0 replies; 7+ messages in thread
From: Robert Foss @ 2025-02-17 13:23 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Andrzej Hajda, Neil Armstrong,
Laurent Pinchart, Jonas Karlman, Jernej Skrabec, Jessica Zhang,
Luca Ceresoli
Cc: Dmitry Baryshkov, Thomas Petazzoni, dri-devel, linux-kernel
On Fri, 14 Feb 2025 13:57:39 +0100, Luca Ceresoli wrote:
> This series collects some minor improvements and fixes previously part of
> [0], hence the "v7" version number.
>
> All of these patches already have some Review/Ack tags.
>
> [0] https://lore.kernel.org/dri-devel/20250206-hotplug-drm-bridge-v6-0-9d6f2c9c3058@bootlin.com/
>
> [...]
Applied, thanks!
[1/5] drm/debugfs: fix printk format for bridge index
https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/72443c730b7a
[2/5] drm: of: drm_of_find_panel_or_bridge: move misplaced comment
https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/9d60cf4e8cf7
[3/5] drm/bridge: panel: use drm_bridge_is_panel() instead of open code
https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/cc46371e3d32
[4/5] drm/bridge: panel: drm_panel_bridge_remove: warn when called on non-panel bridge
https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/77053ef7207a
[5/5] drm/bridge: panel: forbid initializing a panel with unknown connector type
https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/b296955b3a74
Rob
^ permalink raw reply [flat|nested] 7+ messages in thread