Lines Matching refs:rcdu

153 	struct rcar_du_device *rcdu = dev->dev_private;  in rcar_du_dumb_create()  local
161 if (rcar_du_needs(rcdu, RCAR_DU_QUIRK_ALIGN_128B)) in rcar_du_dumb_create()
175 struct rcar_du_device *rcdu = dev->dev_private; in rcar_du_fb_create() local
196 if (rcar_du_needs(rcdu, RCAR_DU_QUIRK_ALIGN_128B)) in rcar_du_fb_create()
221 struct rcar_du_device *rcdu = dev->dev_private; in rcar_du_output_poll_changed() local
223 drm_fbdev_cma_hotplug_event(rcdu->fbdev); in rcar_du_output_poll_changed()
233 struct rcar_du_device *rcdu = dev->dev_private; in rcar_du_atomic_check() local
240 if (rcar_du_has(rcdu, RCAR_DU_FEATURE_VSP1_SOURCE)) in rcar_du_atomic_check()
277 static int rcar_du_encoders_init_one(struct rcar_du_device *rcdu, in rcar_du_encoders_init_one() argument
294 dev_dbg(rcdu->dev, "unconnected endpoint %pOF, skipping\n", in rcar_du_encoders_init_one()
300 dev_dbg(rcdu->dev, in rcar_du_encoders_init_one()
321 dev_warn(rcdu->dev, in rcar_du_encoders_init_one()
335 dev_warn(rcdu->dev, in rcar_du_encoders_init_one()
341 ret = rcar_du_encoder_init(rcdu, output, encoder, connector); in rcar_du_encoders_init_one()
343 dev_warn(rcdu->dev, in rcar_du_encoders_init_one()
353 static int rcar_du_encoders_init(struct rcar_du_device *rcdu) in rcar_du_encoders_init() argument
355 struct device_node *np = rcdu->dev->of_node; in rcar_du_encoders_init()
377 if (rcdu->info->routes[i].possible_crtcs && in rcar_du_encoders_init()
378 rcdu->info->routes[i].port == ep.port) { in rcar_du_encoders_init()
385 dev_warn(rcdu->dev, in rcar_du_encoders_init()
392 ret = rcar_du_encoders_init_one(rcdu, output, &ep); in rcar_du_encoders_init()
408 static int rcar_du_properties_init(struct rcar_du_device *rcdu) in rcar_du_properties_init() argument
415 rcdu->props.colorkey = in rcar_du_properties_init()
416 drm_property_create_range(rcdu->ddev, 0, "colorkey", in rcar_du_properties_init()
418 if (rcdu->props.colorkey == NULL) in rcar_du_properties_init()
424 static int rcar_du_vsps_init(struct rcar_du_device *rcdu) in rcar_du_vsps_init() argument
426 const struct device_node *np = rcdu->dev->of_node; in rcar_du_vsps_init()
442 cells = of_property_count_u32_elems(np, "vsps") / rcdu->num_crtcs - 1; in rcar_du_vsps_init()
446 for (i = 0; i < rcdu->num_crtcs; ++i) { in rcar_du_vsps_init()
471 rcdu->crtcs[i].vsp = &rcdu->vsps[j]; in rcar_du_vsps_init()
472 rcdu->crtcs[i].vsp_pipe = cells >= 1 ? args.args[0] : 0; in rcar_du_vsps_init()
480 struct rcar_du_vsp *vsp = &rcdu->vsps[i]; in rcar_du_vsps_init()
483 vsp->dev = rcdu; in rcar_du_vsps_init()
499 int rcar_du_modeset_init(struct rcar_du_device *rcdu) in rcar_du_modeset_init() argument
505 struct drm_device *dev = rcdu->ddev; in rcar_du_modeset_init()
525 rcdu->num_crtcs = hweight8(rcdu->info->channels_mask); in rcar_du_modeset_init()
527 ret = rcar_du_properties_init(rcdu); in rcar_du_modeset_init()
535 ret = drm_vblank_init(dev, (1 << rcdu->num_crtcs) - 1); in rcar_du_modeset_init()
540 num_groups = DIV_ROUND_UP(rcdu->num_crtcs, 2); in rcar_du_modeset_init()
543 struct rcar_du_group *rgrp = &rcdu->groups[i]; in rcar_du_modeset_init()
547 rgrp->dev = rcdu; in rcar_du_modeset_init()
551 rgrp->channels_mask = (rcdu->info->channels_mask >> (2 * i)) in rcar_du_modeset_init()
562 ? (rcdu->info->gen >= 3 ? 0x04 : 0xf0) in rcar_du_modeset_init()
565 if (!rcar_du_has(rcdu, RCAR_DU_FEATURE_VSP1_SOURCE)) { in rcar_du_modeset_init()
573 if (rcar_du_has(rcdu, RCAR_DU_FEATURE_VSP1_SOURCE)) { in rcar_du_modeset_init()
574 ret = rcar_du_vsps_init(rcdu); in rcar_du_modeset_init()
580 for (swindex = 0, hwindex = 0; swindex < rcdu->num_crtcs; ++hwindex) { in rcar_du_modeset_init()
584 if (!(rcdu->info->channels_mask & BIT(hwindex))) in rcar_du_modeset_init()
587 rgrp = &rcdu->groups[hwindex / 2]; in rcar_du_modeset_init()
595 ret = rcar_du_encoders_init(rcdu); in rcar_du_modeset_init()
600 dev_err(rcdu->dev, "error: no encoder could be initialized\n"); in rcar_du_modeset_init()
614 &rcdu->info->routes[renc->output]; in rcar_du_modeset_init()
630 rcdu->fbdev = fbdev; in rcar_du_modeset_init()
632 dev_info(rcdu->dev, in rcar_du_modeset_init()