Lines Matching +full:layer +full:- +full:primary

1 // SPDX-License-Identifier: GPL-2.0-or-later
25 struct fsl_dcu_drm_device *fsl_dev = plane->dev->dev_private; in fsl_dcu_drm_plane_index()
26 unsigned int total_layer = fsl_dev->soc->total_layer; in fsl_dcu_drm_plane_index()
31 return total_layer - index - 1; in fsl_dcu_drm_plane_index()
33 dev_err(fsl_dev->dev, "No more layer left\n"); in fsl_dcu_drm_plane_index()
34 return -EINVAL; in fsl_dcu_drm_plane_index()
42 struct drm_framebuffer *fb = new_plane_state->fb; in fsl_dcu_drm_plane_atomic_check()
44 if (!new_plane_state->fb || !new_plane_state->crtc) in fsl_dcu_drm_plane_atomic_check()
47 switch (fb->format->format) { in fsl_dcu_drm_plane_atomic_check()
59 return -EINVAL; in fsl_dcu_drm_plane_atomic_check()
66 struct fsl_dcu_drm_device *fsl_dev = plane->dev->dev_private; in fsl_dcu_drm_plane_atomic_disable()
74 regmap_read(fsl_dev->regmap, DCU_CTRLDESCLN(index, 4), &value); in fsl_dcu_drm_plane_atomic_disable()
76 regmap_write(fsl_dev->regmap, DCU_CTRLDESCLN(index, 4), value); in fsl_dcu_drm_plane_atomic_disable()
83 struct fsl_dcu_drm_device *fsl_dev = plane->dev->dev_private; in fsl_dcu_drm_plane_atomic_update()
86 struct drm_framebuffer *fb = plane->state->fb; in fsl_dcu_drm_plane_atomic_update()
100 switch (fb->format->format) { in fsl_dcu_drm_plane_atomic_update()
132 regmap_write(fsl_dev->regmap, DCU_CTRLDESCLN(index, 1), in fsl_dcu_drm_plane_atomic_update()
133 DCU_LAYER_HEIGHT(new_state->crtc_h) | in fsl_dcu_drm_plane_atomic_update()
134 DCU_LAYER_WIDTH(new_state->crtc_w)); in fsl_dcu_drm_plane_atomic_update()
135 regmap_write(fsl_dev->regmap, DCU_CTRLDESCLN(index, 2), in fsl_dcu_drm_plane_atomic_update()
136 DCU_LAYER_POSY(new_state->crtc_y) | in fsl_dcu_drm_plane_atomic_update()
137 DCU_LAYER_POSX(new_state->crtc_x)); in fsl_dcu_drm_plane_atomic_update()
138 regmap_write(fsl_dev->regmap, in fsl_dcu_drm_plane_atomic_update()
139 DCU_CTRLDESCLN(index, 3), gem->dma_addr); in fsl_dcu_drm_plane_atomic_update()
140 regmap_write(fsl_dev->regmap, DCU_CTRLDESCLN(index, 4), in fsl_dcu_drm_plane_atomic_update()
145 regmap_write(fsl_dev->regmap, DCU_CTRLDESCLN(index, 5), in fsl_dcu_drm_plane_atomic_update()
149 regmap_write(fsl_dev->regmap, DCU_CTRLDESCLN(index, 6), in fsl_dcu_drm_plane_atomic_update()
153 regmap_write(fsl_dev->regmap, DCU_CTRLDESCLN(index, 7), 0); in fsl_dcu_drm_plane_atomic_update()
154 regmap_write(fsl_dev->regmap, DCU_CTRLDESCLN(index, 8), in fsl_dcu_drm_plane_atomic_update()
156 regmap_write(fsl_dev->regmap, DCU_CTRLDESCLN(index, 9), in fsl_dcu_drm_plane_atomic_update()
159 if (!strcmp(fsl_dev->soc->name, "ls1021a")) { in fsl_dcu_drm_plane_atomic_update()
160 regmap_write(fsl_dev->regmap, DCU_CTRLDESCLN(index, 10), in fsl_dcu_drm_plane_atomic_update()
197 struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; in fsl_dcu_drm_init_planes()
200 for (i = 0; i < fsl_dev->soc->total_layer; i++) { in fsl_dcu_drm_init_planes()
201 for (j = 1; j <= fsl_dev->soc->layer_regs; j++) in fsl_dcu_drm_init_planes()
202 regmap_write(fsl_dev->regmap, DCU_CTRLDESCLN(i, j), 0); in fsl_dcu_drm_init_planes()
208 struct drm_plane *primary; in fsl_dcu_drm_primary_create_plane() local
211 primary = kzalloc(sizeof(*primary), GFP_KERNEL); in fsl_dcu_drm_primary_create_plane()
212 if (!primary) { in fsl_dcu_drm_primary_create_plane()
213 DRM_DEBUG_KMS("Failed to allocate primary plane\n"); in fsl_dcu_drm_primary_create_plane()
218 ret = drm_universal_plane_init(dev, primary, 0, in fsl_dcu_drm_primary_create_plane()
224 kfree(primary); in fsl_dcu_drm_primary_create_plane()
225 primary = NULL; in fsl_dcu_drm_primary_create_plane()
227 drm_plane_helper_add(primary, &fsl_dcu_drm_plane_helper_funcs); in fsl_dcu_drm_primary_create_plane()
229 return primary; in fsl_dcu_drm_primary_create_plane()