MusicPal: Restore display size after invalidation
PATCH 1/1 MusicPal: Restore display size after invalidation
Make sure that the MusicPal display is set to the correct size again after some other console may have used a different size.
Signed-off-by Jan Kiszka <[email protected]>
--- hw/musicpal.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-)
hw/musicpal.c +15 -2
@@ -759,6 +759,7 @@ typedef struct musicpal_lcd_state {int page_off;DisplayState *ds;uint8_t video_ram[128 *64 /8 ]; +int resize; } musicpal_lcd_state;static uint32_t lcd_brightness;
@@ -817,6 +818,11 @@ static void lcd_refresh(void *opaque)musicpal_lcd_state *s = opaque;int x, y, col; +if (s->resize) { +dpy_resize (s->ds,128 *3 ,64 *3 ); + s->resize =0 ; + } +switch (s->ds->depth) {case 0 :return ;
@@ -843,6 +849,13 @@ static void lcd_refresh(void *opaque)dpy_update (s->ds,0 ,0 ,128 *3 ,64 *3 ); } +static void lcd_invalidate (void *opaque) +{ +musicpal_lcd_state *s = opaque; + + s->resize =1 ; +} +static uint32_t musicpal_lcd_read (void *opaque,target_phys_addr_t offset) {musicpal_lcd_state *s = opaque;
@@ -919,12 +932,12 @@ static void musicpal_lcd_init(DisplayStareturn ; s->base = base; s->ds = ds; + s->resize =1 ; iomemtype =cpu_register_io_memory (0 , musicpal_lcd_readfn, musicpal_lcd_writefn, s);cpu_register_physical_memory (base,MP_LCD_SIZE , iomemtype); -graphic_console_init (ds, lcd_refresh,NULL ,NULL ,NULL , s); -dpy_resize (ds,128 *3 ,64 *3 ); +graphic_console_init (ds, lcd_refresh, lcd_invalidate,NULL ,NULL , s); }/* PIC register offsets */