summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/msm/dp/dp_audio.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/msm/dp/dp_audio.h')
-rw-r--r--drivers/gpu/drm/msm/dp/dp_audio.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/dp/dp_audio.h b/drivers/gpu/drm/msm/dp/dp_audio.h
new file mode 100644
index 000000000000..ce2342856adb
--- /dev/null
+++ b/drivers/gpu/drm/msm/dp/dp_audio.h
@@ -0,0 +1,57 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
+ */
+
+#ifndef _DP_AUDIO_H_
+#define _DP_AUDIO_H_
+
+#include <linux/platform_device.h>
+
+#include <sound/hdmi-codec.h>
+
+struct drm_bridge;
+
+/**
+ * struct msm_dp_audio
+ * @lane_count: number of lanes configured in current session
+ * @bw_code: link rate's bandwidth code for current session
+ */
+struct msm_dp_audio {
+ u32 lane_count;
+ u32 bw_code;
+};
+
+/**
+ * msm_dp_audio_get()
+ *
+ * Creates and instance of dp audio.
+ *
+ * @pdev: caller's platform device instance.
+ * @link_base: pointer to the msm_dp_link resource.
+ *
+ * Returns the error code in case of failure, otherwize
+ * an instance of newly created msm_dp_module.
+ */
+struct msm_dp_audio *msm_dp_audio_get(struct platform_device *pdev,
+ void __iomem *link_base);
+
+/**
+ * msm_dp_audio_put()
+ *
+ * Cleans the msm_dp_audio instance.
+ *
+ * @msm_dp_audio: an instance of msm_dp_audio.
+ */
+void msm_dp_audio_put(struct msm_dp_audio *msm_dp_audio);
+
+int msm_dp_audio_prepare(struct drm_bridge *bridge,
+ struct drm_connector *connector,
+ struct hdmi_codec_daifmt *daifmt,
+ struct hdmi_codec_params *params);
+void msm_dp_audio_shutdown(struct drm_bridge *bridge,
+ struct drm_connector *connector);
+
+#endif /* _DP_AUDIO_H_ */
+
+