Lines Matching refs:domain

24 static void domain_init(struct xe_force_wake_domain *domain,  in domain_init()  argument
28 domain->id = id; in domain_init()
29 domain->reg_ctl = reg; in domain_init()
30 domain->reg_ack = ack; in domain_init()
31 domain->val = FORCEWAKE_MT(FORCEWAKE_KERNEL); in domain_init()
32 domain->mask = FORCEWAKE_MT_MASK(FORCEWAKE_KERNEL); in domain_init()
98 static void __domain_ctl(struct xe_gt *gt, struct xe_force_wake_domain *domain, bool wake) in __domain_ctl() argument
103 xe_mmio_write32(gt, domain->reg_ctl, domain->mask | (wake ? domain->val : 0)); in __domain_ctl()
106 static int __domain_wait(struct xe_gt *gt, struct xe_force_wake_domain *domain, bool wake) in __domain_wait() argument
114 ret = xe_mmio_wait32(gt, domain->reg_ack, domain->val, wake ? domain->val : 0, in __domain_wait()
119 domain->id, str_wake_sleep(wake), ERR_PTR(ret), in __domain_wait()
120 domain->reg_ack.addr, value); in __domain_wait()
124 domain->id, str_wake_sleep(wake)); in __domain_wait()
131 static void domain_wake(struct xe_gt *gt, struct xe_force_wake_domain *domain) in domain_wake() argument
133 __domain_ctl(gt, domain, true); in domain_wake()
137 struct xe_force_wake_domain *domain) in domain_wake_wait() argument
139 return __domain_wait(gt, domain, true); in domain_wake_wait()
142 static void domain_sleep(struct xe_gt *gt, struct xe_force_wake_domain *domain) in domain_sleep() argument
144 __domain_ctl(gt, domain, false); in domain_sleep()
148 struct xe_force_wake_domain *domain) in domain_sleep_wait() argument
150 return __domain_wait(gt, domain, false); in domain_sleep_wait()
163 struct xe_force_wake_domain *domain; in xe_force_wake_get() local
169 for_each_fw_domain_masked(domain, domains, fw, tmp) { in xe_force_wake_get()
170 if (!domain->ref++) { in xe_force_wake_get()
171 woken |= BIT(domain->id); in xe_force_wake_get()
172 domain_wake(gt, domain); in xe_force_wake_get()
175 for_each_fw_domain_masked(domain, woken, fw, tmp) { in xe_force_wake_get()
176 ret |= domain_wake_wait(gt, domain); in xe_force_wake_get()
188 struct xe_force_wake_domain *domain; in xe_force_wake_put() local
194 for_each_fw_domain_masked(domain, domains, fw, tmp) { in xe_force_wake_put()
195 if (!--domain->ref) { in xe_force_wake_put()
196 sleep |= BIT(domain->id); in xe_force_wake_put()
197 domain_sleep(gt, domain); in xe_force_wake_put()
200 for_each_fw_domain_masked(domain, sleep, fw, tmp) { in xe_force_wake_put()
201 ret |= domain_sleep_wait(gt, domain); in xe_force_wake_put()