drm/i915: Don't spew errors when resetting HDMI scrambling/bit clock ratio fails
When we're disabling the HDMI link we try to reset the scrambling and TMDS bit clock ratio back to the default values. This will fail if the sink has already been disconnected. Thus we should not print an error message when resetting the scrambling/TMDS bit clock ratio fail during disable. During enable we do want the error, and during disable we may still want to know what happended for debug purposes so let's use DRM_DEBUG_KMS() there. v2: Remember them consts v3: Go back to just one function and print the errors/debugs from callers (Shashank) Cc: Shashank Sharma <shashank.sharma@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105644 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105655 Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180322154707.22103-1-ville.syrjala@linux.intel.com Reviewed-by: Shashank Sharma <shashank.sharma@intel.com>
This commit is contained in:
@@ -2082,41 +2082,33 @@ intel_hdmi_add_properties(struct intel_hdmi *intel_hdmi, struct drm_connector *c
|
||||
* it enables scrambling. This should be called before enabling the HDMI
|
||||
* 2.0 port, as the sink can choose to disable the scrambling if it doesn't
|
||||
* detect a scrambled clock within 100 ms.
|
||||
*
|
||||
* Returns:
|
||||
* True on success, false on failure.
|
||||
*/
|
||||
void intel_hdmi_handle_sink_scrambling(struct intel_encoder *encoder,
|
||||
bool intel_hdmi_handle_sink_scrambling(struct intel_encoder *encoder,
|
||||
struct drm_connector *connector,
|
||||
bool high_tmds_clock_ratio,
|
||||
bool scrambling)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
|
||||
struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
|
||||
struct drm_i915_private *dev_priv = connector->dev->dev_private;
|
||||
struct drm_scrambling *sink_scrambling =
|
||||
&connector->display_info.hdmi.scdc.scrambling;
|
||||
struct i2c_adapter *adptr = intel_gmbus_get_adapter(dev_priv,
|
||||
intel_hdmi->ddc_bus);
|
||||
bool ret;
|
||||
&connector->display_info.hdmi.scdc.scrambling;
|
||||
struct i2c_adapter *adapter =
|
||||
intel_gmbus_get_adapter(dev_priv, intel_hdmi->ddc_bus);
|
||||
|
||||
if (!sink_scrambling->supported)
|
||||
return;
|
||||
return true;
|
||||
|
||||
DRM_DEBUG_KMS("Setting sink scrambling for enc:%s connector:%s\n",
|
||||
encoder->base.name, connector->name);
|
||||
DRM_DEBUG_KMS("[CONNECTOR:%d:%s] scrambling=%s, TMDS bit clock ratio=1/%d\n",
|
||||
connector->base.id, connector->name,
|
||||
yesno(scrambling), high_tmds_clock_ratio ? 40 : 10);
|
||||
|
||||
/* Set TMDS bit clock ratio to 1/40 or 1/10 */
|
||||
ret = drm_scdc_set_high_tmds_clock_ratio(adptr, high_tmds_clock_ratio);
|
||||
if (!ret) {
|
||||
DRM_ERROR("Set TMDS ratio failed\n");
|
||||
return;
|
||||
}
|
||||
|
||||
/* Enable/disable sink scrambling */
|
||||
ret = drm_scdc_set_scrambling(adptr, scrambling);
|
||||
if (!ret) {
|
||||
DRM_ERROR("Set sink scrambling failed\n");
|
||||
return;
|
||||
}
|
||||
|
||||
DRM_DEBUG_KMS("sink scrambling handled\n");
|
||||
/* Set TMDS bit clock ratio to 1/40 or 1/10, and enable/disable scrambling */
|
||||
return drm_scdc_set_high_tmds_clock_ratio(adapter,
|
||||
high_tmds_clock_ratio) &&
|
||||
drm_scdc_set_scrambling(adapter, scrambling);
|
||||
}
|
||||
|
||||
static u8 chv_port_to_ddc_pin(struct drm_i915_private *dev_priv, enum port port)
|
||||
|
Reference in New Issue
Block a user