Skip to content

Commit

Permalink
Merge tag 'omap-for-v4.7/soc-signed' of git://git.kernel.org/pub/scm/…
Browse files Browse the repository at this point in the history
…linux/kernel/git/tmlind/linux-omap into next/soc

Merge "SoC related changes for omaps for v4.7 merge window" from Tony Lindgren:

- Remove now unnecessary multi vs single SoC compile time optimizations
  as we are now using multiarch

- Configure dra7 powerdomains

- Clarify why omap-wakeupgen does not need to handle FROZEN transitions

- Add dra7 module configuration for MaASP, PWMSS and timer 12

- Add RTC module configuration unlock and lock functions

- Fix hwmod idle state sanity check sequence

* tag 'omap-for-v4.7/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: OMAP2+: wakeupgen: Add comment for unhandled FROZEN transitions
  ARM: OMAP: DRA7: powerdomain data: Remove wrong OSWR capability
  ARM: OMAP: DRA7: powerdomain data: Fix "ON" state for memories
  ARM: OMAP: DRA7: powerdomain data: Erratum i892 workaround: Disable core INA
  ARM: OMAP2+: remove redundant multiplatform checks
  ARM: OMAP2+: hwmod: fix _idle() hwmod state sanity check sequence
  ARM: DRA7: hwmod: Add data for GPTimer 12
  ARM: AMx3xx: RTC: Add lock and unlock functions
  ARM: DRA7: RTC: Add lock and unlock functions
  ARM: OMAP2+: hwmod: RTC: Add lock and unlock functions
  ARM: OMAP2+: DRA7: Add hwmod entries for PWMSS
  ARM: DRA7: hwmod: Add data for McASP1/2/4/5/6/7/8
  ARM: DRA7: clockdomain: Implement timer workaround for errata i874
  ARM: OMAP2+: hwmod: Fix updating of sysconfig register
  • Loading branch information
Arnd Bergmann committed Apr 28, 2016
2 parents 0d922f4 + 22292b9 commit 94a92cc
Show file tree
Hide file tree
Showing 10 changed files with 510 additions and 174 deletions.
2 changes: 1 addition & 1 deletion arch/arm/mach-omap2/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Makefile for the linux kernel.
#

ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \
ccflags-y := -I$(srctree)/$(src)/include \
-I$(srctree)/arch/arm/plat-omap/include

# Common support
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-omap2/clockdomains7xx_data.c
Original file line number Diff line number Diff line change
Expand Up @@ -461,7 +461,7 @@ static struct clockdomain ipu_7xx_clkdm = {
.cm_inst = DRA7XX_CM_CORE_AON_IPU_INST,
.clkdm_offs = DRA7XX_CM_CORE_AON_IPU_IPU_CDOFFS,
.dep_bit = DRA7XX_IPU_STATDEP_SHIFT,
.flags = CLKDM_CAN_HWSUP_SWSUP,
.flags = CLKDM_CAN_SWSUP,
};

static struct clockdomain mpu1_7xx_clkdm = {
Expand Down
5 changes: 5 additions & 0 deletions arch/arm/mach-omap2/omap-wakeupgen.c
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,11 @@ static int irq_cpu_hotplug_notify(struct notifier_block *self,
{
unsigned int cpu = (unsigned int)hcpu;

/*
* Corresponding FROZEN transitions do not have to be handled,
* they are handled by at a higher level
* (drivers/cpuidle/coupled.c).
*/
switch (action) {
case CPU_ONLINE:
wakeupgen_irqmask_all(cpu, 0);
Expand Down
20 changes: 10 additions & 10 deletions arch/arm/mach-omap2/omap_hwmod.c
Original file line number Diff line number Diff line change
Expand Up @@ -1416,9 +1416,7 @@ static void _enable_sysc(struct omap_hwmod *oh)
(sf & SYSC_HAS_CLOCKACTIVITY))
_set_clockactivity(oh, oh->class->sysc->clockact, &v);

/* If the cached value is the same as the new value, skip the write */
if (oh->_sysc_cache != v)
_write_sysconfig(v, oh);
_write_sysconfig(v, oh);

/*
* Set the autoidle bit only after setting the smartidle bit
Expand Down Expand Up @@ -1481,7 +1479,9 @@ static void _idle_sysc(struct omap_hwmod *oh)
_set_master_standbymode(oh, idlemode, &v);
}

_write_sysconfig(v, oh);
/* If the cached value is the same as the new value, skip the write */
if (oh->_sysc_cache != v)
_write_sysconfig(v, oh);
}

/**
Expand Down Expand Up @@ -2207,15 +2207,15 @@ static int _idle(struct omap_hwmod *oh)

pr_debug("omap_hwmod: %s: idling\n", oh->name);

if (_are_all_hardreset_lines_asserted(oh))
return 0;

if (oh->_state != _HWMOD_STATE_ENABLED) {
WARN(1, "omap_hwmod: %s: idle state can only be entered from enabled state\n",
oh->name);
return -EINVAL;
}

if (_are_all_hardreset_lines_asserted(oh))
return 0;

if (oh->class->sysc)
_idle_sysc(oh);
_del_initiator_dep(oh, mpu_oh);
Expand Down Expand Up @@ -2262,16 +2262,16 @@ static int _shutdown(struct omap_hwmod *oh)
int ret, i;
u8 prev_state;

if (_are_all_hardreset_lines_asserted(oh))
return 0;

if (oh->_state != _HWMOD_STATE_IDLE &&
oh->_state != _HWMOD_STATE_ENABLED) {
WARN(1, "omap_hwmod: %s: disabled state can only be entered from idle, or enabled state\n",
oh->name);
return -EINVAL;
}

if (_are_all_hardreset_lines_asserted(oh))
return 0;

pr_debug("omap_hwmod: %s: disabling\n", oh->name);

if (oh->class->pre_shutdown) {
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-omap2/omap_hwmod.h
Original file line number Diff line number Diff line change
Expand Up @@ -754,6 +754,8 @@ const char *omap_hwmod_get_main_clk(struct omap_hwmod *oh);
*/

extern int omap_hwmod_aess_preprogram(struct omap_hwmod *oh);
void omap_hwmod_rtc_unlock(struct omap_hwmod *oh);
void omap_hwmod_rtc_lock(struct omap_hwmod *oh);

/*
* Chip variant-specific hwmod init routines - XXX should be converted
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
Original file line number Diff line number Diff line change
Expand Up @@ -918,6 +918,8 @@ static struct omap_hwmod_class_sysconfig am33xx_rtc_sysc = {
static struct omap_hwmod_class am33xx_rtc_hwmod_class = {
.name = "rtc",
.sysc = &am33xx_rtc_sysc,
.unlock = &omap_hwmod_rtc_unlock,
.lock = &omap_hwmod_rtc_lock,
};

struct omap_hwmod am33xx_rtc_hwmod = {
Expand Down
Loading

0 comments on commit 94a92cc

Please sign in to comment.