sm501: Update screen on frame buffer address change
PATCH 1/1 sm501: Update screen on frame buffer address change
When the guest changes the address of the frame buffer we need to refresh the screen to correctly display the new content. This fixes display update problems when changing between screens on AmigaOS.
---
This fixes an annoying refresh problem in AmigaOS when changing or moving screens. The user could work around it by moving the mouse to repaint the screen but if it's possible to get this in before or during the freeze that could avoid this problem in the release.
hw/display/sm501.c | 2 ++ 1 file changed, 2 insertions(+)
hw/display/sm501.c +2 -0
@@ -1235,6 +1235,7 @@ static void sm501_disp_ctrl_write(void *opaque, hwaddr addr,if (value &0x8000000 ) {qemu_log_mask (LOG_UNIMP ,"Panel external memory not supported\n" ); } + s->do_full_update = true;break ;case SM501_DC_PANEL_FB_OFFSET : s->dc_panel_fb_offset = value &0x3FF03FF0 ;
@@ -1298,6 +1299,7 @@ static void sm501_disp_ctrl_write(void *opaque, hwaddr addr,if (value &0x8000000 ) {qemu_log_mask (LOG_UNIMP ,"CRT external memory not supported\n" ); } + s->do_full_update = true;break ;case SM501_DC_CRT_FB_OFFSET : s->dc_crt_fb_offset = value &0x3FF03FF0 ;
Signature · 1 line
2.7.6
Quoted 5 lines · BALATON Zoltan
When the guest changes the address of the frame buffer we need to refresh the screen to correctly display the new content. This fixes display update problems when changing between screens on AmigaOS.
Signed-off-by BALATON Zoltan <[email protected]>
Quoted 8 lines
---
This fixes an annoying refresh problem in AmigaOS when changing or moving screens. The user could work around it by moving the mouse to repaint the screen but if it's possible to get this in before or during the freeze that could avoid this problem in the release.hw/display/sm501.c | 2 ++ 1 file changed, 2 insertions(+)
Looks like a clear bugfix, so I've applied to ppc-for-3.0.
Quoted 21 lines
hw/display/sm501.c +2
-0@@ -1235,6 +1235,7 @@ static void sm501_disp_ctrl_write(void *opaque, hwaddr addr,if (value &0x8000000 ) {qemu_log_mask (LOG_UNIMP ,"Panel external memory not supported\n" ); } + s->do_full_update = true;break ;case SM501_DC_PANEL_FB_OFFSET : s->dc_panel_fb_offset = value &0x3FF03FF0 ;@@ -1298,6 +1299,7 @@ static void sm501_disp_ctrl_write(void *opaque, hwaddr addr,if (value &0x8000000 ) {qemu_log_mask (LOG_UNIMP ,"CRT external memory not supported\n" ); } + s->do_full_update = true;break ;case SM501_DC_CRT_FB_OFFSET : s->dc_crt_fb_offset = value &0x3FF03FF0 ;
Signature · 4 lines
David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson