Re: [Intel-gfx] [PATCH v2] drm/scdc-helper: Pimp SCDC debugs
On Tue, Apr 04, 2023 at 01:36:52AM +0300, Ville Syrjala wrote: > From: Ville Syrjälä > > Include the device and connector information in the SCDC > debugs. Makes it easier to figure out who did what. > > v2: Rely on connector->ddc (Maxime) > > Cc: Andrzej Hajda > Cc: Neil Armstrong > Cc: Robert Foss > Cc: Laurent Pinchart > Cc: Jonas Karlman > Cc: Jernej Skrabec > Cc: Thierry Reding > Cc: Emma Anholt > Cc: Maxime Ripard > Cc: intel-gfx@lists.freedesktop.org > Cc: linux-te...@vger.kernel.org > Signed-off-by: Ville Syrjälä > --- > drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 8 ++-- > drivers/gpu/drm/display/drm_scdc_helper.c | 46 +++ > drivers/gpu/drm/i915/display/intel_ddi.c | 4 +- > drivers/gpu/drm/i915/display/intel_hdmi.c | 8 +--- > drivers/gpu/drm/tegra/sor.c | 15 +++- > drivers/gpu/drm/vc4/vc4_hdmi.c| 21 ++- > include/drm/display/drm_scdc_helper.h | 7 ++-- > 7 files changed, 59 insertions(+), 50 deletions(-) Acked-by: Thierry Reding signature.asc Description: PGP signature
Re: [Intel-gfx] [PATCH v2] drm/scdc-helper: Pimp SCDC debugs
On Tue, Apr 04, 2023 at 01:36:52AM +0300, Ville Syrjala wrote: > From: Ville Syrjälä > > Include the device and connector information in the SCDC > debugs. Makes it easier to figure out who did what. > > v2: Rely on connector->ddc (Maxime) > > Cc: Andrzej Hajda > Cc: Neil Armstrong > Cc: Robert Foss > Cc: Laurent Pinchart > Cc: Jonas Karlman > Cc: Jernej Skrabec > Cc: Thierry Reding > Cc: Emma Anholt > Cc: Maxime Ripard > Cc: intel-gfx@lists.freedesktop.org > Cc: linux-te...@vger.kernel.org > Signed-off-by: Ville Syrjälä Acked-by: Maxime Ripard Thanks! Maxime
Re: [Intel-gfx] [PATCH v2] drm/scdc-helper: Pimp SCDC debugs
On 04.04.2023 00:36, Ville Syrjala wrote: From: Ville Syrjälä Include the device and connector information in the SCDC debugs. Makes it easier to figure out who did what. v2: Rely on connector->ddc (Maxime) Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Robert Foss Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec Cc: Thierry Reding Cc: Emma Anholt Cc: Maxime Ripard Cc: intel-gfx@lists.freedesktop.org Cc: linux-te...@vger.kernel.org Signed-off-by: Ville Syrjälä Reviewed-by: Andrzej Hajda Regards Andrzej --- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 8 ++-- drivers/gpu/drm/display/drm_scdc_helper.c | 46 +++ drivers/gpu/drm/i915/display/intel_ddi.c | 4 +- drivers/gpu/drm/i915/display/intel_hdmi.c | 8 +--- drivers/gpu/drm/tegra/sor.c | 15 +++- drivers/gpu/drm/vc4/vc4_hdmi.c| 21 ++- include/drm/display/drm_scdc_helper.h | 7 ++-- 7 files changed, 59 insertions(+), 50 deletions(-) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index aa51c61a78c7..603bb3c51027 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c @@ -1426,9 +1426,9 @@ void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi, /* Control for TMDS Bit Period/TMDS Clock-Period Ratio */ if (dw_hdmi_support_scdc(hdmi, display)) { if (mtmdsclock > HDMI14_MAX_TMDSCLK) - drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 1); + drm_scdc_set_high_tmds_clock_ratio(>connector, 1); else - drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 0); + drm_scdc_set_high_tmds_clock_ratio(>connector, 0); } } EXPORT_SYMBOL_GPL(dw_hdmi_set_high_tmds_clock_ratio); @@ -2116,7 +2116,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi, min_t(u8, bytes, SCDC_MIN_SOURCE_VERSION)); /* Enabled Scrambling in the Sink */ - drm_scdc_set_scrambling(hdmi->ddc, 1); + drm_scdc_set_scrambling(>connector, 1); /* * To activate the scrambler feature, you must ensure @@ -2132,7 +2132,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi, hdmi_writeb(hdmi, 0, HDMI_FC_SCRAMBLER_CTRL); hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ, HDMI_MC_SWRSTZ); - drm_scdc_set_scrambling(hdmi->ddc, 0); + drm_scdc_set_scrambling(>connector, 0); } } diff --git a/drivers/gpu/drm/display/drm_scdc_helper.c b/drivers/gpu/drm/display/drm_scdc_helper.c index c3ad4ab2b456..6d2f244e5830 100644 --- a/drivers/gpu/drm/display/drm_scdc_helper.c +++ b/drivers/gpu/drm/display/drm_scdc_helper.c @@ -26,6 +26,8 @@ #include #include +#include +#include #include /** @@ -140,7 +142,7 @@ EXPORT_SYMBOL(drm_scdc_write); /** * drm_scdc_get_scrambling_status - what is status of scrambling? - * @adapter: I2C adapter for DDC channel + * @connector: connector * * Reads the scrambler status over SCDC, and checks the * scrambling status. @@ -148,14 +150,16 @@ EXPORT_SYMBOL(drm_scdc_write); * Returns: * True if the scrambling is enabled, false otherwise. */ -bool drm_scdc_get_scrambling_status(struct i2c_adapter *adapter) +bool drm_scdc_get_scrambling_status(struct drm_connector *connector) { u8 status; int ret; - ret = drm_scdc_readb(adapter, SCDC_SCRAMBLER_STATUS, ); + ret = drm_scdc_readb(connector->ddc, SCDC_SCRAMBLER_STATUS, ); if (ret < 0) { - DRM_DEBUG_KMS("Failed to read scrambling status: %d\n", ret); + drm_dbg_kms(connector->dev, + "[CONNECTOR:%d:%s] Failed to read scrambling status: %d\n", + connector->base.id, connector->name, ret); return false; } @@ -165,7 +169,7 @@ EXPORT_SYMBOL(drm_scdc_get_scrambling_status); /** * drm_scdc_set_scrambling - enable scrambling - * @adapter: I2C adapter for DDC channel + * @connector: connector * @enable: bool to indicate if scrambling is to be enabled/disabled * * Writes the TMDS config register over SCDC channel, and: @@ -175,14 +179,17 @@ EXPORT_SYMBOL(drm_scdc_get_scrambling_status); * Returns: * True if scrambling is set/reset successfully, false otherwise. */ -bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable) +bool drm_scdc_set_scrambling(struct drm_connector *connector, +bool enable) { u8 config; int ret; - ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, ); + ret = drm_scdc_readb(connector->ddc, SCDC_TMDS_CONFIG, ); if (ret < 0) { -
Re: [Intel-gfx] [PATCH v2] drm/scdc-helper: Pimp SCDC debugs
Hi Ville, Thank you for the patch. On Tue, Apr 04, 2023 at 01:36:52AM +0300, Ville Syrjala wrote: > From: Ville Syrjälä > > Include the device and connector information in the SCDC > debugs. Makes it easier to figure out who did what. > > v2: Rely on connector->ddc (Maxime) > > Cc: Andrzej Hajda > Cc: Neil Armstrong > Cc: Robert Foss > Cc: Laurent Pinchart > Cc: Jonas Karlman > Cc: Jernej Skrabec > Cc: Thierry Reding > Cc: Emma Anholt > Cc: Maxime Ripard > Cc: intel-gfx@lists.freedesktop.org > Cc: linux-te...@vger.kernel.org > Signed-off-by: Ville Syrjälä Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 8 ++-- > drivers/gpu/drm/display/drm_scdc_helper.c | 46 +++ > drivers/gpu/drm/i915/display/intel_ddi.c | 4 +- > drivers/gpu/drm/i915/display/intel_hdmi.c | 8 +--- > drivers/gpu/drm/tegra/sor.c | 15 +++- > drivers/gpu/drm/vc4/vc4_hdmi.c| 21 ++- > include/drm/display/drm_scdc_helper.h | 7 ++-- > 7 files changed, 59 insertions(+), 50 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > index aa51c61a78c7..603bb3c51027 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > @@ -1426,9 +1426,9 @@ void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi > *hdmi, > /* Control for TMDS Bit Period/TMDS Clock-Period Ratio */ > if (dw_hdmi_support_scdc(hdmi, display)) { > if (mtmdsclock > HDMI14_MAX_TMDSCLK) > - drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 1); > + drm_scdc_set_high_tmds_clock_ratio(>connector, 1); > else > - drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 0); > + drm_scdc_set_high_tmds_clock_ratio(>connector, 0); > } > } > EXPORT_SYMBOL_GPL(dw_hdmi_set_high_tmds_clock_ratio); > @@ -2116,7 +2116,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi, > min_t(u8, bytes, SCDC_MIN_SOURCE_VERSION)); > > /* Enabled Scrambling in the Sink */ > - drm_scdc_set_scrambling(hdmi->ddc, 1); > + drm_scdc_set_scrambling(>connector, 1); > > /* >* To activate the scrambler feature, you must ensure > @@ -2132,7 +2132,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi, > hdmi_writeb(hdmi, 0, HDMI_FC_SCRAMBLER_CTRL); > hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ, > HDMI_MC_SWRSTZ); > - drm_scdc_set_scrambling(hdmi->ddc, 0); > + drm_scdc_set_scrambling(>connector, 0); > } > } > > diff --git a/drivers/gpu/drm/display/drm_scdc_helper.c > b/drivers/gpu/drm/display/drm_scdc_helper.c > index c3ad4ab2b456..6d2f244e5830 100644 > --- a/drivers/gpu/drm/display/drm_scdc_helper.c > +++ b/drivers/gpu/drm/display/drm_scdc_helper.c > @@ -26,6 +26,8 @@ > #include > > #include > +#include > +#include > #include > > /** > @@ -140,7 +142,7 @@ EXPORT_SYMBOL(drm_scdc_write); > > /** > * drm_scdc_get_scrambling_status - what is status of scrambling? > - * @adapter: I2C adapter for DDC channel > + * @connector: connector > * > * Reads the scrambler status over SCDC, and checks the > * scrambling status. > @@ -148,14 +150,16 @@ EXPORT_SYMBOL(drm_scdc_write); > * Returns: > * True if the scrambling is enabled, false otherwise. > */ > -bool drm_scdc_get_scrambling_status(struct i2c_adapter *adapter) > +bool drm_scdc_get_scrambling_status(struct drm_connector *connector) > { > u8 status; > int ret; > > - ret = drm_scdc_readb(adapter, SCDC_SCRAMBLER_STATUS, ); > + ret = drm_scdc_readb(connector->ddc, SCDC_SCRAMBLER_STATUS, ); > if (ret < 0) { > - DRM_DEBUG_KMS("Failed to read scrambling status: %d\n", ret); > + drm_dbg_kms(connector->dev, > + "[CONNECTOR:%d:%s] Failed to read scrambling > status: %d\n", > + connector->base.id, connector->name, ret); > return false; > } > > @@ -165,7 +169,7 @@ EXPORT_SYMBOL(drm_scdc_get_scrambling_status); > > /** > * drm_scdc_set_scrambling - enable scrambling > - * @adapter: I2C adapter for DDC channel > + * @connector: connector > * @enable: bool to indicate if scrambling is to be enabled/disabled > * > * Writes the TMDS config register over SCDC channel, and: > @@ -175,14 +179,17 @@ EXPORT_SYMBOL(drm_scdc_get_scrambling_status); > * Returns: > * True if scrambling is set/reset successfully, false otherwise. > */ > -bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable) > +bool drm_scdc_set_scrambling(struct drm_connector *connector, > + bool
[Intel-gfx] [PATCH v2] drm/scdc-helper: Pimp SCDC debugs
From: Ville Syrjälä Include the device and connector information in the SCDC debugs. Makes it easier to figure out who did what. v2: Rely on connector->ddc (Maxime) Cc: Andrzej Hajda Cc: Neil Armstrong Cc: Robert Foss Cc: Laurent Pinchart Cc: Jonas Karlman Cc: Jernej Skrabec Cc: Thierry Reding Cc: Emma Anholt Cc: Maxime Ripard Cc: intel-gfx@lists.freedesktop.org Cc: linux-te...@vger.kernel.org Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 8 ++-- drivers/gpu/drm/display/drm_scdc_helper.c | 46 +++ drivers/gpu/drm/i915/display/intel_ddi.c | 4 +- drivers/gpu/drm/i915/display/intel_hdmi.c | 8 +--- drivers/gpu/drm/tegra/sor.c | 15 +++- drivers/gpu/drm/vc4/vc4_hdmi.c| 21 ++- include/drm/display/drm_scdc_helper.h | 7 ++-- 7 files changed, 59 insertions(+), 50 deletions(-) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index aa51c61a78c7..603bb3c51027 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c @@ -1426,9 +1426,9 @@ void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi, /* Control for TMDS Bit Period/TMDS Clock-Period Ratio */ if (dw_hdmi_support_scdc(hdmi, display)) { if (mtmdsclock > HDMI14_MAX_TMDSCLK) - drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 1); + drm_scdc_set_high_tmds_clock_ratio(>connector, 1); else - drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 0); + drm_scdc_set_high_tmds_clock_ratio(>connector, 0); } } EXPORT_SYMBOL_GPL(dw_hdmi_set_high_tmds_clock_ratio); @@ -2116,7 +2116,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi, min_t(u8, bytes, SCDC_MIN_SOURCE_VERSION)); /* Enabled Scrambling in the Sink */ - drm_scdc_set_scrambling(hdmi->ddc, 1); + drm_scdc_set_scrambling(>connector, 1); /* * To activate the scrambler feature, you must ensure @@ -2132,7 +2132,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi, hdmi_writeb(hdmi, 0, HDMI_FC_SCRAMBLER_CTRL); hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ, HDMI_MC_SWRSTZ); - drm_scdc_set_scrambling(hdmi->ddc, 0); + drm_scdc_set_scrambling(>connector, 0); } } diff --git a/drivers/gpu/drm/display/drm_scdc_helper.c b/drivers/gpu/drm/display/drm_scdc_helper.c index c3ad4ab2b456..6d2f244e5830 100644 --- a/drivers/gpu/drm/display/drm_scdc_helper.c +++ b/drivers/gpu/drm/display/drm_scdc_helper.c @@ -26,6 +26,8 @@ #include #include +#include +#include #include /** @@ -140,7 +142,7 @@ EXPORT_SYMBOL(drm_scdc_write); /** * drm_scdc_get_scrambling_status - what is status of scrambling? - * @adapter: I2C adapter for DDC channel + * @connector: connector * * Reads the scrambler status over SCDC, and checks the * scrambling status. @@ -148,14 +150,16 @@ EXPORT_SYMBOL(drm_scdc_write); * Returns: * True if the scrambling is enabled, false otherwise. */ -bool drm_scdc_get_scrambling_status(struct i2c_adapter *adapter) +bool drm_scdc_get_scrambling_status(struct drm_connector *connector) { u8 status; int ret; - ret = drm_scdc_readb(adapter, SCDC_SCRAMBLER_STATUS, ); + ret = drm_scdc_readb(connector->ddc, SCDC_SCRAMBLER_STATUS, ); if (ret < 0) { - DRM_DEBUG_KMS("Failed to read scrambling status: %d\n", ret); + drm_dbg_kms(connector->dev, + "[CONNECTOR:%d:%s] Failed to read scrambling status: %d\n", + connector->base.id, connector->name, ret); return false; } @@ -165,7 +169,7 @@ EXPORT_SYMBOL(drm_scdc_get_scrambling_status); /** * drm_scdc_set_scrambling - enable scrambling - * @adapter: I2C adapter for DDC channel + * @connector: connector * @enable: bool to indicate if scrambling is to be enabled/disabled * * Writes the TMDS config register over SCDC channel, and: @@ -175,14 +179,17 @@ EXPORT_SYMBOL(drm_scdc_get_scrambling_status); * Returns: * True if scrambling is set/reset successfully, false otherwise. */ -bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable) +bool drm_scdc_set_scrambling(struct drm_connector *connector, +bool enable) { u8 config; int ret; - ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, ); + ret = drm_scdc_readb(connector->ddc, SCDC_TMDS_CONFIG, ); if (ret < 0) { - DRM_DEBUG_KMS("Failed to read TMDS config: %d\n", ret); + drm_dbg_kms(connector->dev, +