[PATCH v2 18/18] drm/i915/audio: add DOC comment describing HDA over HDMI/DP

Jani Nikula
2014-10-27T14:28:02Z

v2: include the section in the drm docbook.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Documentation/DocBook/drm.tmpl | 5 +++++
drivers/gpu/drm/i915/intel_audio.c | 21 +++++++++++++++++++++
2 files changed, 26 insertions(+)

diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl
index f6a9d7b21380..01b8ca5f1a3d 100644
--- a/Documentation/DocBook/drm.tmpl
+++ b/Documentation/DocBook/drm.tmpl
@@ -3855,6 +3855,11 @@ int num_ioctls;</synopsis>

</sect2>
<sect2>
+ High Definition Audio
+!Pdrivers/gpu/drm/i915/intel_audio.c High Definition Audio over HDMI and Display Port
+!Idrivers/gpu/drm/i915/intel_audio.c
+ </sect2>
+ <sect2>
DPIO
!Pdrivers/gpu/drm/i915/i915_reg.h DPIO

diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c
index 7c975cfe9cb5..f1558b6974a2 100644
--- a/drivers/gpu/drm/i915/intel_audio.c
+++ b/drivers/gpu/drm/i915/intel_audio.c
@@ -28,6 +28,27 @@
#include "intel_drv.h"
#include "i915_drv.h"

+/**
+ * DOC: High Definition Audio over HDMI and Display Port
+ *
+ * The graphics and audio drivers together support High Definition Audio over
+ * HDMI and Display Port. The audio programming sequences are divided into audio
+ * codec and controller enable and disable sequences. The graphics driver
+ * handles the audio codec sequences, while the audio driver handles the audio
+ * controller sequences.
+ *
+ * The disable sequences must be performed before disabling the transcoder or
+ * port. The enable sequences may only be performed after enabling the
+ * transcoder and port, and after completed link training.
+ *
+ * The codec and controller sequences could be done either parallel or serial,
+ * but generally the ELDV/PD change in the codec sequence indicates to the audio
+ * driver that the controller sequence should start. Indeed, most of the
+ * co-operation between the graphics and audio drivers is handled via audio
+ * related registers. (The notable exception is the power management, not
+ * covered here.)
+ */
+
static const struct {
int clock;
u32 config;
--
2.1.1