All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: Jason Gunthorpe
	<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
Cc: "Martin Wilck"
	<Martin.Wilck-RJz4owOZxyXQFUHtdCDX3A@public.gmane.org>,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	"Uwe Kleine-König"
	<u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
Subject: Re: [PATCH v3 2/7] tpm_tis: Disable interrupt auto probing on a per-device basis
Date: Sun, 3 Jan 2016 19:20:40 +0200	[thread overview]
Message-ID: <20160103172040.GB4155@intel.com> (raw)
In-Reply-To: <1450376600-6970-3-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>

On Thu, Dec 17, 2015 at 11:23:15AM -0700, Jason Gunthorpe wrote:
> Instead of clearing the global interrupts flag when any device
> does not have an interrupt just pass -1 through tpm_info.irq.
> 
> The only thing that asks for autoprobing is the force=1 path.

Sorry for my ignorance but what does this patch help? Why interrupts
flag is not enough?

> Signed-off-by: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
> Tested-by: Wilck, Martin <martin.wilck-RJz4owOZxyXQFUHtdCDX3A@public.gmane.org>
> Tested-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

Did I already give Tested-by's for this series (I did for those that
went into v4.5 pull request)?

/Jarkko

> ---
>  drivers/char/tpm/tpm_tis.c | 18 ++++++++++--------
>  1 file changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
> index 304323bdcaaa..fecd27b45fd1 100644
> --- a/drivers/char/tpm/tpm_tis.c
> +++ b/drivers/char/tpm/tpm_tis.c
> @@ -69,7 +69,11 @@ enum tis_defaults {
>  struct tpm_info {
>  	unsigned long start;
>  	unsigned long len;
> -	unsigned int irq;
> +	/* irq > 0 means: use irq $irq;
> +	 * irq = 0 means: autoprobe for an irq;
> +	 * irq = -1 means: no irq support
> +	 */
> +	int irq;
>  };
>  
>  static struct tpm_info tis_default_info = {
> @@ -807,7 +811,7 @@ static int tpm_tis_init(struct device *dev, struct tpm_info *tpm_info,
>  	/* INTERRUPT Setup */
>  	init_waitqueue_head(&chip->vendor.read_queue);
>  	init_waitqueue_head(&chip->vendor.int_queue);
> -	if (interrupts) {
> +	if (interrupts && tpm_info->irq != -1) {
>  		if (tpm_info->irq) {
>  			tpm_tis_probe_irq_single(chip, intmask, IRQF_SHARED,
>  						 tpm_info->irq);
> @@ -895,9 +899,9 @@ static SIMPLE_DEV_PM_OPS(tpm_tis_pm, tpm_pm_suspend, tpm_tis_resume);
>  
>  #ifdef CONFIG_PNP
>  static int tpm_tis_pnp_init(struct pnp_dev *pnp_dev,
> -				      const struct pnp_device_id *pnp_id)
> +			    const struct pnp_device_id *pnp_id)
>  {
> -	struct tpm_info tpm_info = tis_default_info;
> +	struct tpm_info tpm_info = {};
>  	acpi_handle acpi_dev_handle = NULL;
>  
>  	tpm_info.start = pnp_mem_start(pnp_dev, 0);
> @@ -906,7 +910,7 @@ static int tpm_tis_pnp_init(struct pnp_dev *pnp_dev,
>  	if (pnp_irq_valid(pnp_dev, 0))
>  		tpm_info.irq = pnp_irq(pnp_dev, 0);
>  	else
> -		interrupts = false;
> +		tpm_info.irq = -1;
>  
>  #ifdef CONFIG_ACPI
>  	if (pnp_acpi_device(pnp_dev)) {
> @@ -984,6 +988,7 @@ static int tpm_tis_acpi_init(struct acpi_device *acpi_dev)
>  		return -ENODEV;
>  
>  	INIT_LIST_HEAD(&resources);
> +	tpm_info.irq = -1;
>  	ret = acpi_dev_get_resources(acpi_dev, &resources, tpm_check_resource,
>  				     &tpm_info);
>  	if (ret < 0)
> @@ -991,9 +996,6 @@ static int tpm_tis_acpi_init(struct acpi_device *acpi_dev)
>  
>  	acpi_dev_free_resource_list(&resources);
>  
> -	if (!tpm_info.irq)
> -		interrupts = false;
> -
>  	if (is_itpm(acpi_dev))
>  		itpm = true;
>  
> -- 
> 2.1.4
> 

------------------------------------------------------------------------------

WARNING: multiple messages have this Message-ID (diff)
From: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
To: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Cc: tpmdd-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org,
	"Martin Wilck" <Martin.Wilck@ts.fujitsu.com>,
	"Peter Huewe" <peterhuewe@gmx.de>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Subject: Re: [PATCH v3 2/7] tpm_tis: Disable interrupt auto probing on a per-device basis
Date: Sun, 3 Jan 2016 19:20:40 +0200	[thread overview]
Message-ID: <20160103172040.GB4155@intel.com> (raw)
In-Reply-To: <1450376600-6970-3-git-send-email-jgunthorpe@obsidianresearch.com>

On Thu, Dec 17, 2015 at 11:23:15AM -0700, Jason Gunthorpe wrote:
> Instead of clearing the global interrupts flag when any device
> does not have an interrupt just pass -1 through tpm_info.irq.
> 
> The only thing that asks for autoprobing is the force=1 path.

Sorry for my ignorance but what does this patch help? Why interrupts
flag is not enough?

> Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
> Tested-by: Wilck, Martin <martin.wilck@ts.fujitsu.com>
> Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>

Did I already give Tested-by's for this series (I did for those that
went into v4.5 pull request)?

/Jarkko

> ---
>  drivers/char/tpm/tpm_tis.c | 18 ++++++++++--------
>  1 file changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
> index 304323bdcaaa..fecd27b45fd1 100644
> --- a/drivers/char/tpm/tpm_tis.c
> +++ b/drivers/char/tpm/tpm_tis.c
> @@ -69,7 +69,11 @@ enum tis_defaults {
>  struct tpm_info {
>  	unsigned long start;
>  	unsigned long len;
> -	unsigned int irq;
> +	/* irq > 0 means: use irq $irq;
> +	 * irq = 0 means: autoprobe for an irq;
> +	 * irq = -1 means: no irq support
> +	 */
> +	int irq;
>  };
>  
>  static struct tpm_info tis_default_info = {
> @@ -807,7 +811,7 @@ static int tpm_tis_init(struct device *dev, struct tpm_info *tpm_info,
>  	/* INTERRUPT Setup */
>  	init_waitqueue_head(&chip->vendor.read_queue);
>  	init_waitqueue_head(&chip->vendor.int_queue);
> -	if (interrupts) {
> +	if (interrupts && tpm_info->irq != -1) {
>  		if (tpm_info->irq) {
>  			tpm_tis_probe_irq_single(chip, intmask, IRQF_SHARED,
>  						 tpm_info->irq);
> @@ -895,9 +899,9 @@ static SIMPLE_DEV_PM_OPS(tpm_tis_pm, tpm_pm_suspend, tpm_tis_resume);
>  
>  #ifdef CONFIG_PNP
>  static int tpm_tis_pnp_init(struct pnp_dev *pnp_dev,
> -				      const struct pnp_device_id *pnp_id)
> +			    const struct pnp_device_id *pnp_id)
>  {
> -	struct tpm_info tpm_info = tis_default_info;
> +	struct tpm_info tpm_info = {};
>  	acpi_handle acpi_dev_handle = NULL;
>  
>  	tpm_info.start = pnp_mem_start(pnp_dev, 0);
> @@ -906,7 +910,7 @@ static int tpm_tis_pnp_init(struct pnp_dev *pnp_dev,
>  	if (pnp_irq_valid(pnp_dev, 0))
>  		tpm_info.irq = pnp_irq(pnp_dev, 0);
>  	else
> -		interrupts = false;
> +		tpm_info.irq = -1;
>  
>  #ifdef CONFIG_ACPI
>  	if (pnp_acpi_device(pnp_dev)) {
> @@ -984,6 +988,7 @@ static int tpm_tis_acpi_init(struct acpi_device *acpi_dev)
>  		return -ENODEV;
>  
>  	INIT_LIST_HEAD(&resources);
> +	tpm_info.irq = -1;
>  	ret = acpi_dev_get_resources(acpi_dev, &resources, tpm_check_resource,
>  				     &tpm_info);
>  	if (ret < 0)
> @@ -991,9 +996,6 @@ static int tpm_tis_acpi_init(struct acpi_device *acpi_dev)
>  
>  	acpi_dev_free_resource_list(&resources);
>  
> -	if (!tpm_info.irq)
> -		interrupts = false;
> -
>  	if (is_itpm(acpi_dev))
>  		itpm = true;
>  
> -- 
> 2.1.4
> 

  parent reply	other threads:[~2016-01-03 17:20 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-17 18:23 [PATCH v3 0/7] tpm_tis: Clean up force module parameter Jason Gunthorpe
2015-12-17 18:23 ` [PATCH v3 1/7] tpm_crb: Use the common ACPI definition of struct acpi_tpm2 Jason Gunthorpe
     [not found]   ` <1450376600-6970-2-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-01-03 17:09     ` Jarkko Sakkinen
2016-01-03 17:09       ` Jarkko Sakkinen
     [not found]       ` <20160103170906.GA4155-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-01-04 18:23         ` Jason Gunthorpe
2016-01-04 18:23           ` Jason Gunthorpe
     [not found]           ` <20160104182317.GB20016-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-01-04 18:49             ` Jarkko Sakkinen
2016-01-04 18:49               ` Jarkko Sakkinen
2015-12-17 18:23 ` [PATCH v3 2/7] tpm_tis: Disable interrupt auto probing on a per-device basis Jason Gunthorpe
     [not found]   ` <1450376600-6970-3-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-01-03 17:20     ` Jarkko Sakkinen [this message]
2016-01-03 17:20       ` Jarkko Sakkinen
     [not found]       ` <20160103172040.GB4155-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-01-04 18:24         ` Jason Gunthorpe
2016-01-04 18:24           ` Jason Gunthorpe
     [not found]           ` <20160104182442.GC20016-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-01-04 18:32             ` Jarkko Sakkinen
2016-01-04 18:32               ` Jarkko Sakkinen
2015-12-17 18:23 ` [PATCH v3 3/7] tpm_tis: Do not fall back to a hardcoded address for TPM2 Jason Gunthorpe
     [not found]   ` <1450376600-6970-4-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-12-18  9:34     ` Jarkko Sakkinen
2015-12-18  9:34       ` Jarkko Sakkinen
2015-12-18 16:51       ` Jason Gunthorpe
     [not found]         ` <20151218165127.GC7354-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-12-20 12:34           ` Jarkko Sakkinen
2015-12-20 12:34             ` Jarkko Sakkinen
2015-12-17 18:23 ` [PATCH v3 4/7] tpm_tis: Use devm_ioremap_resource Jason Gunthorpe
     [not found]   ` <1450376600-6970-5-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-01-03 17:23     ` Jarkko Sakkinen
2016-01-03 17:23       ` Jarkko Sakkinen
2015-12-17 18:23 ` [PATCH v3 5/7] tpm_tis: Clean up the force=1 module parameter Jason Gunthorpe
2016-01-03 17:26   ` Jarkko Sakkinen
2016-01-04 18:27     ` Jason Gunthorpe
2015-12-17 18:23 ` [PATCH v3 6/7] tpm_crb: Drop le32_to_cpu(ioread32(..)) Jason Gunthorpe
     [not found]   ` <1450376600-6970-7-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-01-03 17:28     ` Jarkko Sakkinen
2016-01-03 17:28       ` Jarkko Sakkinen
2015-12-17 18:23 ` [PATCH v3 7/7] tpm_crb: Use devm_ioremap_resource Jason Gunthorpe
     [not found]   ` <1450376600-6970-8-git-send-email-jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-01-03 17:32     ` Jarkko Sakkinen
2016-01-03 17:32       ` Jarkko Sakkinen
     [not found]       ` <20160103173213.GF4155-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-01-04 18:30         ` Jason Gunthorpe
2016-01-04 18:30           ` Jason Gunthorpe
2016-01-04 19:43           ` Jarkko Sakkinen

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=20160103172040.GB4155@intel.com \
    --to=jarkko.sakkinen-vuqaysv1563yd54fqh9/ca@public.gmane.org \
    --cc=Martin.Wilck-RJz4owOZxyXQFUHtdCDX3A@public.gmane.org \
    --cc=jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.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.