qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 2/2] acpi: tpm: Get the interrupt the device mod


From: Stefan Berger
Subject: Re: [Qemu-devel] [PATCH 2/2] acpi: tpm: Get the interrupt the device model is using
Date: Mon, 4 Apr 2016 06:10:38 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.1

On 04/04/2016 05:01 AM, Michael S. Tsirkin wrote:
On Sun, Apr 03, 2016 at 09:37:56PM -0400, Stefan Berger wrote:
Get the interrupt the TPM device model is using. Do not activate
the interrupt in the ACPI description yet since the current
default value clashes with other devices.

Signed-off-by: Stefan Berger <address@hidden>
Is this doing anything at all then?

It's fixing the retrieval of data from the TPM model.

I'd rather keep cleanups until post-2.6.

---
  hw/i386/acpi-build.c | 5 +++--
  hw/tpm/tpm_tis.c     | 5 ++++-
  include/sysemu/tpm.h | 6 +++---
  3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index e11c721..ae872a1 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -105,6 +105,7 @@ typedef struct AcpiMiscInfo {
      bool is_piix4;
      bool has_hpet;
      TPMVersion tpm_version;
+    uint32_t tpm_irq_num;
      const unsigned char *dsdt_code;
      unsigned dsdt_size;
      uint16_t pvpanic_port;
@@ -203,7 +204,7 @@ static void acpi_get_misc_info(AcpiMiscInfo *info)
      }
info->has_hpet = hpet_find();
-    info->tpm_version = tpm_get_version();
+    info->tpm_version = tpm_get_parameters(&info->tpm_irq_num);
      info->pvpanic_port = pvpanic_port();
      info->applesmc_io_base = applesmc_port();
  }
@@ -2345,7 +2346,7 @@ build_dsdt(GArray *table_data, GArray *linker,
              crs = aml_resource_template();
              aml_append(crs, aml_memory32_fixed(TPM_TIS_ADDR_BASE,
                         TPM_TIS_ADDR_SIZE, AML_READ_WRITE));
-            //aml_append(crs, aml_irq_no_flags(TPM_TIS_IRQ));
+            //aml_append(crs, aml_irq_no_flags(misc->tpm_irq_num));
              aml_append(dev, aml_name_decl("_CRS", crs));
              aml_append(sb_scope, dev);
          }
diff --git a/hw/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c
index 381e726..9f5b2f7 100644
--- a/hw/tpm/tpm_tis.c
+++ b/hw/tpm/tpm_tis.c
@@ -967,9 +967,12 @@ static int tpm_tis_do_startup_tpm(TPMState *s)
  /*
   * Get the TPMVersion of the backend device being used
   */
-TPMVersion tpm_tis_get_tpm_version(Object *obj)
+TPMVersion tpm_tis_get_tpm_parameters(Object *obj, uint32_t *irq_num)
  {
      TPMState *s = TPM(obj);
+    TPMTISEmuState *tis = &s->s.tis;
+
+    *irq_num = tis->irq_num;
return tpm_backend_get_tpm_version(s->be_driver);
  }
diff --git a/include/sysemu/tpm.h b/include/sysemu/tpm.h
index c8afa17..5be45d9 100644
--- a/include/sysemu/tpm.h
+++ b/include/sysemu/tpm.h
@@ -26,17 +26,17 @@ typedef enum  TPMVersion {
      TPM_VERSION_2_0 = 2,
  } TPMVersion;
-TPMVersion tpm_tis_get_tpm_version(Object *obj);
+TPMVersion tpm_tis_get_tpm_parameters(Object *obj, uint32_t *irq_num);
#define TYPE_TPM_TIS "tpm-tis" -static inline TPMVersion tpm_get_version(void)
+static inline TPMVersion tpm_get_parameters(uint32_t *irq_num)
  {
  #ifdef CONFIG_TPM
      Object *obj = object_resolve_path_type("", TYPE_TPM_TIS, NULL);
if (obj) {
-        return tpm_tis_get_tpm_version(obj);
+        return tpm_tis_get_tpm_parameters(obj, irq_num);
      }
  #endif
      return TPM_VERSION_UNSPEC;
--
2.5.5




reply via email to

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