mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 13:14:02 +02:00
soc/tegra: pmc: Don't register sys-off handler for multi-socket devices
The kernel does not permit a device to register multiple sys-off handlers for non-default priority levels. Hence, for multi-socket Tegra devices, registering the sys-off handler in the Tegra PMC driver (which uses the low priority level) more than once fails. The Tegra PMC sys-off handler is supported for all current generations of the Tegra SoC, however, it is only used as a low priority handler if everything else fails. For example, on Tegra264 the EFI reboot handler is called to restart the device. Therefore, for multi-socket devices, skip the registering of the sys-off handler to because this is not critical. Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
dc59e4fea9
commit
74a161d20e
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user