Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f39b24e0 authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge tag 'tegra-for-4.13-soc' of...

Merge tag 'tegra-for-4.13-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/drivers

soc/tegra: Changes for v4.13-rc1

This contains an implementation of generic PM domains for Tegra186,
based on the BPMP powergate request.

* tag 'tegra-for-4.13-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux

:
  soc/tegra: flowctrl: Fix error handling
  soc/tegra: bpmp: Implement generic PM domains
  soc/tegra: bpmp: Update ABI header
  PM / Domains: Allow overriding the ->xlate() callback

Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 93c452f5 da1dbec1
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1584,9 +1584,6 @@ EXPORT_SYMBOL_GPL(pm_genpd_remove);

#ifdef CONFIG_PM_GENERIC_DOMAINS_OF

typedef struct generic_pm_domain *(*genpd_xlate_t)(struct of_phandle_args *args,
						   void *data);

/*
 * Device Tree based PM domain providers.
 *
@@ -1742,6 +1739,9 @@ int of_genpd_add_provider_onecell(struct device_node *np,

	mutex_lock(&gpd_list_lock);

	if (!data->xlate)
		data->xlate = genpd_xlate_onecell;

	for (i = 0; i < data->num_domains; i++) {
		if (!data->domains[i])
			continue;
@@ -1752,7 +1752,7 @@ int of_genpd_add_provider_onecell(struct device_node *np,
		data->domains[i]->has_provider = true;
	}

	ret = genpd_add_provider(np, genpd_xlate_onecell, data);
	ret = genpd_add_provider(np, data->xlate, data);
	if (ret < 0)
		goto error;

+4 −0
Original line number Diff line number Diff line
@@ -810,6 +810,10 @@ static int tegra_bpmp_probe(struct platform_device *pdev)
	if (err < 0)
		goto free_mrq;

	err = tegra_bpmp_init_powergates(bpmp);
	if (err < 0)
		goto free_mrq;

	platform_set_drvdata(pdev, bpmp);

	return 0;
+5 −0
Original line number Diff line number Diff line
@@ -115,3 +115,8 @@ config SOC_TEGRA_PMC

config SOC_TEGRA_PMC_TEGRA186
	bool

config SOC_TEGRA_POWERGATE_BPMP
	def_bool y
	depends on PM_GENERIC_DOMAINS
	depends on TEGRA_BPMP
+1 −0
Original line number Diff line number Diff line
@@ -4,3 +4,4 @@ obj-y += common.o
obj-$(CONFIG_SOC_TEGRA_FLOWCTRL) += flowctrl.o
obj-$(CONFIG_SOC_TEGRA_PMC) += pmc.o
obj-$(CONFIG_SOC_TEGRA_PMC_TEGRA186) += pmc-tegra186.o
obj-$(CONFIG_SOC_TEGRA_POWERGATE_BPMP) += powergate-bpmp.o
+1 −1
Original line number Diff line number Diff line
@@ -157,7 +157,7 @@ static int tegra_flowctrl_probe(struct platform_device *pdev)
	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	tegra_flowctrl_base = devm_ioremap_resource(&pdev->dev, res);
	if (IS_ERR(tegra_flowctrl_base))
		return PTR_ERR(base);
		return PTR_ERR(tegra_flowctrl_base);

	iounmap(base);

Loading