mmc: sdio: Parse CISTPL_VERS_1 major and minor revision numbers
authorPali Rohár <pali@kernel.org>
Mon, 27 Jul 2020 13:38:35 +0000 (15:38 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 7 Sep 2020 07:11:28 +0000 (09:11 +0200)
They should indicate compliance of standard.

Signed-off-by: Pali Rohár <pali@kernel.org>
Link: https://lore.kernel.org/r/20200727133837.19086-3-pali@kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/core/sdio_cis.c
include/linux/mmc/card.h
include/linux/mmc/sdio_func.h

index 3efaa95..44bea5e 100644 (file)
 static int cistpl_vers_1(struct mmc_card *card, struct sdio_func *func,
                         const unsigned char *buf, unsigned size)
 {
+       u8 major_rev, minor_rev;
        unsigned i, nr_strings;
        char **buffer, *string;
 
        if (size < 2)
                return 0;
 
+       major_rev = buf[0];
+       minor_rev = buf[1];
+
        /* Find all null-terminated (including zero length) strings in
           the TPLLV1_INFO field. Trailing garbage is ignored. */
        buf += 2;
@@ -60,9 +64,13 @@ static int cistpl_vers_1(struct mmc_card *card, struct sdio_func *func,
        }
 
        if (func) {
+               func->major_rev = major_rev;
+               func->minor_rev = minor_rev;
                func->num_info = nr_strings;
                func->info = (const char**)buffer;
        } else {
+               card->major_rev = major_rev;
+               card->minor_rev = minor_rev;
                card->num_info = nr_strings;
                card->info = (const char**)buffer;
        }
index 7d46411..42df06c 100644 (file)
@@ -297,6 +297,8 @@ struct mmc_card {
        struct sdio_cis         cis;            /* common tuple info */
        struct sdio_func        *sdio_func[SDIO_MAX_FUNCS]; /* SDIO functions (devices) */
        struct sdio_func        *sdio_single_irq; /* SDIO function when only one IRQ active */
+       u8                      major_rev;      /* major revision number */
+       u8                      minor_rev;      /* minor revision number */
        unsigned                num_info;       /* number of info strings */
        const char              **info;         /* info strings */
        struct sdio_func_tuple  *tuples;        /* unknown common tuples */
index fa2aaab..478855b 100644 (file)
@@ -51,6 +51,8 @@ struct sdio_func {
 
        u8                      *tmpbuf;        /* DMA:able scratch buffer */
 
+       u8                      major_rev;      /* major revision number */
+       u8                      minor_rev;      /* minor revision number */
        unsigned                num_info;       /* number of info strings */
        const char              **info;         /* info strings */