1. 06 Aug, 2019 2 commits
    • Kevin Hao's avatar
      mmc: cavium: Set the correct dma max segment size for mmc_host · fa25eba6
      Kevin Hao authored
      We have set the mmc_host.max_seg_size to 8M, but the dma max segment
      size of PCI device is set to 64K by default in function pci_device_add().
      The mmc_host.max_seg_size is used to set the max segment size of
      the blk queue. Then this mismatch will trigger a calltrace like below
      when a bigger than 64K segment request arrives at mmc dev. So we should
      consider the limitation of the cvm_mmc_host when setting the
      mmc_host.max_seg_size.
        DMA-API: thunderx_mmc 0000:01:01.4: mapping sg segment longer than device claims to support [len=131072] [max=65536]
        WARNING: CPU: 6 PID: 238 at kernel/dma/debug.c:1221 debug_dma_map_sg+0x2b8/0x350
        Modules linked in:
        CPU: 6 PID: 238 Comm: kworker/6:1H Not tainted 5.3.0-rc1-next-20190724-yocto-standard+ #62
        Hardware name: Marvell OcteonTX CN96XX board (DT)
        Workqueue: kblockd blk_mq_run_work_fn
        pstate: 80c00009 (Nzcv daif +PAN +UAO)
        pc : debug_dma_map_sg+0x2b8/0x350
        lr : debug_dma_map_sg+0x2b8/0x350
        sp : ffff00001770f9e0
        x29: ffff00001770f9e0 x28: ffffffff00000000
        x27: 00000000ffffffff x26: ffff800bc2c73180
        x25: ffff000010e83700 x24: 0000000000000002
        x23: 0000000000000001 x22: 0000000000000001
        x21: 0000000000000000 x20: ffff800bc48ba0b0
        x19: ffff800bc97e8c00 x18: ffffffffffffffff
        x17: 0000000000000000 x16: 0000000000000000
        x15: ffff000010e835c8 x14: 6874207265676e6f
        x13: 6c20746e656d6765 x12: 7320677320676e69
        x11: 7070616d203a342e x10: 31303a31303a3030
        x9 : 303020636d6d5f78 x8 : 35363d78616d5b20
        x7 : 00000000000002fd x6 : ffff000010fd57dc
        x5 : 0000000000000000 x4 : ffff0000106c61f0
        x3 : 00000000ffffffff x2 : 0000800bee060000
        x1 : 7010678df3041a00 x0 : 0000000000000000
        Call trace:
         debug_dma_map_sg+0x2b8/0x350
         cvm_mmc_request+0x3c4/0x988
         __mmc_start_request+0x9c/0x1f8
         mmc_start_request+0x7c/0xb0
         mmc_blk_mq_issue_rq+0x5c4/0x7b8
         mmc_mq_queue_rq+0x11c/0x278
         blk_mq_dispatch_rq_list+0xb0/0x568
         blk_mq_do_dispatch_sched+0x6c/0x108
         blk_mq_sched_dispatch_requests+0x110/0x1b8
         __blk_mq_run_hw_queue+0xb0/0x118
         blk_mq_run_work_fn+0x28/0x38
         process_one_work+0x210/0x490
         worker_thread+0x48/0x458
         kthread+0x130/0x138
         ret_from_fork+0x10/0x1c
      Signed-off-by: default avatarKevin Hao <haokexin@gmail.com>
      Fixes: ba3869ff ("mmc: cavium: Add core MMC driver for Cavium SOCs")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      fa25eba6
    • Baolin Wang's avatar
      mmc: sdhci-sprd: Fix the incorrect soft reset operation when runtime resuming · c6303c5d
      Baolin Wang authored
      The SD host controller specification defines 3 types software reset:
      software reset for data line, software reset for command line and software
      reset for all. Software reset for all means this reset affects the entire
      Host controller except for the card detection circuit.
      
      In sdhci_runtime_resume_host() we always do a software "reset for all",
      which causes the Spreadtrum variant controller to work abnormally after
      resuming. To fix the problem, let's do a software reset for the data and
      the command part, rather than "for all".
      
      However, as sdhci_runtime_resume() is a common sdhci function and we don't
      want to change the behaviour for other variants, let's introduce a new
      in-parameter for it. This enables the caller to decide if a "reset for all"
      shall be done or not.
      Signed-off-by: default avatarBaolin Wang <baolin.wang@linaro.org>
      Fixes: fb8bd90f ("mmc: sdhci-sprd: Add Spreadtrum's initial host controller")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      c6303c5d
  2. 05 Aug, 2019 1 commit
  3. 04 Aug, 2019 10 commits
  4. 03 Aug, 2019 27 commits