diff options
Diffstat (limited to 'arch/arm/cpu/psci-client.c')
-rw-r--r-- | arch/arm/cpu/psci-client.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/arch/arm/cpu/psci-client.c b/arch/arm/cpu/psci-client.c index b5d0d37497..c865e754fd 100644 --- a/arch/arm/cpu/psci-client.c +++ b/arch/arm/cpu/psci-client.c @@ -15,7 +15,7 @@ static struct restart_handler restart; -static void __noreturn psci_invoke_noreturn(int function) +static void __noreturn psci_invoke_noreturn(ulong function) { int ret; @@ -108,12 +108,12 @@ static u32 invoke_psci_fn_smc(ulong function, ulong arg0, ulong arg1, ulong arg2 return res.a0; } -static int of_psci_do_fixup(struct device_node *root, void *context) +static int of_psci_do_fixup(struct device_node *root, void *method) { - return of_psci_fixup(root, *(u32 *)context); + return of_psci_fixup(root, version, (const void *)method); } -static int __init psci_probe(struct device_d *dev) +static int __init psci_probe(struct device *dev) { const char *method; ulong of_version, actual_version; @@ -123,7 +123,7 @@ static int __init psci_probe(struct device_d *dev) if (ret) return -ENODEV; - ret = of_property_read_string(dev->device_node, "method", &method); + ret = of_property_read_string(dev->of_node, "method", &method); if (ret) { dev_warn(dev, "missing \"method\" property\n"); return -ENXIO; @@ -156,7 +156,7 @@ static int __init psci_probe(struct device_d *dev) version >> 16, version & 0xffff); if (actual_version != of_version) - of_register_fixup(of_psci_do_fixup, &version); + of_register_fixup(of_psci_do_fixup, (void *)method); ret = poweroff_handler_register_fn(psci_poweroff); if (ret) @@ -181,8 +181,9 @@ static __maybe_unused struct of_device_id psci_dt_ids[] = { { .compatible = "arm,psci-1.0", .data = (void*)ARM_PSCI_VER(1,0) }, { /* sentinel */ }, }; +MODULE_DEVICE_TABLE(of, psci_dt_ids); -static struct driver_d psci_driver = { +static struct driver psci_driver = { .name = "psci", .probe = psci_probe, .of_compatible = DRV_OF_COMPAT(psci_dt_ids), |