We need to know the WB channel-in in wb_setup() to be able to configure
WB properly for capture mode. At the moment channel-in is set
separately.

This patch moves channel-in to wb_setup().

Signed-off-by: Tomi Valkeinen <tomi.valkei...@ti.com>
---
 drivers/gpu/drm/omapdrm/dss/dispc.c | 11 +++--------
 drivers/gpu/drm/omapdrm/dss/dss.h   |  3 ++-
 2 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c 
b/drivers/gpu/drm/omapdrm/dss/dispc.c
index 5e7bdff2821d..7f9186894bd5 100644
--- a/drivers/gpu/drm/omapdrm/dss/dispc.c
+++ b/drivers/gpu/drm/omapdrm/dss/dispc.c
@@ -1187,13 +1187,6 @@ static enum omap_channel dispc_ovl_get_channel_out(enum 
omap_plane_id plane)
        }
 }
 
-void dispc_wb_set_channel_in(enum dss_writeback_channel channel)
-{
-       enum omap_plane_id plane = OMAP_DSS_WB;
-
-       REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), channel, 18, 16);
-}
-
 static void dispc_ovl_set_burst_size(enum omap_plane_id plane,
                enum omap_burst_size burst_size)
 {
@@ -2659,7 +2652,8 @@ static int dispc_ovl_setup(enum omap_plane_id plane,
 }
 
 int dispc_wb_setup(const struct omap_dss_writeback_info *wi,
-               bool mem_to_mem, const struct videomode *vm)
+               bool mem_to_mem, const struct videomode *vm,
+               enum dss_writeback_channel channel_in)
 {
        int r;
        u32 l;
@@ -2704,6 +2698,7 @@ int dispc_wb_setup(const struct omap_dss_writeback_info 
*wi,
        /* setup extra DISPC_WB_ATTRIBUTES */
        l = dispc_read_reg(DISPC_OVL_ATTRIBUTES(plane));
        l = FLD_MOD(l, truncation, 10, 10);     /* TRUNCATIONENABLE */
+       l = FLD_MOD(l, channel_in, 18, 16);     /* CHANNELIN */
        l = FLD_MOD(l, mem_to_mem, 19, 19);     /* WRITEBACKMODE */
        if (mem_to_mem)
                l = FLD_MOD(l, 1, 26, 24);      /* CAPTUREMODE */
diff --git a/drivers/gpu/drm/omapdrm/dss/dss.h 
b/drivers/gpu/drm/omapdrm/dss/dss.h
index 7f3fa5330408..19143ab5393c 100644
--- a/drivers/gpu/drm/omapdrm/dss/dss.h
+++ b/drivers/gpu/drm/omapdrm/dss/dss.h
@@ -385,7 +385,8 @@ bool dispc_wb_go_busy(void);
 void dispc_wb_go(void);
 void dispc_wb_set_channel_in(enum dss_writeback_channel channel);
 int dispc_wb_setup(const struct omap_dss_writeback_info *wi,
-               bool mem_to_mem, const struct videomode *vm);
+               bool mem_to_mem, const struct videomode *vm,
+               enum dss_writeback_channel channel_in);
 
 #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS
 static inline void dss_collect_irq_stats(u32 irqstatus, unsigned int *irq_arr)
-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to