All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhu Guihua <zhugh.fnst@cn.fujitsu.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RESEND PATCH v4] acpi: add acpi_send_gpe_event() to rise sci for hotplug
Date: Thu, 28 May 2015 10:08:01 +0800	[thread overview]
Message-ID: <55667881.407@cn.fujitsu.com> (raw)
In-Reply-To: <20150515181831.5b4365d0@nial.brq.redhat.com>

This patch has been reviewed. Could it be merged?

Thanks,
Zhu

On 05/16/2015 12:18 AM, Igor Mammedov wrote:
> On Wed, 13 May 2015 17:21:36 +0800
> Zhu Guihua <zhugh.fnst@cn.fujitsu.com> wrote:
>
>> Add a new API named acpi_send_gpe_event() to send hotplug SCI.
>> This API can be used by pci, cpu and memory hotplug.
>>
>> This patch is rebased on master.
>>
>> Signed-off-by: Zhu Guihua <zhugh.fnst@cn.fujitsu.com>
> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
>
>> ---
>> v4:
>>   -rename struct AcpiHotplugStatus to AcpiGPEStatusBits
>>   -add comments for struct AcpiGPEStatusBits
>>
>> v3:
>>   -rebase on pci branch in mst's tree
>>   -use the new API for memory hot unplug
>>
>> v2:
>>   -fix the coding style
>> ---
>>   hw/acpi/core.c                   |  7 +++++++
>>   hw/acpi/cpu_hotplug.c            |  3 +--
>>   hw/acpi/memory_hotplug.c         |  6 ++----
>>   hw/acpi/pcihp.c                  |  7 ++-----
>>   include/hw/acpi/acpi.h           | 10 ++++++++++
>>   include/hw/acpi/memory_hotplug.h |  2 --
>>   include/hw/acpi/pc-hotplug.h     |  1 -
>>   7 files changed, 22 insertions(+), 14 deletions(-)
>>
>> diff --git a/hw/acpi/core.c b/hw/acpi/core.c
>> index 51913d6..8623993 100644
>> --- a/hw/acpi/core.c
>> +++ b/hw/acpi/core.c
>> @@ -666,6 +666,13 @@ uint32_t acpi_gpe_ioport_readb(ACPIREGS *ar, uint32_t addr)
>>       return val;
>>   }
>>   
>> +void acpi_send_gpe_event(ACPIREGS *ar, qemu_irq irq,
>> +                         AcpiGPEStatusBits status)
>> +{
>> +    ar->gpe.sts[0] |= status;
>> +    acpi_update_sci(ar, irq);
>> +}
>> +
>>   void acpi_update_sci(ACPIREGS *regs, qemu_irq irq)
>>   {
>>       int sci_level, pm1a_sts;
>> diff --git a/hw/acpi/cpu_hotplug.c b/hw/acpi/cpu_hotplug.c
>> index b8ebfad..f5b9972 100644
>> --- a/hw/acpi/cpu_hotplug.c
>> +++ b/hw/acpi/cpu_hotplug.c
>> @@ -59,8 +59,7 @@ void acpi_cpu_plug_cb(ACPIREGS *ar, qemu_irq irq,
>>           return;
>>       }
>>   
>> -    ar->gpe.sts[0] |= ACPI_CPU_HOTPLUG_STATUS;
>> -    acpi_update_sci(ar, irq);
>> +    acpi_send_gpe_event(ar, irq, ACPI_CPU_HOTPLUG_STATUS);
>>   }
>>   
>>   void acpi_cpu_hotplug_init(MemoryRegion *parent, Object *owner,
>> diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c
>> index 34cef1e..2ff0d5c 100644
>> --- a/hw/acpi/memory_hotplug.c
>> +++ b/hw/acpi/memory_hotplug.c
>> @@ -241,8 +241,7 @@ void acpi_memory_plug_cb(ACPIREGS *ar, qemu_irq irq, MemHotplugState *mem_st,
>>       mdev->is_inserting = true;
>>   
>>       /* do ACPI magic */
>> -    ar->gpe.sts[0] |= ACPI_MEMORY_HOTPLUG_STATUS;
>> -    acpi_update_sci(ar, irq);
>> +    acpi_send_gpe_event(ar, irq, ACPI_MEMORY_HOTPLUG_STATUS);
>>       return;
>>   }
>>   
>> @@ -260,8 +259,7 @@ void acpi_memory_unplug_request_cb(ACPIREGS *ar, qemu_irq irq,
>>       mdev->is_removing = true;
>>   
>>       /* Do ACPI magic */
>> -    ar->gpe.sts[0] |= ACPI_MEMORY_HOTPLUG_STATUS;
>> -    acpi_update_sci(ar, irq);
>> +    acpi_send_gpe_event(ar, irq, ACPI_MEMORY_HOTPLUG_STATUS);
>>   }
>>   
>>   void acpi_memory_unplug_cb(MemHotplugState *mem_st,
>> diff --git a/hw/acpi/pcihp.c b/hw/acpi/pcihp.c
>> index 1e11af9..fbbc4dd 100644
>> --- a/hw/acpi/pcihp.c
>> +++ b/hw/acpi/pcihp.c
>> @@ -45,7 +45,6 @@
>>   # define ACPI_PCIHP_DPRINTF(format, ...)     do { } while (0)
>>   #endif
>>   
>> -#define ACPI_PCI_HOTPLUG_STATUS 2
>>   #define ACPI_PCIHP_ADDR 0xae00
>>   #define ACPI_PCIHP_SIZE 0x0014
>>   #define ACPI_PCIHP_LEGACY_SIZE 0x000f
>> @@ -202,8 +201,7 @@ void acpi_pcihp_device_plug_cb(ACPIREGS *ar, qemu_irq irq, AcpiPciHpState *s,
>>   
>>       s->acpi_pcihp_pci_status[bsel].up |= (1U << slot);
>>   
>> -    ar->gpe.sts[0] |= ACPI_PCI_HOTPLUG_STATUS;
>> -    acpi_update_sci(ar, irq);
>> +    acpi_send_gpe_event(ar, irq, ACPI_PCI_HOTPLUG_STATUS);
>>   }
>>   
>>   void acpi_pcihp_device_unplug_cb(ACPIREGS *ar, qemu_irq irq, AcpiPciHpState *s,
>> @@ -220,8 +218,7 @@ void acpi_pcihp_device_unplug_cb(ACPIREGS *ar, qemu_irq irq, AcpiPciHpState *s,
>>   
>>       s->acpi_pcihp_pci_status[bsel].down |= (1U << slot);
>>   
>> -    ar->gpe.sts[0] |= ACPI_PCI_HOTPLUG_STATUS;
>> -    acpi_update_sci(ar, irq);
>> +    acpi_send_gpe_event(ar, irq, ACPI_PCI_HOTPLUG_STATUS);
>>   }
>>   
>>   static uint64_t pci_read(void *opaque, hwaddr addr, unsigned int size)
>> diff --git a/include/hw/acpi/acpi.h b/include/hw/acpi/acpi.h
>> index 1f678b4..9390997 100644
>> --- a/include/hw/acpi/acpi.h
>> +++ b/include/hw/acpi/acpi.h
>> @@ -91,6 +91,13 @@
>>   /* PM2_CNT */
>>   #define ACPI_BITMASK_ARB_DISABLE                0x0001
>>   
>> +/* These values are part of guest ABI, and can not be changed */
>> +typedef enum {
>> +    ACPI_PCI_HOTPLUG_STATUS = 2,
>> +    ACPI_CPU_HOTPLUG_STATUS = 4,
>> +    ACPI_MEMORY_HOTPLUG_STATUS = 8,
>> +} AcpiGPEStatusBits;
>> +
>>   /* structs */
>>   typedef struct ACPIPMTimer ACPIPMTimer;
>>   typedef struct ACPIPM1EVT ACPIPM1EVT;
>> @@ -172,6 +179,9 @@ void acpi_gpe_reset(ACPIREGS *ar);
>>   void acpi_gpe_ioport_writeb(ACPIREGS *ar, uint32_t addr, uint32_t val);
>>   uint32_t acpi_gpe_ioport_readb(ACPIREGS *ar, uint32_t addr);
>>   
>> +void acpi_send_gpe_event(ACPIREGS *ar, qemu_irq irq,
>> +                         AcpiGPEStatusBits status);
>> +
>>   void acpi_update_sci(ACPIREGS *acpi_regs, qemu_irq irq);
>>   
>>   /* acpi.c */
>> diff --git a/include/hw/acpi/memory_hotplug.h b/include/hw/acpi/memory_hotplug.h
>> index 986223b..1342adb 100644
>> --- a/include/hw/acpi/memory_hotplug.h
>> +++ b/include/hw/acpi/memory_hotplug.h
>> @@ -5,8 +5,6 @@
>>   #include "hw/acpi/acpi.h"
>>   #include "migration/vmstate.h"
>>   
>> -#define ACPI_MEMORY_HOTPLUG_STATUS 8
>> -
>>   /**
>>    * MemStatus:
>>    * @is_removing: the memory device in slot has been requested to be ejected.
>> diff --git a/include/hw/acpi/pc-hotplug.h b/include/hw/acpi/pc-hotplug.h
>> index 0513c1c..77b1569 100644
>> --- a/include/hw/acpi/pc-hotplug.h
>> +++ b/include/hw/acpi/pc-hotplug.h
>> @@ -16,7 +16,6 @@
>>    * ONLY DEFINEs are permited in this file since it's shared
>>    * between C and ASL code.
>>    */
>> -#define ACPI_CPU_HOTPLUG_STATUS 4
>>   
>>   /* Limit for CPU arch IDs for CPU hotplug. All hotpluggable CPUs should
>>    * have CPUClass.get_arch_id() < ACPI_CPU_HOTPLUG_ID_LIMIT.
> .
>

      reply	other threads:[~2015-05-28  2:09 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-13  9:21 [Qemu-devel] [RESEND PATCH v4] acpi: add acpi_send_gpe_event() to rise sci for hotplug Zhu Guihua
2015-05-15 16:18 ` Igor Mammedov
2015-05-28  2:08   ` Zhu Guihua [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55667881.407@cn.fujitsu.com \
    --to=zhugh.fnst@cn.fujitsu.com \
    --cc=imammedo@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.