This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Minh-Quang Nguyen gerrit-no-reply at lists.osmocom.orgHello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/240 to look at the new patch set (#2). LC15: Enable to bypass LED control by the BTS via configuration file Change-Id: I17639bfffa2429d70eb254427812260ec8802ef6 --- M include/osmo-bts/gsm_data.h M src/osmo-bts-litecell15/l1_if.c M src/osmo-bts-litecell15/lc15bts.h M src/osmo-bts-litecell15/lc15bts_vty.c M src/osmo-bts-litecell15/main.c 5 files changed, 48 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/40/240/2 diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 6bbbd5f..101cbfc 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -116,6 +116,7 @@ uint8_t max_cell_size; /* 166 qbits */ uint8_t diversity_mode; /* 0: SISO A, 1: SISO B, 2: MRC */ uint8_t pedestal_mode; /* 0: unused TS is OFF, 1: unused TS is in minimum Tx power */ + uint8_t led_ctrl_mode; /* 0: control by BTS, 1: not control by BTS */ uint8_t tx_pwr_adj_mode; /* 0: no auto adjust power, 1: auto adjust power using RMS detector */ uint8_t tx_pwr_red_8psk; /* 8-PSK maximum Tx power reduction level in dB */ #endif diff --git a/src/osmo-bts-litecell15/l1_if.c b/src/osmo-bts-litecell15/l1_if.c index e94db84..0f10fcb 100644 --- a/src/osmo-bts-litecell15/l1_if.c +++ b/src/osmo-bts-litecell15/l1_if.c @@ -1046,6 +1046,8 @@ GsmL1_Status_t status; int on = 0; unsigned int i; + struct gsm_bts *bts = trx->bts; + struct gsm_bts_role_bts *btsb = bts_role_bts(bts); if (sysp->id == Litecell15_PrimId_ActivateRfCnf) on = 1; @@ -1064,8 +1066,10 @@ LOGP(DL1C, LOGL_FATAL, "RF-ACT.conf with status %s\n", get_value_string(lc15bts_l1status_names, status)); bts_shutdown(trx->bts, "RF-ACT failure"); - } else - bts_update_status(BTS_STATUS_RF_ACTIVE, 1); + } else { + if(btsb->led_ctrl_mode == LC15_LED_CONTROL_BTS) + bts_update_status(BTS_STATUS_RF_ACTIVE, 1); + } /* signal availability */ oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OK); @@ -1076,8 +1080,8 @@ for (i = 0; i < ARRAY_SIZE(trx->ts); i++) oml_mo_state_chg(&trx->ts[i].mo, NM_OPSTATE_DISABLED, NM_AVSTATE_DEPENDENCY); } else { - bts_update_status(BTS_STATUS_RF_ACTIVE, 0); - + if(btsb->led_ctrl_mode == LC15_LED_CONTROL_BTS) + bts_update_status(BTS_STATUS_RF_ACTIVE, 0); oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE); oml_mo_state_chg(&trx->bb_transc.mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE); } @@ -1162,10 +1166,13 @@ oml_mo_rf_lock_chg(&trx->mo, fl1h->last_rf_mute, 0); } else { int i; + struct gsm_bts *bts = trx->bts; + struct gsm_bts_role_bts *btsb = bts_role_bts(bts); LOGP(DL1C, LOGL_INFO, "Rx RF-MUTE.conf with status=%s\n", get_value_string(lc15bts_l1status_names, status)); - bts_update_status(BTS_STATUS_RF_MUTE, fl1h->last_rf_mute[0]); + if(btsb->led_ctrl_mode == LC15_LED_CONTROL_BTS) + bts_update_status(BTS_STATUS_RF_MUTE, fl1h->last_rf_mute[0]); oml_mo_rf_lock_chg(&trx->mo, fl1h->last_rf_mute, 1); osmo_static_assert( diff --git a/src/osmo-bts-litecell15/lc15bts.h b/src/osmo-bts-litecell15/lc15bts.h index f6a7e3f..4822893 100644 --- a/src/osmo-bts-litecell15/lc15bts.h +++ b/src/osmo-bts-litecell15/lc15bts.h @@ -33,6 +33,11 @@ LC15_PEDESTAL_ON, }; +enum lc15_led_control_mode{ + LC15_LED_CONTROL_BTS = 0, + LC15_LED_CONTROL_EXT, +}; + enum lc15_auto_pwr_adjust_mode{ LC15_TX_PWR_ADJ_NONE = 0, LC15_TX_PWR_ADJ_AUTO, @@ -81,6 +86,7 @@ #define GSM_BTS_MAX_CELL_SIZE_DEFAULT 166 /* 166 qbits is default value */ #define GSM_BTS_DIVERSITY_MODE_DEFAULT 2 /* MRC is default mode */ #define GSM_BTS_PEDESTAL_MODE_DEFAULT 0 /* Unused TS is off by default */ +#define GSM_BTS_LED_CTRL_MODE_DEFAULT 0 /* LED is controlled by BTS by default */ #define GSM_BTS_TX_PWR_ADJ_DEFAULT 0 /* Default Tx power auto adjustment is none */ #define GSM_BTS_TX_RED_PWR_8PSK_DEFAULT 0 /* Default 8-PSK maximum power level is 0 dB */ diff --git a/src/osmo-bts-litecell15/lc15bts_vty.c b/src/osmo-bts-litecell15/lc15bts_vty.c index fcace3f..7762a57 100644 --- a/src/osmo-bts-litecell15/lc15bts_vty.c +++ b/src/osmo-bts-litecell15/lc15bts_vty.c @@ -78,6 +78,12 @@ { 0, NULL } }; +static const struct value_string lc15_led_mode_strs[] = { + { LC15_LED_CONTROL_BTS, "bts" }, + { LC15_LED_CONTROL_EXT, "external" }, + { 0, NULL } +}; + static const struct value_string lc15_auto_adj_pwr_strs[] = { { LC15_TX_PWR_ADJ_NONE, "none" }, { LC15_TX_PWR_ADJ_AUTO, "auto" }, @@ -404,6 +410,24 @@ return CMD_SUCCESS; } +DEFUN(cfg_bts_led_mode, cfg_bts_led_mode_cmd, + "led-control-mode (bts|external)", + "Set LED controlled by BTS or external software\n" + "LED can be controlled by (bts, external)\n") +{ + struct gsm_bts *bts = vty->index; + struct gsm_bts_role_bts *btsb = bts_role_bts(bts); + int val = get_string_value(lc15_led_mode_strs, argv[0]); + + if((val < LC15_LED_CONTROL_BTS) || (val > LC15_LED_CONTROL_EXT)) { + vty_out(vty, "Invalid LED control mode %d%s", val, VTY_NEWLINE); + return CMD_WARNING; + } + + btsb->led_ctrl_mode = (uint8_t)val; + return CMD_SUCCESS; +} + DEFUN(cfg_bts_auto_tx_pwr_adj, cfg_bts_auto_tx_pwr_adj_cmd, "pwr-adj-mode (none|auto)", "Set output power adjustment mode\n") @@ -451,6 +475,9 @@ vty_out(vty, " pedestal-mode %s%s", get_value_string(lc15_pedestal_mode_strs, btsb->pedestal_mode) , VTY_NEWLINE); + + vty_out(vty, " led-control-mode %s%s", + get_value_string(lc15_led_mode_strs, btsb->led_ctrl_mode), VTY_NEWLINE); vty_out(vty, " pwr-adj-mode %s%s", get_value_string(lc15_auto_adj_pwr_strs, btsb->tx_pwr_adj_mode), VTY_NEWLINE); @@ -542,6 +569,7 @@ install_element(BTS_NODE, &cfg_bts_no_auto_band_cmd); install_element(BTS_NODE, &cfg_bts_diversity_mode_cmd); install_element(BTS_NODE, &cfg_bts_pedestal_mode_cmd); + install_element(BTS_NODE, &cfg_bts_led_mode_cmd); install_element(BTS_NODE, &cfg_bts_max_cell_size_cmd); install_element(BTS_NODE, &cfg_bts_auto_tx_pwr_adj_cmd); install_element(BTS_NODE, &cfg_bts_tx_red_pwr_8psk_cmd); diff --git a/src/osmo-bts-litecell15/main.c b/src/osmo-bts-litecell15/main.c index b2f0f77..b172c5c 100644 --- a/src/osmo-bts-litecell15/main.c +++ b/src/osmo-bts-litecell15/main.c @@ -74,6 +74,7 @@ btsb->support.ciphers = CIPHER_A5(1) | CIPHER_A5(2) | CIPHER_A5(3); /* specific default values for LC15 platform */ btsb->max_cell_size = GSM_BTS_MAX_CELL_SIZE_DEFAULT; + btsb->led_ctrl_mode = GSM_BTS_LED_CTRL_MODE_DEFAULT; btsb->diversity_mode = GSM_BTS_DIVERSITY_MODE_DEFAULT; btsb->pedestal_mode = GSM_BTS_PEDESTAL_MODE_DEFAULT; btsb->tx_pwr_adj_mode = GSM_BTS_TX_PWR_ADJ_DEFAULT; -- To view, visit https://gerrit.osmocom.org/240 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I17639bfffa2429d70eb254427812260ec8802ef6 Gerrit-PatchSet: 2 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Minh-Quang Nguyen <minh-quang.nguyen at nutaq.com> Gerrit-Reviewer: Jenkins Builder