1. 30 7月, 2018 2 次提交
  2. 16 7月, 2018 35 次提交
  3. 09 7月, 2018 1 次提交
    • S
      mmc: sdhci-esdhc-imx: allow 1.8V modes without 100/200MHz pinctrl states · 92748bea
      Stefan Agner 提交于
      If pinctrl nodes for 100/200MHz are missing, the controller should
      not select any mode which need signal frequencies 100MHz or higher.
      To prevent such speed modes the driver currently uses the quirk flag
      SDHCI_QUIRK2_NO_1_8_V. This works nicely for SD cards since 1.8V
      signaling is required for all faster modes and slower modes use 3.3V
      signaling only.
      
      However, there are eMMC modes which use 1.8V signaling and run below
      100MHz, e.g. DDR52 at 1.8V. With using SDHCI_QUIRK2_NO_1_8_V this
      mode is prevented. When using a fixed 1.8V regulator as vqmmc-supply
      the stack has no valid mode to use. In this tenuous situation the
      kernel continuously prints voltage switching errors:
        mmc1: Switching to 3.3V signalling voltage failed
      
      Avoid using SDHCI_QUIRK2_NO_1_8_V and prevent faster modes by
      altering the SDHCI capability register. With that the stack is able
      to select 1.8V modes even if no faster pinctrl states are available:
        # cat /sys/kernel/debug/mmc1/ios
        ...
        timing spec:    8 (mmc DDR52)
        signal voltage: 1 (1.80 V)
        ...
      
      Link: http://lkml.kernel.org/r/20180628081331.13051-1-stefan@agner.chSigned-off-by: NStefan Agner <stefan@agner.ch>
      Fixes: ad93220d ("mmc: sdhci-esdhc-imx: change pinctrl state according
      to uhs mode")
      Cc: <stable@vger.kernel.org> # v4.13+
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      92748bea
  4. 05 7月, 2018 1 次提交
    • S
      mmc: sunxi: Disable irq during pm_suspend · b8ba3578
      Stefan Mavrodiev 提交于
      When mmc host controller enters suspend state, the clocks are
      disabled, but irqs are not. For some reason the irqchip emits
      false interrupts, which causes system lock loop.
      
      Debug log is:
        ...
        sunxi-mmc 1c11000.mmc: setting clk to 52000000, rounded 51200000
        sunxi-mmc 1c11000.mmc: enabling the clock
        sunxi-mmc 1c11000.mmc: cmd 13(8000014d) arg 10000 ie 0x0000bbc6 len 0
        sunxi-mmc 1c11000.mmc: irq: rq (ptrval) mi 00000004 idi 00000000
        sunxi-mmc 1c11000.mmc: cmd 6(80000146) arg 3210101 ie 0x0000bbc6 len 0
        sunxi-mmc 1c11000.mmc: irq: rq (ptrval) mi 00000004 idi 00000000
        sunxi-mmc 1c11000.mmc: cmd 13(8000014d) arg 10000 ie 0x0000bbc6 len 0
        sunxi-mmc 1c11000.mmc: irq: rq (ptrval) mi 00000004 idi 00000000
        mmc1: new DDR MMC card at address 0001
        mmcblk1: mmc1:0001 AGND3R 14.6 GiB
        mmcblk1boot0: mmc1:0001 AGND3R partition 1 4.00 MiB
        mmcblk1boot1: mmc1:0001 AGND3R partition 2 4.00 MiB
        sunxi-mmc 1c11000.mmc: cmd 18(80003352) arg 0 ie 0x0000fbc2 len 409
        sunxi-mmc 1c11000.mmc: irq: rq (ptrval) mi 00004000 idi 00000002
         mmcblk1: p1
        sunxi-mmc 1c11000.mmc: irq: rq   (null) mi 00000000 idi 00000000
        sunxi-mmc 1c11000.mmc: irq: rq   (null) mi 00000000 idi 00000000
        sunxi-mmc 1c11000.mmc: irq: rq   (null) mi 00000000 idi 00000000
        sunxi-mmc 1c11000.mmc: irq: rq   (null) mi 00000000 idi 00000000
      and so on...
      
      This issue apears on eMMC cards, routed on MMC2 slot. The patch is
      tested with A20-OLinuXino-MICRO/LIME/LIME2 boards.
      
      Fixes: 9a8e1e8c ("mmc: sunxi: Add runtime_pm support")
      Signed-off-by: NStefan Mavrodiev <stefan@olimex.com>
      Acked-by: NMaxime Ripard <maxime.ripard@bootlin.com>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      b8ba3578
  5. 03 7月, 2018 1 次提交
    • X
      mmc: dw_mmc: fix card threshold control configuration · 7a6b9f4d
      x00270170 提交于
      Card write threshold control is supposed to be set since controller
      version 2.80a for data write in HS400 mode and data read in
      HS200/HS400/SDR104 mode. However the current code returns without
      configuring it in the case of data writing in HS400 mode.
      Meanwhile the patch fixes that the current code goes to
      'disable' when doing data reading in HS400 mode.
      
      Fixes: 7e4bf1bc ("mmc: dw_mmc: add the card write threshold for HS400 mode")
      Signed-off-by: NQing Xia <xiaqing17@hisilicon.com>
      Cc: stable@vger.kernel.org # v4.8+
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      7a6b9f4d