drivers/gpu/drm/gma500/psb_drv.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/gma500/psb_drv.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/gma500/psb_drv.h- Extension
.h- Size
- 18785 bytes
- Lines
- 729
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/kref.hlinux/mm_types.hdrm/drm_device.hgtt.hintel_bios.hmmu.hoaktrail.hopregion.hpower.hpsb_intel_drv.hpsb_reg.h
Detected Declarations
struct drm_fb_helperstruct drm_fb_helper_surface_sizestruct opregion_headerstruct opregion_acpistruct opregion_swscistruct opregion_aslestruct psb_intel_opregionstruct sdvo_device_mappingstruct intel_gmbusstruct psb_offsetstruct psb_pipestruct psb_statestruct cdv_statestruct psb_save_areastruct psb_opsstruct intel_scu_ipc_devstruct drm_psb_privatestruct psb_opsfunction REGISTER_READfunction REGISTER_READ_AUXfunction REGISTER_READ_WITH_AUXfunction REGISTER_WRITEfunction REGISTER_WRITE_AUXfunction REGISTER_WRITE_WITH_AUXfunction REGISTER_WRITE16function REGISTER_WRITE8
Annotated Snippet
struct psb_intel_opregion {
struct opregion_header *header;
struct opregion_acpi *acpi;
struct opregion_swsci *swsci;
struct opregion_asle *asle;
void *vbt;
u32 __iomem *lid_state;
struct work_struct asle_work;
};
struct sdvo_device_mapping {
u8 initialized;
u8 dvo_port;
u8 target_addr;
u8 dvo_wiring;
u8 i2c_pin;
u8 i2c_speed;
u8 ddc_pin;
};
struct intel_gmbus {
struct i2c_adapter adapter;
struct i2c_adapter *force_bit;
u32 reg0;
};
/* Register offset maps */
struct psb_offset {
u32 fp0;
u32 fp1;
u32 cntr;
u32 conf;
u32 src;
u32 dpll;
u32 dpll_md;
u32 htotal;
u32 hblank;
u32 hsync;
u32 vtotal;
u32 vblank;
u32 vsync;
u32 stride;
u32 size;
u32 pos;
u32 surf;
u32 addr;
u32 base;
u32 status;
u32 linoff;
u32 tileoff;
u32 palette;
};
/*
* Register save state. This is used to hold the context when the
* device is powered off. In the case of Oaktrail this can (but does not
* yet) include screen blank. Operations occuring during the save
* update the register cache instead.
*/
/* Common status for pipes */
struct psb_pipe {
u32 fp0;
u32 fp1;
u32 cntr;
u32 conf;
u32 src;
u32 dpll;
u32 dpll_md;
u32 htotal;
u32 hblank;
u32 hsync;
u32 vtotal;
u32 vblank;
u32 vsync;
u32 stride;
u32 size;
u32 pos;
u32 base;
u32 surf;
u32 addr;
u32 status;
u32 linoff;
u32 tileoff;
u32 palette[256];
};
struct psb_state {
uint32_t saveVCLK_DIVISOR_VGA0;
uint32_t saveVCLK_DIVISOR_VGA1;
Annotation
- Immediate include surface: `linux/kref.h`, `linux/mm_types.h`, `drm/drm_device.h`, `gtt.h`, `intel_bios.h`, `mmu.h`, `oaktrail.h`, `opregion.h`.
- Detected declarations: `struct drm_fb_helper`, `struct drm_fb_helper_surface_size`, `struct opregion_header`, `struct opregion_acpi`, `struct opregion_swsci`, `struct opregion_asle`, `struct psb_intel_opregion`, `struct sdvo_device_mapping`, `struct intel_gmbus`, `struct psb_offset`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.