drivers/gpu/drm/amd/display/dc/gpio/hw_factory.h

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

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/display/dc/gpio/hw_factory.h
Extension
.h
Size
2339 bytes
Lines
78
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 hw_factory {
	uint32_t number_of_pins[GPIO_ID_COUNT];

	const struct hw_factory_funcs {
		void (*init_ddc_data)(
				struct hw_ddc **hw_ddc,
				struct dc_context *ctx,
				enum gpio_id id,
				uint32_t en);
		void (*init_generic)(
				struct hw_generic **hw_generic,
				struct dc_context *ctx,
				enum gpio_id id,
				uint32_t en);
		void (*init_hpd)(
				struct hw_hpd **hw_hpd,
				struct dc_context *ctx,
				enum gpio_id id,
				uint32_t en);
		struct hw_gpio_pin *(*get_hpd_pin)(
				struct gpio *gpio);
		struct hw_gpio_pin *(*get_ddc_pin)(
				struct gpio *gpio);
		struct hw_gpio_pin *(*get_generic_pin)(
				struct gpio *gpio);
		void (*define_hpd_registers)(
				struct hw_gpio_pin *pin,
				uint32_t en);
		void (*define_ddc_registers)(
				struct hw_gpio_pin *pin,
				uint32_t en);
		void (*define_generic_registers)(
				struct hw_gpio_pin *pin,
				uint32_t en);
	} *funcs;
};

bool dal_hw_factory_init(
	struct hw_factory *factory,
	enum dce_version dce_version,
	enum dce_environment dce_environment);

#endif

Annotation

Implementation Notes