qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [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).