From: Igor Mammedov <imammedo@redhat.com>
To: Stefan Berger <stefanb@us.ibm.com>
Cc: crobinso@redhat.com, mst@redhat.com, qemu-devel@nongnu.org,
stefanb@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH 2/2] acpi: tpm: Get the interrupt the device model is using
Date: Mon, 4 Apr 2016 14:08:27 +0200 [thread overview]
Message-ID: <20160404140827.3be552b0@igors-macbook-pro.local> (raw)
In-Reply-To: <1459733876-22908-3-git-send-email-stefanb@us.ibm.com>
On Sun, 3 Apr 2016 21:37:56 -0400
Stefan Berger <stefanb@us.ibm.com> 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 <stefanb@linux.vnet.ibm.com>
> ---
> 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);
it's a bit confusing to read, provided that IRQ is an object property
I would just do here:
obj = object_resolve_path_type("", TYPE_TPM_TIS, NULL);
if (obj)
info->tpm_irq_num = object_property_get_int(obj, "irq", NULL);
may be do the same for version too and do away with tpm_get_*()
wrapper that pokes into object internals. (result is 1 less global
symbol to link and no ifdef magic in tpm.h)
> 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;
next prev parent reply other threads:[~2016-04-04 12:08 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-04 1:37 [Qemu-devel] [PATCH 0/2] acpi: tpm: Fix TPM ACPI description Stefan Berger
2016-04-04 1:37 ` [Qemu-devel] [PATCH 1/2] acpi: tpm: Fix TPM ACPI description (BZ 1281413) Stefan Berger
2016-04-04 9:04 ` Michael S. Tsirkin
2016-04-04 10:17 ` Stefan Berger
2016-04-04 11:49 ` Igor Mammedov
2016-04-04 1:37 ` [Qemu-devel] [PATCH 2/2] acpi: tpm: Get the interrupt the device model is using Stefan Berger
2016-04-04 9:01 ` Michael S. Tsirkin
2016-04-04 10:10 ` Stefan Berger
2016-04-04 10:12 ` Michael S. Tsirkin
2016-04-04 12:08 ` Igor Mammedov [this message]
2016-04-04 9:04 ` [Qemu-devel] [PATCH 0/2] acpi: tpm: Fix TPM ACPI description Michael S. Tsirkin
2016-04-04 10:31 ` Stefan Berger
2016-04-04 12:11 ` Igor Mammedov
2016-04-08 7:51 ` Michael S. Tsirkin
2016-04-08 8:13 ` Igor Mammedov
2016-04-04 16:00 ` Michael S. Tsirkin
2016-04-06 0:13 ` Stefan Berger
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=20160404140827.3be552b0@igors-macbook-pro.local \
--to=imammedo@redhat.com \
--cc=crobinso@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanb@linux.vnet.ibm.com \
--cc=stefanb@us.ibm.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).