There's currently no way to specify which encoder we use for TCON.
Signed-off-by: Priit Laes <[email protected]>
---
drivers/gpu/drm/sun4i/sun4i_rgb.c | 6 +++---
drivers/gpu/drm/sun4i/sun4i_tcon.c | 7 ++++---
drivers/gpu/drm/sun4i/sun4i_tcon.h | 11 ++++++++---
drivers/gpu/drm/sun4i/sun4i_tv.c | 4 ++--
4 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c
b/drivers/gpu/drm/sun4i/sun4i_rgb.c
index bc6eef2..1fe3bbb 100644
--- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
+++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
@@ -159,7 +159,7 @@ static void sun4i_rgb_encoder_enable(struct drm_encoder
*encoder)
/* encoder->bridge can be NULL; drm_bridge_enable checks for it */
drm_bridge_enable(encoder->bridge);
- sun4i_tcon_channel_enable(tcon, 0);
+ sun4i_tcon_channel_enable(tcon, 0, DRM_MODE_ENCODER_DAC);
}
static void sun4i_rgb_encoder_disable(struct drm_encoder *encoder)
@@ -170,7 +170,7 @@ static void sun4i_rgb_encoder_disable(struct drm_encoder
*encoder)
DRM_DEBUG_DRIVER("Disabling RGB output\n");
- sun4i_tcon_channel_disable(tcon, 0);
+ sun4i_tcon_channel_disable(tcon, 0, DRM_MODE_ENCODER_DAC);
/* encoder->bridge can be NULL; drm_bridge_disable checks for it */
drm_bridge_disable(encoder->bridge);
@@ -189,7 +189,7 @@ static void sun4i_rgb_encoder_mode_set(struct drm_encoder
*encoder,
struct sun4i_drv *drv = rgb->drv;
struct sun4i_tcon *tcon = drv->tcon;
- sun4i_tcon0_mode_set(tcon, mode);
+ sun4i_tcon0_mode_set(tcon, mode, DRM_MODE_ENCODER_DAC);
clk_set_rate(tcon->dclk, mode->crtc_clock * 1000);
diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c
b/drivers/gpu/drm/sun4i/sun4i_tcon.c
index 9180e7e..d2f8825 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tcon.c
+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c
@@ -52,7 +52,7 @@ void sun4i_tcon_enable(struct sun4i_tcon *tcon)
}
EXPORT_SYMBOL(sun4i_tcon_enable);
-void sun4i_tcon_channel_disable(struct sun4i_tcon *tcon, int channel)
+void sun4i_tcon_channel_disable(struct sun4i_tcon *tcon, int channel, int type)
{
/* Disable the TCON's channel */
if (channel == 0) {
@@ -67,7 +67,7 @@ void sun4i_tcon_channel_disable(struct sun4i_tcon *tcon, int
channel)
}
EXPORT_SYMBOL(sun4i_tcon_channel_disable);
-void sun4i_tcon_channel_enable(struct sun4i_tcon *tcon, int channel)
+void sun4i_tcon_channel_enable(struct sun4i_tcon *tcon, int channel, int type)
{
/* Enable the TCON's channel */
if (channel == 0) {
@@ -119,7 +119,8 @@ static int sun4i_tcon_get_clk_delay(struct drm_display_mode
*mode,
}
void sun4i_tcon0_mode_set(struct sun4i_tcon *tcon,
- struct drm_display_mode *mode)
+ struct drm_display_mode *mode,
+ int type)
{
unsigned int bp, hsync, vsync;
u8 clk_delay;
diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.h
b/drivers/gpu/drm/sun4i/sun4i_tcon.h
index 100bfa0..7b0de484 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tcon.h
+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.h
@@ -174,8 +174,12 @@ void sun4i_tcon_disable(struct sun4i_tcon *tcon);
void sun4i_tcon_enable(struct sun4i_tcon *tcon);
/* Channel Control */
-void sun4i_tcon_channel_disable(struct sun4i_tcon *tcon, int channel);
-void sun4i_tcon_channel_enable(struct sun4i_tcon *tcon, int channel);
+void sun4i_tcon_channel_disable(struct sun4i_tcon *tcon,
+ int channel,
+ int type);
+void sun4i_tcon_channel_enable(struct sun4i_tcon *tcon,
+ int channel,
+ int type);
void sun4i_tcon_enable_vblank(struct sun4i_tcon *tcon, bool enable);
@@ -183,7 +187,8 @@ void sun4i_tcon_enable_vblank(struct sun4i_tcon *tcon, bool
enable);
void sun4i_tcon_switch_interlace(struct sun4i_tcon *tcon,
bool enable);
void sun4i_tcon0_mode_set(struct sun4i_tcon *tcon,
- struct drm_display_mode *mode);
+ struct drm_display_mode *mode,
+ int type);
void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon,
struct drm_display_mode *mode);
diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c b/drivers/gpu/drm/sun4i/sun4i_tv.c
index b841478..b495bc7 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_tv.c
@@ -354,7 +354,7 @@ static void sun4i_tv_disable(struct drm_encoder *encoder)
DRM_DEBUG_DRIVER("Disabling the TV Output\n");
- sun4i_tcon_channel_disable(tcon, 1);
+ sun4i_tcon_channel_disable(tcon, 1, DRM_MODE_ENCODER_TVDAC);
regmap_update_bits(tv->regs, SUN4I_TVE_EN_REG,
SUN4I_TVE_EN_ENABLE,
@@ -376,7 +376,7 @@ static void sun4i_tv_enable(struct drm_encoder *encoder)
SUN4I_TVE_EN_ENABLE,
SUN4I_TVE_EN_ENABLE);
- sun4i_tcon_channel_enable(tcon, 1);
+ sun4i_tcon_channel_enable(tcon, 1, DRM_MODE_ENCODER_TVDAC);
}
static void sun4i_tv_mode_set(struct drm_encoder *encoder,
--
2.7.4
--
You received this message because you are subscribed to the Google Groups
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.