mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-21 04:53:46 -04:00
drm/scdc-helper: Pimp SCDC debugs
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 <andrzej.hajda@intel.com> Cc: Neil Armstrong <neil.armstrong@linaro.org> Cc: Robert Foss <rfoss@kernel.org> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com> Cc: Jonas Karlman <jonas@kwiboo.se> Cc: Jernej Skrabec <jernej.skrabec@gmail.com> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Emma Anholt <emma@anholt.net> Cc: Maxime Ripard <mripard@kernel.org> Cc: intel-gfx@lists.freedesktop.org Cc: linux-tegra@vger.kernel.org Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230403223652.18848-1-ville.syrjala@linux.intel.com Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Acked-by: Maxime Ripard <maxime@cerno.tech> Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com> Acked-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
@@ -26,6 +26,8 @@
|
||||
#include <linux/delay.h>
|
||||
|
||||
#include <drm/display/drm_scdc_helper.h>
|
||||
#include <drm/drm_connector.h>
|
||||
#include <drm/drm_device.h>
|
||||
#include <drm/drm_print.h>
|
||||
|
||||
/**
|
||||
@@ -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, &status);
|
||||
ret = drm_scdc_readb(connector->ddc, SCDC_SCRAMBLER_STATUS, &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, &config);
|
||||
ret = drm_scdc_readb(connector->ddc, SCDC_TMDS_CONFIG, &config);
|
||||
if (ret < 0) {
|
||||
DRM_DEBUG_KMS("Failed to read TMDS config: %d\n", ret);
|
||||
drm_dbg_kms(connector->dev,
|
||||
"[CONNECTOR:%d:%s] Failed to read TMDS config: %d\n",
|
||||
connector->base.id, connector->name, ret);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -191,9 +198,11 @@ bool drm_scdc_set_scrambling(struct i2c_adapter *adapter, bool enable)
|
||||
else
|
||||
config &= ~SCDC_SCRAMBLING_ENABLE;
|
||||
|
||||
ret = drm_scdc_writeb(adapter, SCDC_TMDS_CONFIG, config);
|
||||
ret = drm_scdc_writeb(connector->ddc, SCDC_TMDS_CONFIG, config);
|
||||
if (ret < 0) {
|
||||
DRM_DEBUG_KMS("Failed to enable scrambling: %d\n", ret);
|
||||
drm_dbg_kms(connector->dev,
|
||||
"[CONNECTOR:%d:%s] Failed to enable scrambling: %d\n",
|
||||
connector->base.id, connector->name, ret);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -203,7 +212,7 @@ EXPORT_SYMBOL(drm_scdc_set_scrambling);
|
||||
|
||||
/**
|
||||
* drm_scdc_set_high_tmds_clock_ratio - set TMDS clock ratio
|
||||
* @adapter: I2C adapter for DDC channel
|
||||
* @connector: connector
|
||||
* @set: ret or reset the high clock ratio
|
||||
*
|
||||
*
|
||||
@@ -230,14 +239,17 @@ EXPORT_SYMBOL(drm_scdc_set_scrambling);
|
||||
* Returns:
|
||||
* True if write is successful, false otherwise.
|
||||
*/
|
||||
bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *adapter, bool set)
|
||||
bool drm_scdc_set_high_tmds_clock_ratio(struct drm_connector *connector,
|
||||
bool set)
|
||||
{
|
||||
u8 config;
|
||||
int ret;
|
||||
|
||||
ret = drm_scdc_readb(adapter, SCDC_TMDS_CONFIG, &config);
|
||||
ret = drm_scdc_readb(connector->ddc, SCDC_TMDS_CONFIG, &config);
|
||||
if (ret < 0) {
|
||||
DRM_DEBUG_KMS("Failed to read TMDS config: %d\n", ret);
|
||||
drm_dbg_kms(connector->dev,
|
||||
"[CONNECTOR:%d:%s] Failed to read TMDS config: %d\n",
|
||||
connector->base.id, connector->name, ret);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -246,9 +258,11 @@ bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *adapter, bool set)
|
||||
else
|
||||
config &= ~SCDC_TMDS_BIT_CLOCK_RATIO_BY_40;
|
||||
|
||||
ret = drm_scdc_writeb(adapter, SCDC_TMDS_CONFIG, config);
|
||||
ret = drm_scdc_writeb(connector->ddc, SCDC_TMDS_CONFIG, config);
|
||||
if (ret < 0) {
|
||||
DRM_DEBUG_KMS("Failed to set TMDS clock ratio: %d\n", ret);
|
||||
drm_dbg_kms(connector->dev,
|
||||
"[CONNECTOR:%d:%s] Failed to set TMDS clock ratio: %d\n",
|
||||
connector->base.id, connector->name, ret);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user