qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] i8259: Do not clear level-triggered lines in IR


From: Jan Kiszka
Subject: Re: [Qemu-devel] [PATCH] i8259: Do not clear level-triggered lines in IRR on init
Date: Mon, 13 Feb 2012 12:37:47 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

On 2012-01-24 16:29, Jan Kiszka wrote:
> When an input line is handled as level-triggered, it will immediately
> raise an IRQ on the output of a PIC again that goes through an init
> reset. So only clear the edge-triggered inputs from IRR in that
> scenario.
> 
> Signed-off-by: Jan Kiszka <address@hidden>
> ---
>  hw/i8259.c        |    2 +-
>  hw/i8259_common.c |    2 +-
>  hw/kvm/i8259.c    |    2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/i8259.c b/hw/i8259.c
> index 3005ce2..264bfc6 100644
> --- a/hw/i8259.c
> +++ b/hw/i8259.c
> @@ -231,8 +231,8 @@ static void pic_reset(DeviceState *dev)
>  {
>      PICCommonState *s = DO_UPCAST(PICCommonState, dev.qdev, dev);
>  
> -    pic_init_reset(s);
>      s->elcr = 0;
> +    pic_init_reset(s);
>  }
>  
>  static void pic_ioport_write(void *opaque, target_phys_addr_t addr64,
> diff --git a/hw/i8259_common.c b/hw/i8259_common.c
> index e515876..37aeee2 100644
> --- a/hw/i8259_common.c
> +++ b/hw/i8259_common.c
> @@ -28,7 +28,7 @@
>  void pic_reset_common(PICCommonState *s)
>  {
>      s->last_irr = 0;
> -    s->irr = 0;
> +    s->irr &= s->elcr;
>      s->imr = 0;
>      s->isr = 0;
>      s->priority_add = 0;
> diff --git a/hw/kvm/i8259.c b/hw/kvm/i8259.c
> index 64bb5c2..298d9ca 100644
> --- a/hw/kvm/i8259.c
> +++ b/hw/kvm/i8259.c
> @@ -84,8 +84,8 @@ static void kvm_pic_reset(DeviceState *dev)
>  {
>      PICCommonState *s = DO_UPCAST(PICCommonState, dev.qdev, dev);
>  
> -    pic_reset_common(s);
>      s->elcr = 0;
> +    pic_reset_common(s);
>  
>      kvm_pic_put(s);
>  }

Ping.

Jan

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]