27 static void vesa_store_mode_params_graphics(
void);
29 static inline void vesa_store_mode_params_graphics(
void) {}
32 static int vesa_probe(
void)
47 if (oreg.ax != 0x004f ||
49 vginfo.version < 0x0102)
52 set_fs(vginfo.video_mode_ptr.seg);
53 mode_ptr = vginfo.video_mode_ptr.off;
55 while ((mode = rdfs16(mode_ptr)) != 0xffff) {
64 memset(&vminfo, 0,
sizeof vminfo);
71 if (oreg.ax != 0x004f)
74 if ((vminfo.mode_attr & 0x15) == 0x05) {
83 }
else if ((vminfo.mode_attr & 0x99) == 0x99 &&
84 (vminfo.memory_layout == 4 ||
85 vminfo.memory_layout == 6) &&
86 vminfo.memory_planes == 1) {
87 #ifdef CONFIG_FB_BOOT_VESA_SUPPORT
94 mi->
depth = vminfo.bpp;
105 static int vesa_set_mode(
struct mode_info *mode)
111 memset(&vminfo, 0,
sizeof vminfo);
116 ireg.di = (
size_t)&vminfo;
119 if (oreg.ax != 0x004f)
122 if ((vminfo.mode_attr & 0x15) == 0x05) {
125 #ifdef CONFIG_FB_BOOT_VESA_SUPPORT
126 }
else if ((vminfo.mode_attr & 0x99) == 0x99) {
141 if (oreg.ax != 0x004f)
152 vesa_store_mode_params_graphics();
162 static void vesa_dac_set_8bits(
void)
168 if (vginfo.capabilities & 1) {
173 if (oreg.ax == 0x004f)
190 static void vesa_store_pm_info(
void)
198 if (oreg.ax != 0x004f)
208 static void vesa_store_mode_params_graphics(
void)
228 vesa_dac_set_8bits();
230 vesa_store_pm_info();
239 #ifdef CONFIG_FIRMWARE_EDID
245 if (vginfo.version < 0x0200)
255 if (oreg.
ax != 0x004f)
277 .set_mode = vesa_set_mode,