On 01/13, Chris Packham wrote:
> diff --git a/arch/arm/mach-mvebu/platsmp.c b/arch/arm/mach-mvebu/platsmp.c
> index 46c742d3bd41..59be3ca0464f 100644
> --- a/arch/arm/mach-mvebu/platsmp.c
> +++ b/arch/arm/mach-mvebu/platsmp.c
> @@ -184,3 +184,89 @@ const struct smp_operations armada_xp_smp_ops 
> __initconst = {
>  
>  CPU_METHOD_OF_DECLARE(armada_xp_smp, "marvell,armada-xp-smp",
>                     &armada_xp_smp_ops);
> +
> +struct resume_controller {
> +     u32 resume_control;
> +     u32 resume_boot_addr;
> +};
> +
> +static const struct resume_controller mv98dx3336_resume_controller = {
> +     .resume_control = 0x08,
> +     .resume_boot_addr = 0x04,
> +};
> +
> +static const struct of_device_id of_mv98dx3236_resume_table[] = {
> +     {
> +             .compatible = "marvell,98dx3336-resume-ctrl",
> +             .data = (void *)&mv98dx3336_resume_controller,

Useless cast?

> +     },
> +     { /* end of list */ },
> +};
> +
> +static int mv98dx3236_resume_set_cpu_boot_addr(int hw_cpu, void *boot_addr)
> +{
> +     const struct of_device_id *match;
> +     struct device_node *np;
> +     void __iomem *base;
> +     struct resume_controller *rc;
> +
> +     WARN_ON(hw_cpu != 1);
> +
> +     np = of_find_matching_node_and_match(NULL, of_mv98dx3236_resume_table,
> +                                          &match);
> +     if (!np)
> +             return -ENODEV;
> +
> +     base = of_io_request_and_map(np, 0, of_node_full_name(np));
> +     rc = (struct resume_controller *)match->data;

Useless cast?

> +     of_node_put(np);
> +     if (IS_ERR(base))
> +             return PTR_ERR(base);
> +
> +     writel(0, base + rc->resume_control);
> +     writel(virt_to_phys(boot_addr), base + rc->resume_boot_addr);
> +

Otherwise

Reviewed-by: Stephen Boyd <sb...@codeaurora.org>

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

Reply via email to