Skip to content

Commit 9503427

Browse files
committed
Merge tag 'fixes-rcu-fiq-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
Fixes for omaps for v4.7-rc cycle: - Two boot warning fixes from the RCU tree that should have gotten merged several weeks ago already but did not because of issues with who merges them. Paul has now split the RCU warning fixes into sets for various maintainers. - Fix ams-delta FIQ regression caused by omap1 sparse IRQ changes - Fix PM for omap3 boards using timer12 and gptimer, like the original beagleboard - Fix hangs on am437x-sk-evm by lowering the I2C bus speed * tag 'fixes-rcu-fiq-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: am437x-sk-evm: Reduce i2c0 bus speed for tps65218 ARM: OMAP2+: timer: add probe for clocksources ARM: OMAP1: fix ams-delta FIQ handler to work with sparse IRQ arm: Use _rcuidle for smp_cross_call() tracepoints arm: Use _rcuidle tracepoint to allow use from idle Signed-off-by: Olof Johansson <[email protected]>
2 parents 0e289e5 + d279f7a commit 9503427

File tree

7 files changed

+20
-13
lines changed

7 files changed

+20
-13
lines changed

arch/arm/boot/dts/am437x-sk-evm.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@
418418
status = "okay";
419419
pinctrl-names = "default";
420420
pinctrl-0 = <&i2c0_pins>;
421-
clock-frequency = <400000>;
421+
clock-frequency = <100000>;
422422

423423
tps@24 {
424424
compatible = "ti,tps65218";

arch/arm/kernel/smp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ static const char *ipi_types[NR_IPI] __tracepoint_string = {
486486

487487
static void smp_cross_call(const struct cpumask *target, unsigned int ipinr)
488488
{
489-
trace_ipi_raise(target, ipi_types[ipinr]);
489+
trace_ipi_raise_rcuidle(target, ipi_types[ipinr]);
490490
__smp_cross_call(target, ipinr);
491491
}
492492

arch/arm/mach-omap1/ams-delta-fiq-handler.S

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@
4343
#define OTHERS_MASK (MODEM_IRQ_MASK | HOOK_SWITCH_MASK)
4444

4545
/* IRQ handler register bitmasks */
46-
#define DEFERRED_FIQ_MASK (0x1 << (INT_DEFERRED_FIQ % IH2_BASE))
47-
#define GPIO_BANK1_MASK (0x1 << INT_GPIO_BANK1)
46+
#define DEFERRED_FIQ_MASK OMAP_IRQ_BIT(INT_DEFERRED_FIQ)
47+
#define GPIO_BANK1_MASK OMAP_IRQ_BIT(INT_GPIO_BANK1)
4848

4949
/* Driver buffer byte offsets */
5050
#define BUF_MASK (FIQ_MASK * 4)
@@ -110,7 +110,7 @@ ENTRY(qwerty_fiqin_start)
110110
mov r8, #2 @ reset FIQ agreement
111111
str r8, [r12, #IRQ_CONTROL_REG_OFFSET]
112112

113-
cmp r10, #INT_GPIO_BANK1 @ is it GPIO bank interrupt?
113+
cmp r10, #(INT_GPIO_BANK1 - NR_IRQS_LEGACY) @ is it GPIO interrupt?
114114
beq gpio @ yes - process it
115115

116116
mov r8, #1

arch/arm/mach-omap1/ams-delta-fiq.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,8 @@ void __init ams_delta_init_fiq(void)
109109
* Since no set_type() method is provided by OMAP irq chip,
110110
* switch to edge triggered interrupt type manually.
111111
*/
112-
offset = IRQ_ILR0_REG_OFFSET + INT_DEFERRED_FIQ * 0x4;
112+
offset = IRQ_ILR0_REG_OFFSET +
113+
((INT_DEFERRED_FIQ - NR_IRQS_LEGACY) & 0x1f) * 0x4;
113114
val = omap_readl(DEFERRED_FIQ_IH_BASE + offset) & ~(1 << 1);
114115
omap_writel(val, DEFERRED_FIQ_IH_BASE + offset);
115116

@@ -149,7 +150,7 @@ void __init ams_delta_init_fiq(void)
149150
/*
150151
* Redirect GPIO interrupts to FIQ
151152
*/
152-
offset = IRQ_ILR0_REG_OFFSET + INT_GPIO_BANK1 * 0x4;
153+
offset = IRQ_ILR0_REG_OFFSET + (INT_GPIO_BANK1 - NR_IRQS_LEGACY) * 0x4;
153154
val = omap_readl(OMAP_IH1_BASE + offset) | 1;
154155
omap_writel(val, OMAP_IH1_BASE + offset);
155156
}

arch/arm/mach-omap1/include/mach/ams-delta-fiq.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
#ifndef __AMS_DELTA_FIQ_H
1515
#define __AMS_DELTA_FIQ_H
1616

17+
#include <mach/irqs.h>
18+
1719
/*
1820
* Interrupt number used for passing control from FIQ to IRQ.
1921
* IRQ12, described as reserved, has been selected.

arch/arm/mach-omap2/powerdomain.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,8 +186,9 @@ static int _pwrdm_state_switch(struct powerdomain *pwrdm, int flag)
186186
trace_state = (PWRDM_TRACE_STATES_FLAG |
187187
((next & OMAP_POWERSTATE_MASK) << 8) |
188188
((prev & OMAP_POWERSTATE_MASK) << 0));
189-
trace_power_domain_target(pwrdm->name, trace_state,
190-
smp_processor_id());
189+
trace_power_domain_target_rcuidle(pwrdm->name,
190+
trace_state,
191+
smp_processor_id());
191192
}
192193
break;
193194
default:
@@ -523,8 +524,8 @@ int pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst)
523524

524525
if (arch_pwrdm && arch_pwrdm->pwrdm_set_next_pwrst) {
525526
/* Trace the pwrdm desired target state */
526-
trace_power_domain_target(pwrdm->name, pwrst,
527-
smp_processor_id());
527+
trace_power_domain_target_rcuidle(pwrdm->name, pwrst,
528+
smp_processor_id());
528529
/* Program the pwrdm desired target state */
529530
ret = arch_pwrdm->pwrdm_set_next_pwrst(pwrdm, pwrst);
530531
}

arch/arm/mach-omap2/timer.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -496,15 +496,16 @@ void __init omap_init_time(void)
496496
__omap_sync32k_timer_init(1, "timer_32k_ck", "ti,timer-alwon",
497497
2, "timer_sys_ck", NULL, false);
498498

499-
if (of_have_populated_dt())
500-
clocksource_probe();
499+
clocksource_probe();
501500
}
502501

503502
#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM43XX)
504503
void __init omap3_secure_sync32k_timer_init(void)
505504
{
506505
__omap_sync32k_timer_init(12, "secure_32k_fck", "ti,timer-secure",
507506
2, "timer_sys_ck", NULL, false);
507+
508+
clocksource_probe();
508509
}
509510
#endif /* CONFIG_ARCH_OMAP3 */
510511

@@ -513,6 +514,8 @@ void __init omap3_gptimer_timer_init(void)
513514
{
514515
__omap_sync32k_timer_init(2, "timer_sys_ck", NULL,
515516
1, "timer_sys_ck", "ti,timer-alwon", true);
517+
518+
clocksource_probe();
516519
}
517520
#endif
518521

0 commit comments

Comments
 (0)