15 #include <linux/export.h>
16 #include <linux/kernel.h>
17 #include <linux/types.h>
18 #include <linux/errno.h>
26 #define DP_ASYNC0 0x60
27 #define DP_ASYNC1 0xBC
29 #define DP_COM_CONF 0x0
30 #define DP_GRAPH_WIND_CTRL 0x0004
31 #define DP_FG_POS 0x0008
32 #define DP_CSC_A_0 0x0044
33 #define DP_CSC_A_1 0x0048
34 #define DP_CSC_A_2 0x004C
35 #define DP_CSC_A_3 0x0050
36 #define DP_CSC_0 0x0054
37 #define DP_CSC_1 0x0058
39 #define DP_COM_CONF_FG_EN (1 << 0)
40 #define DP_COM_CONF_GWSEL (1 << 1)
41 #define DP_COM_CONF_GWAM (1 << 2)
42 #define DP_COM_CONF_GWCKE (1 << 3)
43 #define DP_COM_CONF_CSC_DEF_MASK (3 << 8)
44 #define DP_COM_CONF_CSC_DEF_OFFSET 8
45 #define DP_COM_CONF_CSC_DEF_FG (3 << 8)
46 #define DP_COM_CONF_CSC_DEF_BG (2 << 8)
47 #define DP_COM_CONF_CSC_DEF_BOTH (1 << 8)
123 struct ipu_flow *flow = to_flow(dp);
154 writel(0x3d6 | (0x0000 << 16) | (2 << 30),
156 writel(0x200 | (2 << 14) | (0x200 << 16) | (2 << 30),
163 writel(0x000 | (0x3e42 << 16) | (1 << 30),
165 writel(0x10a | (1 << 14) | (0x3dd6 << 16) | (1 << 30),
178 struct ipu_flow *flow = to_flow(dp);
218 struct ipu_flow *flow = to_flow(dp);
246 struct ipu_flow *flow = to_flow(dp);
259 reg &= ~DP_COM_CONF_CSC_DEF_MASK;
287 dp = &priv->
flow[flow >> 1].foreground;
289 dp = &priv->
flow[flow >> 1].background;
292 return ERR_PTR(-
EBUSY);
325 for (i = 0; i < 3; i++) {
326 priv->
flow[
i].foreground.foreground = 1;
327 priv->
flow[
i].base = priv->
base + ipu_dp_flow_base[
i];