Commit d5fa46ca authored by Adam Wujek's avatar Adam Wujek 💬

wr-servo: pass ppi context to the wr_servo_reset

Signed-off-by: Adam Wujek's avatarAdam Wujek <adam.wujek@cern.ch>
parent fb0941b2
...@@ -201,7 +201,7 @@ int wrc_ptp_start() ...@@ -201,7 +201,7 @@ int wrc_ptp_start()
start_tics = timer_get_tics(); start_tics = timer_get_tics();
WR_DSPOR(ppi)->linkUP = FALSE; WR_DSPOR(ppi)->linkUP = FALSE;
wr_servo_reset(); wr_servo_reset(ppi);
ptp_enabled = 1; ptp_enabled = 1;
return 0; return 0;
...@@ -219,7 +219,7 @@ int wrc_ptp_stop() ...@@ -219,7 +219,7 @@ int wrc_ptp_stop()
ppi->frgn_rec_num = 0; /* no known master */ ppi->frgn_rec_num = 0; /* no known master */
ptp_enabled = 0; ptp_enabled = 0;
wr_servo_reset(); wr_servo_reset(ppi);
pp_close_globals(&ppg_static); pp_close_globals(&ppg_static);
return 0; return 0;
......
...@@ -57,7 +57,7 @@ static int run_all_state_machines(struct pp_globals *ppg) ...@@ -57,7 +57,7 @@ static int run_all_state_machines(struct pp_globals *ppg)
ppi->frgn_rec_num = 0; ppi->frgn_rec_num = 0;
ppi->frgn_rec_best = -1; ppi->frgn_rec_best = -1;
if (ppg->ebest_idx == ppi->port_idx) if (ppg->ebest_idx == ppi->port_idx)
wr_servo_reset(); wr_servo_reset(ppi);
} }
} }
......
...@@ -131,7 +131,7 @@ enum { ...@@ -131,7 +131,7 @@ enum {
/* wr_servo interface */ /* wr_servo interface */
int wr_servo_init(struct pp_instance *ppi); int wr_servo_init(struct pp_instance *ppi);
void wr_servo_reset(void); void wr_servo_reset(struct pp_instance *ppi);
void wr_servo_enable_tracking(int enable); void wr_servo_enable_tracking(int enable);
int wr_servo_got_sync(struct pp_instance *ppi, TimeInternal *t1, int wr_servo_got_sync(struct pp_instance *ppi, TimeInternal *t1,
TimeInternal *t2); TimeInternal *t2);
......
...@@ -28,9 +28,6 @@ static const char *servo_name[] = { ...@@ -28,9 +28,6 @@ static const char *servo_name[] = {
/* Enable tracking by default. Disabling the tracking is used for demos. */ /* Enable tracking by default. Disabling the tracking is used for demos. */
static int tracking_enabled = 1; static int tracking_enabled = 1;
extern struct wrs_shm_head *ppsi_head; extern struct wrs_shm_head *ppsi_head;
static struct wr_servo_state *saved_servo_pointer; /* required for
* wr_servo_reset, which doesn't
* have ppi context. */
void wr_servo_enable_tracking(int enable) void wr_servo_enable_tracking(int enable)
{ {
...@@ -144,10 +141,9 @@ static TimeInternal ts_hardwarize(TimeInternal ts, int clock_period_ps) ...@@ -144,10 +141,9 @@ static TimeInternal ts_hardwarize(TimeInternal ts, int clock_period_ps)
static int got_sync = 0; static int got_sync = 0;
void wr_servo_reset(void) void wr_servo_reset(struct pp_instance *ppi)
{ {
if (saved_servo_pointer) ppi->flags = 0;
saved_servo_pointer->flags = 0;
} }
static inline int32_t delta_to_ps(struct FixedDelta d) static inline int32_t delta_to_ps(struct FixedDelta d)
...@@ -184,8 +180,7 @@ int wr_servo_init(struct pp_instance *ppi) ...@@ -184,8 +180,7 @@ int wr_servo_init(struct pp_instance *ppi)
strcpy(s->servo_state_name, "Uninitialized"); strcpy(s->servo_state_name, "Uninitialized");
saved_servo_pointer = s; s->flags |= WR_FLAG_VALID;
saved_servo_pointer->flags |= WR_FLAG_VALID;
s->update_count = 0; s->update_count = 0;
s->tracking_enabled = tracking_enabled; s->tracking_enabled = tracking_enabled;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment