RE: [PATCH v6] soc: fsl: enable acpi support in RCPM driver
From: Leo Li <hidden>
Date: 2021-04-07 03:38:53
Also in:
linux-arm-kernel, lkml
-----Original Message----- From: Ran Wang <redacted> Sent: Tuesday, April 6, 2021 8:32 PM To: Leo Li <redacted> Cc: Christophe Leroy <redacted>; linuxppc-dev [off-list ref]; moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE [off-list ref]; lkml <linux- kernel@vger.kernel.org> Subject: RE: [PATCH v6] soc: fsl: enable acpi support in RCPM driver Hi Leo, On Wednesday, April 7, 2021 5:45 AM, Li Yang wrote:quoted
On Fri, Mar 12, 2021 at 2:56 AM Ran Wang [off-list ref] wrote:quoted
From: Peng Ma <redacted> This patch enables ACPI support in RCPM driver. Signed-off-by: Peng Ma <redacted> Signed-off-by: Ran Wang <redacted> --- Change in v6: - Remove copyright udpate to rebase on latest mainline Change in v5: - Fix panic when dev->of_node is null Change in v4: - Make commit subject more accurate - Remove unrelated new blank line Change in v3: - Add #ifdef CONFIG_ACPI for acpi_device_id - Rename rcpm_acpi_imx_ids to rcpm_acpi_ids Change in v2: - Update acpi_device_id to fix conflict with other driver drivers/soc/fsl/rcpm.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-)diff --git a/drivers/soc/fsl/rcpm.c b/drivers/soc/fsl/rcpm.c index4ace28cab314..7aa997b932d1 100644--- a/drivers/soc/fsl/rcpm.c +++ b/drivers/soc/fsl/rcpm.c@@ -13,6 +13,7 @@ #include <linux/slab.h> #include <linux/suspend.h> #include <linux/kernel.h> +#include <linux/acpi.h> #define RCPM_WAKEUP_CELL_MAX_SIZE 7@@ -78,10 +79,14 @@ static int rcpm_pm_prepare(struct device *dev) "fsl,rcpm-wakeup", value, rcpm->wakeup_cells + 1); - /* Wakeup source should refer to current rcpm device */ - if (ret || (np->phandle != value[0])) + if (ret) continue; + if (is_of_node(dev->fwnode)) + /* Should refer to current rcpm device */
Better to be /* Only handle devices with fsl,rcpm-wakeup pointing to the current rcpm node*/
quoted
quoted
+ if (np->phandle != value[0]) + continue;It looks like that we assume that in the ACPI scenario there will only be one RCPM controller and all devices are controlled by this single PM controller. This probably is true for all existing SoCs with a RCPM. Butsince the driver tried to support multiple RCPMs, maybe we should continue to support multiple RCPM controllers or at least mention that in the comment. How about adding some comment as below: /* For ACPI mode, currently we assume there is only one RCPM controller existing */
Ok. On the other hand, it will be clearer to update the existing comment above.
Regards, Ranquoted
quoted
+ /* Property "#fsl,rcpm-wakeup-cells" of rcpm node defines the * number of IPPDEXPCR register cells, and "fsl,rcpm-wakeup" * of wakeup source IP contains an integer array: <phandle to @@ -172,10 +177,19 @@ static const struct of_device_id rcpm_of_match[] = { }; MODULE_DEVICE_TABLE(of, rcpm_of_match); +#ifdef CONFIG_ACPI +static const struct acpi_device_id rcpm_acpi_ids[] = { + {"NXP0015",}, + { } +}; +MODULE_DEVICE_TABLE(acpi, rcpm_acpi_ids); #endif + static struct platform_driver rcpm_driver = { .driver = { .name = "rcpm", .of_match_table = rcpm_of_match, + .acpi_match_table = ACPI_PTR(rcpm_acpi_ids), .pm = &rcpm_pm_ops, }, .probe = rcpm_probe, -- 2.25.1