Fix 'delete-trx1' command of bs11_config (we can now delete TRX1)

diff --git a/include/openbsc/rs232.h b/include/openbsc/rs232.h
index deb0c6b..61187ca 100644
--- a/include/openbsc/rs232.h
+++ b/include/openbsc/rs232.h
@@ -1,7 +1,8 @@
 #ifndef _RS232_H
 #define _RS232_H
 
-int rs232_setup(const char *serial_port, unsigned int delay_ms);
+int rs232_setup(const char *serial_port, unsigned int delay_ms,
+		struct gsm_bts *bts);
 
 int handle_serial_msg(struct msgb *msg);
 
diff --git a/src/bs11_config.c b/src/bs11_config.c
index 42de5db..b603e8b 100644
--- a/src/bs11_config.c
+++ b/src/bs11_config.c
@@ -440,14 +440,23 @@
 					fprintf(stderr, "No valid Software file \"%s\"\n",
 						fname_software);
 			} else if (!strcmp(command, "delete-trx1")) {
+				printf("Locing BBSIG and PA objects of TRX1\n");
+				abis_nm_chg_adm_state(g_bts, NM_OC_BS11,
+						      BS11_OBJ_BBSIG, 0, 1,
+						      NM_STATE_LOCKED);
+				abis_nm_chg_adm_state(g_bts, NM_OC_BS11,
+						      BS11_OBJ_PA, 0, 1,
+						      NM_STATE_LOCKED);
+				sleep(1);
+				printf("Deleting BBSIG and PA objects of TRX1\n");
 				abis_nm_bs11_delete_object(g_bts, BS11_OBJ_BBSIG, 1);
 				abis_nm_bs11_delete_object(g_bts, BS11_OBJ_PA, 1);
-				sleep(5);
+				sleep(1);
 				abis_nm_bs11_factory_logon(g_bts, 0);
 				command = NULL;
 			} else if (!strcmp(command, "create-trx1")) {
 				create_trx1(g_bts);
-				sleep(5);
+				sleep(1);
 				abis_nm_bs11_factory_logon(g_bts, 0);
 				command = NULL;
 			} else if (!strcmp(command, "oml-tei")) {
@@ -701,7 +710,7 @@
 	}
 	g_bts = &gsmnet->bts[0];
 
-	rc = rs232_setup(serial_port, delay_ms);
+	rc = rs232_setup(serial_port, delay_ms, g_bts);
 	if (rc < 0) {
 		fprintf(stderr, "Problem setting up serial port\n");
 		exit(1);
diff --git a/src/rs232.c b/src/rs232.c
index 24577ea..24a3b05 100644
--- a/src/rs232.c
+++ b/src/rs232.c
@@ -44,6 +44,7 @@
 	unsigned int rxmsg_bytes_missing;
 
 	unsigned int delay_ms;
+	struct gsm_bts *bts;
 };
 
 /* FIXME: this needs to go */
@@ -128,6 +129,7 @@
 	if (!sh->rx_msg) {
 		sh->rx_msg = msgb_alloc(SERIAL_ALLOC_SIZE);
 		sh->rx_msg->l2h = NULL;
+		sh->rx_msg->trx = sh->bts->c0;
 	}
 	msg = sh->rx_msg;
 
@@ -197,7 +199,8 @@
 	return rc;
 }
 
-int rs232_setup(const char *serial_port, unsigned int delay_ms)
+int rs232_setup(const char *serial_port, unsigned int delay_ms,
+		struct gsm_bts *bts)
 {
 	int rc, serial_fd;
 	struct termios tio;
@@ -234,6 +237,7 @@
 	ser_handle->fd.cb = serial_fd_cb;
 	ser_handle->fd.data = ser_handle;
 	ser_handle->delay_ms = delay_ms;
+	ser_handle->bts = bts;
 	rc = bsc_register_fd(&ser_handle->fd);
 	if (rc < 0) {
 		fprintf(stderr, "could not register FD: %s\n",