All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] drm: Remove unused *drm parameter
       [not found] <CGME20260706134549eucas1p20eedf2d3287d95687eaaa8a201679083@eucas1p2.samsung.com>
@ 2026-07-06 13:34 ` Jan Niedziolka
  2026-07-06 13:34   ` [PATCH 1/3] gpu/drm: Remove unused *dev parameter from drm_mode_destroy function Jan Niedziolka
                     ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Jan Niedziolka @ 2026-07-06 13:34 UTC (permalink / raw)
  To: maarten.lankhorst, mripard, tzimmermann, airlied, simona,
	k.tegowski
  Cc: dri-devel, linux-kernel, a.fijalko, bartlomiej.k, Jan Niedziolka

Commit 0e691bc73026 ("drm: Remove use of drm_mode_object") introduced changes
which caused *dev parameter to be unused in function body yet left over in
function's (drm_mode_create and drm_mode_destroy) signature.
This patchset revolves around removing this parameter, cleaning those functions
references and also providing minimal logging (as it's best to not introduce
breaking changes in functions that old, only drm_notice() logging is done instead
of proper error handling or at least error code returning).

Jan Niedziolka (3):
  gpu/drm: Remove unused *dev parameter from drm_mode_destroy function
  gpu/drm: Remove unused 'drm device *dev' parameter from
    drm_mode_create()
  gpu/drm: Add drm_notice logging when drm_mode_create fails

 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  4 +-
 .../drm/bridge/cadence/cdns-mhdp8546-core.c   |  2 +-
 drivers/gpu/drm/drm_client_modeset.c          |  8 ++--
 drivers/gpu/drm/drm_connector.c               |  2 +-
 drivers/gpu/drm/drm_crtc.c                    |  4 +-
 drivers/gpu/drm/drm_crtc_helper.c             |  2 +-
 drivers/gpu/drm/drm_edid.c                    | 12 ++---
 drivers/gpu/drm/drm_modes.c                   | 34 ++++++++------
 drivers/gpu/drm/exynos/exynos_dp.c            | 47 +++++++++++++++++++
 drivers/gpu/drm/exynos/exynos_drm_dpi.c       |  2 +-
 drivers/gpu/drm/gma500/psb_intel_sdvo.c       |  3 +-
 drivers/gpu/drm/gud/gud_connector.c           |  2 +-
 drivers/gpu/drm/i915/display/intel_panel.c    |  4 +-
 drivers/gpu/drm/i915/display/intel_tv.c       |  2 +-
 drivers/gpu/drm/msm/dsi/dsi_host.c            |  2 +-
 drivers/gpu/drm/nouveau/dispnv50/disp.c       |  2 +-
 drivers/gpu/drm/nouveau/nouveau_connector.c   |  2 +-
 drivers/gpu/drm/panel/panel-edp.c             |  2 +-
 .../drm/panel/panel-olimex-lcd-olinuxino.c    |  2 +-
 drivers/gpu/drm/panel/panel-samsung-ld9040.c  |  2 +-
 drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c |  2 +-
 drivers/gpu/drm/panel/panel-seiko-43wvf1g.c   |  2 +-
 drivers/gpu/drm/panel/panel-simple.c          |  2 +-
 .../gpu/drm/renesas/shmobile/shmob_drm_crtc.c |  2 +-
 drivers/gpu/drm/tests/drm_kunit_helpers.c     |  2 +-
 drivers/gpu/drm/vboxvideo/vbox_mode.c         |  2 +-
 drivers/gpu/drm/xen/xen_drm_front_conn.c      |  2 +-
 include/drm/drm_modes.h                       |  4 +-
 28 files changed, 104 insertions(+), 54 deletions(-)

-- 
2.43.0


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

