]> Git Repo - linux.git/commitdiff
Merge tag 'mmc-v5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
authorLinus Torvalds <[email protected]>
Wed, 28 Apr 2021 22:56:51 +0000 (15:56 -0700)
committerLinus Torvalds <[email protected]>
Wed, 28 Apr 2021 22:56:51 +0000 (15:56 -0700)
Pull MMC and MEMSTICK updates from Ulf Hansson:
 "MMC core:
   - Fix hanging on I/O during system suspend for removable cards
   - Set read only for SD cards with permanent write protect bit
   - Power cycle the SD/SDIO card if CMD11 fails for UHS voltage
   - Issue a cache flush for eMMC only when it's enabled
   - Adopt to updated cache ctrl settings for eMMC from MMC ioctls
   - Use use device property API when parsing voltages
   - Don't retry eMMC sanitize cmds
   - Use the timeout from the MMC ioctl for eMMC santize cmds

  MMC host:
   - mmc_spi: Make of_mmc_spi.c resource provider agnostic
   - mmc_spi: Use polling for card detect even without voltage-ranges
   - sdhci: Check for reset prior to DMA address unmap
   - sdhci-acpi: Add support for the AMDI0041 eMMC controller variant
   - sdhci-esdhc-imx: Depending on OF Kconfig and cleanup code
   - sdhci-pci: Add PCI IDs for Intel LKF
   - sdhci-pci: Fix initialization of some SD cards for Intel BYT
   - sdhci-pci-gli: Various improvements for GL97xx variants
   - sdhci-of-dwcmshc: Enable support for MMC_CAP_WAIT_WHILE_BUSY
   - sdhci-of-dwcmshc: Add ACPI support for BlueField-3 SoC
   - sdhci-of-dwcmshc: Add Rockchip platform support
   - tmio/renesas_sdhi: Extend support for reset and use a reset controller
   - tmio/renesas_sdhi: Enable support for MMC_CAP_WAIT_WHILE_BUSY
   - tmio/renesas_sdhi: Various improvements

  MEMSTICK:
   - Minor improvements/cleanups"

* tag 'mmc-v5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (79 commits)
  mmc: block: Issue a cache flush only when it's enabled
  memstick: r592: ignore kfifo_out() return code again
  mmc: block: Update ext_csd.cache_ctrl if it was written
  mmc: mmc_spi: Make of_mmc_spi.c resource provider agnostic
  mmc: mmc_spi: Use already parsed IRQ
  mmc: mmc_spi: Drop unused NO_IRQ definition
  mmc: mmc_spi: Set up polling even if voltage-ranges is not present
  mmc: core: Convert mmc_of_parse_voltage() to use device property API
  mmc: core: Correct descriptions in mmc_of_parse()
  mmc: dw_mmc-rockchip: Just set default sample value for legacy mode
  mmc: sdhci-s3c: constify uses of driver/match data
  mmc: sdhci-s3c: correct kerneldoc of sdhci_s3c_drv_data
  mmc: sdhci-s3c: simplify getting of_device_id match data
  mmc: tmio: always restore irq register
  mmc: sdhci-pci-gli: Enlarge ASPM L1 entry delay of GL975x
  mmc: core: Let eMMC sanitize not retry in case of timeout/failure
  mmc: core: Add a retries parameter to __mmc_switch function
  memstick: r592: remove unused variable
  mmc: sdhci-st: Remove unnecessary error log
  mmc: sdhci-msm: Remove unnecessary error log
  ...

1  2 
drivers/mmc/host/sdhci-msm.c

index d170c919e6e44ee9012f558c289f3f484ad490ad,d0767a54078f68e18334f4f260e12fab3eee11bb..e44b7a66b73c55b0364b0f54d7ee3025f5f26d36
@@@ -264,6 -264,7 +264,6 @@@ struct sdhci_msm_host 
        struct clk_bulk_data bulk_clks[5];
        unsigned long clk_rate;
        struct mmc_host *mmc;
 -      struct opp_table *opp_table;
        bool use_14lpp_dll_reset;
        bool tuning_done;
        bool calibration_done;
@@@ -1863,7 -1864,6 +1863,6 @@@ static int sdhci_msm_ice_init(struct sd
        struct mmc_host *mmc = msm_host->mmc;
        struct device *dev = mmc_dev(mmc);
        struct resource *res;
-       int err;
  
        if (!(cqhci_readl(cq_host, CQHCI_CAP) & CQHCI_CAP_CS))
                return 0;
        }
  
        msm_host->ice_mem = devm_ioremap_resource(dev, res);
-       if (IS_ERR(msm_host->ice_mem)) {
-               err = PTR_ERR(msm_host->ice_mem);
-               dev_err(dev, "Failed to map ICE registers; err=%d\n", err);
-               return err;
-       }
+       if (IS_ERR(msm_host->ice_mem))
+               return PTR_ERR(msm_host->ice_mem);
  
        if (!sdhci_msm_ice_supported(msm_host))
                goto disable;
@@@ -2550,15 -2547,17 +2546,15 @@@ static int sdhci_msm_probe(struct platf
        if (ret)
                goto bus_clk_disable;
  
 -      msm_host->opp_table = dev_pm_opp_set_clkname(&pdev->dev, "core");
 -      if (IS_ERR(msm_host->opp_table)) {
 -              ret = PTR_ERR(msm_host->opp_table);
 +      ret = devm_pm_opp_set_clkname(&pdev->dev, "core");
 +      if (ret)
                goto bus_clk_disable;
 -      }
  
        /* OPP table is optional */
 -      ret = dev_pm_opp_of_add_table(&pdev->dev);
 +      ret = devm_pm_opp_of_add_table(&pdev->dev);
        if (ret && ret != -ENODEV) {
                dev_err(&pdev->dev, "Invalid OPP table in Device tree\n");
 -              goto opp_put_clkname;
 +              goto bus_clk_disable;
        }
  
        /* Vote for maximum clock rate for maximum performance */
        ret = clk_bulk_prepare_enable(ARRAY_SIZE(msm_host->bulk_clks),
                                      msm_host->bulk_clks);
        if (ret)
 -              goto opp_cleanup;
 +              goto bus_clk_disable;
  
        /*
         * xo clock is needed for FLL feature of cm_dll.
@@@ -2729,6 -2728,10 +2725,6 @@@ pm_runtime_disable
  clk_disable:
        clk_bulk_disable_unprepare(ARRAY_SIZE(msm_host->bulk_clks),
                                   msm_host->bulk_clks);
 -opp_cleanup:
 -      dev_pm_opp_of_remove_table(&pdev->dev);
 -opp_put_clkname:
 -      dev_pm_opp_put_clkname(msm_host->opp_table);
  bus_clk_disable:
        if (!IS_ERR(msm_host->bus_clk))
                clk_disable_unprepare(msm_host->bus_clk);
@@@ -2747,6 -2750,8 +2743,6 @@@ static int sdhci_msm_remove(struct plat
  
        sdhci_remove_host(host, dead);
  
 -      dev_pm_opp_of_remove_table(&pdev->dev);
 -      dev_pm_opp_put_clkname(msm_host->opp_table);
        pm_runtime_get_sync(&pdev->dev);
        pm_runtime_disable(&pdev->dev);
        pm_runtime_put_noidle(&pdev->dev);
This page took 0.080203 seconds and 4 git commands to generate.