drm/nv50: Make ctxprog wait until interrupt handler is done.
This will fix races between generated ctxprogs and interrupt handler. Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
Родитель
c82b88d578
Коммит
3bf777bf0a
|
@ -64,6 +64,9 @@
|
|||
#define CP_FLAG_ALWAYS ((2 * 32) + 13)
|
||||
#define CP_FLAG_ALWAYS_FALSE 0
|
||||
#define CP_FLAG_ALWAYS_TRUE 1
|
||||
#define CP_FLAG_INTR ((2 * 32) + 15)
|
||||
#define CP_FLAG_INTR_NOT_PENDING 0
|
||||
#define CP_FLAG_INTR_PENDING 1
|
||||
|
||||
#define CP_CTX 0x00100000
|
||||
#define CP_CTX_COUNT 0x000f0000
|
||||
|
@ -214,6 +217,8 @@ nv50_grctx_init(struct nouveau_grctx *ctx)
|
|||
cp_name(ctx, cp_setup_save);
|
||||
cp_set (ctx, UNK1D, SET);
|
||||
cp_wait(ctx, STATUS, BUSY);
|
||||
cp_wait(ctx, INTR, PENDING);
|
||||
cp_bra (ctx, STATUS, BUSY, cp_setup_save);
|
||||
cp_set (ctx, UNK01, SET);
|
||||
cp_set (ctx, SWAP_DIRECTION, SAVE);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче