diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/i2c/tda998x_drv.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c index 3f6dfc08469a..c06356e7d7a1 100644 --- a/drivers/gpu/drm/i2c/tda998x_drv.c +++ b/drivers/gpu/drm/i2c/tda998x_drv.c @@ -856,6 +856,23 @@ static void tda998x_write_aif(struct tda998x_priv *priv, tda998x_write_if(priv, DIP_IF_FLAGS_IF4, REG_IF4_HB0, &frame); } +static void tda998x_write_spd(struct tda998x_priv *priv) +{ + union hdmi_infoframe frame; + int ret; + + ret = hdmi_spd_infoframe_init(&frame.spd, "Generic", "PC"); + if (ret < 0) { + dev_err(&priv->hdmi->dev, "failed to fill SPD infoframe: %d\n", + ret); + return; + } + + frame.spd.sdi = HDMI_SPD_SDI_PC; + + tda998x_write_if(priv, DIP_IF_FLAGS_IF3, REG_IF3_HB0, &frame); +} + static void tda998x_write_avi(struct tda998x_priv *priv, const struct drm_display_mode *mode) { @@ -1697,6 +1714,7 @@ static void tda998x_bridge_mode_set(struct drm_bridge *bridge, reg_set(priv, REG_TX33, TX33_HDMI); tda998x_write_avi(priv, adjusted_mode); + tda998x_write_spd(priv); tda998x_write_vsi(priv, adjusted_mode); if (priv->sink_has_audio) |