summaryrefslogtreecommitdiffstats
path: root/bsps/sparc/shared
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2023-06-15 14:44:35 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2023-06-16 07:30:50 +0200
commit4e3e9df1b463cf06fac323140ca2b71f39d2d5f7 (patch)
treec64c41b833fbee170bc747eed39b384dfbe5c4e1 /bsps/sparc/shared
parentpci: Do not use BSP-specific interrupt API (diff)
downloadrtems-4e3e9df1b463cf06fac323140ca2b71f39d2d5f7.tar.bz2
bsps: Remove uses of BSP-specific interrupt API
Update #3269.
Diffstat (limited to 'bsps/sparc/shared')
-rw-r--r--bsps/sparc/shared/drvmgr/leon2_amba_bus.c16
-rw-r--r--bsps/sparc/shared/irq/irq-shared.c29
2 files changed, 11 insertions, 34 deletions
diff --git a/bsps/sparc/shared/drvmgr/leon2_amba_bus.c b/bsps/sparc/shared/drvmgr/leon2_amba_bus.c
index e4f6449520..9b8de54adc 100644
--- a/bsps/sparc/shared/drvmgr/leon2_amba_bus.c
+++ b/bsps/sparc/shared/drvmgr/leon2_amba_bus.c
@@ -373,7 +373,7 @@ int leon2_amba_int_register
DBG("Registering IRQ %d to func 0x%x arg 0x%x\n", irq, (unsigned int)isr, (unsigned int)arg);
- return BSP_shared_interrupt_register(irq, info, isr, arg);
+ return rtems_interrupt_handler_install(irq, info, RTEMS_INTERRUPT_SHARED, isr, arg);
}
int leon2_amba_int_unregister
@@ -392,7 +392,7 @@ int leon2_amba_int_unregister
DBG("Unregistering IRQ %d to func 0x%x arg 0x%x\n", irq, (unsigned int)handler, (unsigned int)arg);
- return BSP_shared_interrupt_unregister(irq, isr, arg);
+ return rtems_interrupt_handler_remove(irq, isr, arg);
}
int leon2_amba_int_clear
@@ -407,7 +407,9 @@ int leon2_amba_int_clear
if ( irq < 0 )
return -1;
- BSP_shared_interrupt_clear(irq);
+ if (rtems_interrupt_clear(irq) != RTEMS_SUCCESSFUL) {
+ return DRVMGR_FAIL;
+ }
return DRVMGR_OK;
}
@@ -424,7 +426,9 @@ int leon2_amba_int_mask
if ( irq < 0 )
return -1;
- BSP_shared_interrupt_mask(irq);
+ if (rtems_interrupt_vector_disable(irq) != RTEMS_SUCCESSFUL) {
+ return DRVMGR_FAIL;
+ }
return DRVMGR_OK;
}
@@ -441,7 +445,9 @@ int leon2_amba_int_unmask
if ( irq < 0 )
return -1;
- BSP_shared_interrupt_unmask(irq);
+ if (rtems_interrupt_vector_enable(irq) != RTEMS_SUCCESSFUL) {
+ return DRVMGR_FAIL;
+ }
return DRVMGR_OK;
}
diff --git a/bsps/sparc/shared/irq/irq-shared.c b/bsps/sparc/shared/irq/irq-shared.c
index 0a79b2ffa3..efa1d86020 100644
--- a/bsps/sparc/shared/irq/irq-shared.c
+++ b/bsps/sparc/shared/irq/irq-shared.c
@@ -32,19 +32,9 @@
static inline int bsp_irq_cpu(int irq)
{
-#if defined(RTEMS_SMP)
- Processor_mask affinity;
-
- (void) bsp_interrupt_get_affinity((rtems_vector_number) irq, &affinity);
- return (int) _Processor_mask_Find_last_set(&affinity);
-#elif defined(LEON3)
- return _LEON3_Get_current_processor();
-#else
return 0;
-#endif
}
-#if !defined(LEON3)
bool bsp_interrupt_is_valid_vector(rtems_vector_number vector)
{
if (vector == 0) {
@@ -150,22 +140,3 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
BSP_Cpu_Mask_interrupt(vector, 0);
return RTEMS_SUCCESSFUL;
}
-#endif
-
-void BSP_shared_interrupt_mask(int irq)
-{
- BSP_Cpu_Mask_interrupt(irq, bsp_irq_cpu(irq));
-}
-
-void BSP_shared_interrupt_unmask(int irq)
-{
- BSP_Cpu_Unmask_interrupt(irq, bsp_irq_cpu(irq));
-}
-
-void BSP_shared_interrupt_clear(int irq)
-{
- /* We don't have to interrupt lock here, because the register is only
- * written and self clearing
- */
- BSP_Clear_interrupt(irq);
-}