[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/7] vga: port to test_and_clear instead of test/res
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PATCH 2/7] vga: port to test_and_clear instead of test/reset |
Date: |
Fri, 11 Oct 2013 16:20:45 +0200 |
From: Juan Quintela <address@hidden>
Now page_min/max are not needed anymore.
Signed-off-by: Juan Quintela <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>
---
hw/display/vga.c | 20 ++++----------------
1 file changed, 4 insertions(+), 16 deletions(-)
diff --git a/hw/display/vga.c b/hw/display/vga.c
index 7b91d9c..d411c5c 100644
--- a/hw/display/vga.c
+++ b/hw/display/vga.c
@@ -1640,7 +1640,7 @@ static void vga_draw_graphic(VGACommonState *s, int
full_update)
DisplaySurface *surface = qemu_console_surface(s->con);
int y1, y, update, linesize, y_start, double_scan, mask, depth;
int width, height, shift_control, line_offset, bwidth, bits;
- ram_addr_t page0, page1, page_min, page_max;
+ ram_addr_t page0, page1;
int disp_width, multi_scan, multi_run;
uint8_t *d;
uint32_t v, addr1, addr;
@@ -1784,8 +1784,6 @@ static void vga_draw_graphic(VGACommonState *s, int
full_update)
addr1 = (s->start_addr * 4);
bwidth = (width * bits + 7) / 8;
y_start = -1;
- page_min = -1;
- page_max = 0;
d = surface_data(surface);
linesize = surface_stride(surface);
y1 = 0;
@@ -1803,17 +1801,14 @@ static void vga_draw_graphic(VGACommonState *s, int
full_update)
update = full_update;
page0 = addr;
page1 = addr + bwidth - 1;
- update |= memory_region_get_dirty(&s->vram, page0, page1 - page0,
- DIRTY_MEMORY_VGA);
+ update |= memory_region_test_and_clear_dirty(&s->vram, page0,
+ page1 - page0,
+ DIRTY_MEMORY_VGA);
/* explicit invalidation for the hardware cursor */
update |= (s->invalidated_y_table[y >> 5] >> (y & 0x1f)) & 1;
if (update) {
if (y_start < 0)
y_start = y;
- if (page0 < page_min)
- page_min = page0;
- if (page1 > page_max)
- page_max = page1;
if (!(is_buffer_shared(surface))) {
vga_draw_line(s, d, s->vram_ptr + addr, width);
if (s->cursor_draw_line)
@@ -1846,13 +1841,6 @@ static void vga_draw_graphic(VGACommonState *s, int
full_update)
dpy_gfx_update(s->con, 0, y_start,
disp_width, y - y_start);
}
- /* reset modified pages */
- if (page_max >= page_min) {
- memory_region_reset_dirty(&s->vram,
- page_min,
- page_max - page_min,
- DIRTY_MEMORY_VGA);
- }
memset(s->invalidated_y_table, 0, ((height + 31) >> 5) * 4);
}
--
1.8.3.1
- [Qemu-devel] [PATCH 0/7] Make vga devices use test_and_set, Juan Quintela, 2013/10/11
- [Qemu-devel] [PATCH 1/7] vmware_vga: port to test_and_clear instead of test/reset, Juan Quintela, 2013/10/11
- [Qemu-devel] [PATCH 2/7] vga: port to test_and_clear instead of test/reset,
Juan Quintela <=
- [Qemu-devel] [PATCH 3/7] tcx: port to test_and_clear instead of test/reset, Juan Quintela, 2013/10/11
- [Qemu-devel] [PATCH 5/7] g364fb: port to test_and_clear instead of test/reset, Juan Quintela, 2013/10/11
- [Qemu-devel] [PATCH 6/7] framebufer: port to test_and_clear instead of test/reset, Juan Quintela, 2013/10/11
- [Qemu-devel] [PATCH 7/7] exynox4210: port to test_and_clear instead of test/reset, Juan Quintela, 2013/10/11
- [Qemu-devel] [PATCH 4/7] sm501: port to test_and_clear instead of test/reset, Juan Quintela, 2013/10/11