* [PATCH 1/3] gpu/drm: Remove unused *dev parameter from drm_mode_destroy function
  2026-07-06 13:34 ` [PATCH 0/3] drm: Remove unused *drm parameter Jan Niedziolka
@ 2026-07-06 13:34   ` Jan Niedziolka
  2026-07-06 13:55     ` sashiko-bot
  2026-07-06 13:34   ` [PATCH 2/3] gpu/drm: Remove unused 'drm device *dev' parameter from drm_mode_create() Jan Niedziolka
  2026-07-06 13:34   ` [PATCH 3/3] gpu/drm: Add drm_notice logging when drm_mode_create fails Jan Niedziolka
  2 siblings, 1 reply; 7+ messages in thread
From: Jan Niedziolka @ 2026-07-06 13:34 UTC (permalink / raw)
  To: maarten.lankhorst, mripard, tzimmermann, airlied, simona,
	k.tegowski
  Cc: dri-devel, linux-kernel, a.fijalko, bartlomiej.k, Jan Niedziolka

Get rid of unused 'struct drm_device *dev' parameter from drm_mode_destroy()
prototype and definition.
Keep drm_mode_destroy() comment up to date - remove unnecessary *dev record.
Also, fix all drm_mode_destroy() calls where *dev argument is used.

Fixes: 0e691bc73026 ("drm: Remove use of drm_mode_object")
Signed-off-by: Jan Niedziolka <j.niedziolka@samsung.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c   |  4 ++--
 drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c |  2 +-
 drivers/gpu/drm/drm_client_modeset.c                |  8 ++++----
 drivers/gpu/drm/drm_connector.c                     |  2 +-
 drivers/gpu/drm/drm_crtc.c                          |  2 +-
 drivers/gpu/drm/drm_crtc_helper.c                   |  2 +-
 drivers/gpu/drm/drm_edid.c                          |  8 ++++----
 drivers/gpu/drm/drm_modes.c                         | 11 +++++------
 drivers/gpu/drm/gma500/psb_intel_sdvo.c             |  3 +--
 drivers/gpu/drm/i915/display/intel_panel.c          |  4 ++--
 drivers/gpu/drm/msm/dsi/dsi_host.c                  |  2 +-
 drivers/gpu/drm/nouveau/dispnv50/disp.c             |  2 +-
 drivers/gpu/drm/nouveau/nouveau_connector.c         |  2 +-
 drivers/gpu/drm/tests/drm_kunit_helpers.c           |  2 +-
 drivers/gpu/drm/vboxvideo/vbox_mode.c               |  2 +-
 include/drm/drm_modes.h                             |  2 +-
 16 files changed, 28 insertions(+), 30 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 97ab1e83b318..b919efd8f42b 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -8562,7 +8562,7 @@ enum drm_mode_status amdgpu_dm_connector_mode_valid(struct drm_connector *connec
 	stream = create_validate_stream_for_sink(connector, test_mode,
 						 to_dm_connector_state(connector->state),
 						 NULL);
-	drm_mode_destroy(connector->dev, test_mode);
+	drm_mode_destroy(test_mode);
 	if (stream) {
 		dc_stream_release(stream);
 		result = MODE_OK;
@@ -9217,7 +9217,7 @@ static uint add_fs_modes(struct amdgpu_dm_connector *aconnector)
 			drm_mode_probed_add(&aconnector->base, new_mode);
 			new_modes_count += 1;
 		} else
-			drm_mode_destroy(aconnector->base.dev, new_mode);
+			drm_mode_destroy(new_mode);
 	}
  out:
 	return new_modes_count;
diff --git a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
index 36c07b71fe04..b971f2bcfa26 100644
--- a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
+++ b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
@@ -1913,7 +1913,7 @@ cdns_mhdp_bridge_atomic_destroy_state(struct drm_bridge *bridge,
 	cdns_mhdp_state = to_cdns_mhdp_bridge_state(state);
 
 	if (cdns_mhdp_state->current_mode) {
-		drm_mode_destroy(bridge->dev, cdns_mhdp_state->current_mode);
+		drm_mode_destroy(cdns_mhdp_state->current_mode);
 		cdns_mhdp_state->current_mode = NULL;
 	}
 
diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c
index 0080a8e9556a..66f17a386198 100644
--- a/drivers/gpu/drm/drm_client_modeset.c
+++ b/drivers/gpu/drm/drm_client_modeset.c
@@ -79,7 +79,7 @@ static void drm_client_modeset_release(struct drm_client_dev *client)
 	drm_client_for_each_modeset(modeset, client) {
 		int i;
 
-		drm_mode_destroy(client->dev, modeset->mode);
+		drm_mode_destroy(modeset->mode);
 		modeset->mode = NULL;
 		modeset->fb = NULL;
 
@@ -272,7 +272,7 @@ static void mode_replace(struct drm_device *dev,
 			 const struct drm_display_mode **dst,
 			 const struct drm_display_mode *src)
 {
-	drm_mode_destroy(dev, (struct drm_display_mode *)*dst);
+	drm_mode_destroy((struct drm_display_mode *)*dst);
 
 	*dst = src ? drm_mode_duplicate(dev, src) : NULL;
 }
@@ -367,7 +367,7 @@ static bool drm_client_target_cloned(struct drm_device *dev,
 		if (!modes[i])
 			can_clone = false;
 	}
-	drm_mode_destroy(dev, dmt_mode);
+	drm_mode_destroy(dmt_mode);
 
 	if (can_clone) {
 		drm_dbg_kms(dev, "can clone using 1024x768\n");
@@ -913,7 +913,7 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width,
 				break;
 			}
 
-			drm_mode_destroy(dev, modeset->mode);
+			drm_mode_destroy(modeset->mode);
 			modeset->mode = drm_mode_duplicate(dev, mode);
 			if (!modeset->mode) {
 				ret = -ENOMEM;
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index 3fa4d2082cd7..6825cd4e9001 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -706,7 +706,7 @@ static void drm_mode_remove(struct drm_connector *connector,
 			    struct drm_display_mode *mode)
 {
 	list_del(&mode->head);
-	drm_mode_destroy(connector->dev, mode);
+	drm_mode_destroy(mode);
 }
 
 /**
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 63ead8ba6756..22039a553a24 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -897,7 +897,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
 		}
 	}
 	kfree(connector_set);
-	drm_mode_destroy(dev, mode);
+	drm_mode_destroy(mode);
 
 	/* In case we need to retry... */
 	connector_set = NULL;
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index 4a8cfe046e4a..084417791a28 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -421,7 +421,7 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
 
 	/* FIXME: add subpixel order */
 done:
-	drm_mode_destroy(dev, adjusted_mode);
+	drm_mode_destroy(adjusted_mode);
 	if (!ret) {
 		crtc->enabled = saved_enabled;
 		drm_mode_copy(&crtc->mode, &saved_mode);
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 404208bf23a6..7f456e9c27a5 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -3361,7 +3361,7 @@ drm_gtf2_mode(struct drm_device *dev,
 		return NULL;
 
 	if (drm_mode_hsync(mode) > drm_gtf2_hbreak(drm_edid)) {
-		drm_mode_destroy(dev, mode);
+		drm_mode_destroy(mode);
 		mode = drm_gtf_mode_complex(dev, hsize, vsize,
 					    vrefresh_rate, 0, 0,
 					    drm_gtf2_m(drm_edid),
@@ -3777,7 +3777,7 @@ static int drm_gtf_modes_for_range(struct drm_connector *connector,
 		drm_mode_fixup_1366x768(newmode);
 		if (!mode_in_range(newmode, drm_edid, timing) ||
 		    !valid_inferred_mode(connector, newmode)) {
-			drm_mode_destroy(dev, newmode);
+			drm_mode_destroy(newmode);
 			continue;
 		}
 
@@ -3806,7 +3806,7 @@ static int drm_gtf2_modes_for_range(struct drm_connector *connector,
 		drm_mode_fixup_1366x768(newmode);
 		if (!mode_in_range(newmode, drm_edid, timing) ||
 		    !valid_inferred_mode(connector, newmode)) {
-			drm_mode_destroy(dev, newmode);
+			drm_mode_destroy(newmode);
 			continue;
 		}
 
@@ -3836,7 +3836,7 @@ static int drm_cvt_modes_for_range(struct drm_connector *connector,
 		drm_mode_fixup_1366x768(newmode);
 		if (!mode_in_range(newmode, drm_edid, timing) ||
 		    !valid_inferred_mode(connector, newmode)) {
-			drm_mode_destroy(dev, newmode);
+			drm_mode_destroy(newmode);
 			continue;
 		}
 
diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
index 3f8e025fd6d9..175bf3eef14b 100644
--- a/drivers/gpu/drm/drm_modes.c
+++ b/drivers/gpu/drm/drm_modes.c
@@ -85,12 +85,11 @@ EXPORT_SYMBOL(drm_mode_create);
 
 /**
  * drm_mode_destroy - remove a mode
- * @dev: DRM device
  * @mode: mode to remove
  *
- * Release @mode's unique ID, then free it @mode structure itself using kfree.
+ * Free @mode structure using kfree.
  */
-void drm_mode_destroy(struct drm_device *dev, struct drm_display_mode *mode)
+void drm_mode_destroy(struct drm_display_mode *mode)
 {
 	if (!mode)
 		return;
@@ -591,7 +590,7 @@ struct drm_display_mode *drm_analog_tv_mode(struct drm_device *dev,
 	return mode;
 
 err_free_mode:
-	drm_mode_destroy(dev, mode);
+	drm_mode_destroy(mode);
 	return NULL;
 }
 EXPORT_SYMBOL(drm_analog_tv_mode);
@@ -1819,7 +1818,7 @@ void drm_mode_prune_invalid(struct drm_device *dev,
 				drm_dbg_kms(dev, "Rejected mode: " DRM_MODE_FMT " (%s)\n",
 					    DRM_MODE_ARG(mode), drm_get_mode_status_name(mode->status));
 			}
-			drm_mode_destroy(dev, mode);
+			drm_mode_destroy(mode);
 		}
 	}
 }
@@ -1924,7 +1923,7 @@ void drm_connector_list_update(struct drm_connector *connector)
 			}
 
 			list_del(&pmode->head);
-			drm_mode_destroy(connector->dev, pmode);
+			drm_mode_destroy(pmode);
 			break;
 		}
 
diff --git a/drivers/gpu/drm/gma500/psb_intel_sdvo.c b/drivers/gpu/drm/gma500/psb_intel_sdvo.c
index 3ca11aad569d..a834252a7774 100644
--- a/drivers/gpu/drm/gma500/psb_intel_sdvo.c
+++ b/drivers/gpu/drm/gma500/psb_intel_sdvo.c
@@ -1787,8 +1787,7 @@ static void psb_intel_sdvo_enc_destroy(struct drm_encoder *encoder)
 	struct psb_intel_sdvo *psb_intel_sdvo = to_psb_intel_sdvo(encoder);
 
 	if (psb_intel_sdvo->sdvo_lvds_fixed_mode != NULL)
-		drm_mode_destroy(encoder->dev,
-				 psb_intel_sdvo->sdvo_lvds_fixed_mode);
+		drm_mode_destroy(psb_intel_sdvo->sdvo_lvds_fixed_mode);
 
 	i2c_del_adapter(&psb_intel_sdvo->ddc);
 	gma_encoder_destroy(encoder);
diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
index 20c548eea6da..b4b87e794917 100644
--- a/drivers/gpu/drm/i915/display/intel_panel.c
+++ b/drivers/gpu/drm/i915/display/intel_panel.c
@@ -309,7 +309,7 @@ static void intel_panel_destroy_probed_modes(struct intel_connector *connector)
 			    connector->base.base.id, connector->base.name,
 			    DRM_MODE_ARG(mode));
 		list_del(&mode->head);
-		drm_mode_destroy(display->drm, mode);
+		drm_mode_destroy(mode);
 	}
 }
 
@@ -466,7 +466,7 @@ void intel_panel_fini(struct intel_connector *connector)
 
 	list_for_each_entry_safe(fixed_mode, next, &panel->fixed_modes, head) {
 		list_del(&fixed_mode->head);
-		drm_mode_destroy(connector->base.dev, fixed_mode);
+		drm_mode_destroy(fixed_mode);
 	}
 }
 
diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
index 982abaaac00d..f62033eee5c9 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_host.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
@@ -2579,7 +2579,7 @@ int msm_dsi_host_set_display_mode(struct mipi_dsi_host *host,
 	struct msm_dsi_host *msm_host = to_msm_dsi_host(host);
 
 	if (msm_host->mode) {
-		drm_mode_destroy(msm_host->dev, msm_host->mode);
+		drm_mode_destroy(msm_host->mode);
 		msm_host->mode = NULL;
 	}
 
diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index 364227f5456f..4b820e3d08f7 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -1185,7 +1185,7 @@ nv50_mstc_get_modes(struct drm_connector *connector)
 		connector->display_info.bpc = 8;
 
 	if (mstc->native)
-		drm_mode_destroy(mstc->connector.dev, mstc->native);
+		drm_mode_destroy(mstc->native);
 	mstc->native = nouveau_conn_native_mode(&mstc->connector);
 	return ret;
 }
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index b0b0ad9a0c24..755a5d31aae0 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -969,7 +969,7 @@ nouveau_connector_get_modes(struct drm_connector *connector)
 	/* destroy the native mode, the attached monitor could have changed.
 	 */
 	if (nv_connector->native_mode) {
-		drm_mode_destroy(dev, nv_connector->native_mode);
+		drm_mode_destroy(nv_connector->native_mode);
 		nv_connector->native_mode = NULL;
 	}
 
diff --git a/drivers/gpu/drm/tests/drm_kunit_helpers.c b/drivers/gpu/drm/tests/drm_kunit_helpers.c
index 727766444d63..547fbef0dbb6 100644
--- a/drivers/gpu/drm/tests/drm_kunit_helpers.c
+++ b/drivers/gpu/drm/tests/drm_kunit_helpers.c
@@ -337,7 +337,7 @@ static void kunit_action_drm_mode_destroy(void *ptr)
 {
 	struct drm_display_mode *mode = ptr;
 
-	drm_mode_destroy(NULL, mode);
+	drm_mode_destroy(mode);
 }
 
 /**
diff --git a/drivers/gpu/drm/vboxvideo/vbox_mode.c b/drivers/gpu/drm/vboxvideo/vbox_mode.c
index 8e4e5fc9d3c5..fbe5c2382983 100644
--- a/drivers/gpu/drm/vboxvideo/vbox_mode.c
+++ b/drivers/gpu/drm/vboxvideo/vbox_mode.c
@@ -782,7 +782,7 @@ static int vbox_fill_modes(struct drm_connector *connector, u32 max_x,
 	dev = vbox_connector->base.dev;
 	list_for_each_entry_safe(mode, iterator, &connector->modes, head) {
 		list_del(&mode->head);
-		drm_mode_destroy(dev, mode);
+		drm_mode_destroy(mode);
 	}
 
 	return drm_helper_probe_single_connector_modes(connector, max_x, max_y);
diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h
index b9bb92e4b029..b1d1ecb15f02 100644
--- a/include/drm/drm_modes.h
+++ b/include/drm/drm_modes.h
@@ -453,7 +453,7 @@ struct drm_connector;
 struct drm_cmdline_mode;
 
 struct drm_display_mode *drm_mode_create(struct drm_device *dev);
-void drm_mode_destroy(struct drm_device *dev, struct drm_display_mode *mode);
+void drm_mode_destroy(struct drm_display_mode *mode);
 void drm_mode_convert_to_umode(struct drm_mode_modeinfo *out,
 			       const struct drm_display_mode *in);
 int drm_mode_convert_umode(struct drm_device *dev,
-- 
2.43.0


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

* [PATCH 2/3] gpu/drm: Remove unused 'drm device *dev' parameter from drm_mode_create()
  2026-07-06 13:34 ` [PATCH 0/3] drm: Remove unused *drm parameter Jan Niedziolka
  2026-07-06 13:34   ` [PATCH 1/3] gpu/drm: Remove unused *dev parameter from drm_mode_destroy function Jan Niedziolka
@ 2026-07-06 13:34   ` Jan Niedziolka
  2026-07-06 13:57     ` sashiko-bot
  2026-07-06 13:34   ` [PATCH 3/3] gpu/drm: Add drm_notice logging when drm_mode_create fails Jan Niedziolka
  2 siblings, 1 reply; 7+ messages in thread
