lkml.org 
[lkml]   [2018]   [Sep]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 071/126] tpm_tis_spi: Pass the SPI IRQ down to the driver
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

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

    From: Linus Walleij <linus.walleij@linaro.org>

    [ Upstream commit 1a339b658d9dbe1471f67b78237cf8fa08bbbeb5 ]

    An SPI TPM device managed directly on an embedded board using
    the SPI bus and some GPIO or similar line as IRQ handler will
    pass the IRQn from the TPM device associated with the SPI
    device. This is already handled by the SPI core, so make sure
    to pass this down to the core as well.

    (The TPM core habit of using -1 to signal no IRQ is dubious
    (as IRQ 0 is NO_IRQ) but I do not want to mess with that
    semantic in this patch.)

    Cc: Mark Brown <broonie@kernel.org>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/char/tpm/tpm_tis_spi.c | 9 ++++++++-
    1 file changed, 8 insertions(+), 1 deletion(-)

    --- a/drivers/char/tpm/tpm_tis_spi.c
    +++ b/drivers/char/tpm/tpm_tis_spi.c
    @@ -188,6 +188,7 @@ static const struct tpm_tis_phy_ops tpm_
    static int tpm_tis_spi_probe(struct spi_device *dev)
    {
    struct tpm_tis_spi_phy *phy;
    + int irq;

    phy = devm_kzalloc(&dev->dev, sizeof(struct tpm_tis_spi_phy),
    GFP_KERNEL);
    @@ -200,7 +201,13 @@ static int tpm_tis_spi_probe(struct spi_
    if (!phy->iobuf)
    return -ENOMEM;

    - return tpm_tis_core_init(&dev->dev, &phy->priv, -1, &tpm_spi_phy_ops,
    + /* If the SPI device has an IRQ then use that */
    + if (dev->irq > 0)
    + irq = dev->irq;
    + else
    + irq = -1;
    +
    + return tpm_tis_core_init(&dev->dev, &phy->priv, irq, &tpm_spi_phy_ops,
    NULL);
    }


    \
     
     \ /
      Last update: 2018-09-18 01:28    [W:9.529 / U:0.248 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site