From: Jani Nikula <jani.nikula@linux.intel.com>
To: Ville Syrjala <ville.syrjala@linux.intel.com>,
intel-gfx@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 09/12] drm/i915/hdmi: Use connector->ddc everwhere
Date: Wed, 30 Aug 2023 15:08:44 +0300 [thread overview]
Message-ID: <87bkeozq9f.fsf@intel.com> (raw)
In-Reply-To: <20230829113920.13713-10-ville.syrjala@linux.intel.com>
On Tue, 29 Aug 2023, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> We already populate connector->ddc for HDMI ports, but
> so far we've not taken full advantage of it. Do that by
> eliminating a bunch of intel_gmbus_get_adapter() lookups.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_ddi.c | 3 +-
> drivers/gpu/drm/i915/display/intel_hdmi.c | 37 ++++++++---------------
> 2 files changed, 14 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index e6cc4dab3201..d86ce93fb57f 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -4323,8 +4323,7 @@ static int intel_hdmi_reset_link(struct intel_encoder *encoder,
> struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> struct intel_hdmi *hdmi = enc_to_intel_hdmi(encoder);
> struct intel_connector *connector = hdmi->attached_connector;
> - struct i2c_adapter *ddc =
> - intel_gmbus_get_adapter(dev_priv, hdmi->ddc_bus);
> + struct i2c_adapter *ddc = connector->base.ddc;
> struct drm_connector_state *conn_state;
> struct intel_crtc_state *crtc_state;
> struct intel_crtc *crtc;
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index 82f9a40b34e3..efa9bb93cfb1 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -1240,7 +1240,7 @@ static void hsw_set_infoframes(struct intel_encoder *encoder,
> void intel_dp_dual_mode_set_tmds_output(struct intel_hdmi *hdmi, bool enable)
> {
> struct drm_i915_private *dev_priv = intel_hdmi_to_i915(hdmi);
> - struct i2c_adapter *ddc = intel_gmbus_get_adapter(dev_priv, hdmi->ddc_bus);
> + struct i2c_adapter *ddc = hdmi->attached_connector->base.ddc;
>
> if (hdmi->dp_dual_mode.type < DRM_DP_DUAL_MODE_TYPE2_DVI)
> return;
> @@ -1255,9 +1255,8 @@ void intel_dp_dual_mode_set_tmds_output(struct intel_hdmi *hdmi, bool enable)
> static int intel_hdmi_hdcp_read(struct intel_digital_port *dig_port,
> unsigned int offset, void *buffer, size_t size)
> {
> - struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> struct intel_hdmi *hdmi = &dig_port->hdmi;
> - struct i2c_adapter *ddc = intel_gmbus_get_adapter(i915, hdmi->ddc_bus);
> + struct i2c_adapter *ddc = hdmi->attached_connector->base.ddc;
> int ret;
> u8 start = offset & 0xff;
> struct i2c_msg msgs[] = {
> @@ -1283,9 +1282,8 @@ static int intel_hdmi_hdcp_read(struct intel_digital_port *dig_port,
> static int intel_hdmi_hdcp_write(struct intel_digital_port *dig_port,
> unsigned int offset, void *buffer, size_t size)
> {
> - struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> struct intel_hdmi *hdmi = &dig_port->hdmi;
> - struct i2c_adapter *ddc = intel_gmbus_get_adapter(i915, hdmi->ddc_bus);
> + struct i2c_adapter *ddc = hdmi->attached_connector->base.ddc;
> int ret;
> u8 *write_buf;
> struct i2c_msg msg;
> @@ -1318,7 +1316,7 @@ int intel_hdmi_hdcp_write_an_aksv(struct intel_digital_port *dig_port,
> {
> struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> struct intel_hdmi *hdmi = &dig_port->hdmi;
> - struct i2c_adapter *ddc = intel_gmbus_get_adapter(i915, hdmi->ddc_bus);
> + struct i2c_adapter *ddc = hdmi->attached_connector->base.ddc;
> int ret;
>
> ret = intel_hdmi_hdcp_write(dig_port, DRM_HDCP_DDC_AN, an,
> @@ -2398,8 +2396,10 @@ intel_hdmi_dp_dual_mode_detect(struct drm_connector *connector)
> struct drm_i915_private *dev_priv = to_i915(connector->dev);
> struct intel_hdmi *hdmi = intel_attached_hdmi(to_intel_connector(connector));
> struct intel_encoder *encoder = &hdmi_to_dig_port(hdmi)->base;
> - struct i2c_adapter *ddc = intel_gmbus_get_adapter(dev_priv, hdmi->ddc_bus);
> - enum drm_dp_dual_mode_type type = drm_dp_dual_mode_detect(&dev_priv->drm, ddc);
> + struct i2c_adapter *ddc = connector->ddc;
> + enum drm_dp_dual_mode_type type;
> +
> + type = drm_dp_dual_mode_detect(&dev_priv->drm, ddc);
>
> /*
> * Type 1 DVI adaptors are not required to implement any
> @@ -2447,7 +2447,7 @@ intel_hdmi_set_edid(struct drm_connector *connector)
> {
> struct drm_i915_private *dev_priv = to_i915(connector->dev);
> struct intel_hdmi *intel_hdmi = intel_attached_hdmi(to_intel_connector(connector));
> - struct i2c_adapter *ddc = intel_gmbus_get_adapter(dev_priv, intel_hdmi->ddc_bus);
> + struct i2c_adapter *ddc = connector->ddc;
> intel_wakeref_t wakeref;
> const struct drm_edid *drm_edid;
> const struct edid *edid;
> @@ -2544,19 +2544,10 @@ static int intel_hdmi_get_modes(struct drm_connector *connector)
> return drm_edid_connector_add_modes(connector);
> }
>
> -static struct i2c_adapter *
> -intel_hdmi_get_i2c_adapter(struct drm_connector *connector)
> -{
> - struct drm_i915_private *dev_priv = to_i915(connector->dev);
> - struct intel_hdmi *intel_hdmi = intel_attached_hdmi(to_intel_connector(connector));
> -
> - return intel_gmbus_get_adapter(dev_priv, intel_hdmi->ddc_bus);
> -}
> -
> static void intel_hdmi_create_i2c_symlink(struct drm_connector *connector)
> {
> struct drm_i915_private *i915 = to_i915(connector->dev);
> - struct i2c_adapter *ddc = intel_hdmi_get_i2c_adapter(connector);
> + struct i2c_adapter *ddc = connector->ddc;
> struct kobject *i2c_kobj = &ddc->dev.kobj;
> struct kobject *connector_kobj = &connector->kdev->kobj;
> int ret;
> @@ -2568,7 +2559,7 @@ static void intel_hdmi_create_i2c_symlink(struct drm_connector *connector)
>
> static void intel_hdmi_remove_i2c_symlink(struct drm_connector *connector)
> {
> - struct i2c_adapter *ddc = intel_hdmi_get_i2c_adapter(connector);
> + struct i2c_adapter *ddc = connector->ddc;
> struct kobject *i2c_kobj = &ddc->dev.kobj;
> struct kobject *connector_kobj = &connector->kdev->kobj;
>
> @@ -3007,7 +2998,6 @@ void intel_hdmi_init_connector(struct intel_digital_port *dig_port,
> struct intel_encoder *intel_encoder = &dig_port->base;
> struct drm_device *dev = intel_encoder->base.dev;
> struct drm_i915_private *dev_priv = to_i915(dev);
> - struct i2c_adapter *ddc;
> enum port port = intel_encoder->port;
> struct cec_connector_info conn_info;
>
> @@ -3028,12 +3018,11 @@ void intel_hdmi_init_connector(struct intel_digital_port *dig_port,
> if (!intel_hdmi->ddc_bus)
> return;
>
> - ddc = intel_gmbus_get_adapter(dev_priv, intel_hdmi->ddc_bus);
> -
> drm_connector_init_with_ddc(dev, connector,
> &intel_hdmi_connector_funcs,
> DRM_MODE_CONNECTOR_HDMIA,
> - ddc);
> + intel_gmbus_get_adapter(dev_priv, intel_hdmi->ddc_bus));
> +
> drm_connector_helper_add(connector, &intel_hdmi_connector_helper_funcs);
>
> if (DISPLAY_VER(dev_priv) < 12)
--
Jani Nikula, Intel Open Source Graphics Center
next prev parent reply other threads:[~2023-08-30 12:09 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-29 11:39 [Intel-gfx] [PATCH 00/12] drm/i915: Populate connector->ddc always Ville Syrjala
2023-08-29 11:39 ` Ville Syrjala
2023-08-29 11:39 ` [Intel-gfx] [PATCH 01/12] drm: Reorder drm_sysfs_connector_remove() vs. drm_debugfs_connector_remove() Ville Syrjala
2023-08-29 11:39 ` Ville Syrjala
2023-08-30 11:52 ` [Intel-gfx] " Jani Nikula
2023-08-29 11:39 ` [Intel-gfx] [PATCH 02/12] drm/sysfs: Register "ddc" symlink later Ville Syrjala
2023-08-29 11:39 ` Ville Syrjala
2023-08-30 11:59 ` [Intel-gfx] " Jani Nikula
2023-08-30 11:59 ` Jani Nikula
2023-08-29 11:39 ` [Intel-gfx] [PATCH 03/12] drm/i915: Call the DDC bus i2c adapter "ddc" Ville Syrjala
2023-08-29 11:39 ` Ville Syrjala
2023-08-30 11:19 ` [Intel-gfx] " Jani Nikula
2023-08-30 11:19 ` Jani Nikula
2023-08-30 12:04 ` [Intel-gfx] " Jani Nikula
2023-08-31 10:43 ` [Intel-gfx] [PATCH v2 " Ville Syrjala
2023-08-31 10:43 ` Ville Syrjala
2023-08-29 11:39 ` [Intel-gfx] [PATCH 04/12] drm/i915/lvds: Populate connector->ddc Ville Syrjala
2023-08-29 11:39 ` Ville Syrjala
2023-08-30 12:05 ` [Intel-gfx] " Jani Nikula
2023-08-29 11:39 ` [Intel-gfx] [PATCH 05/12] drm/i915/crt: " Ville Syrjala
2023-08-29 11:39 ` Ville Syrjala
2023-08-30 12:06 ` [Intel-gfx] " Jani Nikula
2023-08-29 11:39 ` [Intel-gfx] [PATCH 06/12] drm/i915/dvo: " Ville Syrjala
2023-08-29 11:39 ` Ville Syrjala
2023-08-30 12:06 ` [Intel-gfx] " Jani Nikula
2023-08-30 12:06 ` Jani Nikula
2023-08-29 11:39 ` [Intel-gfx] [PATCH 07/12] drm/i915/dp: " Ville Syrjala
2023-08-29 11:39 ` Ville Syrjala
2023-08-30 12:06 ` [Intel-gfx] " Jani Nikula
2023-08-30 12:06 ` Jani Nikula
2023-08-29 11:39 ` [Intel-gfx] [PATCH 08/12] drm/i915/mst: " Ville Syrjala
2023-08-29 11:39 ` Ville Syrjala
2023-08-30 12:08 ` [Intel-gfx] " Jani Nikula
2023-08-30 12:08 ` Jani Nikula
2023-08-29 11:39 ` [Intel-gfx] [PATCH 09/12] drm/i915/hdmi: Use connector->ddc everwhere Ville Syrjala
2023-08-29 11:39 ` Ville Syrjala
2023-08-30 12:08 ` Jani Nikula [this message]
2023-08-29 11:39 ` [Intel-gfx] [PATCH 10/12] drm/i915/hdmi: Nuke hdmi->ddc_bus Ville Syrjala
2023-08-29 11:39 ` Ville Syrjala
2023-08-31 10:34 ` [Intel-gfx] " Jani Nikula
2023-08-29 11:39 ` [Intel-gfx] [PATCH 11/12] drm/i915/hdmi: Remove old i2c symlink Ville Syrjala
2023-08-29 11:39 ` Ville Syrjala
2023-08-31 10:40 ` [Intel-gfx] " Jani Nikula
2023-08-29 11:39 ` [Intel-gfx] [PATCH 12/12] drm/i915/sdvo: Constify mapping structs Ville Syrjala
2023-08-29 11:39 ` Ville Syrjala
2023-08-30 12:09 ` [Intel-gfx] " Jani Nikula
2023-08-29 13:40 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Populate connector->ddc always Patchwork
2023-08-29 13:40 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2023-08-29 13:50 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-08-29 20:40 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2023-08-31 13:54 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Populate connector->ddc always (rev2) Patchwork
2023-08-31 13:54 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2023-08-31 14:13 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2023-09-01 20:55 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Populate connector->ddc always (rev3) Patchwork
2023-09-01 20:55 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2023-09-01 21:14 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-09-02 5:47 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2023-09-13 12:28 ` [Intel-gfx] [PATCH 00/12] drm/i915: Populate connector->ddc always Ville Syrjälä
2023-09-13 12:28 ` Ville Syrjälä
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=87bkeozq9f.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=dri-devel@lists.freedesktop.org \
--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.