public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/2] mmc: sdhci-of-dwcmshc: Add CQE support
@ 2023-12-31 14:46 Sergey Khimich
  2023-12-31 14:46 ` [PATCH v5 1/2] mmc: cqhci: Add cqhci set_tran_desc() callback Sergey Khimich
  2023-12-31 14:46 ` [PATCH v5 2/2] mmc: sdhci-of-dwcmshc: Implement SDHCI CQE support Sergey Khimich
  0 siblings, 2 replies; 9+ messages in thread
From: Sergey Khimich @ 2023-12-31 14:46 UTC (permalink / raw)
  To: linux-mmc; +Cc: linux-kernel, Adrian Hunter, Ulf Hansson, Shawn Lin, Jyan Chou

Hello!

This is implementation of SDHCI CQE support for sdhci-of-dwcmshc driver.
For enabling CQE support just set 'supports-cqe' in your DevTree file
for appropriate mmc node.

Also, while implementing CQE support for the driver, I faced with a problem
which I will describe below.
According to the IP block documentation CQE works only with "AMDA-2 only"
mode which is activated only with v4 mode enabled. I see in dwcmshc_probe()
function that v4 mode gets enabled only for 'sdhci_dwcmshc_bf3_pdata'
platform data.

So my question is: is it correct to enable v4 mode for all platform data
if 'SDHCI_CAN_64BIT_V4' bit is set in hw?

Because I`m afraid that enabling v4 mode for some platforms could break
them down. On the other hand, if host controller says that it can do v4
(caps & SDHCI_CAN_64BIT_V4), lets do v4 or disable it manualy by some
quirk. Anyway - RFC.


v2:
 - Added dwcmshc specific cqe_disable hook to prevent losing
   in-flight cmd when an ioctl is issued and cqe_disable is called;

 - Added processing 128Mb boundary for the host memory data buffer size
   and the data buffer. For implementing this processing an extra
   callback is added to the struct 'sdhci_ops'.

 - Fixed typo.

v3:
 - Fix warning reported by kernel test robot:
        | Reported-by: kernel test robot <lkp@intel.com>
        | Closes: https://lore.kernel.org/oe-kbuild-all/202309270807.VoVn81m6-lkp@intel.com/
        | Closes: https://lore.kernel.org/oe-kbuild-all/202309300806.dcR19kcE-lkp@intel.com/

v4:
 - Data reset moved to custom driver tuning hook.
 - Removed unnecessary dwcmshc_sdhci_cqe_disable() func
 - Removed unnecessary dwcmshc_cqhci_set_tran_desc. Export and use
   cqhci_set_tran_desc() instead.
 - Provide a hook for cqhci_set_tran_desc() instead of cqhci_prep_tran_desc().
 - Fix typo: int_clok_disable --> int_clock_disable

v5:
 - Fix warning reported by kernel test robot:
	| Reported-by: kernel test robot <lkp@intel.com>
	| Closes: https://lore.kernel.org/oe-kbuild-all/202312301130.itEZhhI5-lkp@intel.com/




Sergey Khimich (2):
  mmc: cqhci: Add cqhci set_tran_desc() callback
  mmc: sdhci-of-dwcmshc: Implement SDHCI CQE support

 drivers/mmc/host/Kconfig            |   1 +
 drivers/mmc/host/cqhci-core.c       |  10 +-
 drivers/mmc/host/cqhci.h            |   5 +
 drivers/mmc/host/sdhci-of-dwcmshc.c | 181 +++++++++++++++++++++++++++-
 4 files changed, 192 insertions(+), 5 deletions(-)

-- 
2.30.2


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-03-04 15:16 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-31 14:46 [PATCH v5 0/2] mmc: sdhci-of-dwcmshc: Add CQE support Sergey Khimich
2023-12-31 14:46 ` [PATCH v5 1/2] mmc: cqhci: Add cqhci set_tran_desc() callback Sergey Khimich
2024-01-03 18:52   ` Adrian Hunter
2023-12-31 14:46 ` [PATCH v5 2/2] mmc: sdhci-of-dwcmshc: Implement SDHCI CQE support Sergey Khimich
2024-01-03 18:52   ` Adrian Hunter
2024-03-04 14:30     ` Sergey Khimich
2024-03-04 15:15       ` Adrian Hunter
2024-01-04  3:01   ` Shawn Lin
2024-03-04 15:00     ` Sergey Khimich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox