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
--
2.44.0
_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-leave@seabios.org
© 2016 - 2024 Red Hat, Inc.