From: Jan Niedziolka @ 2026-07-06 13:34 UTC (permalink / raw)
  To: maarten.lankhorst, mripard, tzimmermann, airlied, simona,
	k.tegowski
  Cc: dri-devel, linux-kernel, a.fijalko, bartlomiej.k, Jan Niedziolka

Get rid of unused 'struct drm_device *dev' parameter from drm_mode_create()
prototype and definition.
Keep drm_mode_create() doc comment up to date - remove unnecessary *dev record.
Also, fix all drm_mode_create() calls where *dev argument is used.

Fixes: 0e691bc73026 ("drm: Remove use of drm_mode_object")
Signed-off-by: Jan Niedziolka <j.niedziolka@samsung.com>
---
 drivers/gpu/drm/drm_crtc.c                    |  2 +-
 drivers/gpu/drm/drm_edid.c                    |  4 +-
 drivers/gpu/drm/drm_modes.c                   | 11 ++---
 drivers/gpu/drm/exynos/exynos_dp.c            | 47 +++++++++++++++++++
 drivers/gpu/drm/exynos/exynos_drm_dpi.c       |  2 +-
 drivers/gpu/drm/gud/gud_connector.c           |  2 +-
 drivers/gpu/drm/i915/display/intel_tv.c       |  2 +-
 drivers/gpu/drm/panel/panel-edp.c             |  2 +-
 .../drm/panel/panel-olimex-lcd-olinuxino.c    |  2 +-
 drivers/gpu/drm/panel/panel-samsung-ld9040.c  |  2 +-
 drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c |  2 +-
 drivers/gpu/drm/panel/panel-seiko-43wvf1g.c   |  2 +-
 drivers/gpu/drm/panel/panel-simple.c          |  2 +-
 .../gpu/drm/renesas/shmobile/shmob_drm_crtc.c |  2 +-
 drivers/gpu/drm/xen/xen_drm_front_conn.c      |  2 +-
 include/drm/drm_modes.h                       |  2 +-
 16 files changed, 67 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 22039a553a24..cda6dbadaa94 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -777,7 +777,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
 			}
 		}
 
