aboutsummaryrefslogtreecommitdiff
path: root/drivers/scsi/mpt2sas/mpi/mpi2_raid.h
diff options
context:
space:
mode:
authorNeilBrown <[email protected]>2013-03-19 12:38:15 -0500
committerBenoit Cousson <[email protected]>2013-04-09 00:21:29 +0200
commit9cc268d5bbc097ae5a3ae236fb2461ea113274bf (patch)
tree05751016c7bde8b73ee2fbe6564ddb6bd1fb8db0 /drivers/scsi/mpt2sas/mpi/mpi2_raid.h
parent7b3754c63e8d6528002386b313c527a826236d82 (diff)
ARM: OMAP: Simplify dmtimer context-loss handling
The context loss handling in dmtimer appears to assume that omap_dm_timer_set_load_start() or omap_dm_timer_start() and omap_dm_timer_stop() bracket all interactions. Only the first two restore the context and the last updates the context loss counter. However omap_dm_timer_set_load() or omap_dm_timer_set_match() can reasonably be called outside this bracketing, and the fact that they call omap_dm_timer_enable() / omap_dm_timer_disable() suggest that is expected. So if, after a transition into and out of off-mode which would cause the dm timer to loose all state, omap_dm_timer_set_match() is called before omap_dm_timer_start(), the value read from OMAP_TIMER_CTRL_REG will be 'wrong' and this wrong value will be stored context.tclr so a subsequent omap_dm_timer_start() can fail (As the control register is wrong). Simplify this be doing the restore-from-context in omap_dm_timer_enable() so that whenever the timer is enabled, the context is correct. Also update the ctx_loss_count at the same time as we notice it is wrong - these is no value in delaying this until the omap_dm_timer_disable() as it cannot change while the timer is enabled. Signed-off-by: NeilBrown <[email protected]> [[email protected]: minor update to subject and changed variable name] Signed-off-by: Jon Hunter <[email protected]> Acked-by: Tony Lindgren <[email protected]> Signed-off-by: Benoit Cousson <[email protected]>
Diffstat (limited to 'drivers/scsi/mpt2sas/mpi/mpi2_raid.h')
0 files changed, 0 insertions, 0 deletions