@@ -564,11 +564,9 @@ static int vmw_fb_set_par(struct fb_info *info)
564
564
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
565
565
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC )
566
566
};
567
- struct drm_display_mode * old_mode ;
568
567
struct drm_display_mode * mode ;
569
568
int ret ;
570
569
571
- old_mode = par -> set_mode ;
572
570
mode = drm_mode_duplicate (vmw_priv -> dev , & new_mode );
573
571
if (!mode ) {
574
572
DRM_ERROR ("Could not create new fb mode.\n" );
@@ -579,11 +577,7 @@ static int vmw_fb_set_par(struct fb_info *info)
579
577
mode -> vdisplay = var -> yres ;
580
578
vmw_guess_mode_timing (mode );
581
579
582
- if (old_mode && drm_mode_equal (old_mode , mode )) {
583
- drm_mode_destroy (vmw_priv -> dev , mode );
584
- mode = old_mode ;
585
- old_mode = NULL ;
586
- } else if (!vmw_kms_validate_mode_vram (vmw_priv ,
580
+ if (!vmw_kms_validate_mode_vram (vmw_priv ,
587
581
mode -> hdisplay *
588
582
DIV_ROUND_UP (var -> bits_per_pixel , 8 ),
589
583
mode -> vdisplay )) {
@@ -620,8 +614,8 @@ static int vmw_fb_set_par(struct fb_info *info)
620
614
schedule_delayed_work (& par -> local_work , 0 );
621
615
622
616
out_unlock :
623
- if (old_mode )
624
- drm_mode_destroy (vmw_priv -> dev , old_mode );
617
+ if (par -> set_mode )
618
+ drm_mode_destroy (vmw_priv -> dev , par -> set_mode );
625
619
par -> set_mode = mode ;
626
620
627
621
mutex_unlock (& par -> bo_mutex );
0 commit comments