Re: [PATCH v7 6/9] crypto: qce: core: Add new compatibles for qce crypto driver

From: Bhupesh Sharma
Date: Wed Sep 21 2022 - 02:16:36 EST




On 9/20/22 8:42 PM, Krzysztof Kozlowski wrote:
On 20/09/2022 13:40, Bhupesh Sharma wrote:
Since we decided to use soc specific compatibles for describing
the qce crypto IP nodes in the device-trees, adapt the driver
now to handle the same.

Keep the old deprecated compatible strings still in the driver,
to ensure backward compatibility.

Cc: Bjorn Andersson <andersson@xxxxxxxxxx>
Cc: Rob Herring <robh@xxxxxxxxxx>
Cc: herbert@xxxxxxxxxxxxxxxxxxx
Tested-by: Jordan Crouse <jorcrous@xxxxxxxxxx>
Signed-off-by: Bhupesh Sharma <bhupesh.sharma@xxxxxxxxxx>
---
drivers/crypto/qce/core.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/drivers/crypto/qce/core.c b/drivers/crypto/qce/core.c
index 63be06df5519..99ed540611ab 100644
--- a/drivers/crypto/qce/core.c
+++ b/drivers/crypto/qce/core.c
@@ -291,8 +291,17 @@ static int qce_crypto_remove(struct platform_device *pdev)
}
static const struct of_device_id qce_crypto_of_match[] = {
+ /* Following two entries are deprecated (kept only for backward compatibility) */
{ .compatible = "qcom,crypto-v5.1", },
{ .compatible = "qcom,crypto-v5.4", },

This is okay, so there is no ABI break.

Great. Thanks for the confirmation.

+ /* Add compatible strings as per updated dt-bindings, here: */
+ { .compatible = "qcom,ipq4019-qce", },
+ { .compatible = "qcom,ipq6018-qce", },
+ { .compatible = "qcom,ipq8074-qce", },
+ { .compatible = "qcom,msm8996-qce", },
+ { .compatible = "qcom,sdm845-qce", },
+ { .compatible = "qcom,sm8150-qce", },
+ { .compatible = "qcom,sm8250-qce", },

This is a bit odd... you have 7 devices which are simply compatible or
even the same. This should be instead one compatible.

I don't really get why do you want to deprecate "qcom,crypto-v5.1".
Commit msg only says "we decided" but I do not know who is "we" and "why
we decided like this". If you want to deprecate it, perfectly fine by
me, but please say in commit msg why you are doing it.

I understand. This patchset has been in flight for some time and hence I might have missed sharing some detailed information about the review comments and rework done along the way (in the cover letter for this series).

Coming back to your concern, here is the relevant background:
- Please see: https://lore.kernel.org/linux-arm-msm/20210316222825.GA3792517@xxxxxxxxxxxxxxxxxx/

- Rob shared some comments on the v1 series regarding the soc-specific compatibles. He mentioned in the above thread that 'you should stick with SoC specific compatibles as *everyone* else does (including most QCom bindings).'

- So, while I had proposed "qcom,crypto-v5.1" (for ipq6018) and "qcom,crypto-v5.4" (for sdm845, sm8150) etc. as the compatible(s) in the v1 series, I shifted to using the soc-specific compatibles from the v2 series, onwards.

- Basically, since we are going to have newer qce IP versions available in near future, e.g. "qcom,crypto-v5.5" etc, and we will have 2 or more SoCs also sharing 1 version, these compatibles would grow and become more confusing. IMO, having a soc-specific compatible in such cases is probably a much cleaner approach.

Hope this helps answer some of your concerns and provides some relevant background information.

Thanks,
Bhupesh