Revision aa941b94 hw/pxa2xx_lcd.c
b/hw/pxa2xx_lcd.c | ||
---|---|---|
924 | 924 |
pxa2xx_lcdc_resize(s); |
925 | 925 |
} |
926 | 926 |
|
927 |
static void pxa2xx_lcdc_save(QEMUFile *f, void *opaque) |
|
928 |
{ |
|
929 |
struct pxa2xx_lcdc_s *s = (struct pxa2xx_lcdc_s *) opaque; |
|
930 |
int i; |
|
931 |
|
|
932 |
qemu_put_be32(f, s->irqlevel); |
|
933 |
qemu_put_be32(f, s->transp); |
|
934 |
|
|
935 |
for (i = 0; i < 6; i ++) |
|
936 |
qemu_put_be32s(f, &s->control[i]); |
|
937 |
for (i = 0; i < 2; i ++) |
|
938 |
qemu_put_be32s(f, &s->status[i]); |
|
939 |
for (i = 0; i < 2; i ++) |
|
940 |
qemu_put_be32s(f, &s->ovl1c[i]); |
|
941 |
for (i = 0; i < 2; i ++) |
|
942 |
qemu_put_be32s(f, &s->ovl2c[i]); |
|
943 |
qemu_put_be32s(f, &s->ccr); |
|
944 |
qemu_put_be32s(f, &s->cmdcr); |
|
945 |
qemu_put_be32s(f, &s->trgbr); |
|
946 |
qemu_put_be32s(f, &s->tcr); |
|
947 |
qemu_put_be32s(f, &s->liidr); |
|
948 |
qemu_put_8s(f, &s->bscntr); |
|
949 |
|
|
950 |
for (i = 0; i < 7; i ++) { |
|
951 |
qemu_put_betl(f, s->dma_ch[i].branch); |
|
952 |
qemu_put_byte(f, s->dma_ch[i].up); |
|
953 |
qemu_put_buffer(f, s->dma_ch[i].pbuffer, sizeof(s->dma_ch[i].pbuffer)); |
|
954 |
|
|
955 |
qemu_put_betl(f, s->dma_ch[i].descriptor); |
|
956 |
qemu_put_betl(f, s->dma_ch[i].source); |
|
957 |
qemu_put_be32s(f, &s->dma_ch[i].id); |
|
958 |
qemu_put_be32s(f, &s->dma_ch[i].command); |
|
959 |
} |
|
960 |
} |
|
961 |
|
|
962 |
static int pxa2xx_lcdc_load(QEMUFile *f, void *opaque, int version_id) |
|
963 |
{ |
|
964 |
struct pxa2xx_lcdc_s *s = (struct pxa2xx_lcdc_s *) opaque; |
|
965 |
int i; |
|
966 |
|
|
967 |
s->irqlevel = qemu_get_be32(f); |
|
968 |
s->transp = qemu_get_be32(f); |
|
969 |
|
|
970 |
for (i = 0; i < 6; i ++) |
|
971 |
qemu_get_be32s(f, &s->control[i]); |
|
972 |
for (i = 0; i < 2; i ++) |
|
973 |
qemu_get_be32s(f, &s->status[i]); |
|
974 |
for (i = 0; i < 2; i ++) |
|
975 |
qemu_get_be32s(f, &s->ovl1c[i]); |
|
976 |
for (i = 0; i < 2; i ++) |
|
977 |
qemu_get_be32s(f, &s->ovl2c[i]); |
|
978 |
qemu_get_be32s(f, &s->ccr); |
|
979 |
qemu_get_be32s(f, &s->cmdcr); |
|
980 |
qemu_get_be32s(f, &s->trgbr); |
|
981 |
qemu_get_be32s(f, &s->tcr); |
|
982 |
qemu_get_be32s(f, &s->liidr); |
|
983 |
qemu_get_8s(f, &s->bscntr); |
|
984 |
|
|
985 |
for (i = 0; i < 7; i ++) { |
|
986 |
s->dma_ch[i].branch = qemu_get_betl(f); |
|
987 |
s->dma_ch[i].up = qemu_get_byte(f); |
|
988 |
qemu_get_buffer(f, s->dma_ch[i].pbuffer, sizeof(s->dma_ch[i].pbuffer)); |
|
989 |
|
|
990 |
s->dma_ch[i].descriptor = qemu_get_betl(f); |
|
991 |
s->dma_ch[i].source = qemu_get_betl(f); |
|
992 |
qemu_get_be32s(f, &s->dma_ch[i].id); |
|
993 |
qemu_get_be32s(f, &s->dma_ch[i].command); |
|
994 |
} |
|
995 |
|
|
996 |
s->bpp = LCCR3_BPP(s->control[3]); |
|
997 |
s->xres = s->yres = s->pal_for = -1; |
|
998 |
|
|
999 |
return 0; |
|
1000 |
} |
|
1001 |
|
|
927 | 1002 |
#define BITS 8 |
928 | 1003 |
#include "pxa2xx_template.h" |
929 | 1004 |
#define BITS 15 |
... | ... | |
989 | 1064 |
fprintf(stderr, "%s: Bad color depth\n", __FUNCTION__); |
990 | 1065 |
exit(1); |
991 | 1066 |
} |
1067 |
|
|
1068 |
register_savevm("pxa2xx_lcdc", 0, 0, |
|
1069 |
pxa2xx_lcdc_save, pxa2xx_lcdc_load, s); |
|
1070 |
|
|
992 | 1071 |
return s; |
993 | 1072 |
} |
994 | 1073 |
|
Also available in: Unified diff