diff options
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r-- | drivers/gpu/drm/i915/intel_audio.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c index 44c49dfe1096..87750ef018e6 100644 --- a/drivers/gpu/drm/i915/intel_audio.c +++ b/drivers/gpu/drm/i915/intel_audio.c | |||
@@ -107,7 +107,7 @@ static bool intel_eld_uptodate(struct drm_connector *connector, | |||
107 | tmp &= ~bits_elda; | 107 | tmp &= ~bits_elda; |
108 | I915_WRITE(reg_elda, tmp); | 108 | I915_WRITE(reg_elda, tmp); |
109 | 109 | ||
110 | for (i = 0; i < eld[2]; i++) | 110 | for (i = 0; i < drm_eld_size(eld) / 4; i++) |
111 | if (I915_READ(reg_edid) != *((uint32_t *)eld + i)) | 111 | if (I915_READ(reg_edid) != *((uint32_t *)eld + i)) |
112 | return false; | 112 | return false; |
113 | 113 | ||
@@ -162,7 +162,7 @@ static void g4x_audio_codec_enable(struct drm_connector *connector, | |||
162 | len = (tmp >> 9) & 0x1f; /* ELD buffer size */ | 162 | len = (tmp >> 9) & 0x1f; /* ELD buffer size */ |
163 | I915_WRITE(G4X_AUD_CNTL_ST, tmp); | 163 | I915_WRITE(G4X_AUD_CNTL_ST, tmp); |
164 | 164 | ||
165 | len = min_t(int, eld[2], len); | 165 | len = min(drm_eld_size(eld) / 4, len); |
166 | DRM_DEBUG_DRIVER("ELD size %d\n", len); | 166 | DRM_DEBUG_DRIVER("ELD size %d\n", len); |
167 | for (i = 0; i < len; i++) | 167 | for (i = 0; i < len; i++) |
168 | I915_WRITE(G4X_HDMIW_HDMIEDID, *((uint32_t *)eld + i)); | 168 | I915_WRITE(G4X_HDMIW_HDMIEDID, *((uint32_t *)eld + i)); |
@@ -209,7 +209,7 @@ static void hsw_audio_codec_enable(struct drm_connector *connector, | |||
209 | int len, i; | 209 | int len, i; |
210 | 210 | ||
211 | DRM_DEBUG_KMS("Enable audio codec on pipe %c, %u bytes ELD\n", | 211 | DRM_DEBUG_KMS("Enable audio codec on pipe %c, %u bytes ELD\n", |
212 | pipe_name(pipe), eld[2]); | 212 | pipe_name(pipe), drm_eld_size(eld)); |
213 | 213 | ||
214 | /* Enable audio presence detect, invalidate ELD */ | 214 | /* Enable audio presence detect, invalidate ELD */ |
215 | tmp = I915_READ(HSW_AUD_PIN_ELD_CP_VLD); | 215 | tmp = I915_READ(HSW_AUD_PIN_ELD_CP_VLD); |
@@ -230,8 +230,8 @@ static void hsw_audio_codec_enable(struct drm_connector *connector, | |||
230 | I915_WRITE(HSW_AUD_DIP_ELD_CTRL(pipe), tmp); | 230 | I915_WRITE(HSW_AUD_DIP_ELD_CTRL(pipe), tmp); |
231 | 231 | ||
232 | /* Up to 84 bytes of hw ELD buffer */ | 232 | /* Up to 84 bytes of hw ELD buffer */ |
233 | len = min_t(int, eld[2], 21); | 233 | len = min(drm_eld_size(eld), 84); |
234 | for (i = 0; i < len; i++) | 234 | for (i = 0; i < len / 4; i++) |
235 | I915_WRITE(HSW_AUD_EDID_DATA(pipe), *((uint32_t *)eld + i)); | 235 | I915_WRITE(HSW_AUD_EDID_DATA(pipe), *((uint32_t *)eld + i)); |
236 | 236 | ||
237 | /* ELD valid */ | 237 | /* ELD valid */ |
@@ -320,7 +320,7 @@ static void ilk_audio_codec_enable(struct drm_connector *connector, | |||
320 | int aud_cntrl_st2; | 320 | int aud_cntrl_st2; |
321 | 321 | ||
322 | DRM_DEBUG_KMS("Enable audio codec on port %c, pipe %c, %u bytes ELD\n", | 322 | DRM_DEBUG_KMS("Enable audio codec on port %c, pipe %c, %u bytes ELD\n", |
323 | port_name(port), pipe_name(pipe), eld[2]); | 323 | port_name(port), pipe_name(pipe), drm_eld_size(eld)); |
324 | 324 | ||
325 | /* | 325 | /* |
326 | * FIXME: We're supposed to wait for vblank here, but we have vblanks | 326 | * FIXME: We're supposed to wait for vblank here, but we have vblanks |
@@ -364,8 +364,8 @@ static void ilk_audio_codec_enable(struct drm_connector *connector, | |||
364 | I915_WRITE(aud_cntl_st, tmp); | 364 | I915_WRITE(aud_cntl_st, tmp); |
365 | 365 | ||
366 | /* Up to 84 bytes of hw ELD buffer */ | 366 | /* Up to 84 bytes of hw ELD buffer */ |
367 | len = min_t(int, eld[2], 21); | 367 | len = min(drm_eld_size(eld), 84); |
368 | for (i = 0; i < len; i++) | 368 | for (i = 0; i < len / 4; i++) |
369 | I915_WRITE(hdmiw_hdmiedid, *((uint32_t *)eld + i)); | 369 | I915_WRITE(hdmiw_hdmiedid, *((uint32_t *)eld + i)); |
370 | 370 | ||
371 | /* ELD valid */ | 371 | /* ELD valid */ |