* [PATCH v3 1/5] soc: loongson: loongson2_pm: Add dependency for INPUT
2023-09-02 8:47 [PATCH v3 0/5] soc: loongson: Fix some issues about loongson2_pm Binbin Zhou
@ 2023-09-02 8:47 ` Binbin Zhou
2023-09-02 15:43 ` Randy Dunlap
2023-09-02 8:47 ` [PATCH v3 2/5] dt-bindings: soc: loongson,ls2k-pmc: Use fallbacks for ls2k-pmc compatible Binbin Zhou
` (3 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Binbin Zhou @ 2023-09-02 8:47 UTC (permalink / raw)
To: Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Huacai Chen, loongson-kernel, soc, devicetree, linux-pm,
Xuerui Wang, loongarch, Binbin Zhou, Randy Dunlap
Since commit 67694c076bd7 ("soc: loongson2_pm: add power management
support"), the Loongson-2K PM driver was added, but it didn't update the
Kconfig entry for the INPUT dependency, leading to build errors:
/opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
drivers/soc/loongson/loongson2_pm.o: in function `loongson2_power_button_init':
/work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:101:(.text+0x350): undefined reference to `input_allocate_device'
/opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
/work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:109:(.text+0x3dc): undefined reference to `input_set_capability'
/opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
/work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:111:(.text+0x3e4): undefined reference to `input_register_device'
/opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
/work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:125:(.text+0x3fc): undefined reference to `input_free_device'
/opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld: drivers/soc/loongson/loongson2_pm.o: in function `input_report_key':
/work/lnx/next/linux-next-20230825/LOONG64/../include/linux/input.h:425:(.text+0x58c): undefined reference to `input_event'
Also, since this driver can only be built-in, it fails to link when the
INPUT is in a loadable module, so we should update the Kconfig entry to
depend on INPUT=y.
Fixes: 67694c076bd7 ("soc: loongson2_pm: add power management support")
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
---
drivers/soc/loongson/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/soc/loongson/Kconfig b/drivers/soc/loongson/Kconfig
index 314e13bb3e01..368344943a93 100644
--- a/drivers/soc/loongson/Kconfig
+++ b/drivers/soc/loongson/Kconfig
@@ -20,6 +20,7 @@ config LOONGSON2_GUTS
config LOONGSON2_PM
bool "Loongson-2 SoC Power Management Controller Driver"
depends on LOONGARCH && OF
+ depends on INPUT=y
help
The Loongson-2's power management controller was ACPI, supports ACPI
S2Idle (Suspend To Idle), ACPI S3 (Suspend To RAM), ACPI S4 (Suspend To
--
2.39.3
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v3 1/5] soc: loongson: loongson2_pm: Add dependency for INPUT
2023-09-02 8:47 ` [PATCH v3 1/5] soc: loongson: loongson2_pm: Add dependency for INPUT Binbin Zhou
@ 2023-09-02 15:43 ` Randy Dunlap
2023-09-19 15:36 ` Randy Dunlap
0 siblings, 1 reply; 10+ messages in thread
From: Randy Dunlap @ 2023-09-02 15:43 UTC (permalink / raw)
To: Binbin Zhou, Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Huacai Chen, loongson-kernel, soc, devicetree, linux-pm,
Xuerui Wang, loongarch
On 9/2/23 01:47, Binbin Zhou wrote:
> Since commit 67694c076bd7 ("soc: loongson2_pm: add power management
> support"), the Loongson-2K PM driver was added, but it didn't update the
> Kconfig entry for the INPUT dependency, leading to build errors:
>
> /opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
> drivers/soc/loongson/loongson2_pm.o: in function `loongson2_power_button_init':
> /work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:101:(.text+0x350): undefined reference to `input_allocate_device'
> /opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
> /work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:109:(.text+0x3dc): undefined reference to `input_set_capability'
> /opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
> /work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:111:(.text+0x3e4): undefined reference to `input_register_device'
> /opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
> /work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:125:(.text+0x3fc): undefined reference to `input_free_device'
> /opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld: drivers/soc/loongson/loongson2_pm.o: in function `input_report_key':
> /work/lnx/next/linux-next-20230825/LOONG64/../include/linux/input.h:425:(.text+0x58c): undefined reference to `input_event'
>
> Also, since this driver can only be built-in, it fails to link when the
> INPUT is in a loadable module, so we should update the Kconfig entry to
> depend on INPUT=y.
>
> Fixes: 67694c076bd7 ("soc: loongson2_pm: add power management support")
> Reported-by: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org>
Thanks.
> ---
> drivers/soc/loongson/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/soc/loongson/Kconfig b/drivers/soc/loongson/Kconfig
> index 314e13bb3e01..368344943a93 100644
> --- a/drivers/soc/loongson/Kconfig
> +++ b/drivers/soc/loongson/Kconfig
> @@ -20,6 +20,7 @@ config LOONGSON2_GUTS
> config LOONGSON2_PM
> bool "Loongson-2 SoC Power Management Controller Driver"
> depends on LOONGARCH && OF
> + depends on INPUT=y
> help
> The Loongson-2's power management controller was ACPI, supports ACPI
> S2Idle (Suspend To Idle), ACPI S3 (Suspend To RAM), ACPI S4 (Suspend To
--
~Randy
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v3 1/5] soc: loongson: loongson2_pm: Add dependency for INPUT
2023-09-02 15:43 ` Randy Dunlap
@ 2023-09-19 15:36 ` Randy Dunlap
[not found] ` <20230919-9ce82588fccdd641574b468c@fedora>
0 siblings, 1 reply; 10+ messages in thread
From: Randy Dunlap @ 2023-09-19 15:36 UTC (permalink / raw)
To: Binbin Zhou, Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Huacai Chen, loongson-kernel, soc, devicetree, linux-pm,
Xuerui Wang, loongarch
Hi--
On 9/2/23 08:43, Randy Dunlap wrote:
>
>
> On 9/2/23 01:47, Binbin Zhou wrote:
>> Since commit 67694c076bd7 ("soc: loongson2_pm: add power management
>> support"), the Loongson-2K PM driver was added, but it didn't update the
>> Kconfig entry for the INPUT dependency, leading to build errors:
>>
>> /opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
>> drivers/soc/loongson/loongson2_pm.o: in function `loongson2_power_button_init':
>> /work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:101:(.text+0x350): undefined reference to `input_allocate_device'
>> /opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
>> /work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:109:(.text+0x3dc): undefined reference to `input_set_capability'
>> /opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
>> /work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:111:(.text+0x3e4): undefined reference to `input_register_device'
>> /opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld:
>> /work/lnx/next/linux-next-20230825/LOONG64/../drivers/soc/loongson/loongson2_pm.c:125:(.text+0x3fc): undefined reference to `input_free_device'
>> /opt/crosstool/gcc-13.2.0-nolibc/loongarch64-linux/bin/loongarch64-linux-ld: drivers/soc/loongson/loongson2_pm.o: in function `input_report_key':
>> /work/lnx/next/linux-next-20230825/LOONG64/../include/linux/input.h:425:(.text+0x58c): undefined reference to `input_event'
>>
>> Also, since this driver can only be built-in, it fails to link when the
>> INPUT is in a loadable module, so we should update the Kconfig entry to
>> depend on INPUT=y.
>>
>> Fixes: 67694c076bd7 ("soc: loongson2_pm: add power management support")
>> Reported-by: Randy Dunlap <rdunlap@infradead.org>
>> Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
>
> Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
> Tested-by: Randy Dunlap <rdunlap@infradead.org>
>
> Thanks.
What's the status of this patch?
linux-next builds are still failing without this patch.
Thanks.
>
>> ---
>> drivers/soc/loongson/Kconfig | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/soc/loongson/Kconfig b/drivers/soc/loongson/Kconfig
>> index 314e13bb3e01..368344943a93 100644
>> --- a/drivers/soc/loongson/Kconfig
>> +++ b/drivers/soc/loongson/Kconfig
>> @@ -20,6 +20,7 @@ config LOONGSON2_GUTS
>> config LOONGSON2_PM
>> bool "Loongson-2 SoC Power Management Controller Driver"
>> depends on LOONGARCH && OF
>> + depends on INPUT=y
>> help
>> The Loongson-2's power management controller was ACPI, supports ACPI
>> S2Idle (Suspend To Idle), ACPI S3 (Suspend To RAM), ACPI S4 (Suspend To
>
--
~Randy
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 2/5] dt-bindings: soc: loongson,ls2k-pmc: Use fallbacks for ls2k-pmc compatible
2023-09-02 8:47 [PATCH v3 0/5] soc: loongson: Fix some issues about loongson2_pm Binbin Zhou
2023-09-02 8:47 ` [PATCH v3 1/5] soc: loongson: loongson2_pm: Add dependency for INPUT Binbin Zhou
@ 2023-09-02 8:47 ` Binbin Zhou
2023-09-02 8:47 ` [PATCH v3 3/5] soc: loongson: loongson2_pm: Drop useless of_device_id compatible Binbin Zhou
` (2 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Binbin Zhou @ 2023-09-02 8:47 UTC (permalink / raw)
To: Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Huacai Chen, loongson-kernel, soc, devicetree, linux-pm,
Xuerui Wang, loongarch, Binbin Zhou, Conor Dooley
The Loongson-2K series chips (ls2k0500/ls2k1000/ls2k2000) share the same
PM system controller, using ls2k0500 compatible as fallback for the
others.
Fixes: 6054a676e969 ("soc: dt-bindings: add loongson-2 pm")
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
---
.../soc/loongson/loongson,ls2k-pmc.yaml | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml b/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml
index da2dcfeebf12..c45f5e7fc0e6 100644
--- a/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml
+++ b/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml
@@ -11,11 +11,16 @@ maintainers:
properties:
compatible:
- items:
- - enum:
- - loongson,ls2k0500-pmc
- - loongson,ls2k1000-pmc
- - const: syscon
+ oneOf:
+ - items:
+ - const: loongson,ls2k0500-pmc
+ - const: syscon
+ - items:
+ - enum:
+ - loongson,ls2k1000-pmc
+ - loongson,ls2k2000-pmc
+ - const: loongson,ls2k0500-pmc
+ - const: syscon
reg:
maxItems: 1
@@ -44,7 +49,7 @@ examples:
#include <dt-bindings/interrupt-controller/irq.h>
power-management@1fe27000 {
- compatible = "loongson,ls2k1000-pmc", "syscon";
+ compatible = "loongson,ls2k1000-pmc", "loongson,ls2k0500-pmc", "syscon";
reg = <0x1fe27000 0x58>;
interrupt-parent = <&liointc1>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
--
2.39.3
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v3 3/5] soc: loongson: loongson2_pm: Drop useless of_device_id compatible
2023-09-02 8:47 [PATCH v3 0/5] soc: loongson: Fix some issues about loongson2_pm Binbin Zhou
2023-09-02 8:47 ` [PATCH v3 1/5] soc: loongson: loongson2_pm: Add dependency for INPUT Binbin Zhou
2023-09-02 8:47 ` [PATCH v3 2/5] dt-bindings: soc: loongson,ls2k-pmc: Use fallbacks for ls2k-pmc compatible Binbin Zhou
@ 2023-09-02 8:47 ` Binbin Zhou
2023-09-02 8:47 ` [PATCH v3 4/5] dt-bindings: soc: loongson,ls2k-pmc: Allow syscon-reboot/syscon-poweroff as child Binbin Zhou
2023-09-02 8:47 ` [PATCH v3 5/5] soc: loongson: loongson2_pm: Populate children syscon nodes Binbin Zhou
4 siblings, 0 replies; 10+ messages in thread
From: Binbin Zhou @ 2023-09-02 8:47 UTC (permalink / raw)
To: Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Huacai Chen, loongson-kernel, soc, devicetree, linux-pm,
Xuerui Wang, loongarch, Binbin Zhou
Now, "loongson,ls2k0500-pmc" is used as fallback compatible, so the
ls2k1000 compatible in the driver can be dropped directly.
Fixes: 67694c076bd7 ("soc: loongson2_pm: add power management support")
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
---
drivers/soc/loongson/loongson2_pm.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/soc/loongson/loongson2_pm.c b/drivers/soc/loongson/loongson2_pm.c
index 796add6e8b63..5ffb77afd9eb 100644
--- a/drivers/soc/loongson/loongson2_pm.c
+++ b/drivers/soc/loongson/loongson2_pm.c
@@ -197,7 +197,6 @@ static int loongson2_pm_probe(struct platform_device *pdev)
static const struct of_device_id loongson2_pm_match[] = {
{ .compatible = "loongson,ls2k0500-pmc", },
- { .compatible = "loongson,ls2k1000-pmc", },
{},
};
--
2.39.3
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v3 4/5] dt-bindings: soc: loongson,ls2k-pmc: Allow syscon-reboot/syscon-poweroff as child
2023-09-02 8:47 [PATCH v3 0/5] soc: loongson: Fix some issues about loongson2_pm Binbin Zhou
` (2 preceding siblings ...)
2023-09-02 8:47 ` [PATCH v3 3/5] soc: loongson: loongson2_pm: Drop useless of_device_id compatible Binbin Zhou
@ 2023-09-02 8:47 ` Binbin Zhou
2023-09-02 8:47 ` [PATCH v3 5/5] soc: loongson: loongson2_pm: Populate children syscon nodes Binbin Zhou
4 siblings, 0 replies; 10+ messages in thread
From: Binbin Zhou @ 2023-09-02 8:47 UTC (permalink / raw)
To: Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Huacai Chen, loongson-kernel, soc, devicetree, linux-pm,
Xuerui Wang, loongarch, Binbin Zhou, Krzysztof Kozlowski
The reboot and poweroff features are actually part of the Power
Management Unit system controller, thus allow them as its children,
instead of specifying as separate device nodes with syscon phandle.
Without it, the reboot/poweroff feature becomes unavailable.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
---
.../soc/loongson/loongson,ls2k-pmc.yaml | 26 +++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml b/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml
index c45f5e7fc0e6..510f6cb0f084 100644
--- a/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml
+++ b/Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml
@@ -37,6 +37,18 @@ properties:
addition, the PM need according to it to indicate that current
SoC whether support Suspend To RAM.
+ syscon-poweroff:
+ $ref: /schemas/power/reset/syscon-poweroff.yaml#
+ type: object
+ description:
+ Node for power off method
+
+ syscon-reboot:
+ $ref: /schemas/power/reset/syscon-reboot.yaml#
+ type: object
+ description:
+ Node for reboot method
+
required:
- compatible
- reg
@@ -54,4 +66,18 @@ examples:
interrupt-parent = <&liointc1>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
loongson,suspend-address = <0x0 0x1c000500>;
+
+ syscon-reboot {
+ compatible = "syscon-reboot";
+ offset = <0x30>;
+ mask = <0x1>;
+ };
+
+ syscon-poweroff {
+ compatible = "syscon-poweroff";
+ regmap = <&pmc>;
+ offset = <0x14>;
+ mask = <0x3c00>;
+ value = <0x3c00>;
+ };
};
--
2.39.3
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v3 5/5] soc: loongson: loongson2_pm: Populate children syscon nodes
2023-09-02 8:47 [PATCH v3 0/5] soc: loongson: Fix some issues about loongson2_pm Binbin Zhou
` (3 preceding siblings ...)
2023-09-02 8:47 ` [PATCH v3 4/5] dt-bindings: soc: loongson,ls2k-pmc: Allow syscon-reboot/syscon-poweroff as child Binbin Zhou
@ 2023-09-02 8:47 ` Binbin Zhou
4 siblings, 0 replies; 10+ messages in thread
From: Binbin Zhou @ 2023-09-02 8:47 UTC (permalink / raw)
To: Binbin Zhou, Huacai Chen, Yinbo Zhu, Arnd Bergmann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Huacai Chen, loongson-kernel, soc, devicetree, linux-pm,
Xuerui Wang, loongarch, Binbin Zhou
The syscon poweroff and reboot nodes logically belong to the Power
Management Unit so populate possible children.
Without it, the reboot/poweroff feature becomes unavailable.
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
---
drivers/soc/loongson/loongson2_pm.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/soc/loongson/loongson2_pm.c b/drivers/soc/loongson/loongson2_pm.c
index 5ffb77afd9eb..b8e5e1e3528a 100644
--- a/drivers/soc/loongson/loongson2_pm.c
+++ b/drivers/soc/loongson/loongson2_pm.c
@@ -11,6 +11,7 @@
#include <linux/input.h>
#include <linux/suspend.h>
#include <linux/interrupt.h>
+#include <linux/of_platform.h>
#include <linux/pm_wakeirq.h>
#include <linux/platform_device.h>
#include <asm/bootinfo.h>
@@ -192,6 +193,11 @@ static int loongson2_pm_probe(struct platform_device *pdev)
if (loongson_sysconf.suspend_addr)
suspend_set_ops(&loongson2_suspend_ops);
+ /* Populate children */
+ retval = devm_of_platform_populate(dev);
+ if (retval)
+ dev_err(dev, "Error populating children, reboot and poweroff might not work properly\n");
+
return 0;
}
--
2.39.3
^ permalink raw reply related [flat|nested] 10+ messages in thread