Skip to content
This repository has been archived by the owner on May 5, 2021. It is now read-only.

Commit

Permalink
vga: drop get_system_memory() from vga devices and derivatives
Browse files Browse the repository at this point in the history
Instead, use the bus accessors, or get the address space directly
from the board constructor.

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
  • Loading branch information
avikivity authored and Anthony Liguori committed Aug 22, 2011
1 parent f5e6fed commit be20f9e
Show file tree
Hide file tree
Showing 11 changed files with 37 additions and 34 deletions.
12 changes: 6 additions & 6 deletions hw/cirrus_vga.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
#include "console.h"
#include "vga_int.h"
#include "loader.h"
#include "exec-memory.h"

/*
* TODO:
Expand Down Expand Up @@ -2801,7 +2800,8 @@ static const MemoryRegionOps cirrus_linear_io_ops = {
},
};

static void cirrus_init_common(CirrusVGAState * s, int device_id, int is_pci)
static void cirrus_init_common(CirrusVGAState * s, int device_id, int is_pci,
MemoryRegion *system_memory)
{
int i;
static int inited;
Expand Down Expand Up @@ -2854,7 +2854,7 @@ static void cirrus_init_common(CirrusVGAState * s, int device_id, int is_pci)
memory_region_init_io(&s->low_mem, &cirrus_vga_mem_ops, s,
"cirrus-low-memory", 0x20000);
memory_region_add_subregion(&s->low_mem_container, 0, &s->low_mem);
memory_region_add_subregion_overlap(get_system_memory(),
memory_region_add_subregion_overlap(system_memory,
isa_mem_base + 0x000a0000,
&s->low_mem_container,
1);
Expand Down Expand Up @@ -2897,14 +2897,14 @@ static void cirrus_init_common(CirrusVGAState * s, int device_id, int is_pci)
*
***************************************/

