From 314284b1567f1ce29c19060641e7f213146f7ab8 Mon Sep 17 00:00:00 2001 From: Thierry Reding Date: Mon, 2 Jan 2012 01:15:36 +0000 Subject: mmc: Change board_mmc_getcd() function prototype. The new API no longer uses the extra cd parameter that was used to store the card presence state. Instead, this information is returned via the function's return value. board_mmc_getcd() returns -1 to indicate that no card-detection mechanism is implemented; 0 indicates that no card is present and 1 is returned if it was detected that a card is present. The rationale for this change can be found in the following email thread: http://lists.denx.de/pipermail/u-boot/2011-November/110180.html In summary, the old API was not consistent with the rest of the MMC API which always passes a struct mmc as the first parameter. Furthermore the cd parameter was used to mean "card absence" in some implementations and "card presence" in others. Signed-off-by: Thierry Reding Tested-by: Jason Liu --- include/mmc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/mmc.h') diff --git a/include/mmc.h b/include/mmc.h index 015a7f3..a850174 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -314,7 +314,7 @@ struct mmc *find_mmc_device(int dev_num); int mmc_set_dev(int dev_num); void print_mmc_devices(char separator); int get_mmc_num(void); -int board_mmc_getcd(u8 *cd, struct mmc *mmc); +int board_mmc_getcd(struct mmc *mmc); int mmc_switch_part(int dev_num, unsigned int part_num); #ifdef CONFIG_GENERIC_MMC -- cgit v1.1 From 48972d907a28de17c2a5108a3ee3d5f3eb434376 Mon Sep 17 00:00:00 2001 From: Thierry Reding Date: Mon, 2 Jan 2012 01:15:37 +0000 Subject: mmc: Implement card detection. Check for card detect each time an MMC/SD device is initialized. If card detection is not implemented, this code behaves as before and continues assuming a card is present. If no card is detected, has_init is reset for the MMC/SD device (to force initialization next time) and an error is returned. Signed-off-by: Thierry Reding Tested-by: Jason Liu --- include/mmc.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/mmc.h') diff --git a/include/mmc.h b/include/mmc.h index a850174..8744604 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -302,6 +302,7 @@ struct mmc { struct mmc_cmd *cmd, struct mmc_data *data); void (*set_ios)(struct mmc *mmc); int (*init)(struct mmc *mmc); + int (*getcd)(struct mmc *mmc); uint b_max; }; @@ -316,6 +317,7 @@ void print_mmc_devices(char separator); int get_mmc_num(void); int board_mmc_getcd(struct mmc *mmc); int mmc_switch_part(int dev_num, unsigned int part_num); +int mmc_getcd(struct mmc *mmc); #ifdef CONFIG_GENERIC_MMC int atmel_mci_init(void *regs); -- cgit v1.1