drivers/gpu/drm/msm/disp/dpu1/dpu_hw_vbif.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_vbif.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_vbif.h
Extension
.h
Size
2966 bytes
Lines
112
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 dpu_hw_vbif_ops {
	/**
	 * @set_limit_conf: set transaction limit config
	 * @vbif: vbif context driver
	 * @xin_id: client interface identifier
	 * @rd: true for read limit; false for write limit
	 * @limit: outstanding transaction limit
	 */
	void (*set_limit_conf)(struct dpu_hw_vbif *vbif,
			u32 xin_id, bool rd, u32 limit);

	/**
	 * @get_limit_conf: get transaction limit config
	 * @vbif: vbif context driver
	 * @xin_id: client interface identifier
	 * @rd: true for read limit; false for write limit
	 * @return: outstanding transaction limit
	 */
	u32 (*get_limit_conf)(struct dpu_hw_vbif *vbif,
			u32 xin_id, bool rd);

	/**
	 * @set_halt_ctrl: set halt control
	 * @vbif: vbif context driver
	 * @xin_id: client interface identifier
	 * @enable: halt control enable
	 */
	void (*set_halt_ctrl)(struct dpu_hw_vbif *vbif,
			u32 xin_id, bool enable);

	/**
	 * @get_halt_ctrl: get halt control
	 * @vbif: vbif context driver
	 * @xin_id: client interface identifier
	 * @return: halt control enable
	 */
	bool (*get_halt_ctrl)(struct dpu_hw_vbif *vbif,
			u32 xin_id);

	/**
	 * @set_qos_remap: set QoS priority remap
	 * @vbif: vbif context driver
	 * @xin_id: client interface identifier
	 * @level: priority level
	 * @remap_level: remapped level
	 */
	void (*set_qos_remap)(struct dpu_hw_vbif *vbif,
			u32 xin_id, u32 level, u32 remap_level);

	/**
	 * @set_mem_type: set memory type
	 * @vbif: vbif context driver
	 * @xin_id: client interface identifier
	 * @value: memory type value
	 */
	void (*set_mem_type)(struct dpu_hw_vbif *vbif,
			u32 xin_id, u32 value);

	/**
	 * @clear_errors: clear any vbif errors
	 *	This function clears any detected pending/source errors
	 *	on the VBIF interface, and optionally returns the detected
	 *	error mask(s).
	 * @vbif: vbif context driver
	 * @pnd_errors: pointer to pending error reporting variable
	 * @src_errors: pointer to source error reporting variable
	 */
	void (*clear_errors)(struct dpu_hw_vbif *vbif,
		u32 *pnd_errors, u32 *src_errors);

	/**
	 * @set_write_gather_en: set write_gather enable
	 * @vbif: vbif context driver
	 * @xin_id: client interface identifier
	 */
	void (*set_write_gather_en)(struct dpu_hw_vbif *vbif, u32 xin_id);
};

struct dpu_hw_vbif {
	/* base */
	struct dpu_hw_blk_reg_map hw;

	/* vbif */
	const struct dpu_vbif_cfg *cap;

	/* ops */
	struct dpu_hw_vbif_ops ops;
};

struct dpu_hw_vbif *dpu_hw_vbif_init(struct drm_device *dev,

Annotation

Implementation Notes