void isa_cirrus_vga_init(void)
void isa_cirrus_vga_init(MemoryRegion *system_memory)
{
CirrusVGAState *s;

s = g_malloc0(sizeof(CirrusVGAState));

vga_common_init(&s->vga, VGA_RAM_SIZE);
cirrus_init_common(s, CIRRUS_ID_CLGD5430, 0);
cirrus_init_common(s, CIRRUS_ID_CLGD5430, 0, system_memory);
s->vga.ds = graphic_console_init(s->vga.update, s->vga.invalidate,
s->vga.screen_dump, s->vga.text_update,
&s->vga);
Expand All @@ -2928,7 +2928,7 @@ static int pci_cirrus_vga_initfn(PCIDevice *dev)

/* setup VGA */
vga_common_init(&s->vga, VGA_RAM_SIZE);
cirrus_init_common(s, device_id, 1);
cirrus_init_common(s, device_id, 1, pci_address_space(dev));
s->vga.ds = graphic_console_init(s->vga.update, s->vga.invalidate,
s->vga.screen_dump, s->vga.text_update,
&s->vga);
Expand Down
3 changes: 2 additions & 1 deletion hw/mips_jazz.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
#include "mc146818rtc.h"
#include "blockdev.h"
#include "sysbus.h"
#include "exec-memory.h"

enum jazz_model_e
{
Expand Down Expand Up @@ -197,7 +198,7 @@ void mips_jazz_init (ram_addr_t ram_size,
g364fb_mm_init(0x40000000, 0x60000000, 0, rc4030[3]);
break;
case JAZZ_PICA61:
isa_vga_mm_init(0x40000000, 0x60000000, 0);
isa_vga_mm_init(0x40000000, 0x60000000, 0, get_system_memory());
break;
default:
break;
Expand Down
3 changes: 2 additions & 1 deletion hw/pc.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
#include "blockdev.h"
#include "ui/qemu-spice.h"
#include "memory.h"
#include "exec-memory.h"

/* output Bochs bios info messages */
//#define DEBUG_BIOS
Expand Down Expand Up @@ -1066,7 +1067,7 @@ void pc_vga_init(PCIBus *pci_bus)
if (pci_bus) {
pci_cirrus_vga_init(pci_bus);
} else {
isa_cirrus_vga_init();
isa_cirrus_vga_init(get_system_memory());
}
} else if (vmsvga_enabled) {
if (pci_bus) {
Expand Down
5 changes: 3 additions & 2 deletions hw/pc.h
Original file line number Diff line number Diff line change
Expand Up @@ -212,11 +212,12 @@ static inline int isa_vga_init(void)

int pci_vga_init(PCIBus *bus);
int isa_vga_mm_init(target_phys_addr_t vram_base,
target_phys_addr_t ctrl_base, int it_shift);
target_phys_addr_t ctrl_base, int it_shift,
MemoryRegion *address_space);

/* cirrus_vga.c */
void pci_cirrus_vga_init(PCIBus *bus);
void isa_cirrus_vga_init(void);
void isa_cirrus_vga_init(MemoryRegion *address_space);

/* ne2000.c */
static inline bool isa_ne2000_init(int base, int irq, NICInfo *nd)
Expand Down
2 changes: 1 addition & 1 deletion hw/qxl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1598,7 +1598,7 @@ static int qxl_init_primary(PCIDevice *dev)
ram_size = 32 * 1024 * 1024;
}
vga_common_init(vga, ram_size);
vga_init(vga);
vga_init(vga, pci_address_space(dev));
register_ioport_write(0x3c0, 16, 1, qxl_vga_ioport_write, vga);
register_ioport_write(0x3b4, 2, 1, qxl_vga_ioport_write, vga);
register_ioport_write(0x3d4, 2, 1, qxl_vga_ioport_write, vga);
Expand Down
15 changes: 8 additions & 7 deletions hw/vga-isa-mm.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
#include "vga_int.h"
#include "pixel_ops.h"
#include "qemu-timer.h"
#include "exec-memory.h"

typedef struct ISAVGAMMState {
VGACommonState vga;
Expand Down Expand Up @@ -97,7 +96,8 @@ static const MemoryRegionOps vga_mm_ctrl_ops = {
};

static void vga_mm_init(ISAVGAMMState *s, target_phys_addr_t vram_base,
target_phys_addr_t ctrl_base, int it_shift)
target_phys_addr_t ctrl_base, int it_shift,
MemoryRegion *address_space)
{
MemoryRegion *s_ioport_ctrl, *vga_io_memory;

Expand All @@ -113,26 +113,27 @@ static void vga_mm_init(ISAVGAMMState *s, target_phys_addr_t vram_base,

vmstate_register(NULL, 0, &vmstate_vga_common, s);

memory_region_add_subregion(get_system_memory(), ctrl_base, s_ioport_ctrl);
memory_region_add_subregion(address_space, ctrl_base, s_ioport_ctrl);
s->vga.bank_offset = 0;
memory_region_add_subregion(get_system_memory(),
memory_region_add_subregion(address_space,
vram_base + 0x000a0000, vga_io_memory);
memory_region_set_coalescing(vga_io_memory);
}

int isa_vga_mm_init(target_phys_addr_t vram_base,
target_phys_addr_t ctrl_base, int it_shift)
target_phys_addr_t ctrl_base, int it_shift,
MemoryRegion *address_space)
{
ISAVGAMMState *s;

s = g_malloc0(sizeof(*s));

vga_common_init(&s->vga, VGA_RAM_SIZE);
vga_mm_init(s, vram_base, ctrl_base, it_shift);
vga_mm_init(s, vram_base, ctrl_base, it_shift, address_space);

s->vga.ds = graphic_console_init(s->vga.update, s->vga.invalidate,
s->vga.screen_dump, s->vga.text_update, s);

vga_init_vbe(&s->vga);
vga_init_vbe(&s->vga, address_space);
return 0;
}
5 changes: 2 additions & 3 deletions hw/vga-isa.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
#include "pixel_ops.h"
#include "qemu-timer.h"
#include "loader.h"
#include "exec-memory.h"

typedef struct ISAVGAState {
ISADevice dev;
Expand All @@ -51,7 +50,7 @@ static int vga_initfn(ISADevice *dev)

vga_common_init(s, VGA_RAM_SIZE);
vga_io_memory = vga_init_io(s);
memory_region_add_subregion_overlap(get_system_memory(),
memory_region_add_subregion_overlap(isa_address_space(dev),
isa_mem_base + 0x000a0000,
vga_io_memory, 1);
memory_region_set_coalescing(vga_io_memory);
Expand All @@ -68,7 +67,7 @@ static int vga_initfn(ISADevice *dev)
s->ds = graphic_console_init(s->update, s->invalidate,
s->screen_dump, s->text_update, s);

vga_init_vbe(s);
vga_init_vbe(s, isa_address_space(dev));
/* ROM BIOS */
rom_add_vga(VGABIOS_FILENAME);
return 0;
Expand Down
4 changes: 2 additions & 2 deletions hw/vga-pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ static int pci_vga_initfn(PCIDevice *dev)

// vga + console init
vga_common_init(s, VGA_RAM_SIZE);
vga_init(s);
vga_init(s, pci_address_space(dev));

s->ds = graphic_console_init(s->update, s->invalidate,
s->screen_dump, s->text_update, s);
Expand All @@ -64,7 +64,7 @@ static int pci_vga_initfn(PCIDevice *dev)

if (!dev->rom_bar) {
/* compatibility with pc-0.13 and older */
vga_init_vbe(s);
vga_init_vbe(s, pci_address_space(dev));
}

return 0;
Expand Down
9 changes: 4 additions & 5 deletions hw/vga.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
#include "vga_int.h"
#include "pixel_ops.h"
#include "qemu-timer.h"
#include "exec-memory.h"

//#define DEBUG_VGA
//#define DEBUG_VGA_MEM
Expand Down Expand Up @@ -2241,7 +2240,7 @@ MemoryRegion *vga_init_io(VGACommonState *s)
return vga_mem;
}

void vga_init(VGACommonState *s)
void vga_init(VGACommonState *s, MemoryRegion *address_space)
{
MemoryRegion *vga_io_memory;

Expand All @@ -2250,18 +2249,18 @@ void vga_init(VGACommonState *s)
s->bank_offset = 0;

vga_io_memory = vga_init_io(s);
memory_region_add_subregion_overlap(get_system_memory(),
memory_region_add_subregion_overlap(address_space,
isa_mem_base + 0x000a0000,
vga_io_memory,
1);
memory_region_set_coalescing(vga_io_memory);
}

void vga_init_vbe(VGACommonState *s)
void vga_init_vbe(VGACommonState *s, MemoryRegion *system_memory)
{
#ifdef CONFIG_BOCHS_VBE
/* XXX: use optimized standard vga accesses */
memory_region_add_subregion(get_system_memory(),
memory_region_add_subregion(system_memory,
VBE_DISPI_LFB_PHYSICAL_ADDRESS,
&s->vram);
s->vbe_mapped = 1;
Expand Down
4 changes: 2 additions & 2 deletions hw/vga_int.h
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ static inline int c6_to_8(int v)
}

void vga_common_init(VGACommonState *s, int vga_ram_size);
void vga_init(VGACommonState *s);
void vga_init(VGACommonState *s, MemoryRegion *address_space);
MemoryRegion *vga_init_io(VGACommonState *s);
void vga_common_reset(VGACommonState *s);

Expand Down Expand Up @@ -217,7 +217,7 @@ void vga_draw_cursor_line_32(uint8_t *d1, const uint8_t *src1,
unsigned int color_xor);

int vga_ioport_invalid(VGACommonState *s, uint32_t addr);
void vga_init_vbe(VGACommonState *s);
void vga_init_vbe(VGACommonState *s, MemoryRegion *address_space);

extern const uint8_t sr_mask[8];
extern const uint8_t gr_mask[16];
Expand Down
9 changes: 5 additions & 4 deletions hw/vmware_vga.c
Original file line number Diff line number Diff line change
Expand Up @@ -1207,7 +1207,8 @@ static const VMStateDescription vmstate_vmware_vga = {
}
};

static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size)
static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size,
MemoryRegion *address_space)
{
s->scratch_size = SVGA_SCRATCH_SIZE;
s->scratch = g_malloc(s->scratch_size * 4);
Expand All @@ -1223,7 +1224,7 @@ static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size)
s->fifo_ptr = memory_region_get_ram_ptr(&s->fifo_ram);

vga_common_init(&s->vga, vga_ram_size);
vga_init(&s->vga);
vga_init(&s->vga, address_space);
vmstate_register(NULL, 0, &vmstate_vga_common, &s->vga);

vmsvga_reset(s);
Expand Down Expand Up @@ -1293,15 +1294,15 @@ static int pci_vmsvga_initfn(PCIDevice *dev)
"vmsvga-io", 0x10);
pci_register_bar(&s->card, 0, PCI_BASE_ADDRESS_SPACE_IO, &s->io_bar);

vmsvga_init(&s->chip, VGA_RAM_SIZE);
vmsvga_init(&s->chip, VGA_RAM_SIZE, pci_address_space(dev));

pci_register_bar(&s->card, 1, PCI_BASE_ADDRESS_MEM_PREFETCH, iomem);
pci_register_bar(&s->card, 2, PCI_BASE_ADDRESS_MEM_PREFETCH,
&s->chip.fifo_ram);

if (!dev->rom_bar) {
/* compatibility with pc-0.13 and older */
vga_init_vbe(&s->chip.vga);
vga_init_vbe(&s->chip.vga, pci_address_space(dev));
}

return 0;
Expand Down

0 comments on commit be20f9e

Please sign in to comment.