| /linux/drivers/gpu/drm/ |
| H A D | drm_plane.c | 42 * A plane represents an image source that can be blended with or overlaid on 44 * &drm_framebuffer object. The plane itself specifies the cropping and scaling 46 * pipeline, represented by &drm_crtc. A plane can also have additional 52 * which are not covered by a plane will be black, and alpha blending of any 55 * To create a plane, a KMS drivers allocates and zeroes an instances of 59 * Each plane has a type, see enum drm_plane_type. A plane can be compatible 62 * Each CRTC must have a unique primary plane userspace can attach to enable 64 * primary plane to each CRTC at the same time. Primary planes can still be 69 * relies on the driver to set the primary and optionally the cursor plane used 71 * drivers must provide one primary plane per CRTC to avoid surprising legacy [all …]
|
| H A D | drm_plane_helper.c | 4 * DRM universal plane helper functions 44 * This helper library contains helpers to implement primary plane support on 47 * plane together with the CRTC state this does not allow userspace to disable 48 * the primary plane itself. The default primary plane only expose XRBG8888 and 55 * The plane helpers share the function table structures with other helpers, 75 * Note: Once we change the plane hooks to more fine-grained locking we in get_connectors_for_crtc() 95 static int drm_plane_helper_check_update(struct drm_plane *plane, in drm_plane_helper_check_update() argument 108 .plane = plane, in drm_plane_helper_check_update() 144 * @plane: plane to update 145 * @crtc: the plane's new CRTC [all …]
|
| /linux/drivers/gpu/drm/nouveau/dispnv04/ |
| H A D | overlay.c | 113 nv10_update_plane(struct drm_plane *plane, struct drm_crtc *crtc, in nv10_update_plane() argument 120 struct nouveau_drm *drm = nouveau_drm(plane->dev); in nv10_update_plane() 123 container_of(plane, struct nouveau_plane, base); in nv10_update_plane() 192 nv10_disable_plane(struct drm_plane *plane, in nv10_disable_plane() argument 195 struct nvif_object *dev = &nouveau_drm(plane->dev)->client.device.object; in nv10_disable_plane() 197 container_of(plane, struct nouveau_plane, base); in nv10_disable_plane() 209 nv_destroy_plane(struct drm_plane *plane) in nv_destroy_plane() argument 211 drm_plane_force_disable(plane); in nv_destroy_plane() 212 drm_plane_cleanup(plane); in nv_destroy_plane() 213 kfree(plane); in nv_destroy_plane() [all …]
|
| /linux/drivers/gpu/drm/i915/display/ |
| H A D | skl_universal_plane_regs.h | 11 #define _SKL_PLANE(pipe, plane, reg_1_a, reg_1_b, reg_2_a, reg_2_b) \ argument 12 _PLANE((plane), _PIPE((pipe), (reg_1_a), (reg_1_b)), _PIPE((pipe), (reg_2_a), (reg_2_b))) 13 #define _SKL_PLANE_DW(pipe, plane, dw, reg_1_a, reg_1_b, reg_2_a, reg_2_b) \ argument 14 (_SKL_PLANE((pipe), (plane), (reg_1_a), (reg_1_b), (reg_2_a), (reg_2_b)) + (dw) * 4) 15 #define _MMIO_SKL_PLANE(pipe, plane, reg_1_a, reg_1_b, reg_2_a, reg_2_b) \ argument 16 _MMIO(_SKL_PLANE((pipe), (plane), (reg_1_a), (reg_1_b), (reg_2_a), (reg_2_b))) 17 #define _MMIO_SKL_PLANE_DW(pipe, plane, dw, reg_1_a, reg_1_b, reg_2_a, reg_2_b) \ argument 18 _MMIO(_SKL_PLANE_DW((pipe), (plane), (dw), (reg_1_a), (reg_1_b), (reg_2_a), (reg_2_b))) 20 #define _SEL_FETCH(pipe, plane, reg_1_a, reg_1_b, reg_2_a, reg_2_b, reg_5_a, reg_5_b, reg_6_a, reg_… argument 21 _PICK_EVEN_2RANGES((plane), PLANE_5, \ [all …]
|
| H A D | i9xx_plane_regs.h | 12 #define DSPADDR_VLV(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPAADDR_VLV) argument 15 #define DSPCNTR(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPACNTR) argument 41 #define DISP_ALPHA_TRANS_ENABLE REG_BIT(15) /* pre-g4x plane B */ 46 #define DISP_SPRITE_ABOVE_OVERLAY REG_BIT(0) /* pre-g4x plane B/C */ 49 #define DSPADDR(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPAADDR) argument 52 #define DSPLINOFF(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPALINOFF) argument 55 #define DSPSTRIDE(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPASTRIDE) argument 58 #define DSPPOS(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPAPOS) argument 65 #define DSPSIZE(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPASIZE) argument 72 #define DSPSURF(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPASURF) argument [all …]
|
| /linux/drivers/gpu/drm/omapdrm/dss/ |
| H A D | dispc.h | 342 static inline u16 DISPC_OVL_BASE(enum omap_plane_id plane) in DISPC_OVL_BASE() argument 344 switch (plane) { in DISPC_OVL_BASE() 362 static inline u16 DISPC_BA0_OFFSET(enum omap_plane_id plane) in DISPC_BA0_OFFSET() argument 364 switch (plane) { in DISPC_BA0_OFFSET() 378 static inline u16 DISPC_BA1_OFFSET(enum omap_plane_id plane) in DISPC_BA1_OFFSET() argument 380 switch (plane) { in DISPC_BA1_OFFSET() 394 static inline u16 DISPC_BA0_UV_OFFSET(enum omap_plane_id plane) in DISPC_BA0_UV_OFFSET() argument 396 switch (plane) { in DISPC_BA0_UV_OFFSET() 414 static inline u16 DISPC_BA1_UV_OFFSET(enum omap_plane_id plane) in DISPC_BA1_UV_OFFSET() argument 416 switch (plane) { in DISPC_BA1_UV_OFFSET() [all …]
|
| H A D | dispc.c | 176 /* maps which plane is using a fifo. fifo-id -> plane-id */ 352 enum omap_plane_id plane); 354 enum omap_plane_id plane); 725 enum omap_plane_id plane, int reg, in dispc_ovl_write_firh_reg() argument 728 dispc_write_reg(dispc, DISPC_OVL_FIR_COEF_H(plane, reg), value); in dispc_ovl_write_firh_reg() 732 enum omap_plane_id plane, int reg, in dispc_ovl_write_firhv_reg() argument 735 dispc_write_reg(dispc, DISPC_OVL_FIR_COEF_HV(plane, reg), value); in dispc_ovl_write_firhv_reg() 739 enum omap_plane_id plane, int reg, in dispc_ovl_write_firv_reg() argument 742 dispc_write_reg(dispc, DISPC_OVL_FIR_COEF_V(plane, reg), value); in dispc_ovl_write_firv_reg() 746 enum omap_plane_id plane, int reg, in dispc_ovl_write_firh2_reg() argument [all …]
|
| /linux/drivers/video/fbdev/omap2/omapfb/dss/ |
| H A D | dispc.h | 339 static inline u16 DISPC_OVL_BASE(enum omap_plane plane) in DISPC_OVL_BASE() argument 341 switch (plane) { in DISPC_OVL_BASE() 359 static inline u16 DISPC_BA0_OFFSET(enum omap_plane plane) in DISPC_BA0_OFFSET() argument 361 switch (plane) { in DISPC_BA0_OFFSET() 375 static inline u16 DISPC_BA1_OFFSET(enum omap_plane plane) in DISPC_BA1_OFFSET() argument 377 switch (plane) { in DISPC_BA1_OFFSET() 391 static inline u16 DISPC_BA0_UV_OFFSET(enum omap_plane plane) in DISPC_BA0_UV_OFFSET() argument 393 switch (plane) { in DISPC_BA0_UV_OFFSET() 411 static inline u16 DISPC_BA1_UV_OFFSET(enum omap_plane plane) in DISPC_BA1_UV_OFFSET() argument 413 switch (plane) { in DISPC_BA1_UV_OFFSET() [all …]
|
| /linux/drivers/gpu/drm/tegra/ |
| H A D | plane.c | 17 #include "plane.h" 19 static void tegra_plane_destroy(struct drm_plane *plane) in tegra_plane_destroy() argument 21 struct tegra_plane *p = to_tegra_plane(plane); in tegra_plane_destroy() 23 drm_plane_cleanup(plane); in tegra_plane_destroy() 27 static void tegra_plane_reset(struct drm_plane *plane) in tegra_plane_reset() argument 29 struct tegra_plane *p = to_tegra_plane(plane); in tegra_plane_reset() 33 if (plane->state) in tegra_plane_reset() 34 __drm_atomic_helper_plane_destroy_state(plane->state); in tegra_plane_reset() 36 kfree(plane->state); in tegra_plane_reset() 37 plane->state = NULL; in tegra_plane_reset() [all …]
|
| /linux/Documentation/gpu/ |
| H A D | afbc.rst | 87 Within each plane, the component ordering also follows the fourcc 94 * Plane 0: 102 * Plane 0: 106 * Plane 1: 127 - Plane 0: 4 components 135 - Plane 0: 4 components 143 - Plane 0: 3 components 150 - Plane 0: 3 components 157 - Plane 0: 4 components 164 - 8-bit per component YCbCr 444, single plane [all …]
|
| H A D | kms-properties.csv | 61 ,Overlay,"""colorkey""",RANGE,"Min=0, Max=0xffffff",Plane,TBD 62 ,,"""colorkey_min""",RANGE,"Min=0, Max=0xffffff",Plane,TBD 63 ,,"""colorkey_max""",RANGE,"Min=0, Max=0xffffff",Plane,TBD 64 ,,"""colorkey_val""",RANGE,"Min=0, Max=0xffffff",Plane,TBD 65 ,,"""colorkey_alpha""",RANGE,"Min=0, Max=0xffffff",Plane,TBD 66 …mponent"" , ""V component"", ""RGB"", “R component"", ""G component"", ""B component"" }",Plane,TBD 67 ,,"""brightness""",RANGE,"Min=0, Max=256 + 255",Plane,TBD 68 ,,"""contrast""",RANGE,"Min=0, Max=0x7fff",Plane,TBD 69 ,,"""saturation""",RANGE,"Min=0, Max=0x7fff",Plane,TBD 73 nouveau,NV10 Overlay,"""colorkey""",RANGE,"Min=0, Max=0x01ffffff",Plane,TBD [all …]
|
| /linux/Documentation/gpu/amdgpu/display/ |
| H A D | mpo-overview.rst | 17 * Plane independent page flips - No need to be tied to global compositor 31 * ``DRM_PLANE_TYPE_PRIMARY``: Primary planes represent a "main" plane for a 34 * ``DRM_PLANE_TYPE_CURSOR``: Cursor planes represent a "cursor" plane for a 45 * 1 Overlay plane (shared among CRTCs). 53 configuration for optimal single display output (e.g., 2 pipes per plane). 56 display - will see 4 pipes in use, 2 per plane. 58 At least 1 pipe must be used per plane (primary and overlay), so for this 65 Plane Restrictions 78 Not every property is available on every plane: 94 plane as it is being treated as part of the plane. Another consequence of that [all …]
|
| /linux/include/drm/ |
| H A D | drm_gem_atomic_helper.h | 15 * Plane Helpers 18 int drm_gem_plane_helper_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state); 25 * DRM_SHADOW_PLANE_MAX_WIDTH - Maximum width of a plane's shadow buffer in pixels 34 * DRM_SHADOW_PLANE_MAX_HEIGHT - Maximum height of a plane's shadow buffer in scanlines 43 * struct drm_shadow_plane_state - plane state for planes with shadow buffers 46 * provides the regular plane state plus mappings of the shadow buffer 50 /** @base: plane state */ 56 * Per-plane state for format conversion. 65 * @map: Mappings of the plane's framebuffer BOs in to kernel address space 67 * The memory mappings stored in map should be established in the plane's [all …]
|
| H A D | drm_fourcc.h | 81 * Number of bytes per pixel (per plane), this is aliased with 91 * Number of bytes per block (per plane), where blocks are 148 * format with data laid in a single plane 264 * drm_format_info_plane_width - width of the plane given the first plane 266 * @width: width of the first plane 267 * @plane: plane index 270 * The width of @plane, given that the width of the first plane is @width. 274 int plane) in drm_format_info_plane_width() argument 276 if (!info || plane >= info->num_planes) in drm_format_info_plane_width() 279 if (plane == 0) in drm_format_info_plane_width() [all …]
|
| /linux/drivers/gpu/drm/amd/display/amdgpu_dm/tests/ |
| H A D | amdgpu_dm_plane_test.c | 224 struct drm_plane *plane; in dm_test_fill_blending_global_alpha() local 232 plane = kunit_kzalloc(test, sizeof(*plane), GFP_KERNEL); in dm_test_fill_blending_global_alpha() 235 KUNIT_ASSERT_NOT_NULL(test, plane); in dm_test_fill_blending_global_alpha() 238 plane->dev = &adev->ddev; in dm_test_fill_blending_global_alpha() 239 state->plane = plane; in dm_test_fill_blending_global_alpha() 286 * dm_test_get_plane_formats() - Verify plane format counts for key plane types. 293 struct drm_plane *plane; in dm_test_get_plane_formats() local 297 plane = kunit_kzalloc(test, sizeof(*plane), GFP_KERNEL); in dm_test_get_plane_formats() 299 KUNIT_ASSERT_NOT_NULL(test, plane); in dm_test_get_plane_formats() 302 plane->type = DRM_PLANE_TYPE_PRIMARY; in dm_test_get_plane_formats() [all …]
|
| /linux/drivers/gpu/drm/armada/ |
| H A D | armada_trace.h | 31 TP_PROTO(struct drm_plane *plane, struct drm_crtc *crtc, 35 TP_ARGS(plane, crtc, fb, crtc_x, crtc_y, crtc_w, crtc_h, src_x, src_y, src_w, src_h), 37 __field(struct drm_plane *, plane) 50 __entry->plane = plane; 62 TP_printk("plane %p crtc %p fb %p crtc @ (%d,%d, %ux%u) src @ (%u,%u, %ux%u)", 63 __entry->plane, __entry->crtc, __entry->fb, 71 TP_PROTO(struct drm_crtc *crtc, struct drm_plane *plane), 72 TP_ARGS(crtc, plane), 74 __field(struct drm_plane *, plane) 78 __entry->plane = plane; [all …]
|
| /linux/drivers/video/fbdev/omap/ |
| H A D | omapfb_main.c | 53 { OMAPFB_CAPS_PLANE_RELOCATE_MEM, "relocate plane memory" }, 54 { OMAPFB_CAPS_PLANE_SCALE, "scale plane" }, 181 struct omapfb_plane_struct *plane = fbi->par; in ctrl_change_mode() local 182 struct omapfb_device *fbdev = plane->fbdev; in ctrl_change_mode() 190 r = fbdev->ctrl->setup_plane(plane->idx, plane->info.channel_out, in ctrl_change_mode() 192 plane->info.pos_x, plane->info.pos_y, in ctrl_change_mode() 193 var->xres, var->yres, plane->color_mode); in ctrl_change_mode() 204 r = fbdev->ctrl->set_scale(plane->idx, in ctrl_change_mode() 206 plane->info.out_width, in ctrl_change_mode() 207 plane->info.out_height); in ctrl_change_mode() [all …]
|
| /linux/drivers/gpu/drm/vkms/ |
| H A D | vkms_config.h | 37 * @config: The vkms_config this plane belongs to 38 * @type: Type of the plane. The creator of configuration needs to ensures that 39 * at least one primary plane is present. 40 * @possible_crtcs: Array of CRTCs that can be used with this plane 41 * @plane: Internal usage. This pointer should never be considered as valid. 42 * It can be used to store a temporary reference to a VKMS plane during 55 struct vkms_plane *plane; member 197 * @enable_cursor: Create or not a cursor plane 256 * vkms_config_create_plane() - Add a new plane configuration 257 * @config: Configuration to add the plane to [all …]
|
| H A D | vkms_configfs.c | 42 * struct vkms_configfs_plane - Configfs representation of a plane 44 * @group: Top level configuration group that represents a plane. 46 * @possible_crtcs_group: Default subgroup of @group at "plane/possible_crtcs" 47 * @dev: The vkms_configfs_device this plane belongs to 48 * @config: Configuration of the VKMS plane 246 struct vkms_configfs_plane *plane; in plane_possible_crtcs_allow_link() local 253 plane = plane_possible_crtcs_item_to_vkms_configfs_plane(src); in plane_possible_crtcs_allow_link() 256 scoped_guard(mutex, &plane->dev->lock) { in plane_possible_crtcs_allow_link() 257 if (plane->dev->enabled) in plane_possible_crtcs_allow_link() 260 ret = vkms_config_plane_attach_crtc(plane->config, crtc->config); in plane_possible_crtcs_allow_link() [all …]
|
| /linux/drivers/gpu/drm/verisilicon/ |
| H A D | vs_plane.c | 130 struct drm_plane_state *vs_plane_duplicate_state(struct drm_plane *plane) in vs_plane_duplicate_state() argument 134 if (drm_WARN_ON(plane->dev, !plane->state)) in vs_plane_duplicate_state() 137 vs_state_old = to_vs_plane_state(plane->state); in vs_plane_duplicate_state() 143 __drm_atomic_helper_plane_duplicate_state(plane, &vs_state->base); in vs_plane_duplicate_state() 151 void vs_plane_destroy_state(struct drm_plane *plane, in vs_plane_destroy_state() argument 158 /* Called during init to allocate the plane's atomic state. */ 159 void vs_plane_reset(struct drm_plane *plane) in vs_plane_reset() argument 163 if (plane->state) { in vs_plane_reset() 164 __drm_atomic_helper_plane_destroy_state(plane->state); in vs_plane_reset() 165 kfree(plane->state); in vs_plane_reset() [all …]
|
| /linux/drivers/gpu/drm/xe/display/ |
| H A D | xe_fb_pin.c | 66 const struct intel_remapped_plane_info *plane) in write_dpt_remapped_linear() argument 72 unsigned int offset = plane->offset * XE_PAGE_SIZE; in write_dpt_remapped_linear() 73 unsigned int size = plane->size; in write_dpt_remapped_linear() 89 const struct intel_remapped_plane_info *plane) in write_dpt_remapped_tiled() argument 97 for (row = 0; row < plane->height; row++) { in write_dpt_remapped_tiled() 98 offset = (plane->offset + plane->src_stride * row) * in write_dpt_remapped_tiled() 101 for (column = 0; column < plane->width; column++) { in write_dpt_remapped_tiled() 110 plane->dst_stride - plane->width); in write_dpt_remapped_tiled() 123 for (i = 0; i < ARRAY_SIZE(remap_info->plane); i++) { in write_dpt_remapped() 124 const struct intel_remapped_plane_info *plane = in write_dpt_remapped() local [all …]
|
| /linux/drivers/gpu/drm/tidss/ |
| H A D | tidss_irq.h | 26 * plane bits: U = fifo underflow 35 #define DSS_IRQ_PLANE_BIT_N(plane, bit) \ argument 36 (DSS_IRQ_VP_BIT_N(TIDSS_MAX_PORTS, 0) + 1 * (plane) + (bit)) 39 #define DSS_IRQ_PLANE_BIT(plane, bit) \ argument 40 BIT(DSS_IRQ_PLANE_BIT_N((plane), (bit))) 47 static inline dispc_irq_t DSS_IRQ_PLANE_MASK(u32 plane) in DSS_IRQ_PLANE_MASK() argument 49 return GENMASK(DSS_IRQ_PLANE_BIT_N((plane), 0), in DSS_IRQ_PLANE_MASK() 50 DSS_IRQ_PLANE_BIT_N((plane), 0)); in DSS_IRQ_PLANE_MASK() 58 #define DSS_IRQ_PLANE_FIFO_UNDERFLOW(plane) DSS_IRQ_PLANE_BIT((plane), 0) argument
|
| /linux/drivers/gpu/drm/tests/ |
| H A D | drm_damage_helper_test.c | 19 struct drm_plane plane; member 40 mock->old_state.plane = &mock->plane; in drm_damage_helper_init() 41 mock->state.plane = &mock->plane; in drm_damage_helper_init() 46 mock->plane.dev = &mock->device; in drm_damage_helper_init() 48 mock->plane.base.properties = &mock->obj_props; in drm_damage_helper_init() 52 drm_plane_enable_fb_damage_clips(&mock->plane); in drm_damage_helper_init() 113 KUNIT_FAIL(test, "Damage cannot be outside rounded plane src."); in check_damage_clip() 126 /* Plane src same as fb size. */ in drm_test_damage_iter_no_damage() 133 KUNIT_EXPECT_EQ_MSG(test, num_hits, 1, "Should return plane src as damage."); in drm_test_damage_iter_no_damage() 144 /* Plane src has fractional part. */ in drm_test_damage_iter_no_damage_fractional_src() [all …]
|
| /linux/drivers/gpu/drm/loongson/ |
| H A D | lsdc_drv.h | 135 /* primary plane hardware related ops */ 140 void (*update_fb_addr)(struct lsdc_primary *plane, u64 addr); 141 void (*update_fb_stride)(struct lsdc_primary *plane, u32 stride); 142 void (*update_fb_format)(struct lsdc_primary *plane, 152 /* cursor plane hardware related ops */ 157 void (*update_bo_addr)(struct lsdc_cursor *plane, u64 addr); 158 void (*update_cfg)(struct lsdc_cursor *plane, 161 void (*update_position)(struct lsdc_cursor *plane, int x, int y); 215 struct drm_plane *plane, 219 struct drm_plane *plane, [all …]
|
| /linux/drivers/gpu/drm/sti/ |
| H A D | sti_plane.h | 62 * STI plane structure 64 * @plane: drm plane it is bound to (if any) 65 * @desc: plane type & id 66 * @status: to know the status of the plane 76 const char *sti_plane_to_str(struct sti_plane *plane); 77 void sti_plane_update_fps(struct sti_plane *plane, 81 void sti_plane_init_property(struct sti_plane *plane,
|