-		mode = drm_mode_create(dev);
+		mode = drm_mode_create();
 		if (!mode) {
 			ret = -ENOMEM;
 			goto out;
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 7f456e9c27a5..2a9a982da74e 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -3563,7 +3563,7 @@ static struct drm_display_mode *drm_mode_detailed(struct drm_connector *connecto
 		goto set_size;
 	}
 
-	mode = drm_mode_create(dev);
+	mode = drm_mode_create();
 	if (!mode)
 		return NULL;
 
@@ -6876,7 +6876,7 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
 	bool hsync_positive = le16_to_cpu(timings->hsync) & (1 << 15);
 	bool vsync_positive = le16_to_cpu(timings->vsync) & (1 << 15);
 
-	mode = drm_mode_create(dev);
+	mode = drm_mode_create();
 	if (!mode)
 		return NULL;
 
diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
index 175bf3eef14b..049d77e75ddd 100644
--- a/drivers/gpu/drm/drm_modes.c
+++ b/drivers/gpu/drm/drm_modes.c
@@ -63,7 +63,6 @@ EXPORT_SYMBOL(drm_mode_debug_printmodeline);
 
 /**
  * drm_mode_create - create a new display mode
- * @dev: DRM device
  *
  * Create a new, cleared drm_display_mode with kzalloc, allocate an ID for it
  * and return it.
@@ -71,7 +70,7 @@ EXPORT_SYMBOL(drm_mode_debug_printmodeline);
  * Returns:
  * Pointer to new mode on success, NULL on error.
  */
-struct drm_display_mode *drm_mode_create(struct drm_device *dev)
+struct drm_display_mode *drm_mode_create(void)
 {
 	struct drm_display_mode *nmode;
 
@@ -577,7 +576,7 @@ struct drm_display_mode *drm_analog_tv_mode(struct drm_device *dev,
 		return NULL;
 	}
 
-	mode = drm_mode_create(dev);
+	mode = drm_mode_create();
 	if (!mode)
 		return NULL;
 
@@ -646,7 +645,7 @@ struct drm_display_mode *drm_cvt_mode(struct drm_device *dev, int hdisplay,
 	/* allocate the drm_display_mode structure. If failure, we will
 	 * return directly
 	 */
-	drm_mode = drm_mode_create(dev);
+	drm_mode = drm_mode_create();
 	if (!drm_mode)
 		return NULL;
 
@@ -881,7 +880,7 @@ drm_gtf_mode_complex(struct drm_device *dev, int hdisplay, int vdisplay,
 	if (!hdisplay || !vdisplay)
 		return NULL;
 
-	drm_mode = drm_mode_create(dev);
+	drm_mode = drm_mode_create();
 	if (!drm_mode)
 		return NULL;
 
@@ -1458,7 +1457,7 @@ struct drm_display_mode *drm_mode_duplicate(struct drm_device *dev,
 {
 	struct drm_display_mode *nmode;
 
-	nmode = drm_mode_create(dev);
+	nmode = drm_mode_create();
 	if (!nmode)
 		return NULL;
 
diff --git a/drivers/gpu/drm/exynos/exynos_dp.c b/drivers/gpu/drm/exynos/exynos_dp.c
index b80540328150..78183809b4fb 100644
--- a/drivers/gpu/drm/exynos/exynos_dp.c
+++ b/drivers/gpu/drm/exynos/exynos_dp.c
@@ -68,6 +68,53 @@ static int exynos_dp_poweroff(struct analogix_dp_plat_data *plat_data)
 	return exynos_dp_crtc_clock_enable(plat_data, false);
 }
 
+static int exynos_dp_get_modes(struct analogix_dp_plat_data *plat_data,
+			       struct drm_connector *connector)
+{
+	struct exynos_dp_device *dp = to_dp(plat_data);
+	struct drm_display_mode *mode;
+
+	if (dp->plat_data.panel)
+		return 0;
+
+	mode = drm_mode_create();
+	if (!mode) {
+		DRM_DEV_ERROR(dp->dev,
+			      "failed to create a new display mode.\n");
+		return 0;
+	}
+
+	drm_display_mode_from_videomode(&dp->vm, mode);
+	connector->display_info.width_mm = mode->width_mm;
+	connector->display_info.height_mm = mode->height_mm;
+
+	mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
+	drm_mode_set_name(mode);
+	drm_mode_probed_add(connector, mode);
+
+	return 1;
+}
+
+static int exynos_dp_bridge_attach(struct analogix_dp_plat_data *plat_data,
+				   struct drm_bridge *bridge,
+				   struct drm_connector *connector)
+{
+	struct exynos_dp_device *dp = to_dp(plat_data);
+	int ret;
+
+	dp->connector = connector;
+
+	/* Pre-empt DP connector creation if there's a bridge */
+	if (dp->ptn_bridge) {
+		ret = drm_bridge_attach(&dp->encoder, dp->ptn_bridge, bridge,
+					0);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
 static void exynos_dp_mode_set(struct drm_encoder *encoder,
 			       struct drm_display_mode *mode,
 			       struct drm_display_mode *adjusted_mode)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
index 0dc36df6ada3..391c831c87f8 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
@@ -69,7 +69,7 @@ static int exynos_dpi_get_modes(struct drm_connector *connector)
 	if (ctx->vm) {
 		struct drm_display_mode *mode;
 
-		mode = drm_mode_create(connector->dev);
+		mode = drm_mode_create();
 		if (!mode) {
 			DRM_DEV_ERROR(ctx->dev,
 				      "failed to create a new display mode\n");
diff --git a/drivers/gpu/drm/gud/gud_connector.c b/drivers/gpu/drm/gud/gud_connector.c
index ea0cca58b7c8..50315175d6d9 100644
--- a/drivers/gpu/drm/gud/gud_connector.c
+++ b/drivers/gpu/drm/gud/gud_connector.c
@@ -264,7 +264,7 @@ static int gud_connector_get_modes(struct drm_connector *connector)
 	for (i = 0; i < num_modes; i++) {
 		struct drm_display_mode *mode;
 
-		mode = drm_mode_create(connector->dev);
+		mode = drm_mode_create();
 		if (!mode) {
 			num_modes = i;
 			goto out;
diff --git a/drivers/gpu/drm/i915/display/intel_tv.c b/drivers/gpu/drm/i915/display/intel_tv.c
index 0a926c6f25f4..071520565ddb 100644
--- a/drivers/gpu/drm/i915/display/intel_tv.c
+++ b/drivers/gpu/drm/i915/display/intel_tv.c
@@ -1807,7 +1807,7 @@ intel_tv_get_modes(struct drm_connector *connector)
 		    input->h > intel_tv_mode_vdisplay(tv_mode))
 			continue;
 
-		mode = drm_mode_create(connector->dev);
+		mode = drm_mode_create();
 		if (!mode)
 			continue;
 
diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c
index aa27d6cd932e..21651a16d1ba 100644
--- a/drivers/gpu/drm/panel/panel-edp.c
+++ b/drivers/gpu/drm/panel/panel-edp.c
@@ -262,7 +262,7 @@ static unsigned int panel_edp_get_timings_modes(struct panel_edp *panel,
 		struct videomode vm;
 
 		videomode_from_timing(dt, &vm);
-		mode = drm_mode_create(connector->dev);
+		mode = drm_mode_create();
 		if (!mode) {
 			dev_err(panel->base.dev, "failed to add mode %ux%u\n",
 				dt->hactive.typ, dt->vactive.typ);
diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
index 66f99982f360..fec0a29ce073 100644
--- a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
+++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
@@ -112,7 +112,7 @@ static int lcd_olinuxino_get_modes(struct drm_panel *panel,
 		lcd_mode = (struct lcd_olinuxino_mode *)
 			   &lcd->eeprom.reserved[i * sizeof(*lcd_mode)];
 
-		mode = drm_mode_create(connector->dev);
+		mode = drm_mode_create();
 		if (!mode) {
 			dev_err(panel->dev, "failed to add mode %ux%u@%u\n",
 				lcd_mode->hactive,
diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
index c7f2241523a0..727d92dafd75 100644
--- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
+++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
@@ -267,7 +267,7 @@ static int ld9040_get_modes(struct drm_panel *panel,
 	struct ld9040 *ctx = panel_to_ld9040(panel);
 	struct drm_display_mode *mode;
 
-	mode = drm_mode_create(connector->dev);
+	mode = drm_mode_create();
 	if (!mode) {
 		dev_err(panel->dev, "failed to create a new display mode\n");
 		return 0;
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
index 1b5c500d4f4e..4b11784a8416 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
@@ -925,7 +925,7 @@ static int s6e8aa0_get_modes(struct drm_panel *panel,
 	struct s6e8aa0 *ctx = panel_to_s6e8aa0(panel);
 	struct drm_display_mode *mode;
 
-	mode = drm_mode_create(connector->dev);
+	mode = drm_mode_create();
 	if (!mode) {
 		dev_err(panel->dev, "failed to create a new display mode\n");
 		return 0;
diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
index 0935d83ee2db..cea5843c00ca 100644
--- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
+++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
@@ -69,7 +69,7 @@ static int seiko_panel_get_fixed_modes(struct seiko_panel *panel,
 		struct videomode vm;
 
 		videomode_from_timing(dt, &vm);
-		mode = drm_mode_create(connector->dev);
+		mode = drm_mode_create();
 		if (!mode) {
 			dev_err(panel->base.dev, "failed to add mode %ux%u\n",
 				dt->hactive.typ, dt->vactive.typ);
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index c09bf3db5e78..811efddc29c1 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -180,7 +180,7 @@ static unsigned int panel_simple_get_timings_modes(struct panel_simple *panel,
 		struct videomode vm;
 
 		videomode_from_timing(dt, &vm);
-		mode = drm_mode_create(connector->dev);
+		mode = drm_mode_create();
 		if (!mode) {
 			dev_err(panel->base.dev, "failed to add mode %ux%u\n",
 				dt->hactive.typ, dt->vactive.typ);
diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
index 1a2b9b68af6f..6c8f705b9541 100644
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
+++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
@@ -489,7 +489,7 @@ static int shmob_drm_connector_get_modes(struct drm_connector *connector)
 	struct shmob_drm_connector *scon = to_shmob_connector(connector);
 	struct drm_display_mode *mode;
 
-	mode = drm_mode_create(connector->dev);
+	mode = drm_mode_create();
 	if (mode == NULL)
 		return 0;
 
diff --git a/drivers/gpu/drm/xen/xen_drm_front_conn.c b/drivers/gpu/drm/xen/xen_drm_front_conn.c
index a1ba6d3d0568..8051d8976efa 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_conn.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_conn.c
@@ -67,7 +67,7 @@ static int connector_get_modes(struct drm_connector *connector)
 	struct videomode videomode;
 	int width, height;
 
-	mode = drm_mode_create(connector->dev);
+	mode = drm_mode_create();
 	if (!mode)
 		return 0;
 
diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h
index b1d1ecb15f02..94e846ef38be 100644
--- a/include/drm/drm_modes.h
+++ b/include/drm/drm_modes.h
@@ -452,7 +452,7 @@ static inline bool drm_mode_is_stereo(const struct drm_display_mode *mode)
 struct drm_connector;
 struct drm_cmdline_mode;
 
-struct drm_display_mode *drm_mode_create(struct drm_device *dev);
+struct drm_display_mode *drm_mode_create(void);
 void drm_mode_destroy(struct drm_display_mode *mode);
 void drm_mode_convert_to_umode(struct drm_mode_modeinfo *out,
 			       const struct drm_display_mode *in);
-- 
2.43.0


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

* [PATCH 3/3] gpu/drm: Add drm_notice logging when drm_mode_create fails
  2026-07-06 13:34 ` [PATCH 0/3] drm: Remove unused *drm parameter Jan Niedziolka
  2026-07-06 13:34   ` [PATCH 1/3] gpu/drm: Remove unused *dev parameter from drm_mode_destroy function Jan Niedziolka
  2026-07-06 13:34   ` [PATCH 2/3] gpu/drm: Remove unused 'drm device *dev' parameter from drm_mode_create() Jan Niedziolka
@ 2026-07-06 13:34   ` Jan Niedziolka
  2026-07-06 13:58     ` sashiko-bot
  2 siblings, 1 reply; 7+ messages in thread
From: Jan Niedziolka @ 2026-07-06 13:34 UTC (permalink / raw)
  To: maarten.lankhorst, mripard, tzimmermann, airlied, simona,
	k.tegowski
  Cc: dri-devel, linux-kernel, a.fijalko, bartlomiej.k, Jan Niedziolka

Add logging to have it printed when mode creating fails. As the NULL return has
been present here for a long time, it's better to keep it as it is. However, a
simple drm_notice() print should be helpful when such fail happens.
At the same time, adding drm_notice() to drm_mode_duplicate() allows making use
of *dev parameter and at the same time, keeps the further drm_mode_duplicate()
references stable.

It's a matter of discussion whether NULL or error code should be returned - the
latter might be more elegant and secure, but introducing it would mean breaking
internal API (current references). It's a cost which might be considered, if
needed.

Signed-off-by: Jan Niedziolka <j.niedziolka@samsung.com>
---
 drivers/gpu/drm/drm_modes.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
index 049d77e75ddd..fc6d974e3948 100644
--- a/drivers/gpu/drm/drm_modes.c
+++ b/drivers/gpu/drm/drm_modes.c
@@ -646,8 +646,10 @@ struct drm_display_mode *drm_cvt_mode(struct drm_device *dev, int hdisplay,
 	 * return directly
 	 */
 	drm_mode = drm_mode_create();
-	if (!drm_mode)
+	if (!drm_mode) {
+		drm_notice(dev, "Failed to create a new display mode\n");
 		return NULL;
+	}
 
 	/* the CVT default refresh rate is 60Hz */
 	if (!vrefresh)
@@ -881,8 +883,10 @@ drm_gtf_mode_complex(struct drm_device *dev, int hdisplay, int vdisplay,
 		return NULL;
 
 	drm_mode = drm_mode_create();
-	if (!drm_mode)
+	if (!drm_mode) {
+		drm_notice(dev, "Failed to create a new display mode\n");
 		return NULL;
+	}
 
 	/* 1. In order to give correct results, the number of horizontal
 	 * pixels requested is first processed to ensure that it is divisible
@@ -1458,8 +1462,10 @@ struct drm_display_mode *drm_mode_duplicate(struct drm_device *dev,
 	struct drm_display_mode *nmode;
 
 	nmode = drm_mode_create();
-	if (!nmode)
+	if (!nmode) {
+		drm_notice(dev, "Failed to create a new display mode\n");
 		return NULL;
+	}
 
 	drm_mode_copy(nmode, mode);
 
-- 
2.43.0


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

* Re: [PATCH 1/3] gpu/drm: Remove unused *dev parameter from drm_mode_destroy function
  2026-07-06 13:34   ` [PATCH 1/3] gpu/drm: Remove unused *dev parameter from drm_mode_destroy function Jan Niedziolka
@ 2026-07-06 13:55     ` sashiko-bot
  0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-07-06 13:55 UTC (permalink / raw)
  To: Jan Niedziolka; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] Unused local variables `dev` and `vbox_connector` due to the removal of the `dev` parameter from `drm_mode_destroy()`.
--

commit 9caafe56634afb7bf9e65d116788497811b64f48
Author: Jan Niedziolka <j.niedziolka@samsung.com>

gpu/drm: Remove unused *dev parameter from drm_mode_destroy function

This commit removes the unused dev parameter from the drm_mode_destroy
function prototype and updates all callers across the tree to match.

[ ... ]

> diff --git a/drivers/gpu/drm/vboxvideo/vbox_mode.c b/drivers/gpu/drm/vboxvideo/vbox_mode.c
> index 8e4e5fc9d3c5a..fbe5c2382983e 100644
> --- a/drivers/gpu/drm/vboxvideo/vbox_mode.c
> +++ b/drivers/gpu/drm/vboxvideo/vbox_mode.c
> @@ -782,7 +782,7 @@ static int vbox_fill_modes(struct drm_connector *connector, u32 max_x,
>  	dev = vbox_connector->base.dev;
>  	list_for_each_entry_safe(mode, iterator, &connector->modes, head) {
>  		list_del(&mode->head);
> -		drm_mode_destroy(dev, mode);
> +		drm_mode_destroy(mode);

[Severity: Low]
Since the dev parameter was removed from drm_mode_destroy(), are the dev and
vbox_connector variables now completely unused in vbox_fill_modes()?

Looking at the full function context:

static int vbox_fill_modes(struct drm_connector *connector, u32 max_x, u32 max_y)
{
        struct vbox_connector *vbox_connector;
        struct drm_device *dev;
        struct drm_display_mode *mode, *iterator;

        vbox_connector = to_vbox_connector(connector);
        dev = vbox_connector->base.dev;
        list_for_each_entry_safe(mode, iterator, &connector->modes, head) {
                list_del(&mode->head);
                drm_mode_destroy(mode);
        }

        return drm_helper_probe_single_connector_modes(connector, max_x, max_y);
}

Could leaving these assignments here trigger unused-but-set-variable compiler
warnings, potentially breaking builds with -Werror enabled?

>  	}
>  
>  	return drm_helper_probe_single_connector_modes(connector, max_x, max_y);

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260706134515.3369960-1-j.niedziolka@samsung.com?part=1

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

* Re: [PATCH 2/3] gpu/drm: Remove unused 'drm device *dev' parameter from drm_mode_create()
  2026-07-06 13:34   ` [PATCH 2/3] gpu/drm: Remove unused 'drm device *dev' parameter from drm_mode_create() Jan Niedziolka
@ 2026-07-06 13:57     ` sashiko-bot
  0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-07-06 13:57 UTC (permalink / raw)
  To: Jan Niedziolka; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] Build failure due to referencing non-existent members in struct exynos_dp_device and unused static functions.
--

commit aa4d752f4408535e5aa104d5d47b153a65ec83e2
Author: Jan Niedziolka <j.niedziolka@samsung.com>

gpu/drm: Remove unused 'drm device *dev' parameter from drm_mode_create()
    
This commit removes the unused struct drm_device *dev parameter from the
drm_mode_create() prototype and definition. It also updates all calls to
drm_mode_create() to reflect this change.

> diff --git a/drivers/gpu/drm/exynos/exynos_dp.c b/drivers/gpu/drm/exynos/exynos_dp.c
> index b805403281504..78183809b4fb3 100644
> --- a/drivers/gpu/drm/exynos/exynos_dp.c
> +++ b/drivers/gpu/drm/exynos/exynos_dp.c
> @@ -68,6 +68,53 @@ static int exynos_dp_poweroff(struct analogix_dp_plat_data *plat_data)
>  	return exynos_dp_crtc_clock_enable(plat_data, false);
>  }
>  
> +static int exynos_dp_get_modes(struct analogix_dp_plat_data *plat_data,
> +			       struct drm_connector *connector)
> +{
> +	struct exynos_dp_device *dp = to_dp(plat_data);
> +	struct drm_display_mode *mode;
> +
> +	if (dp->plat_data.panel)
> +		return 0;
> +
> +	mode = drm_mode_create();
> +	if (!mode) {
> +		DRM_DEV_ERROR(dp->dev,
> +			      "failed to create a new display mode.\n");
> +		return 0;
> +	}
> +
> +	drm_display_mode_from_videomode(&dp->vm, mode);

[Severity: Low]
Does this code compile successfully? Looking at the definition of
struct exynos_dp_device, it doesn't appear to have a vm member. This might
cause a build failure.

> +	connector->display_info.width_mm = mode->width_mm;
> +	connector->display_info.height_mm = mode->height_mm;
> +
> +	mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
> +	drm_mode_set_name(mode);
> +	drm_mode_probed_add(connector, mode);
> +
> +	return 1;
> +}
> +
> +static int exynos_dp_bridge_attach(struct analogix_dp_plat_data *plat_data,
> +				   struct drm_bridge *bridge,
> +				   struct drm_connector *connector)
> +{
> +	struct exynos_dp_device *dp = to_dp(plat_data);
> +	int ret;
> +
> +	dp->connector = connector;

[Severity: Low]
Similarly here, is connector a valid member of struct exynos_dp_device?

> +
> +	/* Pre-empt DP connector creation if there's a bridge */
> +	if (dp->ptn_bridge) {

[Severity: Low]
And here, does struct exynos_dp_device have a ptn_bridge member? It looks
like these functions might have been accidentally pasted from another driver
during a rebase, as they don't seem to match the struct definition and don't
appear to be referenced anywhere in this file.

> +		ret = drm_bridge_attach(&dp->encoder, dp->ptn_bridge, bridge,
> +					0);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260706134515.3369960-1-j.niedziolka@samsung.com?part=2

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

* Re: [PATCH 3/3] gpu/drm: Add drm_notice logging when drm_mode_create fails
  2026-07-06 13:34   ` [PATCH 3/3] gpu/drm: Add drm_notice logging when drm_mode_create fails Jan Niedziolka
@ 2026-07-06 13:58     ` sashiko-bot
  0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-07-06 13:58 UTC (permalink / raw)
  To: Jan Niedziolka; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Low] Redundant custom OOM logging
- [Low] Incomplete implementation of mode creation failure logging
--

commit 918b658b4d8223239a11b91ab8f874692e392821
Author: Jan Niedziolka <j.niedziolka@samsung.com>

gpu/drm: Add drm_notice logging when drm_mode_create fails

This commit adds drm_notice() prints to drm_cvt_mode(), drm_gtf_mode_complex(),
and drm_mode_duplicate() to log when drm_mode_create() fails and returns NULL.

> diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
> index 049d77e75ddda..fc6d974e3948d 100644
> --- a/drivers/gpu/drm/drm_modes.c
> +++ b/drivers/gpu/drm/drm_modes.c
> @@ -646,8 +646,10 @@ struct drm_display_mode *drm_cvt_mode(struct drm_device *dev, int hdisplay,
>  	 * return directly
>  	 */
>  	drm_mode = drm_mode_create();
> -	if (!drm_mode)
> +	if (!drm_mode) {
> +		drm_notice(dev, "Failed to create a new display mode\n");
>  		return NULL;
> +	}

[Severity: Low]
Is this custom error logging redundant?

Since drm_mode_create() relies on memory allocation (via kzalloc_obj()), the
kernel's memory allocation subsystem will already report OOM conditions with a
backtrace. Adding custom error messages for memory allocation failures
can cause unnecessary kernel binary bloat and log spam.

[Severity: Low]
If the intent is to log mode creation failures consistently, did this miss
drm_analog_tv_mode()?

It takes a dev parameter and calls drm_mode_create() in the same file, but
was not updated by this patch:

drivers/gpu/drm/drm_modes.c:drm_analog_tv_mode() {
        ...
        mode = drm_mode_create();
        if (!mode)
                return NULL;
        ...
}

[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260706134515.3369960-1-j.niedziolka@samsung.com?part=3

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

end of thread, other threads:[~2026-07-06 13:58 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <CGME20260706134549eucas1p20eedf2d3287d95687eaaa8a201679083@eucas1p2.samsung.com>
2026-07-06 13:34 ` [PATCH 0/3] drm: Remove unused *drm parameter Jan Niedziolka
2026-07-06 13:34   ` [PATCH 1/3] gpu/drm: Remove unused *dev parameter from drm_mode_destroy function Jan Niedziolka
2026-07-06 13:55     ` sashiko-bot
2026-07-06 13:34   ` [PATCH 2/3] gpu/drm: Remove unused 'drm device *dev' parameter from drm_mode_create() Jan Niedziolka
2026-07-06 13:57     ` sashiko-bot
2026-07-06 13:34   ` [PATCH 3/3] gpu/drm: Add drm_notice logging when drm_mode_create fails Jan Niedziolka
2026-07-06 13:58     ` sashiko-bot

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.