Lines Matching defs:flow

46 	u32 flow;
64 struct ipu_flow flow[IPUV3_NUM_FLOWS];
82 struct ipu_flow *flow = to_flow(dp);
83 struct ipu_dp_priv *priv = flow->priv;
88 reg = readl(flow->base + DP_COM_CONF);
93 writel(reg, flow->base + DP_COM_CONF);
96 reg = readl(flow->base + DP_GRAPH_WIND_CTRL) & 0x00FFFFFFL;
98 flow->base + DP_GRAPH_WIND_CTRL);
100 reg = readl(flow->base + DP_COM_CONF);
101 writel(reg | DP_COM_CONF_GWAM, flow->base + DP_COM_CONF);
103 reg = readl(flow->base + DP_COM_CONF);
104 writel(reg & ~DP_COM_CONF_GWAM, flow->base + DP_COM_CONF);
117 struct ipu_flow *flow = to_flow(dp);
118 struct ipu_dp_priv *priv = flow->priv;
120 writel((x_pos << 16) | y_pos, flow->base + DP_FG_POS);
128 static void ipu_dp_csc_init(struct ipu_flow *flow,
137 reg = readl(flow->base + DP_COM_CONF);
141 writel(reg, flow->base + DP_COM_CONF);
146 writel(0x099 | (0x12d << 16), flow->base + DP_CSC_A_0);
147 writel(0x03a | (0x3a9 << 16), flow->base + DP_CSC_A_1);
148 writel(0x356 | (0x100 << 16), flow->base + DP_CSC_A_2);
149 writel(0x100 | (0x329 << 16), flow->base + DP_CSC_A_3);
151 flow->base + DP_CSC_0);
153 flow->base + DP_CSC_1);
156 writel(0x095 | (0x000 << 16), flow->base + DP_CSC_A_0);
157 writel(0x0e5 | (0x095 << 16), flow->base + DP_CSC_A_1);
158 writel(0x3e5 | (0x3bc << 16), flow->base + DP_CSC_A_2);
159 writel(0x095 | (0x10e << 16), flow->base + DP_CSC_A_3);
161 flow->base + DP_CSC_0);
163 flow->base + DP_CSC_1);
166 writel(0x095 | (0x000 << 16), flow->base + DP_CSC_A_0);
167 writel(0x0cc | (0x095 << 16), flow->base + DP_CSC_A_1);
168 writel(0x3ce | (0x398 << 16), flow->base + DP_CSC_A_2);
169 writel(0x095 | (0x0ff << 16), flow->base + DP_CSC_A_3);
171 flow->base + DP_CSC_0);
173 flow->base + DP_CSC_1);
178 writel(reg, flow->base + DP_COM_CONF);
187 struct ipu_flow *flow = to_flow(dp);
188 struct ipu_dp_priv *priv = flow->priv;
195 flow->out_cs = out;
197 if (flow->foreground.in_cs == flow->background.in_cs) {
202 ipu_dp_csc_init(flow, ycbcr_enc, range,
203 flow->foreground.in_cs, flow->out_cs,
206 if (flow->foreground.in_cs == IPUV3_COLORSPACE_UNKNOWN ||
207 flow->foreground.in_cs == flow->out_cs)
212 ipu_dp_csc_init(flow, ycbcr_enc, range,
213 flow->background.in_cs,
214 flow->out_cs, DP_COM_CONF_CSC_DEF_BG);
216 ipu_dp_csc_init(flow, ycbcr_enc, range,
217 flow->foreground.in_cs,
218 flow->out_cs, DP_COM_CONF_CSC_DEF_FG);
248 struct ipu_flow *flow = to_flow(dp);
249 struct ipu_dp_priv *priv = flow->priv;
257 reg = readl(flow->base + DP_COM_CONF);
259 writel(reg, flow->base + DP_COM_CONF);
271 struct ipu_flow *flow = to_flow(dp);
272 struct ipu_dp_priv *priv = flow->priv;
282 reg = readl(flow->base + DP_COM_CONF);
289 writel(reg, flow->base + DP_COM_CONF);
291 writel(0, flow->base + DP_FG_POS);
316 struct ipu_dp *ipu_dp_get(struct ipu_soc *ipu, unsigned int flow)
321 if ((flow >> 1) >= IPUV3_NUM_FLOWS)
324 if (flow & 1)
325 dp = &priv->flow[flow >> 1].foreground;
327 dp = &priv->flow[flow >> 1].background;
364 priv->flow[i].background.in_cs = IPUV3_COLORSPACE_UNKNOWN;
365 priv->flow[i].foreground.in_cs = IPUV3_COLORSPACE_UNKNOWN;
366 priv->flow[i].foreground.foreground = true;
367 priv->flow[i].base = priv->base + ipu_dp_flow_base[i];
368 priv->flow[i].priv = priv;