mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 07:13:54 -06:00
ptimer: Add TRIGGER_ONLY_ON_DECREMENT policy option
The CMSDK timer behaviour is that an interrupt is triggered when the counter counts down from 1 to 0; however one is not triggered if the counter is manually set to 0 by a guest write to the counter register. Currently ptimer can't handle this; add a policy option to allow a ptimer user to request this behaviour. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Tested-by: Guenter Roeck <linux@roeck-us.net> Message-id: 20180703171044.9503-2-peter.maydell@linaro.org
This commit is contained in:
parent
b78aae9bb6
commit
086ede32af
3 changed files with 49 additions and 7 deletions
|
@ -69,6 +69,15 @@
|
|||
* not the one less. */
|
||||
#define PTIMER_POLICY_NO_COUNTER_ROUND_DOWN (1 << 4)
|
||||
|
||||
/*
|
||||
* Starting to run with a zero counter, or setting the counter to "0" via
|
||||
* ptimer_set_count() or ptimer_set_limit() will not trigger the timer
|
||||
* (though it will cause a reload). Only a counter decrement to "0"
|
||||
* will cause a trigger. Not compatible with NO_IMMEDIATE_TRIGGER;
|
||||
* ptimer_init() will assert() that you don't set both.
|
||||
*/
|
||||
#define PTIMER_POLICY_TRIGGER_ONLY_ON_DECREMENT (1 << 5)
|
||||
|
||||
/* ptimer.c */
|
||||
typedef struct ptimer_state ptimer_state;
|
||||
typedef void (*ptimer_cb)(void *opaque);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue