> -----Original Message----- > From: linux-mmc-owner@xxxxxxxxxxxxxxx [mailto:linux-mmc- > owner@xxxxxxxxxxxxxxx] On Behalf Of Shawn Lin > Sent: Wednesday, July 19, 2017 4:43 PM > To: Bough Chen <haibo.chen@xxxxxxx>; Adrian Hunter > <adrian.hunter@xxxxxxxxx>; Ulf Hansson <ulf.hansson@xxxxxxxxxx> > Cc: shawn.lin@xxxxxxxxxxxxxx; linux-mmc <linux-mmc@xxxxxxxxxxxxxxx>; Alex > Lemberg <alex.lemberg@xxxxxxxxxxx>; Mateusz Nowak > <mateusz.nowak@xxxxxxxxx>; Yuliy Izrailov <Yuliy.Izrailov@xxxxxxxxxxx>; > Jaehoon Chung <jh80.chung@xxxxxxxxxxx>; Dong Aisheng > <dongas86@xxxxxxxxx>; Das Asutosh <asutoshd@xxxxxxxxxxxxxx>; Zhangfei > Gao <zhangfei.gao@xxxxxxxxx>; Dorfman Konstantin > <kdorfman@xxxxxxxxxxxxx>; Sahitya Tummala <stummala@xxxxxxxxxxxxxx>; > Harjani Ritesh <riteshh@xxxxxxxxxxxxxx>; Venu Byravarasu > <vbyravarasu@xxxxxxxxxx>; Linus Walleij <linus.walleij@xxxxxxxxxx> > Subject: Re: [PATCH V3 00/11] mmc: Add Command Queue support > > Hi Bough, > > On 2017/7/19 15:44, Shawn Lin wrote: > > Hi Bough, > > > > On 2017/7/19 13:48, Bough Chen wrote: > >> > >>> -----Original Message----- > >>> From: Shawn Lin [mailto:shawn.lin@xxxxxxxxxxxxxx] > >>> Sent: Wednesday, July 19, 2017 11:42 AM > >>> To: Adrian Hunter <adrian.hunter@xxxxxxxxx>; Ulf Hansson > >>> <ulf.hansson@xxxxxxxxxx> > >>> Cc: shawn.lin@xxxxxxxxxxxxxx; linux-mmc <linux-mmc@xxxxxxxxxxxxxxx>; > >>> Bough Chen <haibo.chen@xxxxxxx>; Alex Lemberg > >>> <alex.lemberg@xxxxxxxxxxx>; Mateusz Nowak > <mateusz.nowak@xxxxxxxxx>; > >>> Yuliy Izrailov <Yuliy.Izrailov@xxxxxxxxxxx>; Jaehoon Chung > >>> <jh80.chung@xxxxxxxxxxx>; Dong Aisheng <dongas86@xxxxxxxxx>; Das > >>> Asutosh <asutoshd@xxxxxxxxxxxxxx>; Zhangfei Gao > >>> <zhangfei.gao@xxxxxxxxx>; Dorfman Konstantin > >>> <kdorfman@xxxxxxxxxxxxxx>; David Griego <david.griego@xxxxxxxxxx>; > >>> Sahitya Tummala <stummala@xxxxxxxxxxxxxx>; Harjani Ritesh > >>> <riteshh@xxxxxxxxxxxxxx>; Venu Byravarasu <vbyravarasu@xxxxxxxxxx>; > >>> Linus Walleij <linus.walleij@xxxxxxxxxx> > >>> Subject: Re: [PATCH V3 00/11] mmc: Add Command Queue support > >>> > >>> Hi Adrian, > >>> > >>> On 2017/6/15 19:06, Adrian Hunter wrote: > >>>> Hi > >>>> > >>>> Here is V3 of the hardware command queue patches without the > >>>> software command queue patches. > >>>> > >>> > >>> I can now boot my board with v4.13 finally this morning[1] and apply > >>> this patchset and add my private patch for supporting CQE for > >>> sdhci-of-arasan. > >>> Great to see it works and I don't see any regression until now. I > >>> need more test but I would appreciate it if Ulf can pick all these > >>> up into linux-next that folks can help to test and not need to > >>> manually apply them. And it will be easy for me to submit patch for > >>> sdhci-of-arasan to support CQE later. > >>> > >>> I haven't have time to review all these, but I will do it next week. > >>> And I will also try to run more iozone/fio to see how much it gains > >>> when enabling CQE, comparing to non-CQE support. > >>> > >>> But at least currently feels free to add: > >>> > >>> Tested-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxx> > >>> > >> Hi Shawn, > >> > >> Do you enable Runtime PM for cqhci? On my side, once enable cqhci > >> runtime PM, always get timeout issue, I'm debug this issue these days. > >> If not add runtime PM support for cqhci, everything work fine > >> including DCMD. > >> > > > > Aha, no! > > > > I said "I need more test" which should include runtime PM. As you > > could see sdhci-of-arsan still lacks proper runtime PM support, so I > > will try to hack it locally and re-test cqe then. > > > > Well, I add runtime PM support for sdhci-of-arasan locally and re-test CQE > again. All thing work well as expected for two hours! > > Hi Adrian, After debug, I find the root cause of the runtime PM issue for imx8, it is our IC limitation, when we do __cqhci_disable(), clear CQHCI_ENABLE of register CQHCI_CFG, it will impact the sdhci register 0x48, disable DMA and disable block count. When I restore these bits, cqhci runtime suspend/resume works well. So now I'd like to add: Tested-by: Haibo Chen <haibo.chen@xxxxxxx> [ 1.311132] sdhci: Secure Digital Host Controller Interface driver [ 1.317324] sdhci: Copyright(c) Pierre Ossman [ 1.322082] sdhci-pltfm: SDHCI platform and OF driver helper [ 1.328626] mmc0: CQHCI version 5.10 [ 1.375351] mmc0: SDHCI controller on 5b010000.usdhc [5b010000.usdhc] using ADMA [ 1.391558] galcore 80000000.imx8_gpu_ss: bound 53100000.gpu (ops gpu_ops) [ 1.398450] Galcore version 6.2.2.93313 [ 1.477485] ledtrig-cpu: registered to indicate activity on CPUs [ 1.477984] mmc0: Command Queue Engine enabled [ 1.478008] mmc0: new HS400 Enhanced strobe MMC card at address 0001 [ 1.478585] mmcblk0: mmc0:0001 032G34 29.1 GiB [ 1.478741] mmcblk0boot0: mmc0:0001 032G34 partition 1 8.00 MiB [ 1.478892] mmcblk0boot1: mmc0:0001 032G34 partition 2 8.00 MiB [ 1.479039] mmcblk0rpmb: mmc0:0001 032G34 partition 3 4.00 MiB > > Thanks. > > > > > >> Haibo Chen > >>> Thanks. > >>> > >>> [1]: > >>> > >>> [ 2.859981] Synopsys Designware Multimedia Card Interface Driver > >>> [ 2.924875] sdhci-pltfm: SDHCI platform and OF driver helper > >>> [ 2.994768] mmc0: CQHCI version 5.10 > >>> [ 3.053787] mmc0: SDHCI controller on fe330000.sdhci [fe330000.sdhci] > >>> using ADMA > >>> [ 3.073534] ledtrig-cpu: registered to indicate activity on CPUs > >>> [ 3.079239] usbcore: registered new interface driver usbhid > >>> [ 3.080183] usbhid: USB HID core driver > >>> [ 3.094221] NET: Registered protocol family 17 > >>> [ 3.095069] 9pnet: Installing 9P2000 support > >>> [ 3.095710] Key type dns_resolver registered > >>> [ 3.098371] registered taskstats version 1 > >>> [ 3.155130] hctosys: unable to open rtc device (rtc0) > >>> [ 3.166186] mmc0: Command Queue Engine enabled > >>> [ 3.168514] mmc0: new HS400 Enhanced strobe MMC card at address > 0001 > >>> [ 3.188861] mmcblk0: mmc0:0001 AJNB4R 14.6 GiB > >>> [ 3.200381] mmcblk0boot0: mmc0:0001 AJNB4R partition 1 4.00 MiB > >>> [ 3.200702] ALSA device list: > >>> [ 3.200747] No soundcards found. > >>> [ 3.204146] ttyS2 - failed to request DMA > >>> [ 3.212363] mmcblk0boot1: mmc0:0001 AJNB4R partition 2 4.00 MiB > >>> [ 3.221031] mmcblk0rpmb: mmc0:0001 AJNB4R partition 3 4.00 MiB > >>> [ 3.277636] mmcblk0: p1 p2 p3 p4 p5 p6 p7 > >>> [ 3.522777] EXT4-fs (mmcblk0p7): recovery complete > >>> [ 3.523907] EXT4-fs (mmcblk0p7): mounted filesystem with ordered data > >>> mode. Opts: (null) > >>> [ 3.524699] VFS: Mounted root (ext4 filesystem) on device 179:7. > >>> > >>> > >>>> Is there any chance of this being queued for v4.13? > >>>> > >>>> > >>>> Changes since V2: > >>>> Dropped patches that have been applied. > >>>> Re-based > >>>> Added "mmc: sdhci-pci: Add CQHCI support for Intel GLK" > >>>> > >>>> Changes since V1: > >>>> > >>>> "Share mmc request array between partitions" is dependent > >>>> on changes in "Introduce queue semantics", so added that > >>>> and block fixes: > >>>> > >>>> Added "Fix is_waiting_last_req set incorrectly" > >>>> Added "Fix cmd error reset failure path" > >>>> Added "Use local var for mqrq_cur" > >>>> Added "Introduce queue semantics" > >>>> > >>>> Changes since RFC: > >>>> > >>>> Re-based on next. > >>>> Added comment about command queue priority. > >>>> Added some acks and reviews. > >>>> > >>>> > >>>> Adrian Hunter (10): > >>>> mmc: core: Add mmc_retune_hold_now() > >>>> mmc: core: Add members to mmc_request and mmc_data for CQE's > >>>> mmc: host: Add CQE interface > >>>> mmc: core: Turn off CQE before sending commands > >>>> mmc: core: Add support for handling CQE requests > >>>> mmc: mmc: Enable Command Queuing > >>>> mmc: mmc: Enable CQE's > >>>> mmc: block: Prepare CQE data > >>>> mmc: block: Add CQE support > >>>> mmc: sdhci-pci: Add CQHCI support for Intel GLK > >>>> > >>>> Venkat Gopalakrishnan (1): > >>>> mmc: cqhci: support for command queue enabled host > >>>> > >>>> drivers/mmc/core/block.c | 240 +++++++- > >>>> drivers/mmc/core/block.h | 7 + > >>>> drivers/mmc/core/bus.c | 7 + > >>>> drivers/mmc/core/core.c | 156 ++++- > >>>> drivers/mmc/core/host.c | 6 + > >>>> drivers/mmc/core/host.h | 1 + > >>>> drivers/mmc/core/mmc.c | 30 +- > >>>> drivers/mmc/core/queue.c | 273 ++++++++- > >>>> drivers/mmc/core/queue.h | 42 +- > >>>> drivers/mmc/host/Kconfig | 14 + > >>>> drivers/mmc/host/Makefile | 1 + > >>>> drivers/mmc/host/cqhci.c | 1146 > >>> +++++++++++++++++++++++++++++++++++++ > >>>> drivers/mmc/host/cqhci.h | 240 ++++++++ > >>>> drivers/mmc/host/sdhci-pci-core.c | 153 ++++- > >>>> include/linux/mmc/core.h | 18 +- > >>>> include/linux/mmc/host.h | 24 + > >>>> include/trace/events/mmc.h | 36 +- > >>>> 17 files changed, 2354 insertions(+), 40 deletions(-) > >>>> create mode 100644 drivers/mmc/host/cqhci.c > >>>> create mode 100644 drivers/mmc/host/cqhci.h > >>>> > >>>> > >>>> Regards > >>>> Adrian > >>>> -- > >>>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" > >>>> in the body of a message to majordomo@xxxxxxxxxxxxxxx More > >>>> majordomo info at http://vger.kernel.org/majordomo-info.html > >>>> > >>>> > >>>> > >> > >> -- > >> To unsubscribe from this list: send the line "unsubscribe linux-mmc" > >> in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo > >> info at http://vger.kernel.org/majordomo-info.html > >> > >> > >> > > > > > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the > body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at > http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html