All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Kosina <jkosina@suse.cz>
To: Matthew Garrett <mjg@redhat.com>
Cc: srajiv@linux.vnet.ibm.com, debora@linux.vnet.ibm.com,
	m.selhorst@sirrix.com, linux-kernel@vger.kernel.org,
	jmorris@namei.org, "Rafael J. Wysocki" <rjw@sisk.pl>
Subject: Re: [PATCH] tpm: Autodetect itpm devices
Date: Mon, 29 Nov 2010 16:54:50 +0100 (CET)	[thread overview]
Message-ID: <alpine.LRH.2.00.1011291651280.28682@twin.jikos.cz> (raw)
In-Reply-To: <1287697360-31273-1-git-send-email-mjg@redhat.com>


[ added James Morris and Rafael to CC ]

On Thu, 21 Oct 2010, Matthew Garrett wrote:

> Some Lenovos have TPMs that require a quirk to function correctly. This can
> be autodetected by checking whether the device has a _HID of INTC0102. This
> is an invalid PNPid, and as such is discarded by the pnp layer - however
> it's still present in the ACPI code, so we can pull it out that way. This
> means that the quirk won't be automatically applied on non-ACPI systems,
> but without ACPI we don't have any way to identify the chip anyway so I
> don't think that's a great concern.
> 
> Signed-off-by: Matthew Garrett <mjg@redhat.com>

	Tested-by: Jiri Kosina <jkosina@suse.cz>

This definitely is .37 material still, as it fixes suspend regression on 
various machines, as reported here:

	http://lkml.org/lkml/2010/11/1/493
	http://lkml.org/lkml/2010/11/29/219

James, any word on this? It doesn't seem to be present either in Linus' 
tree, nor in linux-next.

Thanks.

> ---
>  drivers/char/tpm/tpm_tis.c |   24 ++++++++++++++++++++++++
>  1 files changed, 24 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
> index 1030f84..c17a305 100644
> --- a/drivers/char/tpm/tpm_tis.c
> +++ b/drivers/char/tpm/tpm_tis.c
> @@ -25,6 +25,7 @@
>  #include <linux/slab.h>
>  #include <linux/interrupt.h>
>  #include <linux/wait.h>
> +#include <linux/acpi.h>
>  #include "tpm.h"
>  
>  #define TPM_HEADER_SIZE 10
> @@ -78,6 +79,26 @@ enum tis_defaults {
>  static LIST_HEAD(tis_chips);
>  static DEFINE_SPINLOCK(tis_lock);
>  
> +#ifdef CONFIG_ACPI
> +static int is_itpm(struct pnp_dev *dev)
> +{
> +	struct acpi_device *acpi = pnp_acpi_device(dev);
> +	struct acpi_hardware_id *id;
> +
> +	list_for_each_entry(id, &acpi->pnp.ids, list) {
> +		if (!strcmp("INTC0102", id->id))
> +			return 1;
> +	}
> +
> +	return 0;
> +}
> +#else
> +static int is_itpm(struct pnp_dev *dev)
> +{
> +	return 0;
> +}
> +#endif
> +
>  static int check_locality(struct tpm_chip *chip, int l)
>  {
>  	if ((ioread8(chip->vendor.iobase + TPM_ACCESS(l)) &
> @@ -472,6 +493,9 @@ static int tpm_tis_init(struct device *dev, resource_size_t start,
>  		 "1.2 TPM (device-id 0x%X, rev-id %d)\n",
>  		 vendor >> 16, ioread8(chip->vendor.iobase + TPM_RID(0)));
>  
> +	if (is_itpm(to_pnp_dev(dev)))
> +		itpm = 1;
> +
>  	if (itpm)
>  		dev_info(dev, "Intel iTPM workaround enabled\n");
>  
> 

-- 
Jiri Kosina
SUSE Labs, Novell Inc.


  parent reply	other threads:[~2010-11-29 15:54 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-21 21:42 [PATCH] tpm: Autodetect itpm devices Matthew Garrett
2010-10-26 13:14 ` Rajiv Andrade
2010-11-01 21:19 ` [2.6.37-rc1 REGRESSION] suspend fails on x200 (was Re: [PATCH] tpm: Autodetect itpm devices) Andy Isaacson
2010-11-01 21:32   ` Matthew Garrett
2010-11-02  1:31     ` Andy Isaacson
2010-11-02  2:36       ` Andy Isaacson
2010-11-02  3:47         ` Rafael J. Wysocki
2010-11-02  4:24           ` Andy Isaacson
2010-11-29 15:54 ` Jiri Kosina [this message]
2010-11-29 22:08   ` [PATCH] tpm: Autodetect itpm devices James Morris
2010-11-29 23:06     ` Rajiv Andrade

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=alpine.LRH.2.00.1011291651280.28682@twin.jikos.cz \
    --to=jkosina@suse.cz \
    --cc=debora@linux.vnet.ibm.com \
    --cc=jmorris@namei.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m.selhorst@sirrix.com \
    --cc=mjg@redhat.com \
    --cc=rjw@sisk.pl \
    --cc=srajiv@linux.vnet.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 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.