Skip to content

Commit

Permalink
drm/omap: set WB channel-in in wb_setup()
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
tomba committed Mar 1, 2018
1 parent 9deb5ad commit 9f7853a
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 10 deletions.
12 changes: 3 additions & 9 deletions drivers/gpu/drm/omapdrm/dss/dispc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1234,14 +1234,6 @@ static enum omap_channel dispc_ovl_get_channel_out(struct dispc_device *dispc,
}
}

void dispc_wb_set_channel_in(struct dispc_device *dispc,
enum dss_writeback_channel channel)
{
enum omap_plane_id plane = OMAP_DSS_WB;

REG_FLD_MOD(dispc, DISPC_OVL_ATTRIBUTES(plane), channel, 18, 16);
}

static void dispc_ovl_set_burst_size(struct dispc_device *dispc,
enum omap_plane_id plane,
enum omap_burst_size burst_size)
Expand Down Expand Up @@ -2764,7 +2756,8 @@ static int dispc_ovl_setup(struct dispc_device *dispc,

int dispc_wb_setup(struct dispc_device *dispc,
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;
Expand Down Expand Up @@ -2809,6 +2802,7 @@ int dispc_wb_setup(struct dispc_device *dispc,
/* setup extra DISPC_WB_ATTRIBUTES */
l = dispc_read_reg(dispc, 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 */
Expand Down
3 changes: 2 additions & 1 deletion drivers/gpu/drm/omapdrm/dss/dss.h
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,8 @@ void dispc_wb_set_channel_in(struct dispc_device *dispc,
enum dss_writeback_channel channel);
int dispc_wb_setup(struct dispc_device *dispc,
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)
Expand Down

0 comments on commit 9f7853a

Please sign in to comment.