Messages in this thread | | | Date | Mon, 3 Aug 2015 19:10:32 +0800 | From | Chenhui Zhao <> | Subject | Re: [PATCH] powerpc/85xx: add sleep and deep sleep support |
| |
On Sat, Aug 1, 2015 at 10:57 AM, Scott Wood <scottwood@freescale.com> wrote: > On Fri, 2015-07-24 at 20:46 +0800, Chenhui Zhao wrote: >> +static void mpc85xx_pmc_set_wake(struct device *dev, void *enable) >> { >> int ret; >> + u32 value[2]; >> + >> + if (!device_may_wakeup(dev)) >> + return; >> + >> + if (!pmc_regs) { >> + dev_err(dev, "%s: PMC is unavailable\n", __func__); >> + return; >> + } >> + >> + ret = of_property_read_u32_array(dev->of_node, "sleep", >> value, 2); > > This will crash on any device without an of_node.
Add this before this line: if (!dev->of_node) return;
> > >> + if (ret) { >> + dev_dbg(dev, "%s: Can not find the \"sleep\" >> property.\n", >> + __func__); >> + return; >> + } >> + >> + if (*(int *)enable) >> + pmc_pmcdr_mask &= ~value[1]; >> + else >> + pmc_pmcdr_mask |= value[1]; >> + >> + if ((value[1] & 0xe0) && (pmc_flag & PMC_LOSSLESS)) >> + pmc_powmgtcsr = POWMGTCSR_LOSSLESS; >> +} > > What is 0xe0? > > -Scott
This is a mask value for the register PMCDR, which includes all bits corresponding to eTSEC. Will use a macro instead.
-Chenhui
| |