[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] ESP : Fix status register update
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH] ESP : Fix status register update |
Date: |
Fri, 28 Jan 2011 21:09:38 +0000 |
On Thu, Jan 27, 2011 at 7:06 PM, Olivier DANET <address@hidden> wrote:
>
> The Count to zero flag (STAT_TC) must not be cleared after an Interrupt Status
> register read.
This is not what the patch is supposed to do, STAT_TC is already not
cleared. I think you are trying to save Phase bits (2 to 0).
>
> Signed-off-by: Olivier Danet <address@hidden>
> ---
> hw/esp.c 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/hw/esp.c b/hw/esp.c
> index fa9d2a2..90bfdc6 100644
> --- a/hw/esp.c
> +++ b/hw/esp.c
> @@ -525,9 +525,9 @@ static uint32_t esp_mem_readb(void *opaque,
> target_phys_addr_t addr)
> except TC */
> old_val = s->rregs[ESP_RINTR];
> s->rregs[ESP_RINTR] = 0;
> - s->rregs[ESP_RSTAT] &= ~STAT_TC;
> s->rregs[ESP_RSEQ] = SEQ_CD;
> esp_lower_irq(s);
> + s->rregs[ESP_RSTAT] &= STAT_TC STAT_MI;
This seems to miss something, like ~( | ). Why move the line?