summaryrefslogtreecommitdiffstats
path: root/bsps/shared/dev/clock/xil-ttc.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2023-03-23 16:53:30 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2024-03-20 16:34:09 +0100
commit1eed6f8bfca86b77174412292ff7807708f4ab3a (patch)
tree54b059527e936d7858de549b18d448a8b6990b57 /bsps/shared/dev/clock/xil-ttc.c
parentDo not define CONFIGURE_TICKS_PER_TIMESLICE to 0 (diff)
downloadrtems-1eed6f8bfca86b77174412292ff7807708f4ab3a.tar.bz2
bsps: Avoid unused argument in clock interrupt
Pass the parameter of the clock interrupt handler to Clock_driver_support_at_tick() and Clock_driver_timecounter_tick(). This makes it possible to use the interrupt handler argument in clock drivers. Use the interrupt handler provided by Clock_driver_support_install_isr() to avoid local delarations of Clock_isr(). Update #4862.
Diffstat (limited to '')
-rw-r--r--bsps/shared/dev/clock/xil-ttc.c32
1 files changed, 12 insertions, 20 deletions
diff --git a/bsps/shared/dev/clock/xil-ttc.c b/bsps/shared/dev/clock/xil-ttc.c
index 5121773a6f..340c428a48 100644
--- a/bsps/shared/dev/clock/xil-ttc.c
+++ b/bsps/shared/dev/clock/xil-ttc.c
@@ -157,7 +157,7 @@ static void zynqmp_ttc_clock_driver_support_initialize_hardware(void)
*
* @retval Void
*/
-static void zynqmp_ttc_clock_driver_support_at_tick( void )
+static void zynqmp_ttc_clock_driver_support_at_tick(ttc_clock_context *tc)
{
uint32_t irq_flags;
uint32_t cval;
@@ -181,49 +181,41 @@ static void zynqmp_ttc_clock_driver_support_at_tick( void )
*/
now = XTtcPs_ReadReg(BSP_SELECTED_TTC_ADDR, XTTCPS_COUNT_VALUE_OFFSET);
delta = now - cval;
- if(delta > ttc_clock_instance.irq_match_interval) {
+ if(delta > tc->irq_match_interval) {
cval = now;
- ttc_clock_instance.tick_miss++;
+ tc->tick_miss++;
}
- cval += ttc_clock_instance.irq_match_interval;
+ cval += tc->irq_match_interval;
XTtcPs_WriteReg(BSP_SELECTED_TTC_ADDR, XTTCPS_MATCH_0_OFFSET, cval);
}
/* Else, something is set up wrong, only match should be enabled */
}
-/**
- * @brief registers RTI interrupt handler
- *
- * @param[in] Clock_isr new ISR handler
- * @param[in] Old_ticker old ISR handler (unused and type broken)
- *
- * @retval Void
- */
static void zynqmp_ttc_clock_driver_support_install_isr(
- rtems_isr_entry Clock_isr
+ rtems_interrupt_handler handler
)
{
- rtems_status_code sc = RTEMS_SUCCESSFUL;
+ rtems_status_code sc;
sc = rtems_interrupt_handler_install(
BSP_SELECTED_TTC_IRQ,
"Clock",
RTEMS_INTERRUPT_UNIQUE,
- (rtems_interrupt_handler) Clock_isr,
- NULL
+ handler,
+ &ttc_clock_instance
);
if ( sc != RTEMS_SUCCESSFUL ) {
rtems_fatal_error_occurred(0xdeadbeef);
}
}
-#define Clock_driver_support_at_tick \
- zynqmp_ttc_clock_driver_support_at_tick
+#define Clock_driver_support_at_tick(arg) \
+ zynqmp_ttc_clock_driver_support_at_tick(arg)
#define Clock_driver_support_initialize_hardware \
zynqmp_ttc_clock_driver_support_initialize_hardware
-#define Clock_driver_support_install_isr(Clock_isr) \
- zynqmp_ttc_clock_driver_support_install_isr( Clock_isr )
+#define Clock_driver_support_install_isr(isr) \
+ zynqmp_ttc_clock_driver_support_install_isr(isr)
#include "../../../shared/dev/clock/clockimpl.h"