@@ -149,6 +149,10 @@ static const struct {
149
149
{ 74250 , AUD_CONFIG_PIXEL_CLOCK_HDMI_74250 },
150
150
{ 148352 , AUD_CONFIG_PIXEL_CLOCK_HDMI_148352 },
151
151
{ 148500 , AUD_CONFIG_PIXEL_CLOCK_HDMI_148500 },
152
+ { 296703 , AUD_CONFIG_PIXEL_CLOCK_HDMI_296703 },
153
+ { 297000 , AUD_CONFIG_PIXEL_CLOCK_HDMI_297000 },
154
+ { 593407 , AUD_CONFIG_PIXEL_CLOCK_HDMI_593407 },
155
+ { 594000 , AUD_CONFIG_PIXEL_CLOCK_HDMI_594000 },
152
156
};
153
157
154
158
/* HDMI N/CTS table */
@@ -234,6 +238,7 @@ static const struct hdmi_aud_ncts hdmi_aud_ncts_36bpp[] = {
234
238
/* get AUD_CONFIG_PIXEL_CLOCK_HDMI_* value for mode */
235
239
static u32 audio_config_hdmi_pixel_clock (const struct intel_crtc_state * crtc_state )
236
240
{
241
+ struct drm_i915_private * dev_priv = to_i915 (crtc_state -> uapi .crtc -> dev );
237
242
const struct drm_display_mode * adjusted_mode =
238
243
& crtc_state -> hw .adjusted_mode ;
239
244
int i ;
@@ -243,6 +248,9 @@ static u32 audio_config_hdmi_pixel_clock(const struct intel_crtc_state *crtc_sta
243
248
break ;
244
249
}
245
250
251
+ if (INTEL_GEN (dev_priv ) < 12 && adjusted_mode -> crtc_clock > 148500 )
252
+ i = ARRAY_SIZE (hdmi_audio_clock );
253
+
246
254
if (i == ARRAY_SIZE (hdmi_audio_clock )) {
247
255
DRM_DEBUG_KMS ("HDMI audio pixel clock setting for %d not found, falling back to defaults\n" ,
248
256
adjusted_mode -> crtc_clock );
0 commit comments