diff --git a/src/gsm/lapdm.c b/src/gsm/lapdm.c
index 8ec942f..1152e0d 100644
--- a/src/gsm/lapdm.c
+++ b/src/gsm/lapdm.c
@@ -23,7 +23,7 @@
 
 /*! \addtogroup lapdm
  *  @{
- *  \brief GSM LAPDm (TS 04.06) implementation
+ *  GSM LAPDm (TS 04.06) implementation
  */
 
 /*! \file lapdm.c */
@@ -144,7 +144,7 @@
 	dl->dl.t200_sec = t200; dl->dl.t200_usec = 0;
 }
 
-/*! \brief initialize a LAPDm entity and all datalinks inside
+/*! initialize a LAPDm entity and all datalinks inside
  *  \param[in] le LAPDm entity
  *  \param[in] mode \ref lapdm_mode (BTS/MS)
  */
@@ -158,7 +158,7 @@
 	lapdm_entity_set_mode(le, mode);
 }
 
-/*! \brief initialize a LAPDm channel and all its channels
+/*! initialize a LAPDm channel and all its channels
  *  \param[in] lc \ref lapdm_channel to be initialized
  *  \param[in] mode \ref lapdm_mode (BTS/MS)
  *
@@ -172,7 +172,7 @@
 	lapdm_entity_init(&lc->lapdm_dcch, mode, 1);
 }
 
-/*! \brief flush and release all resoures in LAPDm entity */
+/*! flush and release all resoures in LAPDm entity */
 void lapdm_entity_exit(struct lapdm_entity *le)
 {
 	unsigned int i;
@@ -184,7 +184,7 @@
 	}
 }
 
-/* \brief lfush and release all resources in LAPDm channel
+/* lfush and release all resources in LAPDm channel
  *
  * A convenience wrapper calling \ref lapdm_entity_exit on both
  * entities inside the \ref lapdm_channel
@@ -287,7 +287,7 @@
 	return msg;
 }
 
-/*! \brief dequeue a msg that's pending transmission via L1 and wrap it into
+/*! dequeue a msg that's pending transmission via L1 and wrap it into
  * a osmo_phsap_prim */
 int lapdm_phsap_dequeue_prim(struct lapdm_entity *le, struct osmo_phsap_prim *pp)
 {
@@ -711,7 +711,7 @@
 
 static int l2_ph_chan_conf(struct msgb *msg, struct lapdm_entity *le, uint32_t frame_nr);
 
-/*! \brief Receive a PH-SAP primitive from L1 */
+/*! Receive a PH-SAP primitive from L1 */
 int lapdm_phsap_up(struct osmo_prim_hdr *oph, struct lapdm_entity *le)
 {
 	struct osmo_phsap_prim *pp = (struct osmo_phsap_prim *) oph;
@@ -1213,7 +1213,7 @@
 	return rc;
 }
 
-/*! \brief Receive a RSLms \ref msgb from Layer 3 */
+/*! Receive a RSLms \ref msgb from Layer 3 */
 int lapdm_rslms_recvmsg(struct msgb *msg, struct lapdm_channel *lc)
 {
 	struct abis_rsl_common_hdr *rslh = msgb_l2(msg);
@@ -1241,7 +1241,7 @@
 	return rc;
 }
 
-/*! \brief Set the \ref lapdm_mode of a LAPDm entity */
+/*! Set the \ref lapdm_mode of a LAPDm entity */
 int lapdm_entity_set_mode(struct lapdm_entity *le, enum lapdm_mode mode)
 {
 	int i;
@@ -1267,7 +1267,7 @@
 	return 0;
 }
 
-/*! \brief Set the \ref lapdm_mode of a LAPDm channel*/
+/*! Set the \ref lapdm_mode of a LAPDm channel*/
 int lapdm_channel_set_mode(struct lapdm_channel *lc, enum lapdm_mode mode)
 {
 	int rc;
@@ -1279,7 +1279,7 @@
 	return lapdm_entity_set_mode(&lc->lapdm_acch, mode);
 }
 
-/*! \brief Set the L1 callback and context of a LAPDm channel */
+/*! Set the L1 callback and context of a LAPDm channel */
 void lapdm_channel_set_l1(struct lapdm_channel *lc, osmo_prim_cb cb, void *ctx)
 {
 	lc->lapdm_dcch.l1_prim_cb = cb;
@@ -1288,7 +1288,7 @@
 	lc->lapdm_acch.l1_ctx = ctx;
 }
 
-/*! \brief Set the L3 callback and context of a LAPDm channel */
+/*! Set the L3 callback and context of a LAPDm channel */
 void lapdm_channel_set_l3(struct lapdm_channel *lc, lapdm_cb_t cb, void *ctx)
 {
 	lc->lapdm_dcch.l3_cb = cb;
@@ -1297,7 +1297,7 @@
 	lc->lapdm_acch.l3_ctx = ctx;
 }
 
-/*! \brief Reset an entire LAPDm entity and all its datalinks */
+/*! Reset an entire LAPDm entity and all its datalinks */
 void lapdm_entity_reset(struct lapdm_entity *le)
 {
 	struct lapdm_datalink *dl;
@@ -1309,20 +1309,20 @@
 	}
 }
 
-/*! \brief Reset a LAPDm channel with all its entities */
+/*! Reset a LAPDm channel with all its entities */
 void lapdm_channel_reset(struct lapdm_channel *lc)
 {
 	lapdm_entity_reset(&lc->lapdm_dcch);
 	lapdm_entity_reset(&lc->lapdm_acch);
 }
 
-/*! \brief Set the flags of a LAPDm entity */
+/*! Set the flags of a LAPDm entity */
 void lapdm_entity_set_flags(struct lapdm_entity *le, unsigned int flags)
 {
 	le->flags = flags;
 }
 
-/*! \brief Set the flags of all LAPDm entities in a LAPDm channel */
+/*! Set the flags of all LAPDm entities in a LAPDm channel */
 void lapdm_channel_set_flags(struct lapdm_channel *lc, unsigned int flags)
 {
 	lapdm_entity_set_flags(&lc->lapdm_dcch, flags);
