drivers/video/fbdev/geode/lxfb.h
Source file repositories/reference/linux-study-clean/drivers/video/fbdev/geode/lxfb.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/video/fbdev/geode/lxfb.h- Extension
.h- Size
- 9329 bytes
- Lines
- 444
- Domain
- Driver Families
- Bucket
- drivers/video
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/fb.h
Detected Declarations
struct lxfb_parenum gp_registersenum dc_registersenum vp_registersenum fp_registersfunction lx_get_pitchfunction read_gpfunction write_gpfunction read_dcfunction write_dcfunction read_vpfunction write_vpfunction read_fpfunction write_fp
Annotated Snippet
struct lxfb_par {
int output;
void __iomem *gp_regs;
void __iomem *dc_regs;
void __iomem *vp_regs;
int powered_down;
/* register state, for power mgmt functionality */
struct {
uint64_t padsel;
uint64_t dotpll;
uint64_t dfglcfg;
uint64_t dcspare;
} msr;
uint32_t gp[GP_REG_COUNT];
uint32_t dc[DC_REG_COUNT];
uint64_t vp[VP_REG_COUNT];
uint64_t fp[FP_REG_COUNT];
uint32_t dc_pal[DC_PAL_COUNT];
uint32_t vp_pal[VP_PAL_COUNT];
uint32_t hcoeff[DC_HFILT_COUNT * 2];
uint32_t vcoeff[DC_VFILT_COUNT];
uint32_t vp_coeff[VP_COEFF_SIZE / 4];
};
static inline unsigned int lx_get_pitch(unsigned int xres, int bpp)
{
return (((xres * (bpp >> 3)) + 7) & ~7);
}
void lx_set_mode(struct fb_info *);
unsigned int lx_framebuffer_size(void);
int lx_blank_display(struct fb_info *, int);
void lx_set_palette_reg(struct fb_info *, unsigned int, unsigned int,
unsigned int, unsigned int);
int lx_powerdown(struct fb_info *info);
int lx_powerup(struct fb_info *info);
/* Graphics Processor registers (table 6-29 from the data book) */
enum gp_registers {
GP_DST_OFFSET = 0,
GP_SRC_OFFSET,
GP_STRIDE,
GP_WID_HEIGHT,
GP_SRC_COLOR_FG,
GP_SRC_COLOR_BG,
GP_PAT_COLOR_0,
GP_PAT_COLOR_1,
GP_PAT_COLOR_2,
GP_PAT_COLOR_3,
GP_PAT_COLOR_4,
GP_PAT_COLOR_5,
GP_PAT_DATA_0,
GP_PAT_DATA_1,
GP_RASTER_MODE,
GP_VECTOR_MODE,
GP_BLT_MODE,
GP_BLT_STATUS,
GP_HST_SRC,
GP_BASE_OFFSET,
GP_CMD_TOP,
GP_CMD_BOT,
GP_CMD_READ,
GP_CMD_WRITE,
GP_CH3_OFFSET,
GP_CH3_MODE_STR,
GP_CH3_WIDHI,
GP_CH3_HSRC,
GP_LUT_INDEX,
GP_LUT_DATA,
GP_INT_CNTRL, /* 0x78 */
};
#define GP_BLT_STATUS_CE (1 << 4) /* cmd buf empty */
#define GP_BLT_STATUS_PB (1 << 0) /* primitive busy */
/* Display Controller registers (table 6-47 from the data book) */
enum dc_registers {
Annotation
- Immediate include surface: `linux/fb.h`.
- Detected declarations: `struct lxfb_par`, `enum gp_registers`, `enum dc_registers`, `enum vp_registers`, `enum fp_registers`, `function lx_get_pitch`, `function read_gp`, `function write_gp`, `function read_dc`, `function write_dc`.
- Atlas domain: Driver Families / drivers/video.
- Implementation status: source implementation candidate.
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.