09 Jan, 2012
3 commits
-
broadcast_timer_setup() has no user now, drop it.
Signed-off-by: Bob Liu
-
Signed-off-by: Steven Miao
Signed-off-by: Bob Liu -
move idle task point to percpu blackfin_cpudata and add smp_timer_broadcast
interface.
enable SUPPLE_1_WAKEUP and add BFIN_IPI_TIMER ipi support.Signed-off-by: Steven Miao
Signed-off-by: Bob Liu
12 Dec, 2011
3 commits
-
Those two APIs were provided to optimize the calls of
tick_nohz_idle_enter() and rcu_idle_enter() into a single
irq disabled section. This way no interrupt happening in-between would
needlessly process any RCU job.Now we are talking about an optimization for which benefits
have yet to be measured. Let's start simple and completely decouple
idle rcu and dyntick idle logics to simplify.Signed-off-by: Frederic Weisbecker
Cc: Ingo Molnar
Cc: Thomas Gleixner
Cc: Peter Zijlstra
Reviewed-by: Josh Triplett
Signed-off-by: Paul E. McKenney -
It is assumed that rcu won't be used once we switch to tickless
mode and until we restart the tick. However this is not always
true, as in x86-64 where we dereference the idle notifiers after
the tick is stopped.To prepare for fixing this, add two new APIs:
tick_nohz_idle_enter_norcu() and tick_nohz_idle_exit_norcu().If no use of RCU is made in the idle loop between
tick_nohz_enter_idle() and tick_nohz_exit_idle() calls, the arch
must instead call the new *_norcu() version such that the arch doesn't
need to call rcu_idle_enter() and rcu_idle_exit().Otherwise the arch must call tick_nohz_enter_idle() and
tick_nohz_exit_idle() and also call explicitly:- rcu_idle_enter() after its last use of RCU before the CPU is put
to sleep.
- rcu_idle_exit() before the first use of RCU after the CPU is woken
up.Signed-off-by: Frederic Weisbecker
Cc: Mike Frysinger
Cc: Guan Xuetao
Cc: David Miller
Cc: Chris Metcalf
Cc: Hans-Christian Egtvedt
Cc: Ralf Baechle
Cc: Paul E. McKenney
Cc: Ingo Molnar
Cc: Peter Zijlstra
Cc: Thomas Gleixner
Cc: H. Peter Anvin
Cc: Russell King
Cc: Paul Mackerras
Cc: Heiko Carstens
Cc: Paul Mundt
Signed-off-by: Paul E. McKenney -
The tick_nohz_stop_sched_tick() function, which tries to delay
the next timer tick as long as possible, can be called from two
places:- From the idle loop to start the dytick idle mode
- From interrupt exit if we have interrupted the dyntick
idle mode, so that we reprogram the next tick event in
case the irq changed some internal state that requires this
action.There are only few minor differences between both that
are handled by that function, driven by the ts->inidle
cpu variable and the inidle parameter. The whole guarantees
that we only update the dyntick mode on irq exit if we actually
interrupted the dyntick idle mode, and that we enter in RCU extended
quiescent state from idle loop entry only.Split this function into:
- tick_nohz_idle_enter(), which sets ts->inidle to 1, enters
dynticks idle mode unconditionally if it can, and enters into RCU
extended quiescent state.- tick_nohz_irq_exit() which only updates the dynticks idle mode
when ts->inidle is set (ie: if tick_nohz_idle_enter() has been called).To maintain symmetry, tick_nohz_restart_sched_tick() has been renamed
into tick_nohz_idle_exit().This simplifies the code and micro-optimize the irq exit path (no need
for local_irq_save there). This also prepares for the split between
dynticks and rcu extended quiescent state logics. We'll need this split to
further fix illegal uses of RCU in extended quiescent states in the idle
loop.Signed-off-by: Frederic Weisbecker
Cc: Mike Frysinger
Cc: Guan Xuetao
Cc: David Miller
Cc: Chris Metcalf
Cc: Hans-Christian Egtvedt
Cc: Ralf Baechle
Cc: Paul E. McKenney
Cc: Ingo Molnar
Cc: Peter Zijlstra
Cc: Thomas Gleixner
Cc: H. Peter Anvin
Cc: Russell King
Cc: Paul Mackerras
Cc: Heiko Carstens
Cc: Paul Mundt
Signed-off-by: Paul E. McKenney
Reviewed-by: Josh Triplett
01 Nov, 2011
1 commit
-
These particular files were just assuming that module.h was
somehow in the include paths. Give them the more minimalist
header file explicitly.Signed-off-by: Paul Gortmaker
26 Oct, 2011
2 commits
-
This flag is a NOOP and can be removed now.
Signed-off-by: Yong Zhang
Acked-by: Bob Liu
Signed-off-by: Mike Frysinger -
__kfree_rcu() in rcupdate.h bugs when parameter offset is not a constant
at compile time. Since we build the kgdb_test module with -O0 and it
includes this header file, we hit the bug. So drop the -O0 and mark the
one func we need for the test as noinline (so we can set a breakpoint on
it and have it be hit).Signed-off-by: Sonic Zhang
Signed-off-by: Mike Frysinger
27 Jul, 2011
1 commit
-
This allows us to move duplicated code in
(atomic_inc_not_zero() for now) toSigned-off-by: Arun Sharma
Reviewed-by: Eric Dumazet
Cc: Ingo Molnar
Cc: David Miller
Cc: Eric Dumazet
Acked-by: Mike Frysinger
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
24 Jul, 2011
1 commit
-
This patch removes all the module loader hook implementations in the
architecture specific code where the functionality is the same as that
now provided by the recently added default hooks.Signed-off-by: Jonas Bonn
Acked-by: Mike Frysinger
Acked-by: Geert Uytterhoeven
Tested-by: Michal Simek
Signed-off-by: Rusty Russell
23 Jul, 2011
16 commits
-
The bug in the BF526 rom when doing a software reset exists only in older
silicon versions, so don't clear SWRST on newer parts.Signed-off-by: Mike Frysinger
-
Back in commit c03c2a87347b849ec927d, we fixed logic in the non-bf54x
GPIO resume code to set the data levels properly before the direction
to avoid spurious line glitches. But we missed the bf54x code paths.
So add the same fix there.Signed-off-by: Mike Frysinger
-
Re-architect how we save/restore the gpio/port logic that only pertains
to bf538/bf539 parts by pulling it out of the core code paths and pushing
it out to bf538-specific locations.Signed-off-by: Mike Frysinger
-
Don't bind the code to specific CPU defines.
Signed-off-by: Mike Frysinger
-
The hardware block uses the name "request" rather than "irq", so update
the struct accordingly.Signed-off-by: Mike Frysinger
-
For now, this only supports gptimers. Support for dedicated PWM devices
as found on newer parts to come.Signed-off-by: Michael Hennerich
Signed-off-by: Mike Frysinger -
The alignment is normally handled by PERCPU(), but we need to do it
ourselves in the XIP build due to the custom layout.Signed-off-by: Steven Miao
Signed-off-by: Mike Frysinger -
Use proper helper macros for reading/writing the MMRs rather than
volatile markings on the struct.Signed-off-by: Mike Frysinger
-
Now that asm/gptimers.h has the hardware register struct layout, there's
no need to duplicate things locally.Signed-off-by: Mike Frysinger
-
Signed-off-by: Mike Frysinger
-
Passing a non-simple expression in as the addr arg could incorrectly
apply the pointer cast resulting in misbehavior. Add proper paren.Signed-off-by: Mike Frysinger
-
The address limit is already set in flush_old_exec() so this
set_fs(USER_DS) is redundant.Signed-off-by: Mathias Krause
Signed-off-by: Mike Frysinger -
The documentation for the IMDMA channels appears to be incorrect.
These DMA blocks don't actually have PERIPHERAL_MAP MMRs for us
to access. Attempts to do so lead to system mmr hardware errors.Signed-off-by: Mike Frysinger
-
Signed-off-by: Mike Frysinger
-
This moves the double fault data used at boot time into a single struct
which can then easily be addressed with indexed loads rather than having
to explicitly load multiple addresses.Signed-off-by: Mike Frysinger
-
Signed-off-by: Mike Frysinger
29 May, 2011
2 commits
-
The documentation is a little iffy as to whether these are actual MMRs,
but reading them on the hardware works, and the previous version of this
logic (the SDH) had PID[4567]. So add it for RSI too.Signed-off-by: Mike Frysinger
-
This code was mostly developed against a BF54x, so some BF537-specific
issues were missed.The PPI block starts at PPI_CONTROL, not PPI_STATUS (which is the reverse
of the EPPI block).The MDMA block starts at MDMA_NEXT_DESC_PTR, not MDMA_CONFIG. Seems the
sim does not catch misreads here so that'll need to get fixed.The gptimer block is mostly 32bit regs, not 16bit. Use the gptimer struct
to figure that out rather than hardcoding it locally.Signed-off-by: Mike Frysinger
25 May, 2011
11 commits
-
The Blackfin percpu input sections are outdated, so rather than update
them, drop them completely and use the new common define.Signed-off-by: Mike Frysinger
-
Anomaly 05000480 on BF537 rev 0.0, 0.1, 0.2:
Multiple Simultaneous Urgent DMA Requests May Cause DMA System InstabilitySuggested Workaround:
Program the DMA Traffic Control Period to a non-zero value. This forces
the DMA block to group accesses together rather than allow arbitration for
each piece of data placed on the internal DMA bus.Signed-off-by: Steven Miao
Signed-off-by: Mike Frysinger -
->read_proc interface is going away, switch to seq_file.
Signed-off-by: Alexey Dobriyan
Signed-off-by: Mike Frysinger -
old cpu_xxx() APIs is planned to removed later. then, converted.
Signed-off-by: KOSAKI Motohiro
Signed-off-by: Mike Frysinger -
Every callter (except kthread_bind) should use proper
set_cpus_allowed_ptr() APIs.Signed-off-by: KOSAKI Motohiro
Signed-off-by: Mike Frysinger -
Signed-off-by: Mike Frysinger
-
Turns out the documentation is wrong and doing "RAISE 1" does not result
in a software reset, only a core reset. So when the on-chip rom has a
functioning reset helper, use it.Signed-off-by: Mike Frysinger
-
Since the value of these MMRs aren't changing, store the value in a local
variable and work off of that. This avoids multiple MMR reads which are
implicitly forced by the volatile markings.Signed-off-by: Mike Frysinger
-
The BF537 SIC combines the gpio port H mask A interrupts with the
emac rx interrupt, so we need to demux this in software.It also combines the gpio port H mask B and the emac tx interrupts,
and the watchdog and port F mask B interrupts, but since we don't
support mask B yet, just add the defines for now.Signed-off-by: Mike Frysinger
-
These are only used in a few internal Blackfin places, so move the irq
prototypes out of the global header and into the internal irq one. No
functional changes other than shuffling locales.Signed-off-by: Mike Frysinger
-
Signed-off-by: Mike Frysinger