Commit a39c258c authored by Olof Johansson's avatar Olof Johansson

Merge tag 'imx-drivers-5.10' of...

Merge tag 'imx-drivers-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/drivers

i.MX drivers update for 5.10:

- Use dev_err_probe() to simplify error handling for i.MX GPCv2 driver.
- Add a check in i.MX SCU power domain driver to ignore the power
  domains that are not owned by the current partition.

* tag 'imx-drivers-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  firmware: imx: scu-pd: ignore power domain not owned
  soc: imx: gpcv2: Use dev_err_probe() to simplify error handling

Link: https://lore.kernel.org/r/20200923073009.23678-1-shawnguo@kernel.orgSigned-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 8fc6726d e2314cf5
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
#include <dt-bindings/firmware/imx/rsrc.h> #include <dt-bindings/firmware/imx/rsrc.h>
#include <linux/firmware/imx/sci.h> #include <linux/firmware/imx/sci.h>
#include <linux/firmware/imx/svc/rm.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of.h> #include <linux/of.h>
...@@ -256,6 +257,9 @@ imx_scu_add_pm_domain(struct device *dev, int idx, ...@@ -256,6 +257,9 @@ imx_scu_add_pm_domain(struct device *dev, int idx,
struct imx_sc_pm_domain *sc_pd; struct imx_sc_pm_domain *sc_pd;
int ret; int ret;
if (!imx_sc_rm_is_resource_owned(pm_ipc_handle, pd_ranges->rsrc + idx))
return NULL;
sc_pd = devm_kzalloc(dev, sizeof(*sc_pd), GFP_KERNEL); sc_pd = devm_kzalloc(dev, sizeof(*sc_pd), GFP_KERNEL);
if (!sc_pd) if (!sc_pd)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
......
...@@ -487,22 +487,17 @@ static int imx_pgc_domain_probe(struct platform_device *pdev) ...@@ -487,22 +487,17 @@ static int imx_pgc_domain_probe(struct platform_device *pdev)
domain->regulator = devm_regulator_get_optional(domain->dev, "power"); domain->regulator = devm_regulator_get_optional(domain->dev, "power");
if (IS_ERR(domain->regulator)) { if (IS_ERR(domain->regulator)) {
if (PTR_ERR(domain->regulator) != -ENODEV) { if (PTR_ERR(domain->regulator) != -ENODEV)
if (PTR_ERR(domain->regulator) != -EPROBE_DEFER) return dev_err_probe(domain->dev, PTR_ERR(domain->regulator),
dev_err(domain->dev, "Failed to get domain's regulator\n"); "Failed to get domain's regulator\n");
return PTR_ERR(domain->regulator);
}
} else if (domain->voltage) { } else if (domain->voltage) {
regulator_set_voltage(domain->regulator, regulator_set_voltage(domain->regulator,
domain->voltage, domain->voltage); domain->voltage, domain->voltage);
} }
ret = imx_pgc_get_clocks(domain); ret = imx_pgc_get_clocks(domain);
if (ret) { if (ret)
if (ret != -EPROBE_DEFER) return dev_err_probe(domain->dev, ret, "Failed to get domain's clocks\n");
dev_err(domain->dev, "Failed to get domain's clocks\n");
return ret;
}
ret = pm_genpd_init(&domain->genpd, NULL, true); ret = pm_genpd_init(&domain->genpd, NULL, true);
if (ret) { if (ret) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment