diff options
| author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2020-08-07 16:41:01 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2020-08-07 16:41:01 -0700 | 
| commit | 9e8238020c5beba64e7ffafbb7ea0fb02fe68270 (patch) | |
| tree | 37c7fd953cfa7ebd3d6c476bc4c7d4de2302cdc3 /drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | |
| parent | a50ca29523b18baea548bdf5df9b4b923c2bb4f6 (diff) | |
| parent | d862a3068ea593dc904ef524d8548467755ce36f (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 5.9 merge window.
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_display.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 16 | 
1 files changed, 14 insertions, 2 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c index 6d520a3eec40..84cee27cd7ef 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c @@ -99,7 +99,7 @@ static void amdgpu_display_flip_work_func(struct work_struct *__work)  	     & (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_IN_VBLANK)) ==  	    (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_IN_VBLANK) &&  	    (int)(work->target_vblank - -		  amdgpu_get_vblank_counter_kms(adev->ddev, amdgpu_crtc->crtc_id)) > 0) { +		  amdgpu_get_vblank_counter_kms(crtc)) > 0) {  		schedule_delayed_work(&work->flip_work, usecs_to_jiffies(1000));  		return;  	} @@ -219,7 +219,7 @@ int amdgpu_display_crtc_page_flip_target(struct drm_crtc *crtc,  	if (!adev->enable_virtual_display)  		work->base = amdgpu_bo_gpu_offset(new_abo);  	work->target_vblank = target - (uint32_t)drm_crtc_vblank_count(crtc) + -		amdgpu_get_vblank_counter_kms(dev, work->crtc_id); +		amdgpu_get_vblank_counter_kms(crtc);  	/* we borrow the event spin lock for protecting flip_wrok */  	spin_lock_irqsave(&crtc->dev->event_lock, flags); @@ -924,3 +924,15 @@ int amdgpu_display_crtc_idx_to_irq_type(struct amdgpu_device *adev, int crtc)  		return AMDGPU_CRTC_IRQ_NONE;  	}  } + +bool amdgpu_crtc_get_scanout_position(struct drm_crtc *crtc, +			bool in_vblank_irq, int *vpos, +			int *hpos, ktime_t *stime, ktime_t *etime, +			const struct drm_display_mode *mode) +{ +	struct drm_device *dev = crtc->dev; +	unsigned int pipe = crtc->index; + +	return amdgpu_display_get_crtc_scanoutpos(dev, pipe, 0, vpos, hpos, +						  stime, etime, mode); +} | 
