File tree Expand file tree Collapse file tree 4 files changed +14
-11
lines changed
Expand file tree Collapse file tree 4 files changed +14
-11
lines changed Original file line number Diff line number Diff line change @@ -387,6 +387,10 @@ int xe_gt_init_early(struct xe_gt *gt)
387387 xe_force_wake_init_gt (gt , gt_to_fw (gt ));
388388 spin_lock_init (& gt -> global_invl_lock );
389389
390+ err = xe_gt_tlb_invalidation_init_early (gt );
391+ if (err )
392+ return err ;
393+
390394 return 0 ;
391395}
392396
@@ -588,10 +592,6 @@ int xe_gt_init(struct xe_gt *gt)
588592 xe_hw_fence_irq_init (& gt -> fence_irq [i ]);
589593 }
590594
591- err = xe_gt_tlb_invalidation_init (gt );
592- if (err )
593- return err ;
594-
595595 err = xe_gt_pagefault_init (gt );
596596 if (err )
597597 return err ;
Original file line number Diff line number Diff line change @@ -122,10 +122,12 @@ void xe_gt_idle_enable_pg(struct xe_gt *gt)
122122 if (!xe_gt_is_media_type (gt ))
123123 gtidle -> powergate_enable |= RENDER_POWERGATE_ENABLE ;
124124
125- for (i = XE_HW_ENGINE_VCS0 , j = 0 ; i <= XE_HW_ENGINE_VCS7 ; ++ i , ++ j ) {
126- if ((gt -> info .engine_mask & BIT (i )))
127- gtidle -> powergate_enable |= (VDN_HCP_POWERGATE_ENABLE (j ) |
128- VDN_MFXVDENC_POWERGATE_ENABLE (j ));
125+ if (xe -> info .platform != XE_DG1 ) {
126+ for (i = XE_HW_ENGINE_VCS0 , j = 0 ; i <= XE_HW_ENGINE_VCS7 ; ++ i , ++ j ) {
127+ if ((gt -> info .engine_mask & BIT (i )))
128+ gtidle -> powergate_enable |= (VDN_HCP_POWERGATE_ENABLE (j ) |
129+ VDN_MFXVDENC_POWERGATE_ENABLE (j ));
130+ }
129131 }
130132
131133 fw_ref = xe_force_wake_get (gt_to_fw (gt ), XE_FW_GT );
Original file line number Diff line number Diff line change @@ -106,15 +106,15 @@ static void xe_gt_tlb_fence_timeout(struct work_struct *work)
106106}
107107
108108/**
109- * xe_gt_tlb_invalidation_init - Initialize GT TLB invalidation state
109+ * xe_gt_tlb_invalidation_init_early - Initialize GT TLB invalidation state
110110 * @gt: graphics tile
111111 *
112112 * Initialize GT TLB invalidation state, purely software initialization, should
113113 * be called once during driver load.
114114 *
115115 * Return: 0 on success, negative error code on error.
116116 */
117- int xe_gt_tlb_invalidation_init (struct xe_gt * gt )
117+ int xe_gt_tlb_invalidation_init_early (struct xe_gt * gt )
118118{
119119 gt -> tlb_invalidation .seqno = 1 ;
120120 INIT_LIST_HEAD (& gt -> tlb_invalidation .pending_fences );
Original file line number Diff line number Diff line change @@ -14,7 +14,8 @@ struct xe_gt;
1414struct xe_guc ;
1515struct xe_vma ;
1616
17- int xe_gt_tlb_invalidation_init (struct xe_gt * gt );
17+ int xe_gt_tlb_invalidation_init_early (struct xe_gt * gt );
18+
1819void xe_gt_tlb_invalidation_reset (struct xe_gt * gt );
1920int xe_gt_tlb_invalidation_ggtt (struct xe_gt * gt );
2021int xe_gt_tlb_invalidation_vma (struct xe_gt * gt ,
You can’t perform that action at this time.
0 commit comments