|
@@ -995,7 +995,6 @@ nv50_wndw_atomic_destroy_state(struct drm_plane *plane,
|
|
|
{
|
|
|
struct nv50_wndw_atom *asyw = nv50_wndw_atom(state);
|
|
|
__drm_atomic_helper_plane_destroy_state(&asyw->state);
|
|
|
- dma_fence_put(asyw->state.fence);
|
|
|
kfree(asyw);
|
|
|
}
|
|
|
|
|
@@ -1007,7 +1006,6 @@ nv50_wndw_atomic_duplicate_state(struct drm_plane *plane)
|
|
|
if (!(asyw = kmalloc(sizeof(*asyw), GFP_KERNEL)))
|
|
|
return NULL;
|
|
|
__drm_atomic_helper_plane_duplicate_state(plane, &asyw->state);
|
|
|
- asyw->state.fence = NULL;
|
|
|
asyw->interval = 1;
|
|
|
asyw->sema = armw->sema;
|
|
|
asyw->ntfy = armw->ntfy;
|
|
@@ -2036,6 +2034,7 @@ nv50_head_atomic_check_mode(struct nv50_head *head, struct nv50_head_atom *asyh)
|
|
|
u32 vbackp = (mode->vtotal - mode->vsync_end) * vscan / ilace;
|
|
|
u32 hfrontp = mode->hsync_start - mode->hdisplay;
|
|
|
u32 vfrontp = (mode->vsync_start - mode->vdisplay) * vscan / ilace;
|
|
|
+ u32 blankus;
|
|
|
struct nv50_head_mode *m = &asyh->mode;
|
|
|
|
|
|
m->h.active = mode->htotal;
|
|
@@ -2049,9 +2048,10 @@ nv50_head_atomic_check_mode(struct nv50_head *head, struct nv50_head_atom *asyh)
|
|
|
m->v.blanks = m->v.active - vfrontp - 1;
|
|
|
|
|
|
/*XXX: Safe underestimate, even "0" works */
|
|
|
- m->v.blankus = (m->v.active - mode->vdisplay - 2) * m->h.active;
|
|
|
- m->v.blankus *= 1000;
|
|
|
- m->v.blankus /= mode->clock;
|
|
|
+ blankus = (m->v.active - mode->vdisplay - 2) * m->h.active;
|
|
|
+ blankus *= 1000;
|
|
|
+ blankus /= mode->clock;
|
|
|
+ m->v.blankus = blankus;
|
|
|
|
|
|
if (mode->flags & DRM_MODE_FLAG_INTERLACE) {
|
|
|
m->v.blank2e = m->v.active + m->v.synce + vbackp;
|