Commit 78366e9c authored by Pali Rohár's avatar Pali Rohár Committed by Ulf Hansson
Browse files

mmc: sdio: Parse CISTPL_VERS_1 major and minor revision numbers



They should indicate compliance of standard.

Signed-off-by: default avatarPali Rohár <pali@kernel.org>
Link: https://lore.kernel.org/r/20200727133837.19086-3-pali@kernel.org


Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 8ebe2607
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -23,12 +23,16 @@
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;
	}
+2 −0
Original line number Diff line number Diff line
@@ -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 */
+2 −0
Original line number Diff line number Diff line
@@ -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 */