mmc: sdio: Parse CISTPL_VERS_1 major and minor revision numbers
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>
This commit is contained in:
Родитель
8ebe260796
Коммит
78366e9cbd
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче