Message ID | 1370190180-18232-1-git-send-email-mark.cave-ayland@ilande.co.uk |
---|---|
State | New |
Headers | show |
Thanks, applied. On Sun, Jun 2, 2013 at 4:23 PM, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> wrote: > Commit d08151bf (conversion of tcx to the memory API) broke the 24-bit mode of > the tcx display adapter by accidentally passing in the final address of the > dirty region to memory_region_reset_dirty() instead of its size. > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > --- > hw/display/tcx.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/hw/display/tcx.c b/hw/display/tcx.c > index fc27f45..995641c 100644 > --- a/hw/display/tcx.c > +++ b/hw/display/tcx.c > @@ -193,15 +193,16 @@ static inline void reset_dirty(TCXState *ts, ram_addr_t page_min, > ram_addr_t cpage) > { > memory_region_reset_dirty(&ts->vram_mem, > - page_min, page_max + TARGET_PAGE_SIZE, > + page_min, > + (page_max - page_min) + TARGET_PAGE_SIZE, > DIRTY_MEMORY_VGA); > memory_region_reset_dirty(&ts->vram_mem, > page24 + page_min * 4, > - page24 + page_max * 4 + TARGET_PAGE_SIZE, > + (page_max - page_min) * 4 + TARGET_PAGE_SIZE, > DIRTY_MEMORY_VGA); > memory_region_reset_dirty(&ts->vram_mem, > cpage + page_min * 4, > - cpage + page_max * 4 + TARGET_PAGE_SIZE, > + (page_max - page_min) * 4 + TARGET_PAGE_SIZE, > DIRTY_MEMORY_VGA); > } > > @@ -285,7 +286,8 @@ static void tcx_update_display(void *opaque) > /* reset modified pages */ > if (page_max >= page_min) { > memory_region_reset_dirty(&ts->vram_mem, > - page_min, page_max + TARGET_PAGE_SIZE, > + page_min, > + (page_max - page_min) + TARGET_PAGE_SIZE, > DIRTY_MEMORY_VGA); > } > } > -- > 1.7.10.4 > >
diff --git a/hw/display/tcx.c b/hw/display/tcx.c index fc27f45..995641c 100644 --- a/hw/display/tcx.c +++ b/hw/display/tcx.c @@ -193,15 +193,16 @@ static inline void reset_dirty(TCXState *ts, ram_addr_t page_min, ram_addr_t cpage) { memory_region_reset_dirty(&ts->vram_mem, - page_min, page_max + TARGET_PAGE_SIZE, + page_min, + (page_max - page_min) + TARGET_PAGE_SIZE, DIRTY_MEMORY_VGA); memory_region_reset_dirty(&ts->vram_mem, page24 + page_min * 4, - page24 + page_max * 4 + TARGET_PAGE_SIZE, + (page_max - page_min) * 4 + TARGET_PAGE_SIZE, DIRTY_MEMORY_VGA); memory_region_reset_dirty(&ts->vram_mem, cpage + page_min * 4, - cpage + page_max * 4 + TARGET_PAGE_SIZE, + (page_max - page_min) * 4 + TARGET_PAGE_SIZE, DIRTY_MEMORY_VGA); } @@ -285,7 +286,8 @@ static void tcx_update_display(void *opaque) /* reset modified pages */ if (page_max >= page_min) { memory_region_reset_dirty(&ts->vram_mem, - page_min, page_max + TARGET_PAGE_SIZE, + page_min, + (page_max - page_min) + TARGET_PAGE_SIZE, DIRTY_MEMORY_VGA); } }
Commit d08151bf (conversion of tcx to the memory API) broke the 24-bit mode of the tcx display adapter by accidentally passing in the final address of the dirty region to memory_region_reset_dirty() instead of its size. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- hw/display/tcx.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)