Lines Matching full:plane
22 * Atmel HLCDC Plane state structure.
24 * @base: DRM plane state
25 * @crtc_x: x position of the plane relative to the CRTC
26 * @crtc_y: y position of the plane relative to the CRTC
27 * @crtc_w: visible width of the plane
28 * @crtc_h: visible height of the plane
272 atmel_hlcdc_plane_scaler_set_phicoeff(struct atmel_hlcdc_plane *plane, in atmel_hlcdc_plane_scaler_set_phicoeff() argument
279 atmel_hlcdc_layer_write_cfg(&plane->layer, cfg_offs + i, in atmel_hlcdc_plane_scaler_set_phicoeff()
283 void atmel_hlcdc_plane_setup_scaler(struct atmel_hlcdc_plane *plane, in atmel_hlcdc_plane_setup_scaler() argument
286 const struct atmel_hlcdc_layer_desc *desc = plane->layer.desc; in atmel_hlcdc_plane_setup_scaler()
293 atmel_hlcdc_layer_write_cfg(&plane->layer, in atmel_hlcdc_plane_setup_scaler()
307 atmel_hlcdc_plane_scaler_set_phicoeff(plane, in atmel_hlcdc_plane_setup_scaler()
314 atmel_hlcdc_plane_scaler_set_phicoeff(plane, in atmel_hlcdc_plane_setup_scaler()
325 atmel_hlcdc_layer_write_cfg(&plane->layer, desc->layout.scaler_config, in atmel_hlcdc_plane_setup_scaler()
332 atmel_hlcdc_plane_update_pos_and_size(struct atmel_hlcdc_plane *plane, in atmel_hlcdc_plane_update_pos_and_size() argument
335 const struct atmel_hlcdc_layer_desc *desc = plane->layer.desc; in atmel_hlcdc_plane_update_pos_and_size()
338 atmel_hlcdc_layer_write_cfg(&plane->layer, desc->layout.size, in atmel_hlcdc_plane_update_pos_and_size()
343 atmel_hlcdc_layer_write_cfg(&plane->layer, in atmel_hlcdc_plane_update_pos_and_size()
349 atmel_hlcdc_layer_write_cfg(&plane->layer, desc->layout.pos, in atmel_hlcdc_plane_update_pos_and_size()
353 atmel_hlcdc_plane_setup_scaler(plane, state); in atmel_hlcdc_plane_update_pos_and_size()
357 atmel_hlcdc_plane_update_general_settings(struct atmel_hlcdc_plane *plane, in atmel_hlcdc_plane_update_general_settings() argument
361 const struct atmel_hlcdc_layer_desc *desc = plane->layer.desc; in atmel_hlcdc_plane_update_general_settings()
371 atmel_hlcdc_layer_write_cfg(&plane->layer, ATMEL_HLCDC_LAYER_DMA_CFG, in atmel_hlcdc_plane_update_general_settings()
376 if (plane->base.type != DRM_PLANE_TYPE_PRIMARY) { in atmel_hlcdc_plane_update_general_settings()
390 atmel_hlcdc_layer_write_cfg(&plane->layer, desc->layout.general_config, in atmel_hlcdc_plane_update_general_settings()
394 static void atmel_hlcdc_plane_update_format(struct atmel_hlcdc_plane *plane, in atmel_hlcdc_plane_update_format() argument
410 atmel_hlcdc_layer_write_cfg(&plane->layer, in atmel_hlcdc_plane_update_format()
414 static void atmel_hlcdc_plane_update_clut(struct atmel_hlcdc_plane *plane, in atmel_hlcdc_plane_update_clut() argument
434 atmel_hlcdc_layer_write_clut(&plane->layer, idx, val); in atmel_hlcdc_plane_update_clut()
438 static void atmel_hlcdc_plane_update_buffers(struct atmel_hlcdc_plane *plane, in atmel_hlcdc_plane_update_buffers() argument
441 const struct atmel_hlcdc_layer_desc *desc = plane->layer.desc; in atmel_hlcdc_plane_update_buffers()
446 sr = atmel_hlcdc_layer_read_reg(&plane->layer, ATMEL_HLCDC_LAYER_CHSR); in atmel_hlcdc_plane_update_buffers()
453 atmel_hlcdc_layer_write_reg(&plane->layer, in atmel_hlcdc_plane_update_buffers()
458 atmel_hlcdc_layer_write_reg(&plane->layer, in atmel_hlcdc_plane_update_buffers()
461 atmel_hlcdc_layer_write_reg(&plane->layer, in atmel_hlcdc_plane_update_buffers()
464 atmel_hlcdc_layer_write_reg(&plane->layer, in atmel_hlcdc_plane_update_buffers()
470 atmel_hlcdc_layer_write_cfg(&plane->layer, in atmel_hlcdc_plane_update_buffers()
475 atmel_hlcdc_layer_write_cfg(&plane->layer, in atmel_hlcdc_plane_update_buffers()
484 struct drm_plane *plane; in atmel_hlcdc_plane_prepare_ahb_routing() local
486 drm_atomic_crtc_state_for_each_plane(plane, c_state) { in atmel_hlcdc_plane_prepare_ahb_routing()
492 plane_s = drm_atomic_get_plane_state(c_state->state, plane); in atmel_hlcdc_plane_prepare_ahb_routing()
576 atmel_hlcdc_plane_update_disc_area(struct atmel_hlcdc_plane *plane, in atmel_hlcdc_plane_update_disc_area() argument
581 layout = &plane->layer.desc->layout; in atmel_hlcdc_plane_update_disc_area()
585 atmel_hlcdc_layer_write_cfg(&plane->layer, layout->disc_pos, in atmel_hlcdc_plane_update_disc_area()
589 atmel_hlcdc_layer_write_cfg(&plane->layer, layout->disc_size, in atmel_hlcdc_plane_update_disc_area()
597 struct atmel_hlcdc_plane *plane = drm_plane_to_atmel_hlcdc_plane(p); in atmel_hlcdc_plane_atomic_check() local
600 const struct atmel_hlcdc_layer_desc *desc = plane->layer.desc; in atmel_hlcdc_plane_atomic_check()
715 struct atmel_hlcdc_plane *plane = drm_plane_to_atmel_hlcdc_plane(p); in atmel_hlcdc_plane_atomic_disable() local
718 atmel_hlcdc_layer_write_reg(&plane->layer, ATMEL_HLCDC_LAYER_IDR, in atmel_hlcdc_plane_atomic_disable()
722 atmel_hlcdc_layer_write_reg(&plane->layer, ATMEL_HLCDC_LAYER_CHDR, in atmel_hlcdc_plane_atomic_disable()
728 atmel_hlcdc_layer_read_reg(&plane->layer, ATMEL_HLCDC_LAYER_ISR); in atmel_hlcdc_plane_atomic_disable()
734 struct atmel_hlcdc_plane *plane = drm_plane_to_atmel_hlcdc_plane(p); in atmel_hlcdc_plane_atomic_update() local
747 atmel_hlcdc_plane_update_pos_and_size(plane, state); in atmel_hlcdc_plane_atomic_update()
748 atmel_hlcdc_plane_update_general_settings(plane, state); in atmel_hlcdc_plane_atomic_update()
749 atmel_hlcdc_plane_update_format(plane, state); in atmel_hlcdc_plane_atomic_update()
750 atmel_hlcdc_plane_update_clut(plane, state); in atmel_hlcdc_plane_atomic_update()
751 atmel_hlcdc_plane_update_buffers(plane, state); in atmel_hlcdc_plane_atomic_update()
752 atmel_hlcdc_plane_update_disc_area(plane, state); in atmel_hlcdc_plane_atomic_update()
755 atmel_hlcdc_layer_write_reg(&plane->layer, ATMEL_HLCDC_LAYER_IER, in atmel_hlcdc_plane_atomic_update()
761 sr = atmel_hlcdc_layer_read_reg(&plane->layer, ATMEL_HLCDC_LAYER_CHSR); in atmel_hlcdc_plane_atomic_update()
762 atmel_hlcdc_layer_write_reg(&plane->layer, ATMEL_HLCDC_LAYER_CHER, in atmel_hlcdc_plane_atomic_update()
768 static int atmel_hlcdc_plane_init_properties(struct atmel_hlcdc_plane *plane) in atmel_hlcdc_plane_init_properties() argument
770 const struct atmel_hlcdc_layer_desc *desc = plane->layer.desc; in atmel_hlcdc_plane_init_properties()
776 ret = drm_plane_create_alpha_property(&plane->base); in atmel_hlcdc_plane_init_properties()
784 ret = drm_plane_create_rotation_property(&plane->base, in atmel_hlcdc_plane_init_properties()
799 atmel_hlcdc_layer_write_cfg(&plane->layer, in atmel_hlcdc_plane_init_properties()
802 atmel_hlcdc_layer_write_cfg(&plane->layer, in atmel_hlcdc_plane_init_properties()
805 atmel_hlcdc_layer_write_cfg(&plane->layer, in atmel_hlcdc_plane_init_properties()
813 void atmel_hlcdc_plane_irq(struct atmel_hlcdc_plane *plane) in atmel_hlcdc_plane_irq() argument
815 const struct atmel_hlcdc_layer_desc *desc = plane->layer.desc; in atmel_hlcdc_plane_irq()
818 isr = atmel_hlcdc_layer_read_reg(&plane->layer, ATMEL_HLCDC_LAYER_ISR); in atmel_hlcdc_plane_irq()
828 dev_dbg(plane->base.dev->dev, "overrun on plane %s\n", in atmel_hlcdc_plane_irq()
890 "Failed to allocate initial plane state\n"); in atmel_hlcdc_plane_reset()
951 struct atmel_hlcdc_plane *plane; in atmel_hlcdc_plane_create() local
955 plane = devm_kzalloc(dev->dev, sizeof(*plane), GFP_KERNEL); in atmel_hlcdc_plane_create()
956 if (!plane) in atmel_hlcdc_plane_create()
959 atmel_hlcdc_layer_init(&plane->layer, desc, dc->hlcdc->regmap); in atmel_hlcdc_plane_create()
968 ret = drm_universal_plane_init(dev, &plane->base, 0, in atmel_hlcdc_plane_create()
976 drm_plane_helper_add(&plane->base, in atmel_hlcdc_plane_create()
980 ret = atmel_hlcdc_plane_init_properties(plane); in atmel_hlcdc_plane_create()
984 dc->layers[desc->id] = &plane->layer; in atmel_hlcdc_plane_create()