summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/soc/tegra/Kconfig1
-rw-r--r--drivers/soc/tegra/cbb/tegra194-cbb.c9
-rw-r--r--drivers/soc/tegra/fuse/fuse-tegra.c5
-rw-r--r--drivers/soc/tegra/fuse/fuse-tegra30.c24
-rw-r--r--drivers/soc/tegra/pmc.c21
5 files changed, 20 insertions, 40 deletions
diff --git a/drivers/soc/tegra/Kconfig b/drivers/soc/tegra/Kconfig
index 073346c1542b..8b6fdb9ad1ea 100644
--- a/drivers/soc/tegra/Kconfig
+++ b/drivers/soc/tegra/Kconfig
@@ -171,6 +171,7 @@ config SOC_TEGRA_FLOWCTRL
config SOC_TEGRA_PMC
bool
+ depends on PM
select GENERIC_PINCONF
select IRQ_DOMAIN_HIERARCHY
select PM_OPP
diff --git a/drivers/soc/tegra/cbb/tegra194-cbb.c b/drivers/soc/tegra/cbb/tegra194-cbb.c
index 2f69e104c838..69ef929e04f8 100644
--- a/drivers/soc/tegra/cbb/tegra194-cbb.c
+++ b/drivers/soc/tegra/cbb/tegra194-cbb.c
@@ -2072,20 +2072,15 @@ static int tegra194_cbb_interrupt_enable(struct tegra_cbb *cbb)
if (priv->sec_irq) {
err = devm_request_irq(dev, priv->sec_irq, tegra194_cbb_err_isr, 0, dev_name(dev),
priv);
- if (err) {
- dev_err(dev, "failed to register interrupt %u: %d\n", priv->sec_irq, err);
+ if (err)
return err;
- }
}
if (priv->nonsec_irq) {
err = devm_request_irq(dev, priv->nonsec_irq, tegra194_cbb_err_isr, 0,
dev_name(dev), priv);
- if (err) {
- dev_err(dev, "failed to register interrupt %u: %d\n", priv->nonsec_irq,
- err);
+ if (err)
return err;
- }
}
return 0;
diff --git a/drivers/soc/tegra/fuse/fuse-tegra.c b/drivers/soc/tegra/fuse/fuse-tegra.c
index 78b054d43a42..39654964c35c 100644
--- a/drivers/soc/tegra/fuse/fuse-tegra.c
+++ b/drivers/soc/tegra/fuse/fuse-tegra.c
@@ -258,6 +258,7 @@ static int tegra_fuse_probe(struct platform_device *pdev)
static int __maybe_unused tegra_fuse_runtime_resume(struct device *dev)
{
+ struct tegra_fuse *fuse = dev_get_drvdata(dev);
int err;
err = clk_prepare_enable(fuse->clk);
@@ -271,6 +272,8 @@ static int __maybe_unused tegra_fuse_runtime_resume(struct device *dev)
static int __maybe_unused tegra_fuse_runtime_suspend(struct device *dev)
{
+ struct tegra_fuse *fuse = dev_get_drvdata(dev);
+
clk_disable_unprepare(fuse->clk);
return 0;
@@ -278,6 +281,7 @@ static int __maybe_unused tegra_fuse_runtime_suspend(struct device *dev)
static int __maybe_unused tegra_fuse_suspend(struct device *dev)
{
+ struct tegra_fuse *fuse = dev_get_drvdata(dev);
int ret;
/*
@@ -294,6 +298,7 @@ static int __maybe_unused tegra_fuse_suspend(struct device *dev)
static int __maybe_unused tegra_fuse_resume(struct device *dev)
{
+ struct tegra_fuse *fuse = dev_get_drvdata(dev);
int ret = 0;
if (fuse->soc->clk_suspend_on)
diff --git a/drivers/soc/tegra/fuse/fuse-tegra30.c b/drivers/soc/tegra/fuse/fuse-tegra30.c
index 524fa1b0cd3d..2fad8b13a3b9 100644
--- a/drivers/soc/tegra/fuse/fuse-tegra30.c
+++ b/drivers/soc/tegra/fuse/fuse-tegra30.c
@@ -64,28 +64,6 @@ static u32 tegra30_fuse_read(struct tegra_fuse *fuse, unsigned int offset)
return value;
}
-static void __init tegra30_fuse_add_randomness(void)
-{
- u32 randomness[12];
-
- randomness[0] = tegra_sku_info.sku_id;
- randomness[1] = tegra_read_straps();
- randomness[2] = tegra_read_chipid();
- randomness[3] = tegra_sku_info.cpu_process_id << 16;
- randomness[3] |= tegra_sku_info.soc_process_id;
- randomness[4] = tegra_sku_info.cpu_speedo_id << 16;
- randomness[4] |= tegra_sku_info.soc_speedo_id;
- randomness[5] = tegra_fuse_read_early(FUSE_VENDOR_CODE);
- randomness[6] = tegra_fuse_read_early(FUSE_FAB_CODE);
- randomness[7] = tegra_fuse_read_early(FUSE_LOT_CODE_0);
- randomness[8] = tegra_fuse_read_early(FUSE_LOT_CODE_1);
- randomness[9] = tegra_fuse_read_early(FUSE_WAFER_ID);
- randomness[10] = tegra_fuse_read_early(FUSE_X_COORDINATE);
- randomness[11] = tegra_fuse_read_early(FUSE_Y_COORDINATE);
-
- add_device_randomness(randomness, sizeof(randomness));
-}
-
static void __init tegra30_fuse_init(struct tegra_fuse *fuse)
{
fuse->read_early = tegra30_fuse_read_early;
@@ -95,8 +73,6 @@ static void __init tegra30_fuse_init(struct tegra_fuse *fuse)
if (fuse->soc->speedo_init)
fuse->soc->speedo_init(&tegra_sku_info);
-
- tegra30_fuse_add_randomness();
}
#endif
diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c
index f419a5395545..41ed716d5857 100644
--- a/drivers/soc/tegra/pmc.c
+++ b/drivers/soc/tegra/pmc.c
@@ -3074,15 +3074,18 @@ static int tegra_pmc_probe(struct platform_device *pdev)
}
}
- err = devm_register_sys_off_handler(&pdev->dev,
- SYS_OFF_MODE_RESTART,
- SYS_OFF_PRIO_LOW,
- tegra_pmc_restart_handler,
- pmc);
- if (err) {
- dev_err(&pdev->dev, "failed to register sys-off handler: %d\n",
- err);
- return err;
+ if (dev_to_node(&pdev->dev) == NUMA_NO_NODE) {
+ err = devm_register_sys_off_handler(&pdev->dev,
+ SYS_OFF_MODE_RESTART,
+ SYS_OFF_PRIO_LOW,
+ tegra_pmc_restart_handler,
+ pmc);
+ if (err) {
+ dev_err(&pdev->dev,
+ "failed to register sys-off handler: %d\n",
+ err);
+ return err;
+ }
}
/*