Commit b716034f authored by Alessandro Rubini's avatar Alessandro Rubini

whiterabbit: clean sub-state enum

Some sub-states are never used, so remove them. Moreover, avoid using
WRS_CALIBRATION for two things: now wrPortState only uses WR_PORT_ values
(well, it will in the next commit).
Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
parent 29081df1
......@@ -67,7 +67,7 @@ static int wr_listening(struct pp_instance *ppi, unsigned char *pkt, int plen)
struct wr_dsport *wp = WR_DSPOR(ppi);
wp->wrMode = NON_WR;
wp->wrPortState = WRS_IDLE;
wp->wrPortState = WR_PORT_IDLE;
return 0;
}
......
......@@ -24,7 +24,7 @@ int wr_calibrated(struct pp_instance *ppi, unsigned char *pkt, int plen)
ppi->next_state = PPS_MASTER;
else
ppi->next_state = PPS_LISTENING;
WR_DSPOR(ppi)->wrPortState = WRS_IDLE;
WR_DSPOR(ppi)->wrPortState = WR_PORT_IDLE;
goto out;
}
......
......@@ -16,13 +16,13 @@ int wr_calibration(struct pp_instance *ppi, unsigned char *pkt, int plen)
uint32_t delta;
if (ppi->is_new_state) {
wrp->wrPortState = WRS_CALIBRATION;
wrp->wrPortState = WR_PORT_CALIBRATION_0;
e = msg_issue_wrsig(ppi, CALIBRATE);
pp_timeout_set(ppi, PP_TO_EXT_0,
wrp->calPeriod);
if (wrp->calibrated)
wrp->wrPortState = WRS_CALIBRATION_2;
wrp->wrPortState = WR_PORT_CALIBRATION_2;
}
if (pp_timeout_z(ppi, PP_TO_EXT_0)) {
......@@ -30,28 +30,28 @@ int wr_calibration(struct pp_instance *ppi, unsigned char *pkt, int plen)
ppi->next_state = PPS_MASTER;
else
ppi->next_state = PPS_LISTENING;
wrp->wrPortState = WRS_IDLE;
wrp->wrPortState = WR_PORT_IDLE;
goto out;
}
switch (wrp->wrPortState) {
case WRS_CALIBRATION:
case WR_PORT_CALIBRATION_0:
/* enable pattern sending */
if (wrp->ops->calib_pattern_enable(ppi, 0, 0, 0) ==
WR_HW_CALIB_OK)
wrp->wrPortState = WRS_CALIBRATION_1;
wrp->wrPortState = WR_PORT_CALIBRATION_1;
else
break;
case WRS_CALIBRATION_1:
case WR_PORT_CALIBRATION_1:
/* enable Tx calibration */
if (wrp->ops->calib_enable(ppi, WR_HW_CALIB_TX)
== WR_HW_CALIB_OK)
wrp->wrPortState = WRS_CALIBRATION_2;
wrp->wrPortState = WR_PORT_CALIBRATION_2;
else
break;
case WRS_CALIBRATION_2:
case WR_PORT_CALIBRATION_2:
/* wait until Tx calibration is finished */
if (wrp->ops->calib_poll(ppi, WR_HW_CALIB_TX, &delta) ==
WR_HW_CALIB_READY) {
......@@ -64,35 +64,35 @@ int wr_calibration(struct pp_instance *ppi, unsigned char *pkt, int plen)
pp_diag(ppi, ext, 1, "Tx=>>scaledPicoseconds.lsb = 0x%x\n",
wrp->deltaTx.scaledPicoseconds.lsb);
wrp->wrPortState = WRS_CALIBRATION_3;
wrp->wrPortState = WR_PORT_CALIBRATION_3;
} else {
break; /* again */
}
case WRS_CALIBRATION_3:
case WR_PORT_CALIBRATION_3:
/* disable Tx calibration */
if (wrp->ops->calib_disable(ppi, WR_HW_CALIB_TX)
== WR_HW_CALIB_OK)
wrp->wrPortState = WRS_CALIBRATION_4;
wrp->wrPortState = WR_PORT_CALIBRATION_4;
else
break;
case WRS_CALIBRATION_4:
case WR_PORT_CALIBRATION_4:
/* disable pattern sending */
if (wrp->ops->calib_pattern_disable(ppi) == WR_HW_CALIB_OK)
wrp->wrPortState = WRS_CALIBRATION_5;
wrp->wrPortState = WR_PORT_CALIBRATION_5;
else
break;
case WRS_CALIBRATION_5:
case WR_PORT_CALIBRATION_5:
/* enable Rx calibration using the pattern sent by other port */
if (wrp->ops->calib_enable(ppi, WR_HW_CALIB_RX) ==
WR_HW_CALIB_OK)
wrp->wrPortState = WRS_CALIBRATION_6;
wrp->wrPortState = WR_PORT_CALIBRATION_6;
else
break;
case WRS_CALIBRATION_6:
case WR_PORT_CALIBRATION_6:
/* wait until Rx calibration is finished */
if (wrp->ops->calib_poll(ppi, WR_HW_CALIB_RX, &delta) ==
WR_HW_CALIB_READY) {
......@@ -106,19 +106,19 @@ int wr_calibration(struct pp_instance *ppi, unsigned char *pkt, int plen)
pp_diag(ppi, ext, 1, "Rx=>>scaledPicoseconds.lsb = 0x%x\n",
wrp->deltaRx.scaledPicoseconds.lsb);
wrp->wrPortState = WRS_CALIBRATION_7;
wrp->wrPortState = WR_PORT_CALIBRATION_7;
} else {
break; /* again */
}
case WRS_CALIBRATION_7:
case WR_PORT_CALIBRATION_7:
/* disable Rx calibration */
if (wrp->ops->calib_disable(ppi, WR_HW_CALIB_RX)
== WR_HW_CALIB_OK)
wrp->wrPortState = WRS_CALIBRATION_8;
wrp->wrPortState = WR_PORT_CALIBRATION_8;
else
break;
case WRS_CALIBRATION_8:
case WR_PORT_CALIBRATION_8:
/* send deltas to the other port and go to the next state */
e = msg_issue_wrsig(ppi, CALIBRATED);
ppi->next_state = WRS_CALIBRATED;
......
......@@ -28,7 +28,7 @@ int wr_link_on(struct pp_instance *ppi, unsigned char *pkt, int plen)
if (e != 0)
return -1;
wrp->wrPortState = WRS_IDLE;
wrp->wrPortState = WR_PORT_IDLE;
if (wrp->wrMode == WR_SLAVE)
ppi->next_state = PPS_SLAVE;
......
......@@ -26,7 +26,7 @@ int wr_locked(struct pp_instance *ppi, unsigned char *pkt, int plen)
if (pp_timeout_z(ppi, PP_TO_EXT_0)) {
ppi->next_state = PPS_LISTENING;
WR_DSPOR(ppi)->wrMode = NON_WR;
WR_DSPOR(ppi)->wrPortState = WRS_IDLE;
WR_DSPOR(ppi)->wrPortState = WR_PORT_IDLE;
goto out;
}
......
......@@ -23,7 +23,7 @@ int wr_m_lock(struct pp_instance *ppi, unsigned char *pkt, int plen)
if (pp_timeout_z(ppi, PP_TO_EXT_0)) {
ppi->next_state = PPS_MASTER;
WR_DSPOR(ppi)->wrPortState = WRS_IDLE;
WR_DSPOR(ppi)->wrPortState = WR_PORT_IDLE;
goto out;
}
......
......@@ -28,7 +28,7 @@ int wr_present(struct pp_instance *ppi, unsigned char *pkt, int plen)
if (pp_timeout_z(ppi, PP_TO_EXT_0)) {
ppi->next_state = PPS_LISTENING;
WR_DSPOR(ppi)->wrMode = NON_WR;
WR_DSPOR(ppi)->wrPortState = WRS_IDLE;
WR_DSPOR(ppi)->wrPortState = WR_PORT_IDLE;
goto out;
}
......
......@@ -31,7 +31,7 @@ int wr_resp_calib_req(struct pp_instance *ppi, unsigned char *pkt, int plen)
ppi->next_state = PPS_MASTER;
else
ppi->next_state = PPS_LISTENING;
wrp->wrPortState = WRS_IDLE;
wrp->wrPortState = WR_PORT_IDLE;
goto out;
}
......
......@@ -15,14 +15,13 @@ int wr_s_lock(struct pp_instance *ppi, unsigned char *pkt, int plen)
int e = 0;
if (ppi->is_new_state) {
wrp->wrPortState = WRS_S_LOCK;
wrp->ops->locking_enable(ppi);
pp_timeout_set(ppi, PP_TO_EXT_0, WR_S_LOCK_TIMEOUT_MS);
}
if (pp_timeout_z(ppi, PP_TO_EXT_0)) {
ppi->next_state = PPS_FAULTY;
wrp->wrPortState = WRS_IDLE;
wrp->wrPortState = WR_PORT_IDLE;
wrp->wrMode = NON_WR;
goto out;
}
......
......@@ -128,21 +128,17 @@ enum {
WRS_CALIBRATED,
WRS_RESP_CALIB_REQ,
WRS_WR_LINK_ON,
WRS_IDLE,
/* here are substates*/
WRS_S_LOCK_1,
WRS_S_LOCK_2,
WRS_CALIBRATION_1,
WRS_CALIBRATION_2,
WRS_CALIBRATION_3,
WRS_CALIBRATION_4,
WRS_CALIBRATION_5,
WRS_CALIBRATION_6,
WRS_CALIBRATION_7,
WRS_CALIBRATION_8,
WRS_RESP_CALIB_REQ_1,
WRS_RESP_CALIB_REQ_2,
WRS_RESP_CALIB_REQ_3,
/* here are substates and informative wrPortState values */
WR_PORT_IDLE,
WR_PORT_CALIBRATION_0,
WR_PORT_CALIBRATION_1,
WR_PORT_CALIBRATION_2,
WR_PORT_CALIBRATION_3,
WR_PORT_CALIBRATION_4,
WR_PORT_CALIBRATION_5,
WR_PORT_CALIBRATION_6,
WR_PORT_CALIBRATION_7,
WR_PORT_CALIBRATION_8,
};
/* White Rabbit commands (for new implementation, single FSM), see table 38 */
......
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