hwspinlock: qcom: Add support for mmio usage to sfpb-mutex
PATCH v2 1/3 hwspinlock: qcom: Add support for mmio usage to sfpb-mutex
Allow sfpb-mutex to use mmio in addition to syscon.
--- drivers/hwspinlock/qcom_hwspinlock.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-)
drivers/hwspinlock/qcom_hwspinlock.c +23 -5
@@ -19,6 +19,11 @@#define QCOM_MUTEX_APPS_PROC_ID 1#define QCOM_MUTEX_NUM_LOCKS 32 +struct qcom_hwspinlock_of_data { +u32 offset; +u32 stride; +}; +static int qcom_hwspinlock_trylock (struct hwspinlock *lock) {struct regmap_field *field = lock->priv;
@@ -63,9 +68,20 @@ static const struct hwspinlock_ops qcom_hwspinlock_ops = { .unlock = qcom_hwspinlock_unlock, }; +static const struct qcom_hwspinlock_of_data of_sfpb_mutex = { + .offset =0x4 , + .stride =0x4 , +}; + +/* All modern platform has offset 0 and stride of 4k */ +static const struct qcom_hwspinlock_of_data of_tcsr_mutex = { + .offset =0 , + .stride =0x1000 , +}; +static const struct of_device_id qcom_hwspinlock_of_match[] = { - { .compatible ="qcom,sfpb-mutex" }, - { .compatible ="qcom,tcsr-mutex" }, + { .compatible ="qcom,sfpb-mutex" , .data = &of_sfpb_mutex }, + { .compatible ="qcom,tcsr-mutex" , .data = &of_tcsr_mutex }, { } };MODULE_DEVICE_TABLE (of, qcom_hwspinlock_of_match);
@@ -112,12 +128,14 @@ static const struct regmap_config tcsr_mutex_config = {static struct regmap *qcom_hwspinlock_probe_mmio (struct platform_device *pdev,u32 *offset,u32 *stride) { +const struct qcom_hwspinlock_of_data *data;struct device *dev = &pdev->dev;void __iomem *base; -/* All modern platform has offset 0 and stride of 4k */ - *offset =0 ; - *stride =0x1000 ; + data =of_device_get_match_data (dev); + + *offset = data->offset; + *stride = data->stride; base =devm_platform_ioremap_resource (pdev,0 );if (IS_ERR (base))
Signature · 1 line
2.36.1
PATCH v2 2/3 ARM: dts: qcom: add missing hwlock for ipq8064 dtsi
Add missing hwlock for ipq8064 dtsi provided by qcom,sfpb-mutex.
--- arch/arm/boot/dts/qcom-ipq8064.dtsi | 7 +++++++ 1 file changed, 7 insertions(+)
arch/arm/boot/dts/qcom-ipq8064.dtsi +7 -0
@@ -1224,4 +1224,11 @@ sdcc3: mmc@12180000 { }; }; }; + + sfpb_mutex: hwlock@1200600 { + compatible = "qcom,sfpb-mutex"; + reg = <0x01200600 0x100>; + + #hwlock-cells = <1>; + }; };
Signature · 1 line
2.36.1
Re: [PATCH v2 2/3] ARM: dts: qcom: add missing hwlock for ipq8064 dtsi
Quoted 13 lines · Christian Marangi
Add missing hwlock for ipq8064 dtsi provided by qcom,sfpb-mutex.
Signed-off-by Christian Marangi <[email protected]>--- arch/arm/boot/dts/qcom-ipq8064.dtsi | 7 +++++++ 1 file changed, 7 insertions(+)arch/arm/boot/dts/qcom-ipq8064.dtsi +0
-0
arch/arm/boot/dts/qcom-ipq8064.dtsi sdcc3: mmc@12180000 { · line 1228
Quoted 5 lines
arch/arm/boot/dts/qcom-ipq8064.dtsi +2
-0@@ -1224,4 +1224,11 @@ sdcc3: mmc@12180000 { }; }; }; + + sfpb_mutex: hwlock@1200600 {
This is an mmio device, so it should live under /soc, so I moved it there while applying the patch.
But it would be nice if this file followed others and kept all nodes sorted by address (or name if they don't have an address). Also if addresses were padded to 8 digits, to make sorting easier.
I would much appreciate if you could find the time to prepare such a patch.
Thank you,
Bjorn
Quoted 9 lines
arch/arm/boot/dts/qcom-ipq8064.dtsi +5
-0+ compatible = "qcom,sfpb-mutex"; + reg = <0x01200600 0x100>; + + #hwlock-cells = <1>; + }; };Signature · 1 line
2.36.1
Re: [PATCH v2 2/3] ARM: dts: qcom: add missing hwlock for ipq8064 dtsi
Quoted 25 lines · Bjorn Andersson
Quoted 13 lines · Christian Marangi
Add missing hwlock for ipq8064 dtsi provided by qcom,sfpb-mutex.
Signed-off-by Christian Marangi <[email protected]>--- arch/arm/boot/dts/qcom-ipq8064.dtsi | 7 +++++++ 1 file changed, 7 insertions(+)arch/arm/boot/dts/qcom-ipq8064.dtsi +0
-0arch/arm/boot/dts/qcom-ipq8064.dtsi sdcc3: mmc@12180000 { · line 1228
Quoted 5 lines
arch/arm/boot/dts/qcom-ipq8064.dtsi +2
-0@@ -1224,4 +1224,11 @@ sdcc3: mmc@12180000 { }; }; }; + + sfpb_mutex: hwlock@1200600 {This is an mmio device, so it should live under /soc, so I moved it there while applying the patch.
Quoted 6 lines
But it would be nice if this file followed others and kept all nodes sorted by address (or name if they don't have an address). Also if addresses were padded to 8 digits, to make sorting easier.
I would much appreciate if you could find the time to prepare such a patch.
That will take tons of changes, but yes will make a patch to reorder all the nodes.
Quoted 10 lines
Quoted 10 lines
arch/arm/boot/dts/qcom-ipq8064.dtsi +5
-0+ compatible = "qcom,sfpb-mutex"; + reg = <0x01200600 0x100>; + + #hwlock-cells = <1>; + }; };Signature · 1 line
2.36.1
Signature · 1 line
Ansuel
PATCH v2 3/3 ARM: dts: qcom: add missing smem compatible for ipq8064 dtsi
In reply to Christian MarangiAdd missing smem compatible and hwlocks phandle for ipq8064 dtsi smem node.
--- arch/arm/boot/dts/qcom-ipq8064.dtsi | 3 +++ 1 file changed, 3 insertions(+)
arch/arm/boot/dts/qcom-ipq8064.dtsi +3 -0
@@ -292,8 +292,11 @@ nss@40000000 { }; smem: smem@41000000 { + compatible = "qcom,smem"; reg = <0x41000000 0x200000>; no-map; + + hwlocks = <&sfpb_mutex 3>; }; };
Signature · 1 line
2.36.1
Bjorn Andersson
AppliedRe: (subset) [PATCH v2 1/3] hwspinlock: qcom: Add support for mmio usage to sfpb-mutex
In reply to Christian MarangiQuoted 3 lines · Christian Marangi
Allow sfpb-mutex to use mmio in addition to syscon.
Applied, thanks!
[2/3] ARM: dts: qcom: add missing hwlock for ipq8064 dtsi
commit: fbe4be367b2169602f6a5949a20d2917b25714d4
[3/3] ARM: dts: qcom: add missing smem compatible for ipq8064 dtsi
commit: 4fefb5434c4b735daf913abaef12431405368031Best regards,
Signature · 1 line
Bjorn Andersson <[email protected]>