Make the relationship between vgahw_get_linelength() and vgahw_get_linesize() more clear by renaming it to vgahw_minimum_linelength().
Signed-off-by: Kevin O'Connor kevin@koconnor.net --- vgasrc/cbvga.c | 14 +++++++------- vgasrc/stdvga.c | 16 +++++++++++----- vgasrc/stdvga.h | 1 + vgasrc/vbe.c | 2 +- vgasrc/vgahw.h | 12 ++++++------ vgasrc/vgautil.h | 3 +-- 6 files changed, 27 insertions(+), 21 deletions(-)
diff --git a/vgasrc/cbvga.c b/vgasrc/cbvga.c index 9e3cc93..243e6be 100644 --- a/vgasrc/cbvga.c +++ b/vgasrc/cbvga.c @@ -81,6 +81,13 @@ cbvga_set_window(struct vgamode_s *curmode_g, int window, int val) return -1; }
+int +cbvga_minimum_linelength(struct vgamode_s *vmode_g) +{ + /* Can't change mode, always report active pitch. */ + return GET_GLOBAL(CBlinelength); +} + int cbvga_get_linelength(struct vgamode_s *curmode_g) { @@ -156,13 +163,6 @@ cbvga_set_mode(struct vgamode_s *vmode_g, int flags) return 0; }
-int -cbvga_get_linesize(struct vgamode_s *vmode_g) -{ - /* Can't change mode, always report active pitch. */ - return GET_GLOBAL(CBlinelength); -} - #define CB_TAG_FRAMEBUFFER 0x0012 struct cb_framebuffer { u32 tag; diff --git a/vgasrc/stdvga.c b/vgasrc/stdvga.c index 9d8f556..da67af4 100644 --- a/vgasrc/stdvga.c +++ b/vgasrc/stdvga.c @@ -275,6 +275,14 @@ stdvga_set_window(struct vgamode_s *curmode_g, int window, int val) return -1; }
+// Minimum framebuffer bytes between each vertical line for given mode +int +stdvga_minimum_linelength(struct vgamode_s *vmode_g) +{ + return DIV_ROUND_UP(GET_GLOBAL(vmode_g->width) * vga_bpp(vmode_g), 8); +} + +// Return number of framebuffer bytes between start of each vertical line int stdvga_get_linelength(struct vgamode_s *curmode_g) { @@ -282,6 +290,7 @@ stdvga_get_linelength(struct vgamode_s *curmode_g) return val * 8 / stdvga_vram_ratio(curmode_g); }
+// Set number of framebuffer bytes between start of each vertical line int stdvga_set_linelength(struct vgamode_s *curmode_g, int val) { @@ -290,6 +299,7 @@ stdvga_set_linelength(struct vgamode_s *curmode_g, int val) return 0; }
+// Return framebuffer offset of first byte of displayed content int stdvga_get_displaystart(struct vgamode_s *curmode_g) { @@ -299,6 +309,7 @@ stdvga_get_displaystart(struct vgamode_s *curmode_g) return addr * 4 / stdvga_vram_ratio(curmode_g); }
+// Set framebuffer offset of first byte of displayed content int stdvga_set_displaystart(struct vgamode_s *curmode_g, int val) { @@ -321,11 +332,6 @@ stdvga_set_dacformat(struct vgamode_s *curmode_g, int val) return -1; }
-int -stdvga_get_linesize(struct vgamode_s *vmode_g) -{ - return DIV_ROUND_UP(GET_GLOBAL(vmode_g->width) * vga_bpp(vmode_g), 8); -}
/**************************************************************** * Save/Restore state diff --git a/vgasrc/stdvga.h b/vgasrc/stdvga.h index 5164ca1..ce79783 100644 --- a/vgasrc/stdvga.h +++ b/vgasrc/stdvga.h @@ -68,6 +68,7 @@ void stdvga_set_scan_lines(u8 lines); u16 stdvga_get_vde(void); int stdvga_get_window(struct vgamode_s *curmode_g, int window); int stdvga_set_window(struct vgamode_s *curmode_g, int window, int val); +int stdvga_minimum_linelength(struct vgamode_s *vmode_g); int stdvga_get_linelength(struct vgamode_s *curmode_g); int stdvga_set_linelength(struct vgamode_s *curmode_g, int val); int stdvga_get_displaystart(struct vgamode_s *curmode_g); diff --git a/vgasrc/vbe.c b/vgasrc/vbe.c index 3efb54f..d2aaace 100644 --- a/vgasrc/vbe.c +++ b/vgasrc/vbe.c @@ -110,7 +110,7 @@ vbe_104f01(struct bregs *regs) // Basic information about mode. int width = GET_GLOBAL(vmode_g->width); int height = GET_GLOBAL(vmode_g->height); - int linesize = vgahw_get_linesize(vmode_g); + int linesize = vgahw_minimum_linelength(vmode_g); SET_FARVAR(seg, info->bytes_per_scanline, linesize); SET_FARVAR(seg, info->xres, width); SET_FARVAR(seg, info->yres, height); diff --git a/vgasrc/vgahw.h b/vgasrc/vgahw.h index bd33e20..a6ddaa9 100644 --- a/vgasrc/vgahw.h +++ b/vgasrc/vgahw.h @@ -95,6 +95,12 @@ static inline int vgahw_get_linelength(struct vgamode_s *curmode_g) { return stdvga_get_linelength(curmode_g); }
+static inline int vgahw_minimum_linelength(struct vgamode_s *vmode_g) { + if (CONFIG_VGA_EMULATE_TEXT) + return cbvga_minimum_linelength(vmode_g); + return stdvga_minimum_linelength(vmode_g); +} + static inline int vgahw_set_linelength(struct vgamode_s *curmode_g, int val) { if (CONFIG_VGA_CIRRUS) return clext_set_linelength(curmode_g, val); @@ -151,10 +157,4 @@ static inline int vgahw_save_restore(int cmd, u16 seg, void *data) { return stdvga_save_restore(cmd, seg, data); }
-static inline int vgahw_get_linesize(struct vgamode_s *vmode_g) { - if (CONFIG_VGA_EMULATE_TEXT) - return cbvga_get_linesize(vmode_g); - return stdvga_get_linesize(vmode_g); -} - #endif // vgahw.h diff --git a/vgasrc/vgautil.h b/vgasrc/vgautil.h index 245a562..ce307c9 100644 --- a/vgasrc/vgautil.h +++ b/vgasrc/vgautil.h @@ -9,6 +9,7 @@ struct vgamode_s *cbvga_find_mode(int mode); void cbvga_list_modes(u16 seg, u16 *dest, u16 *last); int cbvga_get_window(struct vgamode_s *curmode_g, int window); int cbvga_set_window(struct vgamode_s *curmode_g, int window, int val); +int cbvga_minimum_linelength(struct vgamode_s *vmode_g); int cbvga_get_linelength(struct vgamode_s *curmode_g); int cbvga_set_linelength(struct vgamode_s *curmode_g, int val); int cbvga_get_displaystart(struct vgamode_s *curmode_g); @@ -17,7 +18,6 @@ int cbvga_get_dacformat(struct vgamode_s *curmode_g); int cbvga_set_dacformat(struct vgamode_s *curmode_g, int val); int cbvga_save_restore(int cmd, u16 seg, void *data); int cbvga_set_mode(struct vgamode_s *vmode_g, int flags); -int cbvga_get_linesize(struct vgamode_s *vmode_g); void cbvga_setup_modes(u64 addr, u8 bpp, u32 xlines, u32 ylines, u32 linelength); int cbvga_setup(void);
@@ -77,7 +77,6 @@ void stdvga_list_modes(u16 seg, u16 *dest, u16 *last); void stdvga_build_video_param(void); void stdvga_override_crtc(int mode, u8 *crtc); int stdvga_set_mode(struct vgamode_s *vmode_g, int flags); -int stdvga_get_linesize(struct vgamode_s *vmode_g); void stdvga_set_packed_palette(void);
// swcursor.c