.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
---|
1 | 2 | /* |
---|
2 | 3 | * linux/drivers/mmc/core/bus.c |
---|
3 | 4 | * |
---|
4 | 5 | * Copyright (C) 2003 Russell King, All Rights Reserved. |
---|
5 | 6 | * Copyright (C) 2007 Pierre Ossman |
---|
6 | | - * |
---|
7 | | - * This program is free software; you can redistribute it and/or modify |
---|
8 | | - * it under the terms of the GNU General Public License version 2 as |
---|
9 | | - * published by the Free Software Foundation. |
---|
10 | 7 | * |
---|
11 | 8 | * MMC card bus driver model |
---|
12 | 9 | */ |
---|
.. | .. |
---|
71 | 68 | { |
---|
72 | 69 | struct mmc_card *card = mmc_dev_to_card(dev); |
---|
73 | 70 | const char *type; |
---|
| 71 | + unsigned int i; |
---|
74 | 72 | int retval = 0; |
---|
75 | 73 | |
---|
76 | 74 | switch (card->type) { |
---|
.. | .. |
---|
96 | 94 | return retval; |
---|
97 | 95 | } |
---|
98 | 96 | |
---|
| 97 | + if (card->type == MMC_TYPE_SDIO || card->type == MMC_TYPE_SD_COMBO) { |
---|
| 98 | + retval = add_uevent_var(env, "SDIO_ID=%04X:%04X", |
---|
| 99 | + card->cis.vendor, card->cis.device); |
---|
| 100 | + if (retval) |
---|
| 101 | + return retval; |
---|
| 102 | + |
---|
| 103 | + retval = add_uevent_var(env, "SDIO_REVISION=%u.%u", |
---|
| 104 | + card->major_rev, card->minor_rev); |
---|
| 105 | + if (retval) |
---|
| 106 | + return retval; |
---|
| 107 | + |
---|
| 108 | + for (i = 0; i < card->num_info; i++) { |
---|
| 109 | + retval = add_uevent_var(env, "SDIO_INFO%u=%s", i+1, card->info[i]); |
---|
| 110 | + if (retval) |
---|
| 111 | + return retval; |
---|
| 112 | + } |
---|
| 113 | + } |
---|
| 114 | + |
---|
| 115 | + /* |
---|
| 116 | + * SDIO (non-combo) cards are not handled by mmc_block driver and do not |
---|
| 117 | + * have accessible CID register which used by mmc_card_name() function. |
---|
| 118 | + */ |
---|
| 119 | + if (card->type == MMC_TYPE_SDIO) |
---|
| 120 | + return 0; |
---|
| 121 | + |
---|
99 | 122 | retval = add_uevent_var(env, "MMC_NAME=%s", mmc_card_name(card)); |
---|
100 | 123 | if (retval) |
---|
101 | 124 | return retval; |
---|