Kevin O'Connor wrote:
As before, the main seabios patch looks good to me. The "modehack"
patch, of course, needs to be cleaned up before committing. Are you
still working on this?
-Kevin
Yes, it is on my todo list. I was thinking about using a device
operations structure or macros to replace the "if(hw_type)"
statements. This might be overkill at the moment, however it would
be helpful for any future hardware specific expansion. I am lacking
insight on what such a struct should be. The following example is
crafted mostly to fix the current problems I am having.
struct videoDevice {
int (*present) (void); /* check for existence */
void (*enable) (int); /* enable device/mode */
void (*pre_init) (void);
void (*post_init) (void);
void (*set_mode) (u8 mode);
struct VideoParam_s *vga_param_table[];
struct vgamode_s *vga_mode_table[];
void *hw_tables;
};
struct videoDevice geodelx = {
.present = legacyio_check,
.pre_init = geodelx_init,
.post_init = geodelx_demo,
.vga_param_table = lx_param_table,
.vga_mode_table = lx_mode_table,
};
struct videoDevice cirrus = {
.pre_init = cirrus_init,
.set_mode = cirrus_set_video_mode,
.hw_tables = cirrus_modes,
};
struct videoDevice vbe = {
.present = vbe_has_vbe_display,
.enable = dispi_set_enable,
.pre_init = vbe_init,
.hw_tables = vbe_modes,
};
Let me know what you think and I can work on a patch,
Chris Kindt
--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot