[Qemu-devel] [PATCH] cirrus_vga: reset lfb_addr after a pci config write if the BAR is unmapped

2011-06-03 Thread stefano.stabellini
From: Stefano Stabellini 

If the cirrus_vga PCI BAR is unmapped than we should not only reset
map_addr but also lfb_addr, otherwise we'll keep trying to map
the old lfb_addr in map_linear_vram.

Signed-off-by: Stefano Stabellini 
---
 hw/cirrus_vga.c |5 -
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 722cac7..3c5043e 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -3088,8 +3088,11 @@ static void pci_cirrus_write_config(PCIDevice *d,
 CirrusVGAState *s = &pvs->cirrus_vga;
 
 pci_default_write_config(d, address, val, len);
-if (s->vga.map_addr && d->io_regions[0].addr == PCI_BAR_UNMAPPED)
+if (s->vga.map_addr && d->io_regions[0].addr == PCI_BAR_UNMAPPED) {
 s->vga.map_addr = 0;
+s->vga.lfb_addr = 0;
+s->vga.lfb_end = 0;
+}
 cirrus_update_memory_access(s);
 }
 
-- 
1.7.2.3




Re: [Qemu-devel] [PATCH] cirrus_vga: reset lfb_addr after a pci config write if the BAR is unmapped

2011-06-14 Thread Alexander Graf

On 06/03/2011 05:56 PM, stefano.stabell...@eu.citrix.com wrote:

From: Stefano Stabellini

If the cirrus_vga PCI BAR is unmapped than we should not only reset
map_addr but also lfb_addr, otherwise we'll keep trying to map
the old lfb_addr in map_linear_vram.


The patch looks good to me, but I'd love to get an ack from someone who 
knows the cirrus code before committing it.



Alex


Signed-off-by: Stefano Stabellini
---
  hw/cirrus_vga.c |5 -
  1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 722cac7..3c5043e 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -3088,8 +3088,11 @@ static void pci_cirrus_write_config(PCIDevice *d,
  CirrusVGAState *s =&pvs->cirrus_vga;

  pci_default_write_config(d, address, val, len);
-if (s->vga.map_addr&&  d->io_regions[0].addr == PCI_BAR_UNMAPPED)
+if (s->vga.map_addr&&  d->io_regions[0].addr == PCI_BAR_UNMAPPED) {
  s->vga.map_addr = 0;
+s->vga.lfb_addr = 0;
+s->vga.lfb_end = 0;
+}
  cirrus_update_memory_access(s);
  }






Re: [Qemu-devel] [PATCH] cirrus_vga: reset lfb_addr after a pci config write if the BAR is unmapped

2011-06-14 Thread Jan Kiszka
On 2011-06-14 15:54, Alexander Graf wrote:
> On 06/03/2011 05:56 PM, stefano.stabell...@eu.citrix.com wrote:
>> From: Stefano Stabellini
>>
>> If the cirrus_vga PCI BAR is unmapped than we should not only reset
>> map_addr but also lfb_addr, otherwise we'll keep trying to map
>> the old lfb_addr in map_linear_vram.
> 
> The patch looks good to me, but I'd love to get an ack from someone who
> knows the cirrus code before committing it.
> 

I'm not claiming to be the cirrus expert, but I've just walked through
all this vga mapping stuff: patch is correct.

Acked-by: Jan Kiszka 

> 
> Alex
> 
>> Signed-off-by: Stefano Stabellini
>> ---
>>   hw/cirrus_vga.c |5 -
>>   1 files changed, 4 insertions(+), 1 deletions(-)
>>
>> diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
>> index 722cac7..3c5043e 100644
>> --- a/hw/cirrus_vga.c
>> +++ b/hw/cirrus_vga.c
>> @@ -3088,8 +3088,11 @@ static void pci_cirrus_write_config(PCIDevice *d,
>>   CirrusVGAState *s =&pvs->cirrus_vga;
>>
>>   pci_default_write_config(d, address, val, len);
>> -if (s->vga.map_addr&&  d->io_regions[0].addr == PCI_BAR_UNMAPPED)
>> +if (s->vga.map_addr&&  d->io_regions[0].addr == PCI_BAR_UNMAPPED) {
>>   s->vga.map_addr = 0;
>> +s->vga.lfb_addr = 0;
>> +s->vga.lfb_end = 0;
>> +}
>>   cirrus_update_memory_access(s);
>>   }
>>

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux