diff --git a/include/media/media-entity.h b/include/media/media-entity.h
index e21958c7..b2203ee 100644
--- a/include/media/media-entity.h
+++ b/include/media/media-entity.h
@@ -129,7 +129,7 @@
  *		an interface.
  * @gobj1:	Part of a union. Used to get the pointer for the second
  *		graph_object of the link.
- * @source:	Part of a union. Used only if the second object (gobj1) is
+ * @sink:	Part of a union. Used only if the second object (gobj1) is
  *		a pad. In that case, it represents the sink pad.
  * @entity:	Part of a union. Used only if the second object (gobj1) is
  *		an entity.
@@ -474,7 +474,8 @@
 }
 
 /**
- * media_entity_enum_test - Test whether the entity is marked, and mark it
+ * media_entity_enum_test_and_set - Test whether the entity is marked,
+ *	and mark it
  *
  * @ent_enum: Entity enumeration
  * @entity: Entity to be tested
@@ -532,7 +533,7 @@
 		container_of(gobj, struct media_entity, graph_obj)
 
 /**
- * gobj_to_entity - returns the struct &media_pad pointer from the
+ * gobj_to_pad - returns the struct &media_pad pointer from the
  *	@gobj contained on it.
  *
  * @gobj: Pointer to the struct &media_gobj graph object
@@ -541,7 +542,7 @@
 		container_of(gobj, struct media_pad, graph_obj)
 
 /**
- * gobj_to_entity - returns the struct &media_link pointer from the
+ * gobj_to_link - returns the struct &media_link pointer from the
  *	@gobj contained on it.
  *
  * @gobj: Pointer to the struct &media_gobj graph object
@@ -550,7 +551,7 @@
 		container_of(gobj, struct media_link, graph_obj)
 
 /**
- * gobj_to_entity - returns the struct &media_interface pointer from the
+ * gobj_to_intf - returns the struct &media_interface pointer from the
  *	@gobj contained on it.
  *
  * @gobj: Pointer to the struct &media_gobj graph object
@@ -559,7 +560,7 @@
 		container_of(gobj, struct media_interface, graph_obj)
 
 /**
- * gobj_to_entity - returns the struct media_intf_devnode pointer from the
+ * intf_to_devnode - returns the struct media_intf_devnode pointer from the
  *	@intf contained on it.
  *
  * @intf: Pointer to struct &media_intf_devnode
diff --git a/include/media/rc-core.h b/include/media/rc-core.h
index 10908e3..40188d3 100644
--- a/include/media/rc-core.h
+++ b/include/media/rc-core.h
@@ -231,7 +231,7 @@
 int rc_open(struct rc_dev *rdev);
 
 /**
- * rc_open - Closes a RC device
+ * rc_close - Closes a RC device
  *
  * @rdev: pointer to struct rc_dev.
  */
