From: Imre Deak <imre.deak@intel.com>
To: Rodrigo Vivi <rodrigo.vivi@intel.com>,
Jani Nikula <jani.nikula@intel.com>,
Simona Vetter <simona@ffwll.ch>,
Alex Deucher <alexander.deucher@amd.com>,
Lyude Paul <lyude@redhat.com>, Maxime Ripard <mripard@kernel.org>,
Wayne Lin <wayne.lin@amd.com>,
Stephen Rothwell <sfr@canb.auug.org.au>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
Harry Wentland <harry.wentland@amd.com>,
Leo Li <sunpeng.li@amd.com>, Karol Herbst <kherbst@redhat.com>,
Danilo Krummrich <dakr@kernel.org>
Subject: Re: [PATCH v3 0/7] drm/connector: Expose only a properly inited connector
Date: Tue, 17 Dec 2024 16:47:11 +0200 [thread overview]
Message-ID: <Z2GO73VinccXiDC_@ideak-desk.fi.intel.com> (raw)
In-Reply-To: <20241211230328.4012496-1-imre.deak@intel.com>
On Thu, Dec 12, 2024 at 01:03:17AM +0200, Imre Deak wrote:
The patchset at [2] is pushed now to drm-misc-next, thanks for the
reviews, acks and ideas.
While merging, I fixed the typos in patch 3, 5-7 and removed references
to 'patches', 'patchsets' in the commit logs of patch 2, 4, 9.
I had to rebase patch 5 ("drm/i915/dp_mst: Expose a connector to kernel
users after it's properly initialized") on drm-misc-next due to commit
5503f8112e52 ("drm/i915/mst: unify MST topology callback naming to
mst_topology_*") being only in drm-intel-next and not in drm-misc-next
and then resolve a trivial conflict while merging drm-misc-next to
drm-tip in the following way:
diff --cc drivers/gpu/drm/i915/display/intel_dp_mst.c
index 56ca571e534c5,326ff20a5a499..708fe93d8b06b
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@@ -1715,9 -1704,7 +1704,9 @@@ mst_topology_add_connector(struct drm_d
if (!intel_connector)
return NULL;
+ connector = &intel_connector->base;
+
- intel_connector->get_hw_state = intel_dp_mst_get_hw_state;
+ intel_connector->get_hw_state = mst_connector_get_hw_state;
intel_connector->sync_state = intel_dp_connector_sync_state;
intel_connector->mst_port = intel_dp;
intel_connector->port = port;
@@@ -1725,22 -1712,33 +1714,22 @@@
intel_dp_init_modeset_retry_work(intel_connector);
- ret = drm_connector_dynamic_init(&dev_priv->drm, connector, &intel_dp_mst_connector_funcs,
- /*
- * TODO: The following drm_connector specific initialization belongs
- * to DRM core, however it happens atm too late in
- * drm_connector_init(). That function will also expose the connector
- * to in-kernel users, so it can't be called until the connector is
- * sufficiently initialized; init the device pointer used by the
- * following DSC setup, until a fix moving this to DRM core.
- */
- intel_connector->base.dev = mgr->dev;
-
- intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
- intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
- intel_connector->dp.dsc_hblank_expansion_quirk =
- detect_dsc_hblank_expansion_quirk(intel_connector);
-
- connector = &intel_connector->base;
- ret = drm_connector_init(display->drm, connector, &mst_connector_funcs,
- DRM_MODE_CONNECTOR_DisplayPort);
++ ret = drm_connector_dynamic_init(display->drm, connector, &mst_connector_funcs,
+ DRM_MODE_CONNECTOR_DisplayPort, NULL);
if (ret) {
drm_dp_mst_put_port_malloc(port);
intel_connector_free(intel_connector);
return NULL;
}
+ intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
+ intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
+ intel_connector->dp.dsc_hblank_expansion_quirk =
+ detect_dsc_hblank_expansion_quirk(intel_connector);
+
- drm_connector_helper_add(connector, &intel_dp_mst_connector_helper_funcs);
+ drm_connector_helper_add(connector, &mst_connector_helper_funcs);
- for_each_pipe(dev_priv, pipe) {
+ for_each_pipe(display, pipe) {
struct drm_encoder *enc =
&intel_dp->mst_encoders[pipe]->base.base;
[2] https://lore.kernel.org/all/20241211230328.4012496-1-imre.deak@intel.com
> This is v3 of [1], with the following changes:
>
> - Instead of the drm_connector_init_core()/drm_connector_add() add
> a drm_connector_dynamic_init()/drm_connector_dynamic_register()
> interface. Adding the connector to the connector list is now part of
> the registration step done by the latter function. (Sima)
> - Add kunit tests for the above functions. (Maxime)
> - Add a FIXME note for a related issue in the GETRESOURCES ioctl call.
> (Sima)
> - Add a note to depricate the use of
> drm_connector_register()/drm_connector_unregister() by drivers for
> static connectors.
>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Simona Vetter <simona@ffwll.ch>
> Cc: Maxime Ripard <mripard@kernel.org>
> Cc: Lyude Paul <lyude@redhat.com>
> Cc: Harry Wentland <harry.wentland@amd.com>
> Cc: Leo Li <sunpeng.li@amd.com>
> Cc: Wayne Lin <wayne.lin@amd.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Karol Herbst <kherbst@redhat.com>
> Cc: Danilo Krummrich <dakr@kernel.org>
>
> [1] https://lore.kernel.org/all/20241126161859.1858058-1-imre.deak@intel.com
>
> Imre Deak (11):
> drm/connector: Add a way to init/add a connector in separate steps
> drm/connector: Add FIXME for GETRESOURCES ioctl wrt. uninited
> connectors
> drm/connector: Add deprication notes for
> drm_connector_register/unregister
> drm/dp_mst: Register connectors via drm_connector_dynamic_register()
> drm/i915/dp_mst: Expose a connector to kernel users after it's
> properly initialized
> drm/amd/dp_mst: Expose a connector to kernel users after it's properly
> initialized
> drm/nouveau/dp_mst: Expose a connector to kernel users after it's
> properly initialized
> drm/connector: Warn if a connector is registered/added incorrectly
> drm/tests: Add tests for drm_connector_dynamic_init()/register()
> drm/i915/dp_mst: Fix error handling while adding a connector
> drm/i915/dp_mst: Use intel_connector vs. drm_connector pointer in
> intel_dp_mst.c
>
> .../display/amdgpu_dm/amdgpu_dm_mst_types.c | 5 +-
> drivers/gpu/drm/display/drm_dp_mst_topology.c | 2 +-
> drivers/gpu/drm/drm_connector.c | 168 ++++++-
> drivers/gpu/drm/drm_mode_config.c | 9 +
> drivers/gpu/drm/i915/display/intel_dp_mst.c | 206 ++++----
> drivers/gpu/drm/nouveau/dispnv50/disp.c | 4 +-
> drivers/gpu/drm/tests/drm_connector_test.c | 463 ++++++++++++++++++
> include/drm/drm_connector.h | 6 +
> 8 files changed, 722 insertions(+), 141 deletions(-)
>
> --
> 2.44.2
prev parent reply other threads:[~2024-12-17 14:46 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-11 23:03 [PATCH v3 0/7] drm/connector: Expose only a properly inited connector Imre Deak
2024-12-11 23:03 ` [PATCH v3 01/11] drm/connector: Add a way to init/add a connector in separate steps Imre Deak
2024-12-12 0:33 ` Lyude Paul
2024-12-12 10:16 ` Simona Vetter
2024-12-12 10:04 ` Jani Nikula
2024-12-12 11:45 ` Imre Deak
2024-12-16 12:22 ` Maxime Ripard
2024-12-11 23:03 ` [PATCH v3 02/11] drm/connector: Add FIXME for GETRESOURCES ioctl wrt. uninited connectors Imre Deak
2024-12-12 10:06 ` Jani Nikula
2024-12-13 12:02 ` Imre Deak
2024-12-11 23:03 ` [PATCH v3 03/11] drm/connector: Add deprication notes for drm_connector_register/unregister Imre Deak
2024-12-12 10:10 ` Jani Nikula
2024-12-12 12:02 ` Imre Deak
2024-12-16 14:37 ` Simona Vetter
2024-12-11 23:03 ` [PATCH v3 04/11] drm/dp_mst: Register connectors via drm_connector_dynamic_register() Imre Deak
2024-12-12 10:12 ` Jani Nikula
2024-12-13 12:06 ` Imre Deak
2024-12-16 11:03 ` Jani Nikula
2024-12-16 12:14 ` Imre Deak
2024-12-16 12:23 ` Imre Deak
2024-12-17 8:02 ` Lin, Wayne
2024-12-11 23:03 ` [PATCH v3 05/11] drm/i915/dp_mst: Expose a connector to kernel users after it's properly initialized Imre Deak
2024-12-12 10:13 ` Jani Nikula
2024-12-11 23:03 ` [PATCH v3 06/11] drm/amd/dp_mst: " Imre Deak
2024-12-12 10:14 ` Jani Nikula
2024-12-16 12:45 ` Imre Deak
2024-12-16 18:26 ` Alex Deucher
2024-12-11 23:03 ` [PATCH v3 07/11] drm/nouveau/dp_mst: " Imre Deak
2024-12-12 10:14 ` Jani Nikula
2024-12-11 23:03 ` [PATCH v3 08/11] drm/connector: Warn if a connector is registered/added incorrectly Imre Deak
2024-12-12 10:15 ` Jani Nikula
2024-12-11 23:03 ` [PATCH v3 09/11] drm/tests: Add tests for drm_connector_dynamic_init()/register() Imre Deak
2024-12-16 12:22 ` Maxime Ripard
2024-12-11 23:03 ` [PATCH v3 10/11] drm/i915/dp_mst: Fix error handling while adding a connector Imre Deak
2024-12-12 10:16 ` Jani Nikula
2024-12-11 23:03 ` [PATCH v3 11/11] drm/i915/dp_mst: Use intel_connector vs. drm_connector pointer in intel_dp_mst.c Imre Deak
2024-12-12 10:25 ` Jani Nikula
2024-12-12 12:23 ` Imre Deak
2024-12-11 23:33 ` ✗ Fi.CI.CHECKPATCH: warning for drm/connector: Expose only a properly inited connector Patchwork
2024-12-11 23:33 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-12-11 23:57 ` ✓ i915.CI.BAT: success " Patchwork
2024-12-12 7:33 ` ✗ i915.CI.Full: failure " Patchwork
2024-12-13 15:41 ` Imre Deak
2024-12-16 12:22 ` [PATCH v3 0/7] " Imre Deak
2024-12-16 12:39 ` Maxime Ripard
2024-12-17 14:47 ` Imre Deak [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z2GO73VinccXiDC_@ideak-desk.fi.intel.com \
--to=imre.deak@intel.com \
--cc=alexander.deucher@amd.com \
--cc=dakr@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=harry.wentland@amd.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=kherbst@redhat.com \
--cc=lyude@redhat.com \
--cc=mripard@kernel.org \
--cc=rodrigo.vivi@intel.com \
--cc=sfr@canb.auug.org.au \
--cc=simona@ffwll.ch \
--cc=sunpeng.li@amd.com \
--cc=wayne.lin@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.