Lines Matching refs:ior

36 	struct nvkm_ior *ior;  in nvkm_outp_route()  local
38 list_for_each_entry(ior, &disp->ior, head) { in nvkm_outp_route()
39 if ((outp = ior->arm.outp) && ior->arm.outp != ior->asy.outp) { in nvkm_outp_route()
40 OUTP_DBG(outp, "release %s", ior->name); in nvkm_outp_route()
41 if (ior->func->route.set) in nvkm_outp_route()
42 ior->func->route.set(outp, NULL); in nvkm_outp_route()
43 ior->arm.outp = NULL; in nvkm_outp_route()
47 list_for_each_entry(ior, &disp->ior, head) { in nvkm_outp_route()
48 if ((outp = ior->asy.outp)) { in nvkm_outp_route()
49 OUTP_DBG(outp, "acquire %s", ior->name); in nvkm_outp_route()
50 if (ior->asy.outp != ior->arm.outp) { in nvkm_outp_route()
51 if (ior->func->route.set) in nvkm_outp_route()
52 ior->func->route.set(outp, ior); in nvkm_outp_route()
53 ior->arm.outp = ior->asy.outp; in nvkm_outp_route()
92 struct nvkm_ior *ior = outp->ior; in nvkm_outp_release() local
93 OUTP_TRACE(outp, "release %02x &= %02x %p", outp->acquired, ~user, ior); in nvkm_outp_release()
94 if (ior) { in nvkm_outp_release()
97 if (outp->func->release && outp->ior) in nvkm_outp_release()
99 outp->ior->asy.outp = NULL; in nvkm_outp_release()
100 outp->ior = NULL; in nvkm_outp_release()
106 nvkm_outp_acquire_ior(struct nvkm_outp *outp, u8 user, struct nvkm_ior *ior) in nvkm_outp_acquire_ior() argument
108 outp->ior = ior; in nvkm_outp_acquire_ior()
109 outp->ior->asy.outp = outp; in nvkm_outp_acquire_ior()
110 outp->ior->asy.link = outp->info.sorconf.link; in nvkm_outp_acquire_ior()
119 struct nvkm_ior *ior; in nvkm_outp_acquire_hda() local
122 list_for_each_entry(ior, &outp->disp->ior, head) { in nvkm_outp_acquire_hda()
123 if (!ior->identity && !!ior->func->hda.hpd == hda && in nvkm_outp_acquire_hda()
124 !ior->asy.outp && ior->type == type && !ior->arm.outp && in nvkm_outp_acquire_hda()
125 (ior->func->route.set || ior->id == __ffs(outp->info.or))) in nvkm_outp_acquire_hda()
126 return nvkm_outp_acquire_ior(outp, user, ior); in nvkm_outp_acquire_hda()
132 list_for_each_entry(ior, &outp->disp->ior, head) { in nvkm_outp_acquire_hda()
133 if (!ior->identity && !!ior->func->hda.hpd == hda && in nvkm_outp_acquire_hda()
134 !ior->asy.outp && ior->type == type && in nvkm_outp_acquire_hda()
135 (ior->func->route.set || ior->id == __ffs(outp->info.or))) in nvkm_outp_acquire_hda()
136 return nvkm_outp_acquire_ior(outp, user, ior); in nvkm_outp_acquire_hda()
145 struct nvkm_ior *ior = outp->ior; in nvkm_outp_acquire() local
149 OUTP_TRACE(outp, "acquire %02x |= %02x %p", outp->acquired, user, ior); in nvkm_outp_acquire()
150 if (ior) { in nvkm_outp_acquire()
162 ior = nvkm_ior_find(outp->disp, SOR, ffs(outp->info.or) - 1); in nvkm_outp_acquire()
163 if (WARN_ON(!ior)) in nvkm_outp_acquire()
165 return nvkm_outp_acquire_ior(outp, user, ior); in nvkm_outp_acquire()
171 list_for_each_entry(ior, &outp->disp->ior, head) { in nvkm_outp_acquire()
172 if (!ior->identity && !ior->asy.outp && ior->arm.outp == outp) { in nvkm_outp_acquire()
184 WARN_ON(hda && !ior->func->hda.hpd); in nvkm_outp_acquire()
185 return nvkm_outp_acquire_ior(outp, user, ior); in nvkm_outp_acquire()
223 struct nvkm_ior *ior; in nvkm_outp_init_route() local
231 ior = nvkm_ior_find(disp, type, -1); in nvkm_outp_init_route()
232 if (!ior) { in nvkm_outp_init_route()
238 if (ior->func->route.get) { in nvkm_outp_init_route()
239 id = ior->func->route.get(outp, &link); in nvkm_outp_init_route()
247 link = (ior->type == SOR) ? outp->info.sorconf.link : 0; in nvkm_outp_init_route()
250 ior = nvkm_ior_find(disp, type, id); in nvkm_outp_init_route()
251 if (!ior) { in nvkm_outp_init_route()
257 ior->func->state(ior, &ior->arm); in nvkm_outp_init_route()
258 if (!ior->arm.head || ior->arm.proto != proto) { in nvkm_outp_init_route()
259 OUTP_DBG(outp, "no heads (%x %d %d)", ior->arm.head, in nvkm_outp_init_route()
260 ior->arm.proto, proto); in nvkm_outp_init_route()
266 if (ior->func->route.get && !ior->arm.head && outp->info.type == DCB_OUTPUT_DP) in nvkm_outp_init_route()
267 nvkm_dp_disable(outp, ior); in nvkm_outp_init_route()
272 OUTP_DBG(outp, "on %s link %x", ior->name, ior->arm.link); in nvkm_outp_init_route()
273 ior->arm.outp = outp; in nvkm_outp_init_route()