mmc_init was always returning success -- now returns failure if
no card is present.

Signed-off-by: Steve Sakoman <[EMAIL PROTECTED]>
Signed-off-by: Dirk Behme <[EMAIL PROTECTED]>

---

* This patch applies on top of last 5 pending OMAP3 patches (in this order):

http://lists.denx.de/pipermail/u-boot/2008-November/043771.html
http://lists.denx.de/pipermail/u-boot/2008-November/043898.html
http://lists.denx.de/pipermail/u-boot/2008-November/043899.html
http://lists.denx.de/pipermail/u-boot/2008-November/044026.html
http://lists.denx.de/pipermail/u-boot/2008-November/044027.html

* Compile tested for Beagle, Overo, Panora and EVM. Boot tested on Beagle.

 drivers/mmc/omap3_mmc.c |   32 ++++++++++++++++----------------
 1 files changed, 16 insertions(+), 16 deletions(-)

Index: u-boot-arm/drivers/mmc/omap3_mmc.c
===================================================================
--- u-boot-arm.orig/drivers/mmc/omap3_mmc.c
+++ u-boot-arm/drivers/mmc/omap3_mmc.c
@@ -523,22 +523,22 @@ unsigned long mmc_bread(int dev_num, uns
 
 int mmc_init(int verbose)
 {
-       configure_mmc(&cur_card_data);
-
-       mmc_blk_dev.if_type = IF_TYPE_MMC;
-       mmc_blk_dev.part_type = PART_TYPE_DOS;
-       mmc_blk_dev.dev = 0;
-       mmc_blk_dev.lun = 0;
-       mmc_blk_dev.type = 0;
-
-       /* FIXME fill in the correct size (is set to 32MByte) */
-       mmc_blk_dev.blksz = MMCSD_SECTOR_SIZE;
-       mmc_blk_dev.lba = 0x10000;
-       mmc_blk_dev.removable = 0;
-       mmc_blk_dev.block_read = mmc_bread;
-
-       fat_register_device(&mmc_blk_dev, 1);
-       return 0;
+       if (configure_mmc(&cur_card_data) == 1) {
+               mmc_blk_dev.if_type = IF_TYPE_MMC;
+               mmc_blk_dev.part_type = PART_TYPE_DOS;
+               mmc_blk_dev.dev = 0;
+               mmc_blk_dev.lun = 0;
+               mmc_blk_dev.type = 0;
+
+               /* FIXME fill in the correct size (is set to 32MByte) */
+               mmc_blk_dev.blksz = MMCSD_SECTOR_SIZE;
+               mmc_blk_dev.lba = 0x10000;
+               mmc_blk_dev.removable = 0;
+               mmc_blk_dev.block_read = mmc_bread;
+
+               fat_register_device(&mmc_blk_dev, 1);
+               return 0;
+       } else return 1;
 }
 
 int mmc_read(ulong src, uchar *dst, int size)
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to