Indirect context setup will need to get to the number of written dwords.
Lets add it as an output parameter so it can be accessed from the finish
helper regardless of whether code is writing directly or via an shadow
buffer.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://lore.kernel.org/r/20250711160153.49833-5-tvrtko.ursulin@igalia.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
/* State: */
u32 *buffer;
u32 *ptr;
+ unsigned int written;
};
static int setup_bo(struct bo_setup_state *state)
goto fail;
state->ptr += len;
+ state->written += len;
}
return 0;
xe_map_memcpy_to(gt_to_xe(state->lrc->gt), &state->lrc->bo->vmap,
state->offset, state->buffer,
- (state->ptr - state->buffer) * sizeof(u32));
+ state->written * sizeof(u32));
kfree(state->buffer);
}
return ret;
*state.ptr++ = MI_BATCH_BUFFER_END;
+ state.written++;
finish_bo(&state);