Lines Matching refs:compo
56 static int sti_compositor_init_subdev(struct sti_compositor *compo, in sti_compositor_init_subdev() argument
66 compo->mixer[mixer_id++] = in sti_compositor_init_subdev()
67 sti_mixer_create(compo->dev, desc[i].id, in sti_compositor_init_subdev()
68 compo->regs + desc[i].offset); in sti_compositor_init_subdev()
73 compo->layer[layer_id++] = in sti_compositor_init_subdev()
74 sti_layer_create(compo->dev, desc[i].id, in sti_compositor_init_subdev()
75 compo->regs + desc[i].offset); in sti_compositor_init_subdev()
83 compo->nb_mixers = mixer_id; in sti_compositor_init_subdev()
84 compo->nb_layers = layer_id; in sti_compositor_init_subdev()
92 struct sti_compositor *compo = dev_get_drvdata(dev); in sti_compositor_bind() local
99 dev_priv->compo = compo; in sti_compositor_bind()
101 for (i = 0; i < compo->nb_layers; i++) { in sti_compositor_bind()
102 if (compo->layer[i]) { in sti_compositor_bind()
103 enum sti_layer_desc desc = compo->layer[i]->desc; in sti_compositor_bind()
107 if (crtc < compo->nb_mixers) in sti_compositor_bind()
113 compo->layer[i], in sti_compositor_bind()
119 compo->layer[i], in sti_compositor_bind()
120 (1 << compo->nb_mixers) - 1, in sti_compositor_bind()
130 if (crtc < compo->nb_mixers && primary) { in sti_compositor_bind()
131 sti_drm_crtc_init(drm_dev, compo->mixer[crtc], in sti_compositor_bind()
180 struct sti_compositor *compo; in sti_compositor_probe() local
184 compo = devm_kzalloc(dev, sizeof(*compo), GFP_KERNEL); in sti_compositor_probe()
185 if (!compo) { in sti_compositor_probe()
189 compo->dev = dev; in sti_compositor_probe()
190 compo->vtg_vblank_nb.notifier_call = sti_drm_crtc_vblank_cb; in sti_compositor_probe()
195 memcpy(&compo->data, of_match_node(compositor_of_match, np)->data, in sti_compositor_probe()
204 compo->regs = devm_ioremap(dev, res->start, resource_size(res)); in sti_compositor_probe()
205 if (compo->regs == NULL) { in sti_compositor_probe()
211 compo->clk_compo_main = devm_clk_get(dev, "compo_main"); in sti_compositor_probe()
212 if (IS_ERR(compo->clk_compo_main)) { in sti_compositor_probe()
214 return PTR_ERR(compo->clk_compo_main); in sti_compositor_probe()
217 compo->clk_compo_aux = devm_clk_get(dev, "compo_aux"); in sti_compositor_probe()
218 if (IS_ERR(compo->clk_compo_aux)) { in sti_compositor_probe()
220 return PTR_ERR(compo->clk_compo_aux); in sti_compositor_probe()
223 compo->clk_pix_main = devm_clk_get(dev, "pix_main"); in sti_compositor_probe()
224 if (IS_ERR(compo->clk_pix_main)) { in sti_compositor_probe()
226 return PTR_ERR(compo->clk_pix_main); in sti_compositor_probe()
229 compo->clk_pix_aux = devm_clk_get(dev, "pix_aux"); in sti_compositor_probe()
230 if (IS_ERR(compo->clk_pix_aux)) { in sti_compositor_probe()
232 return PTR_ERR(compo->clk_pix_aux); in sti_compositor_probe()
236 compo->rst_main = devm_reset_control_get(dev, "compo-main"); in sti_compositor_probe()
238 if (!IS_ERR(compo->rst_main)) in sti_compositor_probe()
239 reset_control_deassert(compo->rst_main); in sti_compositor_probe()
241 compo->rst_aux = devm_reset_control_get(dev, "compo-aux"); in sti_compositor_probe()
243 if (!IS_ERR(compo->rst_aux)) in sti_compositor_probe()
244 reset_control_deassert(compo->rst_aux); in sti_compositor_probe()
248 compo->vtg_main = of_vtg_find(vtg_np); in sti_compositor_probe()
252 compo->vtg_aux = of_vtg_find(vtg_np); in sti_compositor_probe()
255 err = sti_compositor_init_subdev(compo, compo->data.subdev_desc, in sti_compositor_probe()
256 compo->data.nb_subdev); in sti_compositor_probe()
260 platform_set_drvdata(pdev, compo); in sti_compositor_probe()