Commit c0c3bf74 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'omap-for-v6.6/soc-signed' of...

Merge tag 'omap-for-v6.6/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into soc/arm

SoC changes for omaps for v6.6

SoC changes to include the correct devicetree headers, and an update to
make use of_range_to_resource(). There is also a non-urgent fix for
pwrdm_read_prev_pwrst() array-bounds warning.

* tag 'omap-for-v6.6/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: omap2: Explicitly include correct DT includes
  ARM: OMAP2+: Fix -Warray-bounds warning in _pwrdm_state_switch()
  ARM: omap2: Use of_range_to_resource() for "ranges" parsing

Link: https://lore.kernel.org/r/pull-1691658952-110529@atomide.com-4Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents b5410ee6 2c32e600
......@@ -9,11 +9,10 @@
* to support the OMAP2+ device tree boards with an unique board file.
*/
#include <linux/io.h>
#include <linux/of_irq.h>
#include <linux/of_platform.h>
#include <linux/irqdomain.h>
#include <linux/clocksource.h>
#include <linux/clockchips.h>
#include <linux/mod_devicetable.h>
#include <asm/setup.h>
#include <asm/mach/arch.h>
......
......@@ -12,10 +12,9 @@
#include <linux/io.h>
#include <linux/irq.h>
#include <linux/irqchip.h>
#include <linux/platform_device.h>
#include <linux/memblock.h>
#include <linux/of.h>
#include <linux/of_irq.h>
#include <linux/of_platform.h>
#include <linux/export.h>
#include <linux/irqchip/arm-gic.h>
#include <linux/of_address.h>
......
......@@ -2194,23 +2194,8 @@ int omap_hwmod_parse_module_range(struct omap_hwmod *oh,
struct resource *res)
{
struct property *prop;
const __be32 *ranges;
const char *name;
u32 nr_addr, nr_size;
u64 base, size;
int len, error;
if (!res)
return -EINVAL;
ranges = of_get_property(np, "ranges", &len);
if (!ranges)
return -ENOENT;
len /= sizeof(*ranges);
if (len < 3)
return -EINVAL;
int err;
of_property_for_each_string(np, "compatible", prop, name)
if (!strncmp("ti,sysc-", name, 8))
......@@ -2219,26 +2204,12 @@ int omap_hwmod_parse_module_range(struct omap_hwmod *oh,
if (!name)
return -ENOENT;
error = of_property_read_u32(np, "#address-cells", &nr_addr);
if (error)
return -ENOENT;
err = of_range_to_resource(np, 0, res);
if (err)
return err;
error = of_property_read_u32(np, "#size-cells", &nr_size);
if (error)
return -ENOENT;
if (nr_addr != 1 || nr_size != 1) {
pr_err("%s: invalid range for %s->%pOFn\n", __func__,
oh->name, np);
return -EINVAL;
}
ranges++;
base = of_translate_address(np, ranges++);
size = be32_to_cpup(ranges);
pr_debug("omap_hwmod: %s %pOFn at 0x%llx size 0x%llx\n",
oh->name, np, base, size);
pr_debug("omap_hwmod: %s %pOFn at %pR\n",
oh->name, np, &res);
if (oh && oh->mpu_rt_idx) {
omap_hwmod_fix_mpu_rt_idx(oh, np, res);
......@@ -2246,10 +2217,6 @@ int omap_hwmod_parse_module_range(struct omap_hwmod *oh,
return 0;
}
res->start = base;
res->end = base + size - 1;
res->flags = IORESOURCE_MEM;
return 0;
}
......
......@@ -174,7 +174,7 @@ static int _pwrdm_state_switch(struct powerdomain *pwrdm, int flag)
break;
case PWRDM_STATE_PREV:
prev = pwrdm_read_prev_pwrst(pwrdm);
if (pwrdm->state != prev)
if (prev >= 0 && pwrdm->state != prev)
pwrdm->state_counter[prev]++;
if (prev == PWRDM_POWER_RET)
_update_logic_membank_counters(pwrdm);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment