From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=41919 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ofd0J-00075M-5g for qemu-devel@nongnu.org; Sun, 01 Aug 2010 14:11:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Ofd0I-00060H-1n for qemu-devel@nongnu.org; Sun, 01 Aug 2010 14:11:19 -0400 Received: from smtp5-g21.free.fr ([212.27.42.5]:43637) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Ofd0H-0005zv-BL for qemu-devel@nongnu.org; Sun, 01 Aug 2010 14:11:17 -0400 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Sun, 1 Aug 2010 19:37:13 +0200 Message-Id: <1280684242-19611-11-git-send-email-hpoussin@reactos.org> In-Reply-To: <4C5579DA.8050508@reactos.org> References: <4C5579DA.8050508@reactos.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH 11/20] [MIPS] qdev: convert vga-isa-mm to ISA device List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Use it in Jazz emulation Remove isa_vga_mm_init() function, which is not used anymore Signed-off-by: Herv=C3=A9 Poussineau --- hw/mips_jazz.c | 2 +- hw/pc.h | 2 - hw/vga-isa-mm.c | 66 ++++++++++++++++++++++++++++++++-----------------= ----- vl.c | 1 + 4 files changed, 41 insertions(+), 30 deletions(-) diff --git a/hw/mips_jazz.c b/hw/mips_jazz.c index b737cf3..96946e8 100644 --- a/hw/mips_jazz.c +++ b/hw/mips_jazz.c @@ -209,7 +209,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_create_simple("isa-vga-mm"); break; default: break; diff --git a/hw/pc.h b/hw/pc.h index f5a479a..acfed83 100644 --- a/hw/pc.h +++ b/hw/pc.h @@ -154,8 +154,6 @@ extern enum vga_retrace_method vga_retrace_method; int isa_vga_init(void); int pci_vga_init(PCIBus *bus, unsigned long vga_bios_offset, int vga_bios_size); -int isa_vga_mm_init(target_phys_addr_t vram_base, - target_phys_addr_t ctrl_base, int it_shift); =20 /* cirrus_vga.c */ void pci_cirrus_vga_init(PCIBus *bus); diff --git a/hw/vga-isa-mm.c b/hw/vga-isa-mm.c index 680b557..82d2e81 100644 --- a/hw/vga-isa-mm.c +++ b/hw/vga-isa-mm.c @@ -23,14 +23,17 @@ */ #include "hw.h" #include "console.h" -#include "pc.h" #include "vga_int.h" #include "pixel_ops.h" #include "qemu-timer.h" +#include "isa.h" +#include "qdev-addr.h" =20 typedef struct ISAVGAMMState { + ISADevice dev; + target_phys_addr_t iobase; + target_phys_addr_t vram; VGACommonState vga; - int it_shift; } ISAVGAMMState; =20 /* Memory mapped interface */ @@ -38,7 +41,7 @@ static uint32_t vga_mm_readb (void *opaque, target_phys= _addr_t addr) { ISAVGAMMState *s =3D opaque; =20 - return vga_ioport_read(&s->vga, addr >> s->it_shift) & 0xff; + return vga_ioport_read(&s->vga, addr) & 0xff; } =20 static void vga_mm_writeb (void *opaque, @@ -46,14 +49,14 @@ static void vga_mm_writeb (void *opaque, { ISAVGAMMState *s =3D opaque; =20 - vga_ioport_write(&s->vga, addr >> s->it_shift, value & 0xff); + vga_ioport_write(&s->vga, addr, value & 0xff); } =20 static uint32_t vga_mm_readw (void *opaque, target_phys_addr_t addr) { ISAVGAMMState *s =3D opaque; =20 - return vga_ioport_read(&s->vga, addr >> s->it_shift) & 0xffff; + return vga_ioport_read(&s->vga, addr) & 0xffff; } =20 static void vga_mm_writew (void *opaque, @@ -61,14 +64,14 @@ static void vga_mm_writew (void *opaque, { ISAVGAMMState *s =3D opaque; =20 - vga_ioport_write(&s->vga, addr >> s->it_shift, value & 0xffff); + vga_ioport_write(&s->vga, addr, value & 0xffff); } =20 static uint32_t vga_mm_readl (void *opaque, target_phys_addr_t addr) { ISAVGAMMState *s =3D opaque; =20 - return vga_ioport_read(&s->vga, addr >> s->it_shift); + return vga_ioport_read(&s->vga, addr); } =20 static void vga_mm_writel (void *opaque, @@ -76,7 +79,7 @@ static void vga_mm_writel (void *opaque, { ISAVGAMMState *s =3D opaque; =20 - vga_ioport_write(&s->vga, addr >> s->it_shift, value); + vga_ioport_write(&s->vga, addr, value); } =20 static CPUReadMemoryFunc * const vga_mm_read_ctrl[] =3D { @@ -91,36 +94,45 @@ static CPUWriteMemoryFunc * const vga_mm_write_ctrl[]= =3D { &vga_mm_writel, }; =20 -static void vga_mm_init(ISAVGAMMState *s, target_phys_addr_t vram_base, - target_phys_addr_t ctrl_base, int it_shift) +static int isa_vga_mm_init(ISADevice *dev) { + ISAVGAMMState *s =3D DO_UPCAST(ISAVGAMMState, dev, dev); int s_ioport_ctrl, vga_io_memory; =20 - s->it_shift =3D it_shift; + vga_common_init(&s->vga, VGA_RAM_SIZE); + s_ioport_ctrl =3D cpu_register_io_memory(vga_mm_read_ctrl, vga_mm_wr= ite_ctrl, s); - vga_io_memory =3D cpu_register_io_memory(vga_mem_read, vga_mem_write= , s); + vga_io_memory =3D cpu_register_io_memory(vga_mem_read, vga_mem_write= , &s->vga); =20 vmstate_register(NULL, 0, &vmstate_vga_common, s); =20 - cpu_register_physical_memory(ctrl_base, 0x100000, s_ioport_ctrl); + cpu_register_physical_memory(s->iobase, 0x100000, s_ioport_ctrl); s->vga.bank_offset =3D 0; - cpu_register_physical_memory(vram_base + 0x000a0000, 0x20000, vga_io= _memory); - qemu_register_coalesced_mmio(vram_base + 0x000a0000, 0x20000); -} - -int isa_vga_mm_init(target_phys_addr_t vram_base, - target_phys_addr_t ctrl_base, int it_shift) -{ - ISAVGAMMState *s; - - s =3D qemu_mallocz(sizeof(*s)); - - vga_common_init(&s->vga, VGA_RAM_SIZE); - vga_mm_init(s, vram_base, ctrl_base, it_shift); + cpu_register_physical_memory(s->vram + 0x000a0000, 0x20000, vga_io_m= emory); + qemu_register_coalesced_mmio(s->vram + 0x000a0000, 0x20000); =20 s->vga.ds =3D graphic_console_init(s->vga.update, s->vga.invalidate, - s->vga.screen_dump, s->vga.text_upd= ate, s); + s->vga.screen_dump, s->vga.text_upd= ate, &s->vga); =20 vga_init_vbe(&s->vga); return 0; } + +static ISADeviceInfo isa_vga_mm_device_info =3D { + .qdev.name =3D "isa-vga-mm", + .qdev.size =3D sizeof(ISAVGAMMState), + .qdev.vmsd =3D &vmstate_vga_common, + .init =3D isa_vga_mm_init, + .qdev.props =3D (Property[]) { + DEFINE_PROP_TADDR("iobase", ISAVGAMMState, iobase, 0x60000000), + DEFINE_PROP_TADDR("vram", ISAVGAMMState, vram, 0x40000000), + DEFINE_PROP_END_OF_LIST(), + }, +}; + +static void isa_vga_mm_register_device(void) +{ + isa_qdev_register(&isa_vga_mm_device_info); +} + +device_init(isa_vga_mm_register_device) diff --git a/vl.c b/vl.c index b3e3676..9815f8d 100644 --- a/vl.c +++ b/vl.c @@ -265,6 +265,7 @@ static struct { { .driver =3D "VGA", .flag =3D &default_vga }= , { .driver =3D "cirrus-vga", .flag =3D &default_vga }= , { .driver =3D "vmware-svga", .flag =3D &default_vga }= , + { .driver =3D "isa-vga-mm", .flag =3D &default_vga }= , }; =20 static int default_driver_check(QemuOpts *opts, void *opaque) --=20 1.7.1.GIT