63 lines
2.1 KiB
Diff
63 lines
2.1 KiB
Diff
From c09b5df3383e9a19a8a5b011c1bd7b902795b561 Mon Sep 17 00:00:00 2001
|
|
From: Yicong Yang <yangyicong@hisilicon.com>
|
|
Date: Thu, 8 Dec 2022 21:45:24 +0800
|
|
Subject: [PATCH 35/39] spi: hisi-sfc-v3xx: extend version checking
|
|
compatibility
|
|
|
|
mainline inclusion
|
|
from mainline-v5.12-rc1
|
|
commit 566c6120f095be74862bed35f557f797478abade
|
|
category: feature
|
|
bugzilla: https://gitee.com/openeuler/kernel/issues/I8CSBP
|
|
CVE: NA
|
|
|
|
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=566c6120f095be74862bed35f557f797478abade
|
|
|
|
--------------------------------------------------------------------------
|
|
|
|
Currently we use concrete version to determine the max_cmd_dword.
|
|
New entries should be added for compatible hardwares of new version
|
|
or on new platform, otherwise the device will use 16 dwords instead
|
|
of 64 even if it supports, which will degrade the performance.
|
|
This will decrease the compatibility and the maintainability.
|
|
|
|
Drop the switch-case statement of the version checking. Only version
|
|
less than 0x351 supports maximum 16 command dwords.
|
|
|
|
Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
|
|
Acked-by: John Garry <john.garry@huawei.com>
|
|
Link: https://lore.kernel.org/r/1610526716-14882-1-git-send-email-yangyicong@hisilicon.com
|
|
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Signed-off-by: Wangming Shao <shaowangming@h-partners.com>
|
|
Reviewed-by: Yicong Yang <yangyicong@huawei.com>
|
|
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
|
|
Signed-off-by: YunYi Yang <yangyunyi2@huawei.com>
|
|
---
|
|
drivers/spi/spi-hisi-sfc-v3xx.c | 8 ++------
|
|
1 file changed, 2 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/drivers/spi/spi-hisi-sfc-v3xx.c b/drivers/spi/spi-hisi-sfc-v3xx.c
|
|
index 3e695784abf4..e679321c7e23 100644
|
|
--- a/drivers/spi/spi-hisi-sfc-v3xx.c
|
|
+++ b/drivers/spi/spi-hisi-sfc-v3xx.c
|
|
@@ -476,14 +476,10 @@ static int hisi_sfc_v3xx_probe(struct platform_device *pdev)
|
|
|
|
version = readl(host->regbase + HISI_SFC_V3XX_VERSION);
|
|
|
|
- switch (version) {
|
|
- case 0x351:
|
|
+ if (version >= 0x351)
|
|
host->max_cmd_dword = 64;
|
|
- break;
|
|
- default:
|
|
+ else
|
|
host->max_cmd_dword = 16;
|
|
- break;
|
|
- }
|
|
|
|
ret = devm_spi_register_controller(dev, ctlr);
|
|
if (ret)
|
|
--
|
|
2.27.0
|
|
|