include/drm/drm_colorop.h

Source file repositories/reference/linux-study-clean/include/drm/drm_colorop.h

File Facts

System
Linux kernel
Corpus path
include/drm/drm_colorop.h
Extension
.h
Size
13194 bytes
Lines
485
Domain
Repository Root And Misc
Bucket
include
Inferred role
Repository Root And Misc: implementation source
Status
source implementation candidate

Why This File Exists

Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.

Dependency Surface

Detected Declarations

Annotated Snippet

struct drm_colorop_state {
	/** @colorop: backpointer to the colorop */
	struct drm_colorop *colorop;

	/*
	 * Color properties
	 *
	 * The following fields are not always valid, their usage depends
	 * on the colorop type. See their associated comment for more
	 * information.
	 */

	/**
	 * @bypass:
	 *
	 * When the property BYPASS exists on this colorop, this stores
	 * the requested bypass state: true if colorop shall be bypassed,
	 * false if colorop is enabled.
	 */
	bool bypass;

	/**
	 * @curve_1d_type:
	 *
	 * Type of 1D curve.
	 */
	enum drm_colorop_curve_1d_type curve_1d_type;

	/**
	 * @multiplier:
	 *
	 * Multiplier to 'gain' the plane. Format is S31.32 sign-magnitude.
	 */
	uint64_t multiplier;

	/**
	 * @data:
	 *
	 * Data blob for any TYPE that requires such a blob. The
	 * interpretation of the blob is TYPE-specific.
	 *
	 * See the &drm_colorop_type documentation for how blob is laid
	 * out.
	 */
	struct drm_property_blob *data;

	/**
	 * @lut1d_interpolation:
	 *
	 * Interpolation for DRM_COLOROP_1D_LUT
	 */
	enum drm_colorop_lut1d_interpolation_type lut1d_interpolation;

	/**
	 * @lut3d_interpolation:
	 *
	 * Interpolation for DRM_COLOROP_3D_LUT
	 */
	enum drm_colorop_lut3d_interpolation_type lut3d_interpolation;

	/** @state: backpointer to global drm_atomic_commit */
	struct drm_atomic_commit *state;
};

/**
 * struct drm_colorop_funcs - driver colorop control functions
 */
struct drm_colorop_funcs {
	/**
	 * @destroy:
	 *
	 * Clean up colorop resources. This is called at driver unload time
	 * through drm_mode_config_cleanup()
	 */
	void (*destroy)(struct drm_colorop *colorop);
};

/**
 * struct drm_colorop - DRM color operation control structure
 *
 * A colorop represents one color operation. They can be chained via
 * the 'next' pointer to build a color pipeline.
 *
 * Since colorops cannot stand-alone and are used to describe colorop
 * operations on a plane they don't have their own locking mechanism but
 * are locked and programmed along with their associated &drm_plane.
 *
 */
struct drm_colorop {
	/** @dev: parent DRM device */

Annotation

Implementation Notes