drivers/gpu/drm/vmwgfx/vmwgfx_cursor_plane.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/vmwgfx/vmwgfx_cursor_plane.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/vmwgfx/vmwgfx_cursor_plane.h
Extension
.h
Size
2175 bytes
Lines
83
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct vmw_cursor_plane_state {
	enum vmw_cursor_update_type update_type;
	bool changed;
	bool surface_changed;
	struct vmw_bo *mob;
	struct {
		s32 hotspot_x;
		s32 hotspot_y;
		u32 id;
	} legacy;
};

/**
 * Derived class for cursor plane object
 *
 * @base DRM plane object
 * @cursor.cursor_mobs Cursor mobs available for re-use
 */
struct vmw_cursor_plane {
	struct drm_plane base;

	struct vmw_bo *cursor_mobs[3];
};

struct vmw_surface_metadata;
void *vmw_cursor_snooper_create(struct drm_file *file_priv,
				struct vmw_surface_metadata *metadata);
void vmw_cursor_cmd_dma_snoop(SVGA3dCmdHeader *header,
			      struct vmw_surface *srf,
			      struct ttm_buffer_object *bo);

void vmw_cursor_plane_destroy(struct drm_plane *plane);

int vmw_cursor_plane_atomic_check(struct drm_plane *plane,
				  struct drm_atomic_commit *state);
void vmw_cursor_plane_atomic_update(struct drm_plane *plane,
				    struct drm_atomic_commit *state);
int vmw_cursor_plane_prepare_fb(struct drm_plane *plane,
				struct drm_plane_state *new_state);
void vmw_cursor_plane_cleanup_fb(struct drm_plane *plane,
				 struct drm_plane_state *old_state);

#endif /* VMWGFX_CURSOR_H */

Annotation

Implementation Notes