v3d/simulator: capture hub interrupts

So far we were not capturing any HUB interrupt, just core. This could
be a problem if any is fired, as we could enter on an infinite
loop. With this commit we start to capture them. So we split v3d_isr
into core and hub interrupt handling.

As reference we capture the same HUB interrupts that we capture on the
v3d kernel support.

It is worth to note that all those are mostly untested. Now with both
opengl/vulkan driver being stable we were not able to raise those
interrupts.

v2 (Juan feedback):
   * Just one V3D_VERSION >= 41 block, more readable
   * Assert that the core is 0 at v3d_isr_core (we don't handle
     multi-core right now).

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11039>
This commit is contained in:
Alejandro Piñeiro
2021-05-08 01:11:42 +02:00
parent 4e9f1261ee
commit 123c7d7277
3 changed files with 140 additions and 25 deletions
@@ -89,5 +89,10 @@ v3d_hw_set_isr(struct v3d_hw *hw, void (*isr)(uint32_t status))
hw->set_isr(isr);
}
uint32_t v3d_hw_get_hub_core()
{
return V3D_HW_HUB_CORE;
}
}
#endif /* USE_V3D_SIMULATOR */