drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.h- Extension
.h- Size
- 2601 bytes
- Lines
- 113
- 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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct dpu_hw_dsppstruct dpu_hw_pcc_coeffstruct dpu_hw_pcc_cfgstruct dpu_hw_gc_lutstruct dpu_hw_dspp_opsstruct dpu_hw_dspp
Annotated Snippet
struct dpu_hw_pcc_coeff {
__u32 r;
__u32 g;
__u32 b;
};
/**
* struct dpu_hw_pcc_cfg - pcc feature structure
* @r: red coefficients.
* @g: green coefficients.
* @b: blue coefficients.
*/
struct dpu_hw_pcc_cfg {
struct dpu_hw_pcc_coeff r;
struct dpu_hw_pcc_coeff g;
struct dpu_hw_pcc_coeff b;
};
#define DPU_GAMMA_LUT_SIZE 1024
#define PGC_TBL_LEN 512
#define PGC_8B_ROUND BIT(0)
/**
* struct dpu_hw_gc_lut - gc lut feature structure
* @flags: flags for the feature values can be:
* - PGC_8B_ROUND
* @c0: color0 component lut
* @c1: color1 component lut
* @c2: color2 component lut
*/
struct dpu_hw_gc_lut {
__u64 flags;
__u32 c0[PGC_TBL_LEN];
__u32 c1[PGC_TBL_LEN];
__u32 c2[PGC_TBL_LEN];
};
/**
* struct dpu_hw_dspp_ops - interface to the dspp hardware driver functions
* Caller must call the init function to get the dspp context for each dspp
* Assumption is these functions will be called after clocks are enabled
*/
struct dpu_hw_dspp_ops {
/**
* @setup_pcc: setup_pcc - setup dspp pcc
* @ctx: Pointer to dspp context
* @cfg: Pointer to configuration
*/
void (*setup_pcc)(struct dpu_hw_dspp *ctx, struct dpu_hw_pcc_cfg *cfg);
/**
* setup_gc - setup dspp gc
* @ctx: Pointer to dspp context
* @gc_lut: Pointer to lut content
*/
void (*setup_gc)(struct dpu_hw_dspp *ctx, struct dpu_hw_gc_lut *gc_lut);
};
/**
* struct dpu_hw_dspp - dspp description
* @base: Hardware block base structure
* @hw: Block hardware details
* @idx: DSPP index
* @cap: Pointer to layer_cfg
* @ops: Pointer to operations possible for this DSPP
*/
struct dpu_hw_dspp {
struct dpu_hw_blk base;
struct dpu_hw_blk_reg_map hw;
/* dspp */
int idx;
const struct dpu_dspp_cfg *cap;
/* Ops */
struct dpu_hw_dspp_ops ops;
};
/**
* to_dpu_hw_dspp - convert base object dpu_hw_base to container
* @hw: Pointer to base hardware block
* return: Pointer to hardware block container
*/
static inline struct dpu_hw_dspp *to_dpu_hw_dspp(struct dpu_hw_blk *hw)
{
return container_of(hw, struct dpu_hw_dspp, base);
}
struct dpu_hw_dspp *dpu_hw_dspp_init(struct drm_device *dev,
Annotation
- Detected declarations: `struct dpu_hw_dspp`, `struct dpu_hw_pcc_coeff`, `struct dpu_hw_pcc_cfg`, `struct dpu_hw_gc_lut`, `struct dpu_hw_dspp_ops`, `struct dpu_hw_dspp`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.