-
Notifications
You must be signed in to change notification settings - Fork 3k
RTL8195AM - fix us_ticker_fire_interrupt and us_ticker_clear_interrupt #5418
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
TIMER2_7_IRQ is shared among several timer sources, including us_ticker. Raising TIMER2_7_IRQ pending bit will trigger the timer interrupt, but the timer interrupt handler will not know which timer source this interrupt is for. This patch sets timer load value to one tick and force us_ticker to fire almost "immediately". TIMER2_7_IRQ is handled through a common interrupt handler, and is automatically cleared. Therefore, there is no need to clear IRQ. The underlying timer HAL treats load value as micro-seconds and does conversion internally. Therefore, simply pass micro-seconds to timer HAL without converting to tick first. Signed-off-by: Tony Wu <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How was this tested, as we have fire ticker interrupt test case there.
/morph build |
@0xc0170 I trigger timeout every 1 micro-second to force entering us_ticker_fire_interrupt() every timeout event. Without this patch, the timeout event is blocked. ` Timer timer; static void timeout_update() int main(int argc, char **argv) |
Build : SUCCESSBuild number : 418 Triggering tests/morph test |
Test : SUCCESSBuild number : 209 |
/morph uvisor-test |
uvisor CI actually failed on this one. |
/morph uvisor-test |
I am closing this PR. This patch is incorporated in Ameba's official PR#5464. |
Description
TIMER2_7_IRQ is shared among several timer sources, including
us_ticker. Raising TIMER2_7_IRQ pending bit will trigger the timer
interrupt, but the timer interrupt handler will not know which timer
source this interrupt is for. This patch sets timer load value to one
tick and force us_ticker to fire almost "immediately".
TIMER2_7_IRQ is handled through a common interrupt handler, and
is automatically cleared. Therefore, there is no need to clear IRQ.
The underlying timer HAL treats load value as micro-seconds and does
conversion internally. Therefore, simply pass micro-seconds to timer
HAL without converting to tick first.
Status
READY
Migrations
NO
Related PRs
NONE
Todos
NONE
Deploy notes
NONE
Steps to test or reproduce
NONE