Loading drivers/gpu/drm/nouveau/dispnv50/curs507a.c +18 −3 Original line number Diff line number Diff line Loading @@ -24,22 +24,37 @@ #include "head.h" #include <nvif/cl507a.h> #include <nvif/timer.h> #include <drm/drm_atomic_helper.h> #include <drm/drm_plane_helper.h> bool curs507a_space(struct nv50_wndw *wndw) { nvif_msec(&nouveau_drm(wndw->plane.dev)->client.device, 2, if (nvif_rd32(&wndw->wimm.base.user, 0x0008) >= 4) return true; ); WARN_ON(1); return false; } static void curs507a_update(struct nv50_wndw *wndw, u32 *interlock) { if (curs507a_space(wndw)) nvif_wr32(&wndw->wimm.base.user, 0x0080, 0x00000000); } static void curs507a_point(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw) { if (curs507a_space(wndw)) { nvif_wr32(&wndw->wimm.base.user, 0x0084, asyw->point.y << 16 | asyw->point.x); } } const struct nv50_wimm_func curs507a = { Loading drivers/gpu/drm/nouveau/dispnv50/cursc37a.c +6 −3 Original line number Diff line number Diff line Loading @@ -25,15 +25,18 @@ static void cursc37a_update(struct nv50_wndw *wndw, u32 *interlock) { if (curs507a_space(wndw)) nvif_wr32(&wndw->wimm.base.user, 0x0200, 0x00000001); } static void cursc37a_point(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw) { if (curs507a_space(wndw)) { nvif_wr32(&wndw->wimm.base.user, 0x0208, asyw->point.y << 16 | asyw->point.x); } } static const struct nv50_wimm_func cursc37a = { Loading drivers/gpu/drm/nouveau/dispnv50/wndw.h +1 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,7 @@ struct nv50_wimm_func { }; extern const struct nv50_wimm_func curs507a; bool curs507a_space(struct nv50_wndw *); int wndwc37e_new(struct nouveau_drm *, enum drm_plane_type, int, s32, struct nv50_wndw **); Loading Loading
drivers/gpu/drm/nouveau/dispnv50/curs507a.c +18 −3 Original line number Diff line number Diff line Loading @@ -24,22 +24,37 @@ #include "head.h" #include <nvif/cl507a.h> #include <nvif/timer.h> #include <drm/drm_atomic_helper.h> #include <drm/drm_plane_helper.h> bool curs507a_space(struct nv50_wndw *wndw) { nvif_msec(&nouveau_drm(wndw->plane.dev)->client.device, 2, if (nvif_rd32(&wndw->wimm.base.user, 0x0008) >= 4) return true; ); WARN_ON(1); return false; } static void curs507a_update(struct nv50_wndw *wndw, u32 *interlock) { if (curs507a_space(wndw)) nvif_wr32(&wndw->wimm.base.user, 0x0080, 0x00000000); } static void curs507a_point(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw) { if (curs507a_space(wndw)) { nvif_wr32(&wndw->wimm.base.user, 0x0084, asyw->point.y << 16 | asyw->point.x); } } const struct nv50_wimm_func curs507a = { Loading
drivers/gpu/drm/nouveau/dispnv50/cursc37a.c +6 −3 Original line number Diff line number Diff line Loading @@ -25,15 +25,18 @@ static void cursc37a_update(struct nv50_wndw *wndw, u32 *interlock) { if (curs507a_space(wndw)) nvif_wr32(&wndw->wimm.base.user, 0x0200, 0x00000001); } static void cursc37a_point(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw) { if (curs507a_space(wndw)) { nvif_wr32(&wndw->wimm.base.user, 0x0208, asyw->point.y << 16 | asyw->point.x); } } static const struct nv50_wimm_func cursc37a = { Loading
drivers/gpu/drm/nouveau/dispnv50/wndw.h +1 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,7 @@ struct nv50_wimm_func { }; extern const struct nv50_wimm_func curs507a; bool curs507a_space(struct nv50_wndw *); int wndwc37e_new(struct nouveau_drm *, enum drm_plane_type, int, s32, struct nv50_wndw **); Loading