diff --git a/include/osmocom/gsm/lapd_core.h b/include/osmocom/gsm/lapd_core.h
index 42ef417..8d3a0f8 100644
--- a/include/osmocom/gsm/lapd_core.h
+++ b/include/osmocom/gsm/lapd_core.h
@@ -14,16 +14,16 @@
  * primitive related stuff
  */
 
-/*! \brief LAPD related primitives (L2<->L3 SAP)*/
+/*! LAPD related primitives (L2<->L3 SAP)*/
 enum osmo_dl_prim {
-	PRIM_DL_UNIT_DATA,	/*!< \brief DL-UNIT-DATA */
-	PRIM_DL_DATA,		/*!< \brief DL-DATA */
-	PRIM_DL_EST,		/*!< \brief DL-ESTABLISH */
-	PRIM_DL_REL,		/*!< \brief DL-RLEEASE */
-	PRIM_DL_SUSP,		/*!< \brief DL-SUSPEND */
-	PRIM_DL_RES,		/*!< \brief DL-RESUME */
-	PRIM_DL_RECON,		/*!< \brief DL-RECONNECT */
-	PRIM_MDL_ERROR,		/*!< \brief MDL-ERROR */
+	PRIM_DL_UNIT_DATA,	/*!< DL-UNIT-DATA */
+	PRIM_DL_DATA,		/*!< DL-DATA */
+	PRIM_DL_EST,		/*!< DL-ESTABLISH */
+	PRIM_DL_REL,		/*!< DL-RLEEASE */
+	PRIM_DL_SUSP,		/*!< DL-SUSPEND */
+	PRIM_DL_RES,		/*!< DL-RESUME */
+	PRIM_DL_RECON,		/*!< DL-RECONNECT */
+	PRIM_MDL_ERROR,		/*!< MDL-ERROR */
 };
 
 /* Uses the same values as RLL, so no conversion for GSM is required. */
@@ -43,32 +43,32 @@
 #define MDL_CAUSE_SABM_INFO_NOTALL	0x0e
 #define MDL_CAUSE_FRMR			0x0f
 
-/*! \brief for MDL-ERROR.ind */
+/*! for MDL-ERROR.ind */
 struct mdl_error_ind_param {
-	uint8_t cause;		/*!< \brief generic cause value */
+	uint8_t cause;		/*!< generic cause value */
 };
 
-/*! \brief for DL-REL.req */
+/*! for DL-REL.req */
 struct dl_rel_req_param {
-	uint8_t mode;		/*!< \brief release mode */
+	uint8_t mode;		/*!< release mode */
 };
 
-/*! \brief primitive header for LAPD DL-SAP primitives */
+/*! primitive header for LAPD DL-SAP primitives */
 struct osmo_dlsap_prim {
-	struct osmo_prim_hdr oph; /*!< \brief generic primitive header */
+	struct osmo_prim_hdr oph; /*!< generic primitive header */
 	union {
 		struct mdl_error_ind_param error_ind;
 		struct dl_rel_req_param rel_req;
-	} u;			/*!< \brief request-specific data */
+	} u;			/*!< request-specific data */
 };
 
-/*! \brief LAPD mode/role */
+/*! LAPD mode/role */
 enum lapd_mode {
-	LAPD_MODE_USER,		/*!< \brief behave like user */
-	LAPD_MODE_NETWORK,	/*!< \brief behave like network */
+	LAPD_MODE_USER,		/*!< behave like user */
+	LAPD_MODE_NETWORK,	/*!< behave like network */
 };
 
-/*! \brief LAPD state (Figure B.2/Q.921)*/
+/*! LAPD state (Figure B.2/Q.921)*/
 enum lapd_state {
 	LAPD_STATE_NULL = 0,
 	LAPD_STATE_TEI_UNASS,
@@ -81,7 +81,7 @@
 	LAPD_STATE_TIMER_RECOV,
 };
 
-/*! \brief LAPD message format (I / S / U) */
+/*! LAPD message format (I / S / U) */
 enum lapd_format {
 	LAPD_FORM_UKN = 0,
 	LAPD_FORM_I,
@@ -89,7 +89,7 @@
 	LAPD_FORM_U,
 };
 
-/*! \brief LAPD message context */
+/*! LAPD message context */
 struct lapd_msg_ctx {
 	struct lapd_datalink *dl;
 	int n201;
@@ -119,45 +119,45 @@
 	int	more; /* if message is fragmented */
 };
 
