Skip to content

Commit 80623de

Browse files
committed
Merge branch 'drm-fixes-4.6' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
two fixes for hw lockups and one for a double free * 'drm-fixes-4.6' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: make sure vertical front porch is at least 1 drm/radeon: make sure vertical front porch is at least 1 drm/amdgpu: set metadata pointer to NULL after freeing.
2 parents 503fe87 + 0126d4b commit 80623de

File tree

3 files changed

+9
-0
lines changed

3 files changed

+9
-0
lines changed

drivers/gpu/drm/amd/amdgpu/amdgpu_object.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,7 @@ int amdgpu_bo_set_metadata (struct amdgpu_bo *bo, void *metadata,
541541
if (!metadata_size) {
542542
if (bo->metadata_size) {
543543
kfree(bo->metadata);
544+
bo->metadata = NULL;
544545
bo->metadata_size = 0;
545546
}
546547
return 0;

drivers/gpu/drm/amd/amdgpu/atombios_encoders.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,10 @@ bool amdgpu_atombios_encoder_mode_fixup(struct drm_encoder *encoder,
298298
&& (mode->crtc_vsync_start < (mode->crtc_vdisplay + 2)))
299299
adjusted_mode->crtc_vsync_start = adjusted_mode->crtc_vdisplay + 2;
300300

301+
/* vertical FP must be at least 1 */
302+
if (mode->crtc_vsync_start == mode->crtc_vdisplay)
303+
adjusted_mode->crtc_vsync_start++;
304+
301305
/* get the native mode for scaling */
302306
if (amdgpu_encoder->active_device & (ATOM_DEVICE_LCD_SUPPORT))
303307
amdgpu_panel_mode_fixup(encoder, adjusted_mode);

drivers/gpu/drm/radeon/atombios_encoders.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,10 @@ static bool radeon_atom_mode_fixup(struct drm_encoder *encoder,
310310
&& (mode->crtc_vsync_start < (mode->crtc_vdisplay + 2)))
311311
adjusted_mode->crtc_vsync_start = adjusted_mode->crtc_vdisplay + 2;
312312

313+
/* vertical FP must be at least 1 */
314+
if (mode->crtc_vsync_start == mode->crtc_vdisplay)
315+
adjusted_mode->crtc_vsync_start++;
316+
313317
/* get the native mode for scaling */
314318
if (radeon_encoder->active_device & (ATOM_DEVICE_LCD_SUPPORT)) {
315319
radeon_panel_mode_fixup(encoder, adjusted_mode);

0 commit comments

Comments
 (0)