Dynamic PDCH: rsl_ipacc_pdch_activate() operates on a timeslot

... not on the lchan.
diff --git a/openbsc/src/abis_rsl.c b/openbsc/src/abis_rsl.c
index 11d5947..c076985 100644
--- a/openbsc/src/abis_rsl.c
+++ b/openbsc/src/abis_rsl.c
@@ -130,9 +130,8 @@
 }
 
 /* See Table 10.5.25 of GSM04.08 */
-u_int8_t lchan2chan_nr(const struct gsm_lchan *lchan)
+static u_int8_t ts2chan_nr(const struct gsm_bts_trx_ts *ts, uint8_t lchan_nr)
 {
-	struct gsm_bts_trx_ts *ts = lchan->ts;
 	u_int8_t cbits, chan_nr;
 
 	switch (ts->pchan) {
@@ -143,15 +142,15 @@
 		break;
 	case GSM_PCHAN_TCH_H:
 		cbits = 0x02;
-		cbits += lchan->nr;
+		cbits += lchan_nr;
 		break;
 	case GSM_PCHAN_CCCH_SDCCH4:
 		cbits = 0x04;
-		cbits += lchan->nr;
+		cbits += lchan_nr;
 		break;
 	case GSM_PCHAN_SDCCH8_SACCH8C:
 		cbits = 0x08;
-		cbits += lchan->nr;
+		cbits += lchan_nr;
 		break;
 	default:
 	case GSM_PCHAN_CCCH:
@@ -164,6 +163,11 @@
 	return chan_nr;
 }
 
+u_int8_t lchan2chan_nr(const struct gsm_lchan *lchan)
+{
+	return ts2chan_nr(lchan->ts, lchan->nr);
+}
+
 /* As per TS 03.03 Section 2.2, the IMSI has 'not more than 15 digits' */
 u_int64_t str_to_imsi(const char *imsi_str)
 {
@@ -1671,7 +1675,7 @@
 	return rc;
 }
 
-int rsl_ipacc_pdch_activate(struct gsm_lchan *lchan, int act)
+int rsl_ipacc_pdch_activate(struct gsm_bts_trx_ts *ts, int act)
 {
 	struct msgb *msg = rsl_msgb_alloc();
 	struct abis_rsl_dchan_hdr *dh;
@@ -1685,12 +1689,12 @@
 	dh = (struct abis_rsl_dchan_hdr *) msgb_put(msg, sizeof(*dh));
 	init_dchan_hdr(dh, msg_type);
 	dh->c.msg_discr = ABIS_RSL_MDISC_DED_CHAN;
-	dh->chan_nr = lchan2chan_nr(lchan);
+	dh->chan_nr = ts2chan_nr(ts, 0);
 
-	DEBUGP(DRSL, "%s IPAC_PDCH_%sACT\n", gsm_lchan_name(lchan),
+	DEBUGP(DRSL, "%s IPAC_PDCH_%sACT\n", gsm_ts_name(ts),
 		act ? "" : "DE");
 
-	msg->trx = lchan->ts->trx;
+	msg->trx = ts->trx;
 
 	return abis_rsl_sendmsg(msg);
 }