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.
This commit is contained in:
Sebastian Huber
2023-03-23 16:53:30 +01:00
parent d62f299b34
commit 1eed6f8bfc
42 changed files with 137 additions and 181 deletions

View File

@@ -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"