drivers/pmdomain/core.c | 33 +++++++++++++++++++++++++++ drivers/remoteproc/imx_rproc.c | 41 ++++++++++++++++++++++++++++------ include/linux/pm_domain.h | 6 +++++ 3 files changed, 73 insertions(+), 7 deletions(-)
From: Hiago De Franco <hiago.franco@toradex.com> This patch series depends on Ulf's patches that are currently under review, "pmdomain: Add generic ->sync_state() support to genpd" [1]. Without them, this series is not going to work. For the i.MX8X and i.MX8 family SoCs, currently when the remotecore is started by the bootloader and the M core and A core are in the same partition, the driver is not capable to detect the remote core and report the correct state of it. This patch series implement a new function, dev_pm_genpd_is_on(), which returns the power status of a given power domain (M core power domains IMX_SC_R_M4_0_PID0 and IMX_SC_R_M4_0_MU_1A in this case). If it is already powered on, the driver will attach to it. Finally, the imx_rproc_clk_enable() function was also changed to make it return before dev_clk_get() is called, as it currently generates an SCU fault reset if the remote core is already running and the kernel tries to enable the clock again. These changes are a follow up from a v1 sent to imx_rproc [2] and from a reported regression [3]. [1] https://lore.kernel.org/all/20250523134025.75130-1-ulf.hansson@linaro.org/ [2] https://lore.kernel.org/lkml/20250423155131.101473-1-hiagofranco@gmail.com/ [3] https://lore.kernel.org/lkml/20250404141713.ac2ntcsjsf7epdfa@hiago-nb/ v5: - pm_runtime_get_sync() removed in favor of pm_runtime_resume_and_get(), checking the return value of it. - Added pm_runtime_disable() and pm_runtime_put() to imx_rproc_remove(). - Fixed missing "()" in dev_pm_genpd_is_on description. - Updated dev_pm_genpd_is_on() function description to be explicit the function reflects the current power status of the device and that this might change after the function returns, especially if the genpd is shared. v4: - https://lore.kernel.org/lkml/20250602131906.25751-1-hiagofranco@gmail.com/ v3: - https://lore.kernel.org/all/20250519171514.61974-1-hiagofranco@gmail.com/ v2: - https://lore.kernel.org/lkml/20250507160056.11876-1-hiagofranco@gmail.com/ v1: - https://lore.kernel.org/lkml/20250505154849.64889-1-hiagofranco@gmail.com/ Hiago De Franco (3): pmdomain: core: introduce dev_pm_genpd_is_on() remoteproc: imx_rproc: skip clock enable when M-core is managed by the SCU remoteproc: imx_rproc: detect and attach to pre-booted remote cores drivers/pmdomain/core.c | 33 +++++++++++++++++++++++++++ drivers/remoteproc/imx_rproc.c | 41 ++++++++++++++++++++++++++++------ include/linux/pm_domain.h | 6 +++++ 3 files changed, 73 insertions(+), 7 deletions(-) -- 2.39.5
On Tue, Jun 17, 2025 at 04:34:47PM -0300, Hiago De Franco wrote: > From: Hiago De Franco <hiago.franco@toradex.com> > > This patch series depends on Ulf's patches that are currently under > review, "pmdomain: Add generic ->sync_state() support to genpd" [1]. > Without them, this series is not going to work. Please resend this patchset when [1] and the work in patch 1/3 have been merged. Thanks, Mathieu > > For the i.MX8X and i.MX8 family SoCs, currently when the remotecore is > started by the bootloader and the M core and A core are in the same > partition, the driver is not capable to detect the remote core and > report the correct state of it. > > This patch series implement a new function, dev_pm_genpd_is_on(), which > returns the power status of a given power domain (M core power domains > IMX_SC_R_M4_0_PID0 and IMX_SC_R_M4_0_MU_1A in this case). If it is > already powered on, the driver will attach to it. > > Finally, the imx_rproc_clk_enable() function was also changed to make it > return before dev_clk_get() is called, as it currently generates an SCU > fault reset if the remote core is already running and the kernel tries > to enable the clock again. These changes are a follow up from a v1 sent > to imx_rproc [2] and from a reported regression [3]. > > [1] https://lore.kernel.org/all/20250523134025.75130-1-ulf.hansson@linaro.org/ > [2] https://lore.kernel.org/lkml/20250423155131.101473-1-hiagofranco@gmail.com/ > [3] https://lore.kernel.org/lkml/20250404141713.ac2ntcsjsf7epdfa@hiago-nb/ > > v5: > - pm_runtime_get_sync() removed in favor of pm_runtime_resume_and_get(), > checking the return value of it. > - Added pm_runtime_disable() and pm_runtime_put() to imx_rproc_remove(). > - Fixed missing "()" in dev_pm_genpd_is_on description. > - Updated dev_pm_genpd_is_on() function description to be explicit the > function reflects the current power status of the device and that this > might change after the function returns, especially if the genpd is > shared. > > v4: > - https://lore.kernel.org/lkml/20250602131906.25751-1-hiagofranco@gmail.com/ > > v3: > - https://lore.kernel.org/all/20250519171514.61974-1-hiagofranco@gmail.com/ > > v2: > - https://lore.kernel.org/lkml/20250507160056.11876-1-hiagofranco@gmail.com/ > > v1: > - https://lore.kernel.org/lkml/20250505154849.64889-1-hiagofranco@gmail.com/ > > Hiago De Franco (3): > pmdomain: core: introduce dev_pm_genpd_is_on() > remoteproc: imx_rproc: skip clock enable when M-core is managed by the > SCU > remoteproc: imx_rproc: detect and attach to pre-booted remote cores > > drivers/pmdomain/core.c | 33 +++++++++++++++++++++++++++ > drivers/remoteproc/imx_rproc.c | 41 ++++++++++++++++++++++++++++------ > include/linux/pm_domain.h | 6 +++++ > 3 files changed, 73 insertions(+), 7 deletions(-) > > -- > 2.39.5 >
On Mon, Jun 23, 2025 at 09:32:54AM -0600, Mathieu Poirier wrote: > On Tue, Jun 17, 2025 at 04:34:47PM -0300, Hiago De Franco wrote: > > From: Hiago De Franco <hiago.franco@toradex.com> > > > > This patch series depends on Ulf's patches that are currently under > > review, "pmdomain: Add generic ->sync_state() support to genpd" [1]. > > Without them, this series is not going to work. > > Please resend this patchset when [1] and the work in patch 1/3 have been merged. All right, I will send the v6 with the corrections you mentioned and resend it when the other patches have been merged. Best regards, Hiago. > > Thanks, > Mathieu > > > > > For the i.MX8X and i.MX8 family SoCs, currently when the remotecore is > > started by the bootloader and the M core and A core are in the same > > partition, the driver is not capable to detect the remote core and > > report the correct state of it. > > > > This patch series implement a new function, dev_pm_genpd_is_on(), which > > returns the power status of a given power domain (M core power domains > > IMX_SC_R_M4_0_PID0 and IMX_SC_R_M4_0_MU_1A in this case). If it is > > already powered on, the driver will attach to it. > > > > Finally, the imx_rproc_clk_enable() function was also changed to make it > > return before dev_clk_get() is called, as it currently generates an SCU > > fault reset if the remote core is already running and the kernel tries > > to enable the clock again. These changes are a follow up from a v1 sent > > to imx_rproc [2] and from a reported regression [3]. > > > > [1] https://lore.kernel.org/all/20250523134025.75130-1-ulf.hansson@linaro.org/ > > [2] https://lore.kernel.org/lkml/20250423155131.101473-1-hiagofranco@gmail.com/ > > [3] https://lore.kernel.org/lkml/20250404141713.ac2ntcsjsf7epdfa@hiago-nb/ > > > > v5: > > - pm_runtime_get_sync() removed in favor of pm_runtime_resume_and_get(), > > checking the return value of it. > > - Added pm_runtime_disable() and pm_runtime_put() to imx_rproc_remove(). > > - Fixed missing "()" in dev_pm_genpd_is_on description. > > - Updated dev_pm_genpd_is_on() function description to be explicit the > > function reflects the current power status of the device and that this > > might change after the function returns, especially if the genpd is > > shared. > > > > v4: > > - https://lore.kernel.org/lkml/20250602131906.25751-1-hiagofranco@gmail.com/ > > > > v3: > > - https://lore.kernel.org/all/20250519171514.61974-1-hiagofranco@gmail.com/ > > > > v2: > > - https://lore.kernel.org/lkml/20250507160056.11876-1-hiagofranco@gmail.com/ > > > > v1: > > - https://lore.kernel.org/lkml/20250505154849.64889-1-hiagofranco@gmail.com/ > > > > Hiago De Franco (3): > > pmdomain: core: introduce dev_pm_genpd_is_on() > > remoteproc: imx_rproc: skip clock enable when M-core is managed by the > > SCU > > remoteproc: imx_rproc: detect and attach to pre-booted remote cores > > > > drivers/pmdomain/core.c | 33 +++++++++++++++++++++++++++ > > drivers/remoteproc/imx_rproc.c | 41 ++++++++++++++++++++++++++++------ > > include/linux/pm_domain.h | 6 +++++ > > 3 files changed, 73 insertions(+), 7 deletions(-) > > > > -- > > 2.39.5 > >
On Tue, Jun 17, 2025 at 04:34:47PM -0300, Hiago De Franco wrote: >From: Hiago De Franco <hiago.franco@toradex.com> > >This patch series depends on Ulf's patches that are currently under >review, "pmdomain: Add generic ->sync_state() support to genpd" [1]. >Without them, this series is not going to work. > >For the i.MX8X and i.MX8 family SoCs, currently when the remotecore is >started by the bootloader and the M core and A core are in the same >partition, the driver is not capable to detect the remote core and >report the correct state of it. > >This patch series implement a new function, dev_pm_genpd_is_on(), which >returns the power status of a given power domain (M core power domains >IMX_SC_R_M4_0_PID0 and IMX_SC_R_M4_0_MU_1A in this case). If it is >already powered on, the driver will attach to it. > >Finally, the imx_rproc_clk_enable() function was also changed to make it >return before dev_clk_get() is called, as it currently generates an SCU >fault reset if the remote core is already running and the kernel tries >to enable the clock again. These changes are a follow up from a v1 sent >to imx_rproc [2] and from a reported regression [3]. > >[1] https://lore.kernel.org/all/20250523134025.75130-1-ulf.hansson@linaro.org/ >[2] https://lore.kernel.org/lkml/20250423155131.101473-1-hiagofranco@gmail.com/ >[3] https://lore.kernel.org/lkml/20250404141713.ac2ntcsjsf7epdfa@hiago-nb/ > >v5: >- pm_runtime_get_sync() removed in favor of pm_runtime_resume_and_get(), > checking the return value of it. >- Added pm_runtime_disable() and pm_runtime_put() to imx_rproc_remove(). >- Fixed missing "()" in dev_pm_genpd_is_on description. >- Updated dev_pm_genpd_is_on() function description to be explicit the > function reflects the current power status of the device and that this > might change after the function returns, especially if the genpd is > shared. > >v4: >- https://lore.kernel.org/lkml/20250602131906.25751-1-hiagofranco@gmail.com/ > >v3: >- https://lore.kernel.org/all/20250519171514.61974-1-hiagofranco@gmail.com/ > >v2: >- https://lore.kernel.org/lkml/20250507160056.11876-1-hiagofranco@gmail.com/ > >v1: >- https://lore.kernel.org/lkml/20250505154849.64889-1-hiagofranco@gmail.com/ > >Hiago De Franco (3): > pmdomain: core: introduce dev_pm_genpd_is_on() > remoteproc: imx_rproc: skip clock enable when M-core is managed by the > SCU > remoteproc: imx_rproc: detect and attach to pre-booted remote cores Reviewed-by: Peng Fan <peng.fan@nxp.com> > > drivers/pmdomain/core.c | 33 +++++++++++++++++++++++++++ > drivers/remoteproc/imx_rproc.c | 41 ++++++++++++++++++++++++++++------ > include/linux/pm_domain.h | 6 +++++ > 3 files changed, 73 insertions(+), 7 deletions(-) > >-- >2.39.5 >
© 2016 - 2025 Red Hat, Inc.