DRM: add help to get ELD speaker allocation
authorArnaud Pouliquen <arnaud.pouliquen@st.com>
Tue, 3 Jan 2017 15:52:50 +0000 (16:52 +0100)
committerMark Brown <broonie@kernel.org>
Fri, 20 Jan 2017 15:16:23 +0000 (15:16 +0000)
Add helper to allow users to retrieve the speaker allocations without
knowledge of the ELD structure.

Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
include/drm/drm_edid.h

index c3a7d440bc11f623735f43514f6d28d6fb21bafe..de93543d12184cfe6f9498577bc561f5d9d53183 100644 (file)
@@ -248,6 +248,7 @@ struct detailed_timing {
 # define DRM_ELD_AUD_SYNCH_DELAY_MAX   0xfa    /* 500 ms */
 
 #define DRM_ELD_SPEAKER                        7
+# define DRM_ELD_SPEAKER_MASK          0x7f
 # define DRM_ELD_SPEAKER_RLRC          (1 << 6)
 # define DRM_ELD_SPEAKER_FLRC          (1 << 5)
 # define DRM_ELD_SPEAKER_RC            (1 << 4)
@@ -414,6 +415,18 @@ static inline int drm_eld_size(const uint8_t *eld)
        return DRM_ELD_HEADER_BLOCK_SIZE + eld[DRM_ELD_BASELINE_ELD_LEN] * 4;
 }
 
+/**
+ * drm_eld_get_spk_alloc - Get speaker allocation
+ * @eld: pointer to an ELD memory structure
+ *
+ * The returned value is the speakers mask. User has to use %DRM_ELD_SPEAKER
+ * field definitions to identify speakers.
+ */
+static inline u8 drm_eld_get_spk_alloc(const uint8_t *eld)
+{
+       return eld[DRM_ELD_SPEAKER] & DRM_ELD_SPEAKER_MASK;
+}
+
 /**
  * drm_eld_get_conn_type - Get device type hdmi/dp connected
  * @eld: pointer to an ELD memory structure