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.

Reply via email to