Re: [RFC PATCH 0/5] Add dedicated Qcom ICE driver

Abel Vesa
2023-02-14T12:06:58Z

On 23-02-14 14:02:48, Abel Vesa wrote:
> As both SDCC and UFS drivers use the ICE with duplicated implementation,
> while none of the currently supported platforms make use concomitantly
> of the ICE IP block, the new SM8550 allows both UFS and SDCC to do so.
> In order to support such scenario, there is a need for a unified
> implementation and a devicetree node to be shared between both types
> of storage devices. So lets drop the duplicate implementation of the ICE
> from both SDCC and UFS and make it a dedicated (soc) driver.
>
> This RFC should be treated as work-in-progress. Initially, its goal is
> to figure out what is the most agreeable implementation for both types
> of storage. Note that currently, only one ICE instance is supported
> (like the existing HW suggests) and it is laking refcounting and locking
> of any sort. Also missing bindings schema file for now.
>
> Any suggestions are welcome at this point, including the location of
> such a new driver.

Forgot to mention here that I only managed to test the UFS on SM8450
HDK. Though functionally nothing should be impacted, I intend to test
the SDCC on SDM630 soon.

The devicetree sdm630 patch is here for proof-of-concept, mainly.

>
> Abel Vesa (5):
> soc: qcom: Make the Qualcomm UFS/SDCC ICE a dedicated driver
> arm64: dts: qcom: sm8450: Add the Inline Crypto Engine node
> arm64: dts: qcom: sdm630: Add the Inline Crypto Engine node
> scsi: ufs: ufs-qcom: Switch to the new ICE API
> mmc: sdhci-msm: Switch to the new ICE API
>
> arch/arm64/boot/dts/qcom/sdm630.dtsi | 18 +-
> arch/arm64/boot/dts/qcom/sm8450-hdk.dts | 4 +
> arch/arm64/boot/dts/qcom/sm8450.dtsi | 24 +-
> drivers/mmc/host/sdhci-msm.c | 252 ++----------------
> drivers/soc/qcom/Kconfig | 10 +
> drivers/soc/qcom/Makefile | 1 +
> .../ufs-qcom-ice.c => soc/qcom/qcom-ice.c} | 247 +++++++++++------
> drivers/ufs/host/Kconfig | 1 -
> drivers/ufs/host/Makefile | 1 -
> drivers/ufs/host/ufs-qcom.c | 42 ++-
> drivers/ufs/host/ufs-qcom.h | 32 +--
> include/soc/qcom/ice.h | 61 +++++
> 12 files changed, 326 insertions(+), 367 deletions(-)
> rename drivers/{ufs/host/ufs-qcom-ice.c => soc/qcom/qcom-ice.c} (50%)
> create mode 100644 include/soc/qcom/ice.h
>
> --
> 2.34.1
>