forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/drivers/mmc/core/bus.c
....@@ -1,12 +1,9 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * linux/drivers/mmc/core/bus.c
34 *
45 * Copyright (C) 2003 Russell King, All Rights Reserved.
56 * 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.
107 *
118 * MMC card bus driver model
129 */
....@@ -71,6 +68,7 @@
7168 {
7269 struct mmc_card *card = mmc_dev_to_card(dev);
7370 const char *type;
71
+ unsigned int i;
7472 int retval = 0;
7573
7674 switch (card->type) {
....@@ -96,6 +94,31 @@
9694 return retval;
9795 }
9896
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
+
99122 retval = add_uevent_var(env, "MMC_NAME=%s", mmc_card_name(card));
100123 if (retval)
101124 return retval;