wndw.c (1590700d94ac53772491ed3103a4e8b8de01640a) | wndw.c (ccd27db8c731817ef36e75de2b5fdc2e79550213) |
---|---|
1/* 2 * Copyright 2018 Red Hat Inc. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Software"), 6 * to deal in the Software without restriction, including without limitation 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 * and/or sell copies of the Software, and to permit persons to whom the --- 84 unchanged lines hidden (view full) --- 93 } 94 95 return ctxdma; 96} 97 98int 99nv50_wndw_wait_armed(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw) 100{ | 1/* 2 * Copyright 2018 Red Hat Inc. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Software"), 6 * to deal in the Software without restriction, including without limitation 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 * and/or sell copies of the Software, and to permit persons to whom the --- 84 unchanged lines hidden (view full) --- 93 } 94 95 return ctxdma; 96} 97 98int 99nv50_wndw_wait_armed(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw) 100{ |
101 if (asyw->set.ntfy) 102 return wndw->func->ntfy_wait_begun(wndw, asyw); | 101 struct nv50_disp *disp = nv50_disp(wndw->plane.dev); 102 if (asyw->set.ntfy) { 103 return wndw->func->ntfy_wait_begun(disp->sync, 104 asyw->ntfy.offset, 105 wndw->wndw.base.device); 106 } |
103 return 0; 104} 105 106u32 107nv50_wndw_flush_clr(struct nv50_wndw *wndw, u32 interlock, bool flush, 108 struct nv50_wndw_atom *asyw) 109{ 110 if (asyw->clr.sema && (!asyw->set.sema || flush)) --- 22 unchanged lines hidden (view full) --- 133 if (asyw->set.point) { 134 wndw->immd->point(wndw, asyw); 135 wndw->immd->update(wndw, interlock); 136 } 137 138 return wndw->func->update ? wndw->func->update(wndw, interlock) : 0; 139} 140 | 107 return 0; 108} 109 110u32 111nv50_wndw_flush_clr(struct nv50_wndw *wndw, u32 interlock, bool flush, 112 struct nv50_wndw_atom *asyw) 113{ 114 if (asyw->clr.sema && (!asyw->set.sema || flush)) --- 22 unchanged lines hidden (view full) --- 137 if (asyw->set.point) { 138 wndw->immd->point(wndw, asyw); 139 wndw->immd->update(wndw, interlock); 140 } 141 142 return wndw->func->update ? wndw->func->update(wndw, interlock) : 0; 143} 144 |
145void 146nv50_wndw_ntfy_enable(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw) 147{ 148 struct nv50_disp *disp = nv50_disp(wndw->plane.dev); 149 150 asyw->ntfy.handle = wndw->wndw.sync.handle; 151 asyw->ntfy.offset = wndw->ntfy; 152 asyw->ntfy.awaken = false; 153 asyw->set.ntfy = true; 154 155 wndw->func->ntfy_reset(disp->sync, wndw->ntfy); 156 wndw->ntfy ^= 0x10; 157} 158 |
|
141static void 142nv50_wndw_atomic_check_release(struct nv50_wndw *wndw, 143 struct nv50_wndw_atom *asyw, 144 struct nv50_head_atom *asyh) 145{ 146 struct nouveau_drm *drm = nouveau_drm(wndw->plane.dev); 147 NV_ATOMIC(drm, "%s release\n", wndw->plane.name); 148 wndw->func->release(wndw, asyw, asyh); --- 286 unchanged lines hidden --- | 159static void 160nv50_wndw_atomic_check_release(struct nv50_wndw *wndw, 161 struct nv50_wndw_atom *asyw, 162 struct nv50_head_atom *asyh) 163{ 164 struct nouveau_drm *drm = nouveau_drm(wndw->plane.dev); 165 NV_ATOMIC(drm, "%s release\n", wndw->plane.name); 166 wndw->func->release(wndw, asyw, asyh); --- 286 unchanged lines hidden --- |