lkml.org 
[lkml]   [2021]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.13 254/800] tpm_tis_spi: add missing SPI device ID entries
    Date
    From: Javier Martinez Canillas <javierm@redhat.com>

    [ Upstream commit c46ed2281bbe4b84e6f3d4bdfb0e4e9ab813fa9d ]

    The SPI core always reports a "MODALIAS=spi:<foo>", even if the device was
    registered via OF. This means that this module won't auto-load if a DT has
    for example has a node with a compatible "infineon,slb9670" string.

    In that case kmod will expect a "MODALIAS=of:N*T*Cinfineon,slb9670" uevent
    but instead will get a "MODALIAS=spi:slb9670", which is not present in the
    kernel module aliases:

    $ modinfo drivers/char/tpm/tpm_tis_spi.ko | grep alias
    alias: of:N*T*Cgoogle,cr50C*
    alias: of:N*T*Cgoogle,cr50
    alias: of:N*T*Ctcg,tpm_tis-spiC*
    alias: of:N*T*Ctcg,tpm_tis-spi
    alias: of:N*T*Cinfineon,slb9670C*
    alias: of:N*T*Cinfineon,slb9670
    alias: of:N*T*Cst,st33htpm-spiC*
    alias: of:N*T*Cst,st33htpm-spi
    alias: spi:cr50
    alias: spi:tpm_tis_spi
    alias: acpi*:SMO0768:*

    To workaround this issue, add in the SPI device ID table all the entries
    that are present in the OF device ID table.

    Reported-by: Alexander Wellbrock <a.wellbrock@mailbox.org>
    Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
    Tested-by: Peter Robinson <pbrobinson@gmail.com>
    Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
    Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/char/tpm/tpm_tis_spi_main.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/drivers/char/tpm/tpm_tis_spi_main.c b/drivers/char/tpm/tpm_tis_spi_main.c
    index 3856f6ebcb34..de4209003a44 100644
    --- a/drivers/char/tpm/tpm_tis_spi_main.c
    +++ b/drivers/char/tpm/tpm_tis_spi_main.c
    @@ -260,6 +260,8 @@ static int tpm_tis_spi_remove(struct spi_device *dev)
    }

    static const struct spi_device_id tpm_tis_spi_id[] = {
    + { "st33htpm-spi", (unsigned long)tpm_tis_spi_probe },
    + { "slb9670", (unsigned long)tpm_tis_spi_probe },
    { "tpm_tis_spi", (unsigned long)tpm_tis_spi_probe },
    { "cr50", (unsigned long)cr50_spi_probe },
    {}
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-12 10:28    [W:2.405 / U:1.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site