On Sat, Aug 1, 2015 at 10:57 AM, Scott Wood <scottw...@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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to