* [Qemu-devel] [PATCH 0/2] VGA fixes
@ 2009-09-21 12:35 Juan Quintela
2009-09-21 12:35 ` [Qemu-devel] [PATCH 1/2] cirrus_vga: also assign gr0/1 when writting shadow_gr0/1 Juan Quintela
2009-09-21 12:35 ` [Qemu-devel] [PATCH 2/2] vga: move back dirty_log functions to vga.c Juan Quintela
0 siblings, 2 replies; 6+ messages in thread
From: Juan Quintela @ 2009-09-21 12:35 UTC (permalink / raw)
To: qemu-devel
Hi
This includes two fixes:
- also write gr0/gr1 on cirrus_vga
this was a bug introduced on my vga_cleanup series
- move dirty_log_functions to vga.c
this is needed by qemu-kvm
Please, apply, Juan.
Juan Quintela (2):
cirrus_vga: also assign gr0/1 when writting shadow_gr0/1
vga: move back dirty_log functions to vga.c
hw/cirrus_vga.c | 2 ++
hw/vga-pci.c | 12 ------------
hw/vga.c | 12 ++++++++++++
3 files changed, 14 insertions(+), 12 deletions(-)
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH 1/2] cirrus_vga: also assign gr0/1 when writting shadow_gr0/1
2009-09-21 12:35 [Qemu-devel] [PATCH 0/2] VGA fixes Juan Quintela
@ 2009-09-21 12:35 ` Juan Quintela
2009-09-23 19:16 ` Markus Armbruster
2009-09-21 12:35 ` [Qemu-devel] [PATCH 2/2] vga: move back dirty_log functions to vga.c Juan Quintela
1 sibling, 1 reply; 6+ messages in thread
From: Juan Quintela @ 2009-09-21 12:35 UTC (permalink / raw)
To: qemu-devel
This is a regression/bug caused by previous vga_cleanup. This fixes
Ubuntu installer reported by:
Pierre Riteau
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/cirrus_vga.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 7e95f10..ae4be82 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -1490,9 +1490,11 @@ cirrus_vga_write_gr(CirrusVGAState * s, unsigned reg_index, int reg_value)
#endif
switch (reg_index) {
case 0x00: // Standard VGA, BGCOLOR 0x000000ff
+ s->vga.gr[reg_index] = reg_value & gr_mask[reg_index];
s->cirrus_shadow_gr0 = reg_value;
break;
case 0x01: // Standard VGA, FGCOLOR 0x000000ff
+ s->vga.gr[reg_index] = reg_value & gr_mask[reg_index];
s->cirrus_shadow_gr1 = reg_value;
break;
case 0x02: // Standard VGA
--
1.6.2.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH 2/2] vga: move back dirty_log functions to vga.c
2009-09-21 12:35 [Qemu-devel] [PATCH 0/2] VGA fixes Juan Quintela
2009-09-21 12:35 ` [Qemu-devel] [PATCH 1/2] cirrus_vga: also assign gr0/1 when writting shadow_gr0/1 Juan Quintela
@ 2009-09-21 12:35 ` Juan Quintela
2009-09-21 13:08 ` [Qemu-devel] " Jan Kiszka
1 sibling, 1 reply; 6+ messages in thread
From: Juan Quintela @ 2009-09-21 12:35 UTC (permalink / raw)
To: qemu-devel
They are needed there on qemu-kvm.
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/vga-pci.c | 12 ------------
hw/vga.c | 12 ++++++++++++
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/hw/vga-pci.c b/hw/vga-pci.c
index 6038cec..ccc78e5 100644
--- a/hw/vga-pci.c
+++ b/hw/vga-pci.c
@@ -28,7 +28,6 @@
#include "vga_int.h"
#include "pixel_ops.h"
#include "qemu-timer.h"
-#include "kvm.h"
typedef struct PCIVGAState {
PCIDevice dev;
@@ -59,17 +58,6 @@ static int pci_vga_load(QEMUFile *f, void *opaque, int version_id)
return vga_common_load(f, &s->vga, version_id);
}
-void vga_dirty_log_start(VGACommonState *s)
-{
- if (kvm_enabled() && s->map_addr)
- kvm_log_start(s->map_addr, s->map_end - s->map_addr);
-
- if (kvm_enabled() && s->lfb_vram_mapped) {
- kvm_log_start(isa_mem_base + 0xa0000, 0x8000);
- kvm_log_start(isa_mem_base + 0xa8000, 0x8000);
- }
-}
-
static void vga_map(PCIDevice *pci_dev, int region_num,
uint32_t addr, uint32_t size, int type)
{
diff --git a/hw/vga.c b/hw/vga.c
index 514371c..6cbd3d3 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -28,6 +28,7 @@
#include "vga_int.h"
#include "pixel_ops.h"
#include "qemu-timer.h"
+#include "kvm.h"
//#define DEBUG_VGA
//#define DEBUG_VGA_MEM
@@ -1576,6 +1577,17 @@ static void vga_sync_dirty_bitmap(VGACommonState *s)
}
}
+void vga_dirty_log_start(VGACommonState *s)
+{
+ if (kvm_enabled() && s->map_addr)
+ kvm_log_start(s->map_addr, s->map_end - s->map_addr);
+
+ if (kvm_enabled() && s->lfb_vram_mapped) {
+ kvm_log_start(isa_mem_base + 0xa0000, 0x8000);
+ kvm_log_start(isa_mem_base + 0xa8000, 0x8000);
+ }
+}
+
/*
* graphic modes
*/
--
1.6.2.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] Re: [PATCH 2/2] vga: move back dirty_log functions to vga.c
2009-09-21 12:35 ` [Qemu-devel] [PATCH 2/2] vga: move back dirty_log functions to vga.c Juan Quintela
@ 2009-09-21 13:08 ` Jan Kiszka
0 siblings, 0 replies; 6+ messages in thread
From: Jan Kiszka @ 2009-09-21 13:08 UTC (permalink / raw)
To: Juan Quintela; +Cc: qemu-devel
Juan Quintela wrote:
> They are needed there on qemu-kvm.
Well, my real argument still is that they are not PCI-specific, even if
they are currently only used by PCI-based adapters.
Acked-by: Jan Kiszka <jan.kiszka@siemens.com>
Thanks,
Jan
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/vga-pci.c | 12 ------------
> hw/vga.c | 12 ++++++++++++
> 2 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/hw/vga-pci.c b/hw/vga-pci.c
> index 6038cec..ccc78e5 100644
> --- a/hw/vga-pci.c
> +++ b/hw/vga-pci.c
> @@ -28,7 +28,6 @@
> #include "vga_int.h"
> #include "pixel_ops.h"
> #include "qemu-timer.h"
> -#include "kvm.h"
>
> typedef struct PCIVGAState {
> PCIDevice dev;
> @@ -59,17 +58,6 @@ static int pci_vga_load(QEMUFile *f, void *opaque, int version_id)
> return vga_common_load(f, &s->vga, version_id);
> }
>
> -void vga_dirty_log_start(VGACommonState *s)
> -{
> - if (kvm_enabled() && s->map_addr)
> - kvm_log_start(s->map_addr, s->map_end - s->map_addr);
> -
> - if (kvm_enabled() && s->lfb_vram_mapped) {
> - kvm_log_start(isa_mem_base + 0xa0000, 0x8000);
> - kvm_log_start(isa_mem_base + 0xa8000, 0x8000);
> - }
> -}
> -
> static void vga_map(PCIDevice *pci_dev, int region_num,
> uint32_t addr, uint32_t size, int type)
> {
> diff --git a/hw/vga.c b/hw/vga.c
> index 514371c..6cbd3d3 100644
> --- a/hw/vga.c
> +++ b/hw/vga.c
> @@ -28,6 +28,7 @@
> #include "vga_int.h"
> #include "pixel_ops.h"
> #include "qemu-timer.h"
> +#include "kvm.h"
>
> //#define DEBUG_VGA
> //#define DEBUG_VGA_MEM
> @@ -1576,6 +1577,17 @@ static void vga_sync_dirty_bitmap(VGACommonState *s)
> }
> }
>
> +void vga_dirty_log_start(VGACommonState *s)
> +{
> + if (kvm_enabled() && s->map_addr)
> + kvm_log_start(s->map_addr, s->map_end - s->map_addr);
> +
> + if (kvm_enabled() && s->lfb_vram_mapped) {
> + kvm_log_start(isa_mem_base + 0xa0000, 0x8000);
> + kvm_log_start(isa_mem_base + 0xa8000, 0x8000);
> + }
> +}
> +
> /*
> * graphic modes
> */
--
Siemens AG, Corporate Technology, CT SE 2
Corporate Competence Center Embedded Linux
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] cirrus_vga: also assign gr0/1 when writting shadow_gr0/1
2009-09-21 12:35 ` [Qemu-devel] [PATCH 1/2] cirrus_vga: also assign gr0/1 when writting shadow_gr0/1 Juan Quintela
@ 2009-09-23 19:16 ` Markus Armbruster
2009-09-29 23:20 ` [Qemu-devel] " Juan Quintela
0 siblings, 1 reply; 6+ messages in thread
From: Markus Armbruster @ 2009-09-23 19:16 UTC (permalink / raw)
To: Juan Quintela; +Cc: qemu-devel
Juan Quintela <quintela@redhat.com> writes:
> This is a regression/bug caused by previous vga_cleanup. This fixes
> Ubuntu installer reported by:
> Pierre Riteau
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
Broken in commit 22286bc6. Patch restores old behavior of
cirrus_vga_ioport_write() for address 0x3cf.
But what about cirrus_mmio_blt_write() for address
CIRRUS_MMIO_BLTBGCOLOR + 0? There we had
cirrus_hook_write_gr(s, 0x00, value);
which did not update s->vga.gr[0x00]. It does with your patch, doesn't
it?
Same for CIRRUS_MMIO_BLTFGCOLOR + 0.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-devel] Re: [PATCH 1/2] cirrus_vga: also assign gr0/1 when writting shadow_gr0/1
2009-09-23 19:16 ` Markus Armbruster
@ 2009-09-29 23:20 ` Juan Quintela
0 siblings, 0 replies; 6+ messages in thread
From: Juan Quintela @ 2009-09-29 23:20 UTC (permalink / raw)
To: Markus Armbruster; +Cc: qemu-devel
Markus Armbruster <armbru@redhat.com> wrote:
> Juan Quintela <quintela@redhat.com> writes:
>
>> This is a regression/bug caused by previous vga_cleanup. This fixes
>> Ubuntu installer reported by:
>> Pierre Riteau
>>
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>
> Broken in commit 22286bc6. Patch restores old behavior of
> cirrus_vga_ioport_write() for address 0x3cf.
>
> But what about cirrus_mmio_blt_write() for address
> CIRRUS_MMIO_BLTBGCOLOR + 0? There we had
>
> cirrus_hook_write_gr(s, 0x00, value);
>
> which did not update s->vga.gr[0x00]. It does with your patch, doesn't
> it?
>
> Same for CIRRUS_MMIO_BLTFGCOLOR + 0.
Yeap :(
My VGA expertise is inexistent, I don't know what to do here. I will
also fix that.
Thanks for the review, Juan.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-09-29 23:20 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-21 12:35 [Qemu-devel] [PATCH 0/2] VGA fixes Juan Quintela
2009-09-21 12:35 ` [Qemu-devel] [PATCH 1/2] cirrus_vga: also assign gr0/1 when writting shadow_gr0/1 Juan Quintela
2009-09-23 19:16 ` Markus Armbruster
2009-09-29 23:20 ` [Qemu-devel] " Juan Quintela
2009-09-21 12:35 ` [Qemu-devel] [PATCH 2/2] vga: move back dirty_log functions to vga.c Juan Quintela
2009-09-21 13:08 ` [Qemu-devel] " Jan Kiszka
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).