drivers/gpu/drm/i915/display/intel_opregion.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/i915/display/intel_opregion.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/i915/display/intel_opregion.h
Extension
.h
Size
4057 bytes
Lines
146
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

#ifndef _INTEL_OPREGION_H_
#define _INTEL_OPREGION_H_

#include <linux/pci.h>
#include <linux/types.h>

struct intel_connector;
struct intel_display;
struct intel_encoder;

#ifdef CONFIG_ACPI

int intel_opregion_setup(struct intel_display *display);
void intel_opregion_cleanup(struct intel_display *display);

void intel_opregion_register(struct intel_display *display);
void intel_opregion_unregister(struct intel_display *display);

void intel_opregion_resume(struct intel_display *display);
void intel_opregion_suspend(struct intel_display *display,
			    pci_power_t state);

bool intel_opregion_asle_present(struct intel_display *display);
void intel_opregion_asle_intr(struct intel_display *display);
int intel_opregion_notify_encoder(struct intel_encoder *encoder,
				  bool enable);
int intel_opregion_notify_adapter(struct intel_display *display,
				  pci_power_t state);
int intel_opregion_get_panel_type(struct intel_display *display);
const struct drm_edid *intel_opregion_get_edid(struct intel_connector *connector);

bool intel_opregion_vbt_present(struct intel_display *display);
const void *intel_opregion_get_vbt(struct intel_display *display, size_t *size);

bool intel_opregion_headless_sku(struct intel_display *display);

void intel_opregion_debugfs_register(struct intel_display *display);

#else /* CONFIG_ACPI*/

static inline int intel_opregion_setup(struct intel_display *display)
{
	return 0;
}

static inline void intel_opregion_cleanup(struct intel_display *display)
{
}

static inline void intel_opregion_register(struct intel_display *display)
{
}

static inline void intel_opregion_unregister(struct intel_display *display)
{
}

static inline void intel_opregion_resume(struct intel_display *display)
{
}

static inline void intel_opregion_suspend(struct intel_display *display,
					  pci_power_t state)
{
}

static inline bool intel_opregion_asle_present(struct intel_display *display)
{
	return false;
}

static inline void intel_opregion_asle_intr(struct intel_display *display)
{
}

static inline int
intel_opregion_notify_encoder(struct intel_encoder *encoder, bool enable)
{
	return 0;
}

static inline int
intel_opregion_notify_adapter(struct intel_display *display, pci_power_t state)
{
	return 0;
}

static inline int intel_opregion_get_panel_type(struct intel_display *display)
{
	return -ENODEV;

Annotation

Implementation Notes