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

Reply via email to