OSDN Git Service

Merge tag 'mmc-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 4 Jul 2017 18:11:56 +0000 (11:11 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 4 Jul 2017 18:11:56 +0000 (11:11 -0700)
Pull MMC updates from Ulf Hansson:
 "MMC core:
   - Add support to enable irq wake for slot gpio
   - Remove MMC_CAP2_HC_ERASE_SZ and make it the default behaviour
   - Improve R1 response error checks for stop commands
   - Cleanup and clarify some MMC specific code
   - Keep card runtime resumed while adding SDIO function devices
   - Use device_property_read instead of of_property_read in mmc_of_parse()
   - Move boot partition locking into a driver op to enable proper I/O scheduling
   - Move multi/single-ioctl() to use block layer to enable proper I/O scheduling
   - Delete bounce buffer Kconfig option
   - Improve the eMMC HW reset support provided via the eMMC pwrseq
   - Add host API to manage SDIO IRQs from a workqueue

  MMC host:
   - dw_mmc: Drop support for multiple slots
   - dw_mmc: Use device_property_read instead of of_property_read
   - dw_mmc-rockchip: Optional improved tuning to greatly decrease tuning time
   - dw_mmc: Prevent rpm suspend for SDIO IRQs instead of always for SDIO cards
   - dw_mmc: Convert to use MMC_CAP2_SDIO_IRQ_NOTHREAD for SDIO IRQs
   - omap_hsmmc: Convert to mmc regulator APIs to consolidate code
   - omap_hsmmc: Deprecate "vmmc_aux" in DT and use "vqmmc" instead
   - tmio: make sure SDIO gets reinitialized after resume
   - sdhi: add CMD23 support to R-Car Gen2 & Gen3
   - tmio: add CMD23 support
   - sdhi/tmio: Refactor code and rename files to simplify Kconfig options
   - sdhci-pci: Enable card detect wake for Intel BYT-related SD controllers
   - sdhci-pci: Add support for Intel CNP
   - sdhci-esdhc-imx: Remove ENGcm07207 workaround - allow multi block transfers
   - sdhci-esdhc-imx: Allow all supported prescaler values
   - sdhci-esdhc-imx: Fix DAT line software reset
   - sdhci-esdhc: Add SDHCI_QUIRK_32BIT_DMA_ADDR
   - atmel-mci: Drop AVR32 support"

* tag 'mmc-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (86 commits)
  mmc: dw_mmc: remove the unnecessary slot variable
  mmc: dw_mmc: use the 'slot' instead of 'cur_slot'
  mmc: dw_mmc: remove the 'id' arguments about functions relevant to slot
  mmc: dw_mmc: change the array of slots
  mmc: dw_mmc: remove the loop about finding slots
  mmc: dw_mmc: deprecated the "num-slots" property
  mmc: dw_mmc-rockchip: parse rockchip, desired-num-phases from DT
  dt-bindings: rockchip-dw-mshc: add optional rockchip, desired-num-phases
  mmc: renesas-sdhi: improve checkpatch cleanness
  mmc: tmio: improve checkpatch cleanness
  mmc: sdhci-pci: Enable card detect wake for Intel BYT-related SD controllers
  mmc: slot-gpio: Add support to enable irq wake on cd_irq
  mmc: core: Remove MMC_CAP2_HC_ERASE_SZ
  mmc: core: for data errors, take response of stop cmd into account
  mmc: core: check also R1 response for stop commands
  mmc: core: Clarify code for sending CSD
  mmc: core: Drop mmc_all_send_cid() and use mmc_send_cxd_native() instead
  mmc: core: Re-factor code for sending CID
  mmc: core: Remove redundant code in mmc_send_cid()
  mmc: core: Make mmc_can_reset() static
  ...

1  2 
MAINTAINERS
drivers/mmc/core/block.c
drivers/mmc/core/queue.c
drivers/mmc/host/sdhci-pci-core.c

diff --cc MAINTAINERS
Simple merge
@@@ -1646,8 -1686,8 +1691,8 @@@ static void mmc_blk_rw_cmd_abort(struc
  {
        if (mmc_card_removed(card))
                req->rq_flags |= RQF_QUIET;
 -      while (blk_end_request(req, -EIO, blk_rq_cur_bytes(req)));
 +      while (blk_end_request(req, BLK_STS_IOERR, blk_rq_cur_bytes(req)));
-       mmc_queue_req_free(mq, mqrq);
+       mq->qcnt--;
  }
  
  /**
@@@ -1666,8 -1706,8 +1711,8 @@@ static void mmc_blk_rw_try_restart(stru
         */
        if (mmc_card_removed(mq->card)) {
                req->rq_flags |= RQF_QUIET;
 -              blk_end_request_all(req, -EIO);
 +              blk_end_request_all(req, BLK_STS_IOERR);
-               mmc_queue_req_free(mq, mqrq);
+               mq->qcnt--; /* FIXME: just set to 0? */
                return;
        }
        /* Else proceed and try to restart the current async request */
@@@ -1816,10 -1852,10 +1857,10 @@@ static void mmc_blk_issue_rw_rq(struct 
                         * time, so we only reach here after trying to
                         * read a single sector.
                         */
 -                      req_pending = blk_end_request(old_req, -EIO,
 +                      req_pending = blk_end_request(old_req, BLK_STS_IOERR,
                                                      brq->data.blksz);
                        if (!req_pending) {
-                               mmc_queue_req_free(mq, mq_rq);
+                               mq->qcnt--;
                                mmc_blk_rw_try_restart(mq, new_req, mqrq_cur);
                                return;
                        }
@@@ -387,7 -265,9 +265,8 @@@ int mmc_init_queue(struct mmc_queue *mq
        if (mmc_can_erase(card))
                mmc_queue_setup_discard(mq->queue, card);
  
+       card->bouncesz = mmc_queue_calc_bouncesz(host);
        if (card->bouncesz) {
 -              blk_queue_bounce_limit(mq->queue, BLK_BOUNCE_ANY);
                blk_queue_max_hw_sectors(mq->queue, card->bouncesz / 512);
                blk_queue_max_segments(mq->queue, card->bouncesz / 512);
                blk_queue_max_segment_size(mq->queue, card->bouncesz);
Simple merge