From: Jani Nikula <jani.nikula@linux.intel.com>
To: Ville Syrjala <ville.syrjala@linux.intel.com>,
intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 01/12] drm/i915: Move modeset_retry stuff into intel_connector.c
Date: Thu, 13 Feb 2025 21:11:32 +0200 [thread overview]
Message-ID: <87jz9ty80r.fsf@intel.com> (raw)
In-Reply-To: <20250213150220.13580-2-ville.syrjala@linux.intel.com>
On Thu, 13 Feb 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Most the modeset retry stuff look to be entirely generic, and
Nitpick, Most of... looks...
> so there doesn't seem to any reason to keep it in intel_dp.c.
> Move the generic bits into intel_connector.c.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> .../gpu/drm/i915/display/intel_connector.c | 39 ++++++++++++++++
> .../gpu/drm/i915/display/intel_connector.h | 3 ++
> drivers/gpu/drm/i915/display/intel_dp.c | 44 ++-----------------
> drivers/gpu/drm/i915/display/intel_dp_mst.c | 2 +-
> 4 files changed, 46 insertions(+), 42 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c
> index c65887870ddc..4f54c9249a84 100644
> --- a/drivers/gpu/drm/i915/display/intel_connector.c
> +++ b/drivers/gpu/drm/i915/display/intel_connector.c
> @@ -28,6 +28,7 @@
>
> #include <drm/drm_atomic_helper.h>
> #include <drm/drm_edid.h>
> +#include <drm/drm_probe_helper.h>
>
> #include "i915_drv.h"
> #include "intel_backlight.h"
> @@ -37,6 +38,44 @@
> #include "intel_hdcp.h"
> #include "intel_panel.h"
>
> +static void intel_connector_modeset_retry_work_fn(struct work_struct *work)
> +{
> + struct intel_connector *connector = container_of(work, typeof(*connector),
> + modeset_retry_work);
> + struct intel_display *display = to_intel_display(connector);
> +
> + drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s]\n", connector->base.base.id,
> + connector->base.name);
> +
> + /* Grab the locks before changing connector property*/
> + mutex_lock(&display->drm->mode_config.mutex);
> + /* Set connector link status to BAD and send a Uevent to notify
> + * userspace to do a modeset.
> + */
> + drm_connector_set_link_status_property(&connector->base,
> + DRM_MODE_LINK_STATUS_BAD);
> + mutex_unlock(&display->drm->mode_config.mutex);
> + /* Send Hotplug uevent so userspace can reprobe */
> + drm_kms_helper_connector_hotplug_event(&connector->base);
> +
> + drm_connector_put(&connector->base);
> +}
> +
> +void intel_connector_queue_modeset_retry_work(struct intel_connector *connector)
> +{
> + struct drm_i915_private *i915 = to_i915(connector->base.dev);
> +
> + drm_connector_get(&connector->base);
> + if (!queue_work(i915->unordered_wq, &connector->modeset_retry_work))
> + drm_connector_put(&connector->base);
> +}
> +
> +void intel_connector_init_modeset_retry_work(struct intel_connector *connector)
> +{
> + INIT_WORK(&connector->modeset_retry_work,
> + intel_connector_modeset_retry_work_fn);
> +}
> +
> int intel_connector_init(struct intel_connector *connector)
> {
> struct intel_digital_connector_state *conn_state;
> diff --git a/drivers/gpu/drm/i915/display/intel_connector.h b/drivers/gpu/drm/i915/display/intel_connector.h
> index bafde3f11ff4..10a1779201ed 100644
> --- a/drivers/gpu/drm/i915/display/intel_connector.h
> +++ b/drivers/gpu/drm/i915/display/intel_connector.h
> @@ -33,5 +33,8 @@ void intel_attach_aspect_ratio_property(struct drm_connector *connector);
> void intel_attach_hdmi_colorspace_property(struct drm_connector *connector);
> void intel_attach_dp_colorspace_property(struct drm_connector *connector);
> void intel_attach_scaling_mode_property(struct drm_connector *connector);
> +void intel_connector_init_modeset_retry_work(struct intel_connector *connector);
> +void intel_connector_queue_modeset_retry_work(struct intel_connector *connector);
> +void intel_connector_cancel_modeset_retry_work(struct intel_connector *connector);
The last line belongs in patch 3. Other than that,
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>
> #endif /* __INTEL_CONNECTOR_H__ */
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 29970baaf03e..8bcf400b0239 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -3056,15 +3056,6 @@ intel_dp_audio_compute_config(struct intel_encoder *encoder,
> intel_dp_is_uhbr(pipe_config);
> }
>
> -static void intel_dp_queue_modeset_retry_work(struct intel_connector *connector)
> -{
> - struct drm_i915_private *i915 = to_i915(connector->base.dev);
> -
> - drm_connector_get(&connector->base);
> - if (!queue_work(i915->unordered_wq, &connector->modeset_retry_work))
> - drm_connector_put(&connector->base);
> -}
> -
> void
> intel_dp_queue_modeset_retry_for_link(struct intel_atomic_state *state,
> struct intel_encoder *encoder,
> @@ -3081,7 +3072,7 @@ intel_dp_queue_modeset_retry_for_link(struct intel_atomic_state *state,
> intel_dp->needs_modeset_retry = true;
>
> if (!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST)) {
> - intel_dp_queue_modeset_retry_work(intel_dp->attached_connector);
> + intel_connector_queue_modeset_retry_work(intel_dp->attached_connector);
>
> return;
> }
> @@ -3091,7 +3082,7 @@ intel_dp_queue_modeset_retry_for_link(struct intel_atomic_state *state,
> continue;
>
> if (connector->mst_port == intel_dp)
> - intel_dp_queue_modeset_retry_work(connector);
> + intel_connector_queue_modeset_retry_work(connector);
> }
> }
>
> @@ -6485,35 +6476,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
> return false;
> }
>
> -static void intel_dp_modeset_retry_work_fn(struct work_struct *work)
> -{
> - struct intel_connector *connector = container_of(work, typeof(*connector),
> - modeset_retry_work);
> - struct intel_display *display = to_intel_display(connector);
> -
> - drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s]\n", connector->base.base.id,
> - connector->base.name);
> -
> - /* Grab the locks before changing connector property*/
> - mutex_lock(&display->drm->mode_config.mutex);
> - /* Set connector link status to BAD and send a Uevent to notify
> - * userspace to do a modeset.
> - */
> - drm_connector_set_link_status_property(&connector->base,
> - DRM_MODE_LINK_STATUS_BAD);
> - mutex_unlock(&display->drm->mode_config.mutex);
> - /* Send Hotplug uevent so userspace can reprobe */
> - drm_kms_helper_connector_hotplug_event(&connector->base);
> -
> - drm_connector_put(&connector->base);
> -}
> -
> -void intel_dp_init_modeset_retry_work(struct intel_connector *connector)
> -{
> - INIT_WORK(&connector->modeset_retry_work,
> - intel_dp_modeset_retry_work_fn);
> -}
> -
> bool
> intel_dp_init_connector(struct intel_digital_port *dig_port,
> struct intel_connector *connector)
> @@ -6526,7 +6488,7 @@ intel_dp_init_connector(struct intel_digital_port *dig_port,
> int type;
>
> /* Initialize the work for modeset in case of link train failure */
> - intel_dp_init_modeset_retry_work(connector);
> + intel_connector_init_modeset_retry_work(connector);
>
> if (drm_WARN(dev, dig_port->max_lanes < 1,
> "Not enough lanes (%d) for DP on [ENCODER:%d:%s]\n",
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index 73a0a0f9b3d0..0044b2a9a16b 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -1747,7 +1747,7 @@ mst_topology_add_connector(struct drm_dp_mst_topology_mgr *mgr,
> connector->port = port;
> drm_dp_mst_get_port_malloc(port);
>
> - intel_dp_init_modeset_retry_work(connector);
> + intel_connector_init_modeset_retry_work(connector);
>
> ret = drm_connector_dynamic_init(display->drm, &connector->base, &mst_connector_funcs,
> DRM_MODE_CONNECTOR_DisplayPort, NULL);
--
Jani Nikula, Intel
next prev parent reply other threads:[~2025-02-13 19:11 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-13 15:02 [PATCH 00/12] drm/i915: Hoist some stuff out from intel_display.c Ville Syrjala
2025-02-13 15:02 ` [PATCH 01/12] drm/i915: Move modeset_retry stuff into intel_connector.c Ville Syrjala
2025-02-13 19:11 ` Jani Nikula [this message]
2025-02-13 15:02 ` [PATCH 02/12] drm/i915: Always initialize connector->modeset_retry_work Ville Syrjala
2025-02-13 19:11 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 03/12] drm/i915: Extract intel_connector_cancel_modeset_retry_work() Ville Syrjala
2025-02-13 19:12 ` Jani Nikula
2025-02-13 19:13 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 04/12] drm/i915: Extract intel_hdcp_cancel_works() Ville Syrjala
2025-02-13 19:14 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 05/12] drm/i915: Move intel_hpd_poll_fini() into intel_hotplug.c Ville Syrjala
2025-02-13 19:15 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 06/12] drm/i915: Move intel_plane_destroy() into intel_atomic_plane.c Ville Syrjala
2025-02-13 19:17 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 07/12] drm/i915: Relocate vlv_wait_port_ready() Ville Syrjala
2025-02-13 19:18 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 08/12] drm/i915: Simplify vlv_wait_port_ready() arguments Ville Syrjala
2025-02-13 19:19 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 09/12] drm/i915: Relocate intel_plane_uses_fence() Ville Syrjala
2025-02-13 19:20 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 10/12] drm/i915: Relocate intel_{rotation, remapped}_info_size() Ville Syrjala
2025-02-13 19:21 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 11/12] drm/i915: Relocate some other plane fb related stuff into intel_fb.c Ville Syrjala
2025-02-13 19:22 ` Jani Nikula
2025-02-13 15:02 ` [PATCH 12/12] drm/i915: s/state/plane_state/ Ville Syrjala
2025-02-13 19:23 ` Jani Nikula
2025-02-13 15:25 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Hoist some stuff out from intel_display.c Patchwork
2025-02-13 15:25 ` ✗ Fi.CI.SPARSE: " Patchwork
2025-02-13 15:44 ` ✗ i915.CI.BAT: failure " Patchwork
2025-02-14 18:22 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Hoist some stuff out from intel_display.c (rev2) Patchwork
2025-02-14 18:22 ` ✗ Fi.CI.SPARSE: " Patchwork
2025-02-14 18:39 ` ✗ i915.CI.BAT: failure " Patchwork
2025-02-15 3:02 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Hoist some stuff out from intel_display.c (rev3) Patchwork
2025-02-15 3:02 ` ✗ Fi.CI.SPARSE: " Patchwork
2025-02-15 3:18 ` ✓ i915.CI.BAT: success " Patchwork
2025-02-15 6:56 ` ✗ i915.CI.Full: failure " Patchwork
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=87jz9ty80r.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=ville.syrjala@linux.intel.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.