Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756805AbbLATTa (ORCPT ); Tue, 1 Dec 2015 14:19:30 -0500 Received: from metis.ext.4.pengutronix.de ([92.198.50.35]:50462 "EHLO metis.ext.4.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750876AbbLATT2 (ORCPT ); Tue, 1 Dec 2015 14:19:28 -0500 Date: Tue, 1 Dec 2015 20:19:18 +0100 From: Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= To: Jason Gunthorpe Cc: Jarkko Sakkinen , tpmdd-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, Martin Wilck , Peter Huewe Subject: Re: [PATCH v2 1/3] tpm_tis: Disable interrupt auto probing on a per-device basis Message-ID: <20151201191918.GD5072@pengutronix.de> References: <1448996309-15220-1-git-send-email-jgunthorpe@obsidianresearch.com> <1448996309-15220-2-git-send-email-jgunthorpe@obsidianresearch.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1448996309-15220-2-git-send-email-jgunthorpe@obsidianresearch.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::c0 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2733 Lines: 79 Hello, On Tue, Dec 01, 2015 at 11:58:27AM -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. > > Signed-off-by: Jason Gunthorpe > --- > drivers/char/tpm/tpm_tis.c | 16 +++++++--------- > 1 file changed, 7 insertions(+), 9 deletions(-) > > diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c > index 8a3509cb10da..0a2d94f3d679 100644 > --- a/drivers/char/tpm/tpm_tis.c > +++ b/drivers/char/tpm/tpm_tis.c > @@ -69,7 +69,7 @@ enum tis_defaults { > struct tpm_info { > unsigned long start; > unsigned long len; > - unsigned int irq; > + int irq; I'd add a comment here about the possible values of irq and their interpretation. Something like: /* * irq > 0 means: use irq $irq; * irq = 0 means: autoprobe for an irq; * irq = -1 means: no irq support */ > }; > > static struct tpm_info tis_default_info = { > @@ -807,7 +807,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 +895,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 +906,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; It's definitly a nice improvement of this patch that the init functions don't change the module parameter any more. (I didn't check if all changes are gone now, but at least it's two modifications less.) Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ | -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/