-/*! \brief LAPD datalink */
+/*! LAPD datalink */
 struct lapd_datalink {
 	int (*send_dlsap)(struct osmo_dlsap_prim *dp,
 	        struct lapd_msg_ctx *lctx);
 	int (*send_ph_data_req)(struct lapd_msg_ctx *lctx, struct msgb *msg);
 	int (*update_pending_frames)(struct lapd_msg_ctx *lctx);
 	struct {
-		/*! \brief filled-in once we set the lapd_mode above */
+		/*! filled-in once we set the lapd_mode above */
 		struct lapd_cr_ent loc2rem;
 		struct lapd_cr_ent rem2loc;
 	} cr;
-	enum lapd_mode mode; /*!< \brief current mode of link */
-	int use_sabme; /*!< \brief use SABME instead of SABM */
-	int reestablish; /*!< \brief enable reestablish support */
-	int n200, n200_est_rel; /*!< \brief number of retranmissions */
-	struct lapd_msg_ctx lctx; /*!< \brief LAPD context */
-	int maxf; /*!< \brief maximum frame size (after defragmentation) */ 
-	uint8_t k; /*!< \brief maximum number of unacknowledged frames */
-	uint8_t v_range; /*!< \brief range of sequence numbers */
-	uint8_t v_send;	/*!< \brief seq nr of next I frame to be transmitted */
-	uint8_t v_ack;	/*!< \brief last frame ACKed by peer */
-	uint8_t v_recv;	/*!< \brief seq nr of next I frame expected to be received */
-	uint32_t state; /*!< \brief LAPD state (\ref lapd_state) */
-	int seq_err_cond; /*!< \brief condition of sequence error */
-	uint8_t own_busy; /*!< \brief receiver busy on our side */
-	uint8_t peer_busy; /*!< \brief receiver busy on remote side */
-	int t200_sec, t200_usec; /*!< \brief retry timer (default 1 sec) */
-	int t203_sec, t203_usec; /*!< \brief retry timer (default 10 secs) */
-	struct osmo_timer_list t200; /*!< \brief T200 timer */
-	struct osmo_timer_list t203; /*!< \brief T203 timer */
-	uint8_t retrans_ctr; /*!< \brief re-transmission counter */
-	struct llist_head tx_queue; /*!< \brief frames to L1 */
-	struct llist_head send_queue; /*!< \brief frames from L3 */
-	struct msgb *send_buffer; /*!< \brief current frame transmitting */
-	int send_out; /*!< \brief how much was sent from send_buffer */
-	struct lapd_history *tx_hist; /*!< \brief tx history structure array */
-	uint8_t range_hist; /*!< \brief range of history buffer 2..2^n */
-	struct msgb *rcv_buffer; /*!< \brief buffer to assemble the received message */
-	struct msgb *cont_res; /*!< \brief buffer to store content resolution data on network side, to detect multiple phones on same channel */
+	enum lapd_mode mode; /*!< current mode of link */
+	int use_sabme; /*!< use SABME instead of SABM */
+	int reestablish; /*!< enable reestablish support */
+	int n200, n200_est_rel; /*!< number of retranmissions */
+	struct lapd_msg_ctx lctx; /*!< LAPD context */
+	int maxf; /*!< maximum frame size (after defragmentation) */ 
+	uint8_t k; /*!< maximum number of unacknowledged frames */
+	uint8_t v_range; /*!< range of sequence numbers */
+	uint8_t v_send;	/*!< seq nr of next I frame to be transmitted */
+	uint8_t v_ack;	/*!< last frame ACKed by peer */
+	uint8_t v_recv;	/*!< seq nr of next I frame expected to be received */
+	uint32_t state; /*!< LAPD state (\ref lapd_state) */
+	int seq_err_cond; /*!< condition of sequence error */
+	uint8_t own_busy; /*!< receiver busy on our side */
+	uint8_t peer_busy; /*!< receiver busy on remote side */
+	int t200_sec, t200_usec; /*!< retry timer (default 1 sec) */
+	int t203_sec, t203_usec; /*!< retry timer (default 10 secs) */
+	struct osmo_timer_list t200; /*!< T200 timer */
+	struct osmo_timer_list t203; /*!< T203 timer */
+	uint8_t retrans_ctr; /*!< re-transmission counter */
+	struct llist_head tx_queue; /*!< frames to L1 */
+	struct llist_head send_queue; /*!< frames from L3 */
+	struct msgb *send_buffer; /*!< current frame transmitting */
+	int send_out; /*!< how much was sent from send_buffer */
+	struct lapd_history *tx_hist; /*!< tx history structure array */
+	uint8_t range_hist; /*!< range of history buffer 2..2^n */
+	struct msgb *rcv_buffer; /*!< buffer to assemble the received message */
+	struct msgb *cont_res; /*!< buffer to store content resolution data on network side, to detect multiple phones on same channel */
 };
 
 void lapd_dl_init(struct lapd_datalink *dl, uint8_t k, uint8_t v_range,
