drivers: Fix goldfish events x64 unresponsive interrupt issue

Signed-off-by: liuhongchao <liuhongchao@xiaomi.com>
This commit is contained in:
liuhongchao
2024-08-21 17:21:42 +08:00
committed by Xiang Xiao
parent 122a832feb
commit d2d8d49359
+4 -5
View File
@@ -244,6 +244,8 @@ static void goldfish_events_worker(FAR void *arg)
FAR struct goldfish_events_s *events = (FAR struct goldfish_events_s *)arg; FAR struct goldfish_events_s *events = (FAR struct goldfish_events_s *)arg;
struct goldfish_input_event evt; struct goldfish_input_event evt;
up_enable_irq(events->irq);
evt.type = getreg32(events->base + GOLDFISH_EVENTS_READ); evt.type = getreg32(events->base + GOLDFISH_EVENTS_READ);
putreg32(GOLDFISH_EVENTS_PAGE_ABSDATA, putreg32(GOLDFISH_EVENTS_PAGE_ABSDATA,
events->base + GOLDFISH_EVENTS_SET_PAGE); events->base + GOLDFISH_EVENTS_SET_PAGE);
@@ -259,18 +261,15 @@ static void goldfish_events_worker(FAR void *arg)
if (goldfish_events_send_touch_event(events, &evt)) if (goldfish_events_send_touch_event(events, &evt))
{ {
goto out; return;
} }
if (goldfish_events_send_mouse_event(events, &evt)) if (goldfish_events_send_mouse_event(events, &evt))
{ {
goto out; return;
} }
goldfish_events_send_keyboard_event(events, &evt); goldfish_events_send_keyboard_event(events, &evt);
out:
up_enable_irq(events->irq);
} }
/**************************************************************************** /****************************************************************************