drivers: nrf_rtc_timer: Rename set_absolute_alarm() to set_alarm()

This function name is misleading as the absolute time values handled
by the driver are 64-bit and this function receives a 32-bit parameter,
which is supposed to be a CC register value, not the target time.
Correct the name of this function and its parameter, and remove a now
unnecessary masking from its body.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
This commit is contained in:
Andrzej Głąbek 2023-02-13 14:36:31 +01:00 committed by Carles Cufí
commit d6ba49e298

View file

@ -217,7 +217,7 @@ uint64_t z_nrf_rtc_timer_get_ticks(k_timeout_t t)
return curr_time + result; return curr_time + result;
} }
/** @brief Function safely sets absolute alarm. /** @brief Function safely sets an alarm.
* *
* It assumes that provided value is at most COUNTER_HALF_SPAN cycles from now * It assumes that provided value is at most COUNTER_HALF_SPAN cycles from now
* (other values are considered to be from the past). It detects late setting * (other values are considered to be from the past). It detects late setting
@ -227,9 +227,9 @@ uint64_t z_nrf_rtc_timer_get_ticks(k_timeout_t t)
* *
* @param[in] chan A channel for which a new CC value is to be set. * @param[in] chan A channel for which a new CC value is to be set.
* *
* @param[in] abs_val An absolute value of CC register to be set. * @param[in] req_cc Requested CC register value to be set.
*/ */
static void set_absolute_alarm(int32_t chan, uint32_t abs_val) static void set_alarm(int32_t chan, uint32_t req_cc)
{ {
/* Ensure that the value exposed in this driver API is consistent with /* Ensure that the value exposed in this driver API is consistent with
* assumptions of this function. * assumptions of this function.
@ -243,10 +243,10 @@ static void set_absolute_alarm(int32_t chan, uint32_t abs_val)
* occurs in the second half of the RTC clock cycle (such situation can * occurs in the second half of the RTC clock cycle (such situation can
* be provoked by test_next_cycle_timeouts in the nrf_rtc_timer suite). * be provoked by test_next_cycle_timeouts in the nrf_rtc_timer suite).
* This never happens when the written value is N+3. Use 3 cycles as * This never happens when the written value is N+3. Use 3 cycles as
* for the nearest scheduling then. * the nearest possible scheduling then.
*/ */
enum { MIN_CYCLES_FROM_NOW = 3 }; enum { MIN_CYCLES_FROM_NOW = 3 };
uint32_t cc_val = abs_val & COUNTER_MAX; uint32_t cc_val = req_cc;
uint32_t cc_inc = MIN_CYCLES_FROM_NOW; uint32_t cc_inc = MIN_CYCLES_FROM_NOW;
/* Disable event routing for the channel to avoid getting a COMPARE /* Disable event routing for the channel to avoid getting a COMPARE
@ -313,7 +313,7 @@ static int compare_set_nolocks(int32_t chan, uint64_t target_time,
/* Target time is valid and is different than currently set. /* Target time is valid and is different than currently set.
* Set CC value. * Set CC value.
*/ */
set_absolute_alarm(chan, cc_value); set_alarm(chan, cc_value);
} }
} else { } else {
/* Force ISR handling when exiting from critical section. */ /* Force ISR handling when exiting from critical section. */
@ -478,11 +478,11 @@ static void process_channel(int32_t chan)
cc_data[chan].callback = NULL; cc_data[chan].callback = NULL;
cc_data[chan].target_time = TARGET_TIME_INVALID; cc_data[chan].target_time = TARGET_TIME_INVALID;
event_disable(chan); event_disable(chan);
/* Because of the way set_absolute_alarm() sets the CC /* Because of the way set_alarm() sets the CC register,
* register, it may turn out that another COMPARE event * it may turn out that another COMPARE event has been
* has been generated for the same alarm. Make sure the * generated for the same alarm. Make sure the event
* event is cleared, so that the ISR is not executed * is cleared, so that the ISR is not executed again
* again unnecessarily. * unnecessarily.
*/ */
event_clear(chan); event_clear(chan);
} }