drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
Extension
.h
Size
30642 bytes
Lines
1172
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 common_irq_params {
	struct amdgpu_device *adev;
	enum dc_irq_source irq_src;
	atomic64_t previous_timestamp;
};

/**
 * struct dm_compressor_info - Buffer info used by frame buffer compression
 * @cpu_addr: MMIO cpu addr
 * @bo_ptr: Pointer to the buffer object
 * @gpu_addr: MMIO gpu addr
 */
struct dm_compressor_info {
	void *cpu_addr;
	struct amdgpu_bo *bo_ptr;
	uint64_t gpu_addr;
};

/**
 * struct dm_boot_time_crc_info - Buffer info used by boot time CRC
 * @cpu_addr: MMIO cpu addr
 * @bo_ptr: Pointer to the buffer object
 * @gpu_addr: MMIO gpu addr
 * @size: Size of the buffer
 */
struct dm_boot_time_crc_info {
	void *cpu_addr;
	struct amdgpu_bo *bo_ptr;
	uint64_t gpu_addr;
	uint32_t size;
};

typedef void (*dmub_notify_interrupt_callback_t)(struct amdgpu_device *adev, struct dmub_notification *notify);

/**
 * struct dmub_hpd_work - Handle time consuming work in low priority outbox IRQ
 *
 * @handle_hpd_work: Work to be executed in a separate thread to handle hpd_low_irq
 * @dmub_notify:  notification for callback function
 * @adev: amdgpu_device pointer
 */
struct dmub_hpd_work {
	struct work_struct handle_hpd_work;
	struct dmub_notification *dmub_notify;
	struct amdgpu_device *adev;
};

/**
 * struct vblank_control_work - Work data for vblank control
 * @work: Kernel work data for the work event
 * @dm: amdgpu display manager device
 * @acrtc: amdgpu CRTC instance for which the event has occurred
 * @stream: DC stream for which the event has occurred
 * @enable: true if enabling vblank
 */
struct vblank_control_work {
	struct work_struct work;
	struct amdgpu_display_manager *dm;
	struct amdgpu_crtc *acrtc;
	struct dc_stream_state *stream;
	bool enable;
};

/**
 * struct idle_workqueue - Work data for periodic action in idle
 * @work: Kernel work data for the work event
 * @dm: amdgpu display manager device
 * @enable: true if idle worker is enabled
 * @running: true if idle worker is running
 */
struct idle_workqueue {
	struct work_struct work;
	struct amdgpu_display_manager *dm;
	bool enable;
	bool running;
};

/**
 * struct vupdate_offload_work - Work data for offloading task from vupdate handler
 * @work: Kernel work data for the work event
 * @adev: amdgpu_device back pointer
 * @stream: DC stream associated with the crtc
 * @adjust: DC CRTC timing adjust to be applied to the crtc
 */
struct vupdate_offload_work {
	struct work_struct work;
	struct amdgpu_device *adev;
	struct dc_stream_state *stream;
	struct dc_crtc_timing_adjust *adjust;
};

Annotation

Implementation Notes