diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2018-03-23 17:12:18 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-04-09 08:29:20 +0000 |
commit | dd4a6518f2118775c12affc02ac1e0dcc848d89a (patch) | |
tree | e3c3d579d47e0135b3be0e646e7b2da993094a5c /src | |
parent | e5518b07d6fc3375a9e4004a2ed2680dbb2d178e (diff) |
octphy: integrate octasics latest header release
At the moment osmo-bts does not compile with the latest header
file release from OCTSDR-2G-02.10.00-B1837-ALPHA as there are
struct members removed and new ones added. The changes do not
affect actual functionality in the existing code. The only
affected parts are vty functions that query status information
about the clock sync manager.
- Add detection logic in configure.ac to detect if the affected
struct members are present
- Add conditional compiling to handle the different combinations
of available struct members.
Change-Id: Ic38d8dc35522205c4ffab583b4e61b5ef03cdba2
Related: SYS#4139
Patch-by: Octasic inc.
Diffstat (limited to 'src')
-rw-r--r-- | src/osmo-bts-octphy/octphy_hw_api.c | 57 | ||||
-rw-r--r-- | src/osmo-bts-octphy/octphy_hw_api.h | 30 | ||||
-rw-r--r-- | src/osmo-bts-octphy/octphy_vty.c | 30 |
3 files changed, 104 insertions, 13 deletions
diff --git a/src/osmo-bts-octphy/octphy_hw_api.c b/src/osmo-bts-octphy/octphy_hw_api.c index 91b84def..6da038b1 100644 --- a/src/osmo-bts-octphy/octphy_hw_api.c +++ b/src/osmo-bts-octphy/octphy_hw_api.c @@ -275,6 +275,7 @@ static const struct value_string clocksync_source_vals[] = { { 0, NULL } }; +#if OCTPHY_USE_CLK_SOURCE_SELECTION == 1 static const struct value_string clocksync_sel_vals[] = { { cOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_SELECTION_ENUM_AUTOSELECT, "Autoselect" }, @@ -284,6 +285,7 @@ static const struct value_string clocksync_sel_vals[] = { "Host Application" }, { 0, NULL } }; +#endif /* Chapter 12.15 */ static int get_clock_sync_compl_cb(struct octphy_hdl *fl1, struct msgb *resp, @@ -296,8 +298,14 @@ static int get_clock_sync_compl_cb(struct octphy_hdl *fl1, struct msgb *resp, LOGP(DL1C, LOGL_INFO, "CLOCK-SYNC-MGR-INFO.resp Reference=%s ", get_value_string(clocksync_source_vals, cir->ulClkSourceRef)); + +#if OCTPHY_USE_CLK_SOURCE_SELECTION == 1 LOGPC(DL1C, LOGL_INFO, "Selection=%s)\n", get_value_string(clocksync_sel_vals, cir->ulClkSourceSelection)); +#else + LOGPC(DL1C, LOGL_INFO, "Clock Drift= %u Us\n", + cir->ulMaxDriftDurationUs); +#endif msgb_free(resp); return 0; @@ -330,18 +338,45 @@ static int get_clock_sync_stats_cb(struct octphy_hdl *fl1, struct msgb *resp, mOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP_SWAP(csr); - LOGP(DL1C, LOGL_INFO, "CLOCK-SYNC-MGR-STATS.resp State=%s, " - "ClockError=%d DroppedCycles=%d, PllFreqHz=%u, PllFract=%u, " - "SlipCnt=%u SyncLosses=%u SourceState=%u, DacValue=%u\n", - get_value_string(clocksync_state_vals, csr->ulState), - csr->lClockError, csr->lDroppedCycles, csr->ulPllFreqHz, - csr->ulPllFractionalFreqHz, csr->ulSlipCnt, -#if OCTPHY_USE_SYNC_LOSS_CNT == 1 - csr->ulSyncLossCnt, -#else - csr->ulSyncLosseCnt, + LOGP(DL1C, LOGL_INFO, "CLOCK-SYNC-MGR-STATS.resp"); + LOGPC(DL1C, LOGL_INFO, " State=%s,", + get_value_string(clocksync_state_vals, csr->ulState)); +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_CLOCK_ERROR == 1 + LOGPC(DL1C, LOGL_INFO, " ClockError=%d,", csr->lClockError); +#endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_DROPPED_CYCLES == 1 + LOGPC(DL1C, LOGL_INFO, " DroppedCycles=%d,", csr->lDroppedCycles); +#endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_PLL_FREQ_HZ == 1 + LOGPC(DL1C, LOGL_INFO, " PllFreqHz=%u,", csr->ulPllFreqHz); +#endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_PLL_FRACTIONAL_FREQ_HZ == 1 + LOGPC(DL1C, LOGL_INFO, " PllFract=%u,", csr->ulPllFractionalFreqHz); +#endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SLIP_CNT == 1 + LOGPC(DL1C, LOGL_INFO, " SlipCnt=%u,", csr->ulSlipCnt); +#endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SYNC_LOSS_CNT == 1 + LOGPC(DL1C, LOGL_INFO, " SyncLosses=%u,", csr->ulSyncLossCnt); +#endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SYNC_LOSSE_CNT == 1 + LOGPC(DL1C, LOGL_INFO, " SyncLosses=%u,", csr->ulSyncLosseCnt); +#endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SOURCE_STATE == 1 + LOGPC(DL1C, LOGL_INFO, " SourceState=%u,", csr->ulSourceState); +#endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_DAC_STATE == 1 + LOGPC(DL1C, LOGL_INFO, " CLOCK-SYNC-MGR-STATS.resp State=%s,", + get_value_string(clocksync_dac_vals, csr->ulDacState)); +#endif + LOGPC(DL1C, LOGL_INFO, " LOCK-SYNC-MGR-USR-PROCESS.resp State=%s,", + get_value_string(usr_process_id, csr->ulOwnerProcessUid)); + LOGPC(DL1C, LOGL_INFO, " DacValue=%u,", csr->ulDacValue); +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_DRIFT_ELAPSE_TIME_US == 1 + LOGPC(DL1C, LOGL_INFO, " DriftElapseTime=%u Us,", + csr->ulDriftElapseTimeUs); #endif - csr->ulSourceState, csr->ulDacValue); + LOGPC(DL1C, LOGL_INFO, "\n"); get_cb_data = (struct octphy_hw_get_cb_data*) data; get_cb_data->cb(resp,get_cb_data->data); diff --git a/src/osmo-bts-octphy/octphy_hw_api.h b/src/osmo-bts-octphy/octphy_hw_api.h index 78b72086..625fe864 100644 --- a/src/osmo-bts-octphy/octphy_hw_api.h +++ b/src/osmo-bts-octphy/octphy_hw_api.h @@ -34,6 +34,36 @@ static const struct value_string clocksync_state_vals[] = { { 0, NULL } }; +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_DAC_STATE == 1 +static const struct value_string clocksync_dac_vals[] = { + { cOCTVC1_HW_CLOCK_SYNC_MGR_DAC_STATE_ENUM_UNUSED, "Unused" }, + { cOCTVC1_HW_CLOCK_SYNC_MGR_DAC_STATE_ENUM_MASTER, "Master" }, + { cOCTVC1_HW_CLOCK_SYNC_MGR_DAC_STATE_ENUM_SLAVE, "Slave" }, + { cOCTVC1_HW_CLOCK_SYNC_MGR_DAC_STATE_ENUM_FREE_RUNNING, "Free_Run"}, + { 0, NULL } +}; +#endif + +static const struct value_string usr_process_id[] = { + { cOCTVC1_USER_ID_PROCESS_ENUM_INVALID, "Invalid" }, + { cOCTVC1_USER_ID_PROCESS_ENUM_MAIN_APP, "MainApp" }, + { cOCTVC1_USER_ID_PROCESS_ENUM_MAIN_ROUTER, "MainRouter" }, + { cOCTVC1_USER_ID_PROCESS_ENUM_GSM_DL_0, "DL"}, + { cOCTVC1_USER_ID_PROCESS_ENUM_GSM_ULIM_0, "ULIM" }, + { cOCTVC1_USER_ID_PROCESS_ENUM_GSM_ULOM_0, "ULOM" }, + { cOCTVC1_USER_ID_PROCESS_ENUM_GSM_SCHED_0, "SCHED" }, +#ifdef cOCTVC1_USER_ID_PROCESS_ENUM_GSM_DECOMB + { cOCTVC1_USER_ID_PROCESS_ENUM_GSM_DECOMB, "DECOMB"}, +#endif +#ifdef cOCTVC1_USER_ID_PROCESS_ENUM_GSM_ULEQ + { cOCTVC1_USER_ID_PROCESS_ENUM_GSM_ULEQ, "ULEQ" }, +#endif +#ifdef cOCTVC1_USER_ID_PROCESS_ENUM_GSM_TEST + { cOCTVC1_USER_ID_PROCESS_ENUM_GSM_TEST, "TEST"}, +#endif + { 0, NULL } +}; + typedef void octphy_hw_get_cb(struct msgb *resp, void *data); struct octphy_hw_get_cb_data { diff --git a/src/osmo-bts-octphy/octphy_vty.c b/src/osmo-bts-octphy/octphy_vty.c index fb36493f..e5e8eba8 100644 --- a/src/osmo-bts-octphy/octphy_vty.c +++ b/src/osmo-bts-octphy/octphy_vty.c @@ -282,18 +282,44 @@ void show_clk_sync_stats_cb(struct msgb *resp, void *data) vty_out(vty, "State=%s%s", get_value_string(clocksync_state_vals, csr->ulState), VTY_NEWLINE); +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_CLOCK_ERROR == 1 vty_out(vty, "ClockError=%d%s", csr->lClockError, VTY_NEWLINE); +#endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_DROPPED_CYCLES == 1 vty_out(vty, "DroppedCycles=%d%s", csr->lDroppedCycles, VTY_NEWLINE); +#endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_PLL_FREQ_HZ == 1 vty_out(vty, "PllFreqHz=%u%s", csr->ulPllFreqHz, VTY_NEWLINE); +#endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_PLL_FRACTIONAL_FREQ_HZ == 1 vty_out(vty, "PllFract=%u%s", csr->ulPllFractionalFreqHz, VTY_NEWLINE); +#endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SLIP_CNT == 1 vty_out(vty, "SlipCnt=%u%s", csr->ulSlipCnt, VTY_NEWLINE); -#if OCTPHY_USE_SYNC_LOSS_CNT == 1 +#endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SYNC_LOSS_CNT == 1 vty_out(vty, "SyncLosses=%u%s", csr->ulSyncLossCnt, VTY_NEWLINE); -#else +#endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SYNC_LOSSE_CNT == 1 vty_out(vty, "SyncLosses=%u%s", csr->ulSyncLosseCnt, VTY_NEWLINE); #endif +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SOURCE_STATE == 1 vty_out(vty, "SourceState=%u%s", csr->ulSourceState, VTY_NEWLINE); +#endif vty_out(vty, "DacValue=%u%s", csr->ulDacValue, VTY_NEWLINE); +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_DAC_STATE == 1 + vty_out(vty, "CLOCK-SYNC-MGR-STATS.resp State=%s%s", + get_value_string(clocksync_dac_vals, csr->ulDacState), + VTY_NEWLINE); +#endif + vty_out(vty, "LOCK-SYNC-MGR-USR-PROCESS.resp State=%s%s", + get_value_string(usr_process_id, csr->ulOwnerProcessUid), + VTY_NEWLINE); + vty_out(vty, "DacValue=%u%s", csr->ulDacValue, VTY_NEWLINE); +#if OCTPHY_USE_CLOCK_SYNC_MGR_STATS_DRIFT_ELAPSE_TIME_US == 1 + vty_out(vty, "DriftElapseTime=%u Us%s", csr->ulDriftElapseTimeUs, + VTY_NEWLINE); +#endif } DEFUN(show_clk_sync_stats, show_clk_sync_stats_cmd, |