diff --git a/include/media/v4l2-ctrls.h b/include/media/v4l2-ctrls.h
index beea0a2..e1006b3 100644
--- a/include/media/v4l2-ctrls.h
+++ b/include/media/v4l2-ctrls.h
@@ -394,7 +394,8 @@
 #ifdef CONFIG_LOCKDEP
 
 /**
- * v4l2_ctrl_handler_init -
+ * v4l2_ctrl_handler_init - helper function to create a static struct
+ *	 &lock_class_key and calls v4l2_ctrl_handler_init_class()
  *
  * @hdl:	The control handler.
  * @nr_of_controls_hint: A hint of how many controls this handler is
diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h
index 477e90d..e657614 100644
--- a/include/media/v4l2-dev.h
+++ b/include/media/v4l2-dev.h
@@ -115,7 +115,7 @@
 enum v4l2_priority v4l2_prio_max(struct v4l2_prio_state *global);
 
 /**
- * v4l2_prio_close - Implements the priority logic for a file handler close
+ * v4l2_prio_check - Implements the priority logic for a file handler close
  *
  * @global: pointer to the &struct v4l2_prio_state of the device node.
  * @local: desired priority, as defined by enum &v4l2_priority local
diff --git a/include/media/v4l2-event.h b/include/media/v4l2-event.h
index ca85420..a700285 100644
--- a/include/media/v4l2-event.h
+++ b/include/media/v4l2-event.h
@@ -222,7 +222,8 @@
 				  struct v4l2_fh *fh,
 				  struct v4l2_event_subscription *sub);
 /**
- * v4l2_src_change_event_subscribe -
+ * v4l2_src_change_event_subscribe - helper function that calls
+ * 	v4l2_event_subscribe() if the event is %V4L2_EVENT_SOURCE_CHANGE.
  *
  * @fh: pointer to struct v4l2_fh
  * @sub: pointer to &struct v4l2_event_subscription
diff --git a/include/media/v4l2-mc.h b/include/media/v4l2-mc.h
index 28c3f9d..2634d9d 100644
--- a/include/media/v4l2-mc.h
+++ b/include/media/v4l2-mc.h
@@ -53,7 +53,7 @@
 };
 
 /**
- * enum if_vid_dec_index - video IF-PLL pad index for
+ * enum if_vid_dec_pad_index - video IF-PLL pad index for
  *			   MEDIA_ENT_F_IF_VID_DECODER
  *
  * @IF_VID_DEC_PAD_IF_INPUT:	video Intermediate Frequency (IF) sink pad
@@ -68,7 +68,7 @@
 };
 
 /**
- * enum if_aud_dec_index - audio/sound IF-PLL pad index for
+ * enum if_aud_dec_pad_index - audio/sound IF-PLL pad index for
  *			   MEDIA_ENT_F_IF_AUD_DECODER
  *
  * @IF_AUD_DEC_PAD_IF_INPUT:	audio Intermediate Frequency (IF) sink pad
diff --git a/include/media/v4l2-mem2mem.h b/include/media/v4l2-mem2mem.h
index 498c99b..1b35534 100644
--- a/include/media/v4l2-mem2mem.h
+++ b/include/media/v4l2-mem2mem.h
@@ -393,7 +393,7 @@
 }
 
 /**
- * v4l2_m2m_num_src_bufs_ready() - return the number of destination buffers
+ * v4l2_m2m_num_dst_bufs_ready() - return the number of destination buffers
  * ready for use
  *
  * @m2m_ctx: m2m context assigned to the instance given by struct &v4l2_m2m_ctx
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
index 863f926..cf778c5 100644
--- a/include/media/v4l2-subdev.h
+++ b/include/media/v4l2-subdev.h
@@ -212,7 +212,8 @@
 };
 
 /**
- * struct s_radio - Callbacks used when v4l device was opened in radio mode.
+ * struct v4l2_subdev_tuner_ops - Callbacks used when v4l device was opened
+ *	in radio mode.
  *
  * @s_radio: callback for %VIDIOC_S_RADIO ioctl handler code.
  *
@@ -887,7 +888,7 @@
 }
 
 /**
- * v4l2_set_subdevdata - Sets V4L2 dev private host data
+ * v4l2_set_subdev_hostdata - Sets V4L2 dev private host data
  *
  * @sd: pointer to &struct v4l2_subdev
  * @p: pointer to the private data to be stored.
@@ -898,7 +899,7 @@
 }
 
 /**
- * v4l2_get_subdevdata - Gets V4L2 dev private data
+ * v4l2_get_subdev_hostdata - Gets V4L2 dev private data
  *
  * @sd: pointer to &struct v4l2_subdev
  *
diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h
index 9a144f2..ac5898a 100644
--- a/include/media/videobuf2-core.h
+++ b/include/media/videobuf2-core.h
@@ -396,7 +396,7 @@
 };
 
 /**
- * struct vb2_ops - driver-specific callbacks
+ * struct vb2_buf_ops - driver-specific callbacks
  *
  * @verify_planes_array: Verify that a given user space structure contains
  *			enough planes for the buffer. This is called
