drivers/staging/sm750fb/sm750.h
Source file repositories/reference/linux-study-clean/drivers/staging/sm750fb/sm750.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/staging/sm750fb/sm750.h- Extension
.h- Size
- 5648 bytes
- Lines
- 219
- Domain
- Driver Families
- Bucket
- drivers/staging
- 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
- No C-style include directives detected by the generator.
Detected Declarations
struct init_statusstruct lynx_accelstruct sm750_devstruct lynx_cursorstruct lynxfb_crtcstruct lynxfb_outputstruct lynxfb_parenum sm750_pnltypeenum sm750_dataflowenum sm750_channelenum sm750_pathfunction ps_to_hz
Annotated Snippet
struct init_status {
ushort powerMode;
/* below three clocks are in unit of MHZ*/
ushort chip_clk;
ushort mem_clk;
ushort master_clk;
ushort setAllEngOff;
ushort resetMemory;
};
struct lynx_accel {
/* base virtual address of DPR registers */
unsigned char __iomem *dpr_base;
/* base virtual address of de data port */
unsigned char __iomem *dp_port_base;
/* function pointers */
void (*de_init)(struct lynx_accel *accel);
int (*de_wait)(void);/* see if hardware ready to work */
int (*de_fillrect)(struct lynx_accel *accel,
u32 base, u32 pitch, u32 bpp,
u32 x, u32 y, u32 width, u32 height,
u32 color, u32 rop);
int (*de_copyarea)(struct lynx_accel *accel,
u32 s_base, u32 s_pitch,
u32 sx, u32 sy,
u32 d_base, u32 d_pitch,
u32 bpp, u32 dx, u32 dy,
u32 width, u32 height,
u32 rop2);
int (*de_imageblit)(struct lynx_accel *accel, const char *p_srcbuf,
u32 src_delta, u32 start_bit, u32 d_base, u32 d_pitch,
u32 byte_per_pixel, u32 dx, u32 dy, u32 width,
u32 height, u32 f_color, u32 b_color, u32 rop2);
};
struct sm750_dev {
/* common members */
u16 devid;
u8 revid;
struct pci_dev *pdev;
struct fb_info *fbinfo[2];
struct lynx_accel accel;
int accel_off;
int fb_count;
int mtrr_off;
struct{
int vram;
} mtrr;
/* all smi graphic adaptor got below attributes */
unsigned long vidmem_start;
unsigned long vidreg_start;
__u32 vidmem_size;
__u32 vidreg_size;
void __iomem *pvReg;
unsigned char __iomem *pvMem;
/* locks*/
spinlock_t slock;
struct init_status init_parm;
enum sm750_pnltype pnltype;
enum sm750_dataflow dataflow;
int nocrt;
/*
* 0: no hardware cursor
* 1: primary crtc hw cursor enabled,
* 2: secondary crtc hw cursor enabled
* 3: both ctrc hw cursor enabled
*/
int hw_cursor;
};
struct lynx_cursor {
/* cursor width ,height and size */
int w;
int h;
int size;
/* hardware limitation */
int max_w;
int max_h;
/* base virtual address and offset of cursor image */
char __iomem *vstart;
int offset;
/* mmio addr of hw cursor */
Annotation
- Detected declarations: `struct init_status`, `struct lynx_accel`, `struct sm750_dev`, `struct lynx_cursor`, `struct lynxfb_crtc`, `struct lynxfb_output`, `struct lynxfb_par`, `enum sm750_pnltype`, `enum sm750_dataflow`, `enum sm750_channel`.
- Atlas domain: Driver Families / drivers/staging.
- 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.