bsps: Add gicv3_ppi_clear_pending()

This commit is contained in:
Sebastian Huber
2022-03-14 15:45:52 +01:00
parent 2e5b1312c8
commit be25de5ff8
2 changed files with 11 additions and 4 deletions

View File

@@ -176,6 +176,16 @@ static inline void gicv3_ppi_set_pending(
sgi_ppi->icspispendr[0] = 1U << vector;
}
static inline void gicv3_ppi_clear_pending(
rtems_vector_number vector,
uint32_t cpu_index
)
{
volatile gic_sgi_ppi *sgi_ppi = gicv3_get_sgi_ppi(cpu_index);
sgi_ppi->icspicpendr[0] = 1U << vector;
}
static inline void gicv3_trigger_sgi(
rtems_vector_number vector,
uint32_t targets

View File

@@ -138,10 +138,7 @@ rtems_status_code bsp_interrupt_clear(rtems_vector_number vector)
}
if ( vector <= ARM_GIC_IRQ_PPI_LAST ) {
volatile gic_sgi_ppi *sgi_ppi =
gicv3_get_sgi_ppi(_SMP_Get_current_processor());
sgi_ppi->icspicpendr[0] = 1U << vector;
gicv3_ppi_clear_pending(vector, _SMP_Get_current_processor());
} else {
volatile gic_dist *dist = ARM_GIC_DIST;