diff options
author | Kevin Brace <kevinbrace@gmx.com> | 2018-05-26 22:21:29 -0700 |
---|---|---|
committer | Kevin Brace <kevinbrace@gmx.com> | 2018-05-26 22:21:29 -0700 |
commit | 4678ae6d8af160f474d7e99a13db60574a477fe7 (patch) | |
tree | 2c7bbf0ab17ea64e1cdd942928da76db631c0af4 | |
parent | 90d58da557c7b242627d8e093741610ca1891e49 (diff) |
drm/openchrome: Add Silicon Image SiI 164 DVI transmitter support
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
-rw-r--r-- | drivers/gpu/drm/openchrome/openchrome_display.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/openchrome/openchrome_tmds.c | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/drivers/gpu/drm/openchrome/openchrome_display.h b/drivers/gpu/drm/openchrome/openchrome_display.h index 14fc4e7317f3..1240bef2f779 100644 --- a/drivers/gpu/drm/openchrome/openchrome_display.h +++ b/drivers/gpu/drm/openchrome/openchrome_display.h @@ -78,6 +78,8 @@ /* External TMDS (DVI) Transmitter Type */ #define VIA_TMDS_NONE 0x0 #define VIA_TMDS_VT1632 BIT(0) +#define VIA_TMDS_SII164 BIT(1) + typedef struct _via_fp_info { u32 x; diff --git a/drivers/gpu/drm/openchrome/openchrome_tmds.c b/drivers/gpu/drm/openchrome/openchrome_tmds.c index 2b9589bc2879..044b6a719e79 100644 --- a/drivers/gpu/drm/openchrome/openchrome_tmds.c +++ b/drivers/gpu/drm/openchrome/openchrome_tmds.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016-2017 Kevin Brace + * Copyright (C) 2016-2018 Kevin Brace. All Rights Reserved. * Copyright © 2013 James Simmons * * Permission is hereby granted, free of charge, to any person obtaining a @@ -537,6 +537,11 @@ void openchrome_ext_dvi_probe(struct drm_device *dev) dev_priv->ext_tmds_i2c_bus = VIA_I2C_BUS2; dev_priv->ext_tmds_transmitter = VIA_TMDS_VT1632; dev_priv->mapped_i2c_bus |= VIA_I2C_BUS2; + } else if (openchrome_sii164_probe(i2c_bus)) { + dev_priv->ext_tmds_presence = true; + dev_priv->ext_tmds_i2c_bus = VIA_I2C_BUS2; + dev_priv->ext_tmds_transmitter = VIA_TMDS_SII164; + dev_priv->mapped_i2c_bus |= VIA_I2C_BUS2; } } @@ -548,6 +553,11 @@ void openchrome_ext_dvi_probe(struct drm_device *dev) dev_priv->ext_tmds_i2c_bus = VIA_I2C_BUS4; dev_priv->ext_tmds_transmitter = VIA_TMDS_VT1632; dev_priv->mapped_i2c_bus |= VIA_I2C_BUS4; + } else if (openchrome_sii164_probe(i2c_bus)) { + dev_priv->ext_tmds_presence = true; + dev_priv->ext_tmds_i2c_bus = VIA_I2C_BUS4; + dev_priv->ext_tmds_transmitter = VIA_TMDS_SII164; + dev_priv->mapped_i2c_bus |= VIA_I2C_BUS4; } } @@ -641,6 +651,7 @@ void openchrome_ext_dvi_init(struct drm_device *dev) DRM_DEBUG_KMS("Entered %s.\n", __func__); openchrome_vt1632_init(dev); + openchrome_sii164_init(dev); DRM_DEBUG_KMS("Exiting %s.\n", __func__); } |