drivers/gpu/drm/omapdrm/dss/dss.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/omapdrm/dss/dss.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/omapdrm/dss/dss.h- Extension
.h- Size
- 14988 bytes
- Lines
- 549
- 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/interrupt.homapdss.h
Detected Declarations
struct dispc_devicestruct dss_debugfs_entrystruct platform_devicestruct seq_filestruct dss_pllstruct dss_pll_clock_infostruct dss_pll_opsstruct dss_pll_hwstruct dss_pllstruct dss_reg_fieldstruct dispc_clock_infostruct dss_lcd_mgr_configstruct dss_deviceenum dss_modelenum dss_io_pad_modeenum dss_hdmi_venc_clk_source_selectenum dss_dsi_content_typeenum dss_clk_sourceenum dss_pll_idenum dss_pll_typefunction dss_set_min_bus_tputfunction dss_mgr_is_lcdfunction dss_debugfs_create_filefunction dss_debugfs_remove_filefunction sdi_init_portfunction sdi_uninit_portfunction dpi_init_portfunction dpi_uninit_portfunction dss_collect_irq_stats
Annotated Snippet
struct dss_pll_clock_info {
/* rates that we get with dividers below */
unsigned long fint;
unsigned long clkdco;
unsigned long clkout[DSS_PLL_MAX_HSDIVS];
/* dividers */
u16 n;
u16 m;
u32 mf;
u16 mX[DSS_PLL_MAX_HSDIVS];
u16 sd;
};
struct dss_pll_ops {
int (*enable)(struct dss_pll *pll);
void (*disable)(struct dss_pll *pll);
int (*set_config)(struct dss_pll *pll,
const struct dss_pll_clock_info *cinfo);
};
struct dss_pll_hw {
enum dss_pll_type type;
unsigned int n_max;
unsigned int m_min;
unsigned int m_max;
unsigned int mX_max;
unsigned long fint_min, fint_max;
unsigned long clkdco_min, clkdco_low, clkdco_max;
u8 n_msb, n_lsb;
u8 m_msb, m_lsb;
u8 mX_msb[DSS_PLL_MAX_HSDIVS], mX_lsb[DSS_PLL_MAX_HSDIVS];
bool has_stopmode;
bool has_freqsel;
bool has_selfreqdco;
bool has_refsel;
/* DRA7 errata i886: use high N & M to avoid jitter */
bool errata_i886;
/* DRA7 errata i932: retry pll lock on failure */
bool errata_i932;
};
struct dss_pll {
const char *name;
enum dss_pll_id id;
struct dss_device *dss;
struct clk *clkin;
struct regulator *regulator;
void __iomem *base;
const struct dss_pll_hw *hw;
const struct dss_pll_ops *ops;
struct dss_pll_clock_info cinfo;
};
/* Defines a generic omap register field */
struct dss_reg_field {
u8 start, end;
};
struct dispc_clock_info {
/* rates that we get with dividers below */
unsigned long lck;
unsigned long pck;
/* dividers */
u16 lck_div;
u16 pck_div;
};
struct dss_lcd_mgr_config {
enum dss_io_pad_mode io_pad_mode;
bool stallmode;
bool fifohandcheck;
struct dispc_clock_info clock_info;
int video_port_width;
Annotation
- Immediate include surface: `linux/interrupt.h`, `omapdss.h`.
- Detected declarations: `struct dispc_device`, `struct dss_debugfs_entry`, `struct platform_device`, `struct seq_file`, `struct dss_pll`, `struct dss_pll_clock_info`, `struct dss_pll_ops`, `struct dss_pll_hw`, `struct dss_pll`, `struct dss_reg_field`.
- 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.