Lines Matching full:gt

45 void xe_force_wake_init_gt(struct xe_gt *gt, struct xe_force_wake *fw)  in xe_force_wake_init_gt()  argument
47 struct xe_device *xe = gt_to_xe(gt); in xe_force_wake_init_gt()
49 fw->gt = gt; in xe_force_wake_init_gt()
63 void xe_force_wake_init_engines(struct xe_gt *gt, struct xe_force_wake *fw) in xe_force_wake_init_engines() argument
67 if (xe_gt_is_main_type(gt)) in xe_force_wake_init_engines()
73 if (!(gt->info.engine_mask & BIT(i))) in xe_force_wake_init_engines()
82 if (!(gt->info.engine_mask & BIT(i))) in xe_force_wake_init_engines()
90 if (gt->info.engine_mask & BIT(XE_HW_ENGINE_GSCCS0)) in xe_force_wake_init_engines()
96 static void __domain_ctl(struct xe_gt *gt, struct xe_force_wake_domain *domain, bool wake) in __domain_ctl() argument
98 if (IS_SRIOV_VF(gt_to_xe(gt))) in __domain_ctl()
101 xe_mmio_write32(&gt->mmio, domain->reg_ctl, domain->mask | (wake ? domain->val : 0)); in __domain_ctl()
104 static int __domain_wait(struct xe_gt *gt, struct xe_force_wake_domain *domain, bool wake) in __domain_wait() argument
109 if (IS_SRIOV_VF(gt_to_xe(gt))) in __domain_wait()
112 ret = xe_mmio_wait32(&gt->mmio, domain->reg_ack, domain->val, wake ? domain->val : 0, in __domain_wait()
116 xe_gt_err(gt, "Force wake domain %d failed to ack %s (%pe) reg[%#x] = %#x\n", in __domain_wait()
120 xe_gt_err(gt, in __domain_wait()
129 static void domain_wake(struct xe_gt *gt, struct xe_force_wake_domain *domain) in domain_wake() argument
131 __domain_ctl(gt, domain, true); in domain_wake()
134 static int domain_wake_wait(struct xe_gt *gt, in domain_wake_wait() argument
137 return __domain_wait(gt, domain, true); in domain_wake_wait()
140 static void domain_sleep(struct xe_gt *gt, struct xe_force_wake_domain *domain) in domain_sleep() argument
142 __domain_ctl(gt, domain, false); in domain_sleep()
145 static int domain_sleep_wait(struct xe_gt *gt, in domain_sleep_wait() argument
148 return __domain_wait(gt, domain, false); in domain_sleep_wait()
175 struct xe_gt *gt = fw->gt; in xe_force_wake_get() local
181 xe_gt_assert(gt, is_power_of_2(domains)); in xe_force_wake_get()
182 xe_gt_assert(gt, domains <= XE_FORCEWAKE_ALL); in xe_force_wake_get()
183 xe_gt_assert(gt, domains == XE_FORCEWAKE_ALL || fw->initialized_domains & domains); in xe_force_wake_get()
190 domain_wake(gt, domain); in xe_force_wake_get()
195 if (domain_wake_wait(gt, domain) == 0) { in xe_force_wake_get()
205 xe_gt_WARN(gt, awake_failed, "Forcewake domain%s %#x failed to acknowledge awake request\n", in xe_force_wake_get()
226 struct xe_gt *gt = fw->gt; in xe_force_wake_put() local
244 xe_gt_assert(gt, domain->ref); in xe_force_wake_put()
248 domain_sleep(gt, domain); in xe_force_wake_put()
252 if (domain_sleep_wait(gt, domain) == 0) in xe_force_wake_put()
259 xe_gt_WARN(gt, ack_fail, "Forcewake domain%s %#x failed to acknowledge sleep request\n", in xe_force_wake_put()