Revision 1f202568 hw/vmware_vga.c

b/hw/vmware_vga.c
39 39
    VGACommonState vga;
40 40

  
41 41
    int invalidated;
42
    int depth;
43
    int bypp;
42 44
    int enable;
43 45
    int config;
44 46
    struct {
......
55 57
    int new_height;
56 58
    uint32_t guest;
57 59
    uint32_t svgaid;
60
    uint32_t wred;
61
    uint32_t wgreen;
62
    uint32_t wblue;
58 63
    int syncing;
59 64

  
60 65
    MemoryRegion fifo_ram;
......
718 723
        return SVGA_MAX_HEIGHT;
719 724

  
720 725
    case SVGA_REG_DEPTH:
721
        return ds_get_depth(s->vga.ds);
726
        return s->depth;
722 727

  
723 728
    case SVGA_REG_BITS_PER_PIXEL:
724
        return ds_get_bits_per_pixel(s->vga.ds);
729
        return (s->depth + 7) & ~7;
725 730

  
726 731
    case SVGA_REG_PSEUDOCOLOR:
727 732
        return 0x0;
728 733

  
729 734
    case SVGA_REG_RED_MASK:
730
        return ds_get_rmask(s->vga.ds);
735
        return s->wred;
731 736

  
732 737
    case SVGA_REG_GREEN_MASK:
733
        return ds_get_gmask(s->vga.ds);
738
        return s->wgreen;
734 739

  
735 740
    case SVGA_REG_BLUE_MASK:
736
        return ds_get_bmask(s->vga.ds);
741
        return s->wblue;
737 742

  
738 743
    case SVGA_REG_BYTES_PER_LINE:
739
        return ds_get_bytes_per_pixel(s->vga.ds) * s->new_width;
744
        return s->bypp * s->new_width;
740 745

  
741 746
    case SVGA_REG_FB_START: {
742 747
        struct pci_vmsvga_state_s *pci_vmsvga
......
801 806
        return s->cursor.on;
802 807

  
803 808
    case SVGA_REG_HOST_BITS_PER_PIXEL:
804
        return ds_get_bits_per_pixel(s->vga.ds);
809
        return (s->depth + 7) & ~7;
805 810

  
806 811
    case SVGA_REG_SCRATCH_SIZE:
807 812
        return s->scratch_size;
......
864 869
        break;
865 870

  
866 871
    case SVGA_REG_BITS_PER_PIXEL:
867
        if (value != ds_get_bits_per_pixel(s->vga.ds)) {
872
        if (value != s->depth) {
868 873
            printf("%s: Bad bits per pixel: %i bits\n", __func__, value);
869 874
            s->config = 0;
870 875
        }
......
1084 1089
    .minimum_version_id_old = 0,
1085 1090
    .post_load = vmsvga_post_load,
1086 1091
    .fields      = (VMStateField[]) {
1087
        VMSTATE_UNUSED(4), /* was depth */
1092
        VMSTATE_INT32_EQUAL(depth, struct vmsvga_state_s),
1088 1093
        VMSTATE_INT32(enable, struct vmsvga_state_s),
1089 1094
        VMSTATE_INT32(config, struct vmsvga_state_s),
1090 1095
        VMSTATE_INT32(cursor.id, struct vmsvga_state_s),
......
1137 1142
    vga_common_init(&s->vga);
1138 1143
    vga_init(&s->vga, address_space, io, true);
1139 1144
    vmstate_register(NULL, 0, &vmstate_vga_common, &s->vga);
1145
    /* Save some values here in case they are changed later.
1146
     * This is suspicious and needs more though why it is needed. */
1147
    s->depth = ds_get_bits_per_pixel(s->vga.ds);
1148
    s->bypp = ds_get_bytes_per_pixel(s->vga.ds);
1149
    s->wred = ds_get_rmask(s->vga.ds);
1150
    s->wgreen = ds_get_gmask(s->vga.ds);
1151
    s->wblue = ds_get_bmask(s->vga.ds);
1140 1152
}
1141 1153

  
1142 1154
static uint64_t vmsvga_io_read(void *opaque, hwaddr addr, unsigned size)

Also available in: Unified diff