Commit 561e624c350ee5c281da46d23aee70b0523d4d39

Authored by Simon Glass
Committed by sjg
1 parent d5fe013cee

dm: mmc: Support erase

At present erase is not suported with CONFIG_DM_OPS. Add it so that MMC
devices can be erased.

Signed-off-by: Simon Glass <sjg@chromium.org>

Showing 3 changed files with 11 additions and 4 deletions Side-by-side Diff

drivers/mmc/mmc-uclass.c
... ... @@ -262,6 +262,7 @@
262 262 .read = mmc_bread,
263 263 #ifndef CONFIG_SPL_BUILD
264 264 .write = mmc_bwrite,
  265 + .erase = mmc_berase,
265 266 #endif
266 267 .select_hwpart = mmc_select_hwpart,
267 268 };
drivers/mmc/mmc_private.h
... ... @@ -29,15 +29,15 @@
29 29 #endif
30 30  
31 31 #if !(defined(CONFIG_SPL_BUILD) && !defined(CONFIG_SPL_SAVEENV))
32   -unsigned long mmc_berase(struct blk_desc *block_dev, lbaint_t start,
33   - lbaint_t blkcnt);
34 32  
35 33 #ifdef CONFIG_BLK
36 34 ulong mmc_bwrite(struct udevice *dev, lbaint_t start, lbaint_t blkcnt,
37 35 const void *src);
  36 +ulong mmc_berase(struct udevice *dev, lbaint_t start, lbaint_t blkcnt);
38 37 #else
39 38 ulong mmc_bwrite(struct blk_desc *block_dev, lbaint_t start, lbaint_t blkcnt,
40 39 const void *src);
  40 +ulong mmc_berase(struct blk_desc *block_dev, lbaint_t start, lbaint_t blkcnt);
41 41 #endif
42 42  
43 43 #else /* CONFIG_SPL_BUILD and CONFIG_SPL_SAVEENV is not defined */
drivers/mmc/mmc_write.c
... ... @@ -66,9 +66,15 @@
66 66 return err;
67 67 }
68 68  
69   -unsigned long mmc_berase(struct blk_desc *block_dev, lbaint_t start,
70   - lbaint_t blkcnt)
  69 +#ifdef CONFIG_BLK
  70 +ulong mmc_berase(struct udevice *dev, lbaint_t start, lbaint_t blkcnt)
  71 +#else
  72 +ulong mmc_berase(struct blk_desc *block_dev, lbaint_t start, lbaint_t blkcnt)
  73 +#endif
71 74 {
  75 +#ifdef CONFIG_BLK
  76 + struct blk_desc *block_dev = dev_get_uclass_platdata(dev);
  77 +#endif
72 78 int dev_num = block_dev->devnum;
73 79 int err = 0;
74 80 u32 start_rem, blkcnt_rem;