drm/xe: Save the gt pointer in lrc and drop the tile
[ Upstream commit ce15563e49fb0b5c802564433ff8468acd1339eb ] Save the gt pointer in the lrc so that it can used for gt based helpers. Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com> Reviewed-by: Matthew Brost <matthew.brost@intel.com> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> Link: https://lore.kernel.org/r/20250509161159.2173069-7-umesh.nerlige.ramappa@intel.com (cherry picked from commit 741d3ef8b8b88fab2729ca89de1180e49bc9cef0) Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
089e980525
commit
fe7879e5eb
@@ -874,7 +874,7 @@ static void *empty_lrc_data(struct xe_hw_engine *hwe)
|
|||||||
|
|
||||||
static void xe_lrc_set_ppgtt(struct xe_lrc *lrc, struct xe_vm *vm)
|
static void xe_lrc_set_ppgtt(struct xe_lrc *lrc, struct xe_vm *vm)
|
||||||
{
|
{
|
||||||
u64 desc = xe_vm_pdp4_descriptor(vm, lrc->tile);
|
u64 desc = xe_vm_pdp4_descriptor(vm, gt_to_tile(lrc->gt));
|
||||||
|
|
||||||
xe_lrc_write_ctx_reg(lrc, CTX_PDP0_UDW, upper_32_bits(desc));
|
xe_lrc_write_ctx_reg(lrc, CTX_PDP0_UDW, upper_32_bits(desc));
|
||||||
xe_lrc_write_ctx_reg(lrc, CTX_PDP0_LDW, lower_32_bits(desc));
|
xe_lrc_write_ctx_reg(lrc, CTX_PDP0_LDW, lower_32_bits(desc));
|
||||||
@@ -905,6 +905,7 @@ static int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
|
|||||||
int err;
|
int err;
|
||||||
|
|
||||||
kref_init(&lrc->refcount);
|
kref_init(&lrc->refcount);
|
||||||
|
lrc->gt = gt;
|
||||||
lrc->flags = 0;
|
lrc->flags = 0;
|
||||||
lrc_size = ring_size + xe_gt_lrc_size(gt, hwe->class);
|
lrc_size = ring_size + xe_gt_lrc_size(gt, hwe->class);
|
||||||
if (xe_gt_has_indirect_ring_state(gt))
|
if (xe_gt_has_indirect_ring_state(gt))
|
||||||
@@ -923,7 +924,6 @@ static int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
|
|||||||
return PTR_ERR(lrc->bo);
|
return PTR_ERR(lrc->bo);
|
||||||
|
|
||||||
lrc->size = lrc_size;
|
lrc->size = lrc_size;
|
||||||
lrc->tile = gt_to_tile(hwe->gt);
|
|
||||||
lrc->ring.size = ring_size;
|
lrc->ring.size = ring_size;
|
||||||
lrc->ring.tail = 0;
|
lrc->ring.tail = 0;
|
||||||
lrc->ctx_timestamp = 0;
|
lrc->ctx_timestamp = 0;
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ struct xe_lrc {
|
|||||||
/** @size: size of lrc including any indirect ring state page */
|
/** @size: size of lrc including any indirect ring state page */
|
||||||
u32 size;
|
u32 size;
|
||||||
|
|
||||||
/** @tile: tile which this LRC belongs to */
|
/** @gt: gt which this LRC belongs to */
|
||||||
struct xe_tile *tile;
|
struct xe_gt *gt;
|
||||||
|
|
||||||
/** @flags: LRC flags */
|
/** @flags: LRC flags */
|
||||||
#define XE_LRC_FLAG_INDIRECT_RING_STATE 0x1
|
#define XE_LRC_FLAG_INDIRECT_RING_STATE 0x1
|
||||||
|
|||||||
Reference in New Issue
Block a user