[PATCH] osmo-bts[master]: LC15: common/oml.c: Support Tx power reduction 1 dB and 2 dB...

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.org
Tue Jun 14 15:23:06 UTC 2016


Hello Harald Welte, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

    https://gerrit.osmocom.org/241

to look at the new patch set (#2).

LC15: common/oml.c: Support Tx power reduction 1 dB and 2 dB step

Change-Id: I16c66452acad1a0fb52561d829d708206ab4a5f6
---
M include/osmo-bts/gsm_data.h
M src/common/oml.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, 41 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/41/241/2

diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h
index 101cbfc..001dacb 100644
--- a/include/osmo-bts/gsm_data.h
+++ b/include/osmo-bts/gsm_data.h
@@ -117,6 +117,7 @@
 	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 pwr_red_step;   	/* Tx power reduction steps in 1 dB or 2 dB */
 	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/common/oml.c b/src/common/oml.c
index 86ec1bf..e7953c9 100644
--- a/src/common/oml.c
+++ b/src/common/oml.c
@@ -637,9 +637,20 @@
 
 	/* 9.4.47 RF Max Power Reduction */
 	if (TLVP_PRESENT(&tp, NM_ATT_RF_MAXPOWR_R)) {
+#ifdef ENABLE_LC15BTS
+		struct gsm_bts_role_bts *btsb = bts_role_bts(trx->bts);
+		if( btsb->pwr_red_step == 2)
+			trx->max_power_red = *TLVP_VAL(&tp, NM_ATT_RF_MAXPOWR_R) * 2;
+		else
+			trx->max_power_red = *TLVP_VAL(&tp, NM_ATT_RF_MAXPOWR_R);
+
+		LOGP(DOML, LOGL_INFO, "Set RF Max Power Reduction=%d dB, step=%d dB\n",
+				trx->max_power_red, btsb->pwr_red_step);
+#else
 		trx->max_power_red = *TLVP_VAL(&tp, NM_ATT_RF_MAXPOWR_R) * 2;
-		LOGP(DOML, LOGL_INFO, "Set RF Max Power Reduction = %d dBm\n",
-		     trx->max_power_red);
+		LOGP(DOML, LOGL_INFO, "Set RF Max Power Reduction = %d dB\n",
+				trx->max_power_red);
+#endif
 	}
 	/* 9.4.5 ARFCN List */
 #if 0
diff --git a/src/osmo-bts-litecell15/lc15bts.h b/src/osmo-bts-litecell15/lc15bts.h
index 4822893..cada00d 100644
--- a/src/osmo-bts-litecell15/lc15bts.h
+++ b/src/osmo-bts-litecell15/lc15bts.h
@@ -87,6 +87,7 @@
 #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_PWR_RED_STEP_DEFAULT	2	/* Default Tx power reduction step is 2 dB */
 #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 7762a57..1b2ff61 100644
--- a/src/osmo-bts-litecell15/lc15bts_vty.c
+++ b/src/osmo-bts-litecell15/lc15bts_vty.c
@@ -428,6 +428,26 @@
 	return CMD_SUCCESS;
 }
 
+DEFUN(cfg_bts_pwr_red_step, cfg_bts_pwr_red_step_cmd,
+       "pwr-red-step <1-2>",
+       "Set the transmit output power reduction step in dB\n"
+       "Power reduction step in dB\n")
+{
+	struct gsm_bts *bts = vty->index;
+	struct gsm_bts_role_bts *btsb = bts_role_bts(bts);
+	uint8_t pwr_red_step = (uint8_t)atoi(argv[0]);
+
+	if (( pwr_red_step >  2 ) ||  ( pwr_red_step < 1 )) {
+		vty_out(vty, "Tx power reduction step must be either 1 or 2 dB (%d) %s",
+				pwr_red_step, VTY_NEWLINE);
+		return CMD_WARNING;
+	}
+
+	btsb->pwr_red_step = pwr_red_step;
+
+	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")
@@ -484,6 +504,10 @@
 
 	vty_out(vty, " tx-red-pwr-8psk %d%s",
 			btsb->tx_pwr_red_8psk, VTY_NEWLINE);
+
+	vty_out(vty, " pwr-red-step %d%s",
+			btsb->pwr_red_step, VTY_NEWLINE);
+
 
 }
 
@@ -571,6 +595,7 @@
 	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_pwr_red_step_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 b172c5c..ce30021 100644
--- a/src/osmo-bts-litecell15/main.c
+++ b/src/osmo-bts-litecell15/main.c
@@ -77,6 +77,7 @@
 	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->pwr_red_step = GSM_BTS_PWR_RED_STEP_DEFAULT;
 	btsb->tx_pwr_adj_mode = GSM_BTS_TX_PWR_ADJ_DEFAULT;
 	btsb->tx_pwr_red_8psk = GSM_BTS_TX_RED_PWR_8PSK_DEFAULT;
 

-- 
To view, visit https://gerrit.osmocom.org/241
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I16c66452acad1a0fb52561d829d708206ab4a5f6
Gerrit-PatchSet: 2
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Minh-Quang Nguyen <minh-quang.nguyen at nutaq.com>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list