mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

HDMI standard defines recommended N and CTS values for Audio Clock Regeneration. Currently each driver implements those, frequently in somewhat unique way. Provide a generic helper for getting those values to be used by the HDMI drivers. The helper is added to drm_hdmi_helper.c rather than drm_hdmi_audio.c since HDMI drivers can be using this helper function even without switching to DRM HDMI Audio helpers. Note: currently this only handles the values per HDMI 1.4b Section 7.2 and HDMI 2.0 Section 9.2.1. Later the table can be expanded to accommodate for Deep Color TMDS char rates per HDMI 1.4 Appendix D and/or HDMI 2.0 / 2.1 Appendix C). Reviewed-by: Maxime Ripard <mripard@kernel.org> Link: https://lore.kernel.org/r/20250408-drm-hdmi-acr-v2-1-dee7298ab1af@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
37 lines
1,002 B
C
37 lines
1,002 B
C
/* SPDX-License-Identifier: MIT */
|
|
|
|
#ifndef DRM_HDMI_HELPER
|
|
#define DRM_HDMI_HELPER
|
|
|
|
#include <linux/hdmi.h>
|
|
|
|
struct drm_connector;
|
|
struct drm_connector_state;
|
|
struct drm_display_mode;
|
|
|
|
void
|
|
drm_hdmi_avi_infoframe_colorimetry(struct hdmi_avi_infoframe *frame,
|
|
const struct drm_connector_state *conn_state);
|
|
|
|
void
|
|
drm_hdmi_avi_infoframe_bars(struct hdmi_avi_infoframe *frame,
|
|
const struct drm_connector_state *conn_state);
|
|
|
|
int
|
|
drm_hdmi_infoframe_set_hdr_metadata(struct hdmi_drm_infoframe *frame,
|
|
const struct drm_connector_state *conn_state);
|
|
|
|
void drm_hdmi_avi_infoframe_content_type(struct hdmi_avi_infoframe *frame,
|
|
const struct drm_connector_state *conn_state);
|
|
|
|
unsigned long long
|
|
drm_hdmi_compute_mode_clock(const struct drm_display_mode *mode,
|
|
unsigned int bpc, enum hdmi_colorspace fmt);
|
|
|
|
void
|
|
drm_hdmi_acr_get_n_cts(unsigned long long tmds_char_rate,
|
|
unsigned int sample_rate,
|
|
unsigned int *out_n,
|
|
unsigned int *out_cts);
|
|
|
|
#endif
|