1. 08 10月, 2019 2 次提交
  2. 12 9月, 2019 2 次提交
  3. 07 9月, 2019 2 次提交
  4. 06 9月, 2019 1 次提交
  5. 05 9月, 2019 6 次提交
  6. 31 8月, 2019 1 次提交
    • W
      mmc: invalidate block cache after hwpart switched successfully · 47b7fa30
      Weijie Gao 提交于
      eMMC device has multiple hw partitions both address from zero. However the
      mmc driver lacks block cache invalidation for switch hwpart. This causes a
      problem that data of current hw partition is cached before switching to
      another hw partition. And the following read operation of the latter hw
      partition will get wrong data when reading from the addresses that have
      been cached previously.
      
      To solve this problem, invalidate block cache after a successful
      mmc_switch_part() operation.
      Signed-off-by: NWeijie Gao <weijie.gao@mediatek.com>
      Tested-by: NFelix Brack <fb@ltec.ch>
      47b7fa30
  7. 27 8月, 2019 3 次提交
    • C
      mmc: stm32_sdmmc2: reload watchdog · 48ac723a
      Christophe Kerello 提交于
      This patch solves a watchdog reset issue during mmc erase command.
      Signed-off-by: NChristophe Kerello <christophe.kerello@st.com>
      Signed-off-by: NPatrick Delaunay <patrick.delaunay@st.com>
      48ac723a
    • P
      mmc: sti_sdhci: Fix sdhci_setup_cfg() call. · 2e01fcf1
      Patrice Chotard 提交于
      host->mmc, host->mmc->dev and host->mmc->priv must be set
      before calling sdhci_setup_cfg() to avoid hang during mmc
      initialization.
      
      Thanks to commit 3d296365
      ("mmc: sdhci: Add support for sdhci-caps-mask") which put
      this issue into evidence.
      Signed-off-by: NPatrice Chotard <patrice.chotard@st.com>
      Reviewed-by: NKever Yang <kever.yang@rock-chips.com>
      2e01fcf1
    • P
      mmc: stm32_sdmmc2: Increase SDMMC_BUSYD0END_TIMEOUT_US · 23441fbf
      Patrice Chotard 提交于
      Increase SDMMC_BUSYD0END_TIMEOUT_US from 1s to 2s to
      avoid timeout error during blocks erase on some sdcard
      
      Issue seen on Kingston 16GB :
        Device: STM32 SDMMC2
        Manufacturer ID: 27
        OEM: 5048
        Name: SD16G
        Bus Speed: 50000000
        Mode: SD High Speed (50MHz)
        card capabilities: widths [4, 1] modes [SD Legacy, SD High Speed (50MHz)]
        host capabilities: widths [4, 1] modes [MMC legacy, SD Legacy, MMC High Speed (26MHz), SD High Speed (50MHz), MMC High Speed (52MHz)]
        Rd Block Len: 512
        SD version 3.0
        High Capacity: Yes
        Capacity: 14.5 GiB
        Bus Width: 4-bit
        Erase Group Size: 512 Bytes
      
      Issue reproduced with following command:
      
      STM32MP> mmc erase 0 100000
      
      MMC erase: dev # 0, block # 0, count 1048576 ... mmc erase failed
      16384 blocks erased: ERROR
      
      By setting SDMMC_BUSYD0END_TIMEOUT_US at 2 seconds and by adding
      time measurement in stm32_sdmmc2_end_cmd() as shown below:
      
      	+start = get_timer(0);
      	/* Polling status register */
      	ret = readl_poll_timeout(priv->base + SDMMC_STA,
      				 status, status & mask,
       				 SDMMC_BUSYD0END_TIMEOUT_US);
      
      	+printf("time = %ld ms\n", get_timer(start));
      
      We get the following trace:
      
      STM32MP> mmc erase 0  100000
      
      MMC erase: dev # 0, block # 0, count 1048576 ...
      time = 17 ms
      time = 1 ms
      time = 1025 ms
      time = 54 ms
      time = 56 ms
      time = 1021 ms
      time = 57 ms
      time = 56 ms
      time = 1020 ms
      time = 53 ms
      time = 57 ms
      time = 1021 ms
      time = 53 ms
      time = 57 ms
      time = 1313 ms
      time = 54 ms
      time = 56 ms
      time = 1026 ms
      time = 54 ms
      time = 56 ms
      time = 1036 ms
      time = 54 ms
      time = 56 ms
      time = 1028 ms
      time = 53 ms
      time = 56 ms
      time = 1027 ms
      time = 54 ms
      time = 56 ms
      time = 1024 ms
      time = 54 ms
      time = 56 ms
      time = 1020 ms
      time = 54 ms
      time = 57 ms
      time = 1023 ms
      time = 54 ms
      time = 56 ms
      time = 1033 ms
      time = 53 ms
      time = 57 ms
      ....
      time = 53 ms
      time = 57 ms
      time = 1021 ms
      time = 56 ms
      time = 56 ms
      time = 1026 ms
      time = 54 ms
      time = 56 ms
      1048576 blocks erased: OK
      
      We see that 1 second timeout is not enough, we also see one measurement
      up to 1313 ms. Set the timeout to 2 second to keep a security margin.
      Signed-off-by: NPatrice Chotard <patrice.chotard@st.com>
      23441fbf
  8. 24 8月, 2019 1 次提交
  9. 22 8月, 2019 1 次提交
  10. 21 8月, 2019 1 次提交
  11. 12 8月, 2019 1 次提交
  12. 10 8月, 2019 1 次提交
  13. 09 8月, 2019 9 次提交
  14. 31 7月, 2019 5 次提交
  15. 27 7月, 2019 1 次提交
  16. 20 7月, 2019 1 次提交
  17. 18 7月, 2019 1 次提交
  18. 17 7月, 2019 1 次提交