Lines Matching refs:ior

38 	struct nvkm_ior *ior;  in nvkm_outp_route()  local
40 list_for_each_entry(ior, &disp->iors, head) { in nvkm_outp_route()
41 if ((outp = ior->arm.outp) && ior->arm.outp != ior->asy.outp) { in nvkm_outp_route()
42 OUTP_DBG(outp, "release %s", ior->name); in nvkm_outp_route()
43 if (ior->func->route.set) in nvkm_outp_route()
44 ior->func->route.set(outp, NULL); in nvkm_outp_route()
45 ior->arm.outp = NULL; in nvkm_outp_route()
49 list_for_each_entry(ior, &disp->iors, head) { in nvkm_outp_route()
50 if ((outp = ior->asy.outp)) { in nvkm_outp_route()
51 if (ior->asy.outp != ior->arm.outp) { in nvkm_outp_route()
52 OUTP_DBG(outp, "acquire %s", ior->name); in nvkm_outp_route()
53 if (ior->func->route.set) in nvkm_outp_route()
54 ior->func->route.set(outp, ior); in nvkm_outp_route()
55 ior->arm.outp = ior->asy.outp; in nvkm_outp_route()
94 struct nvkm_ior *ior = outp->ior; in nvkm_outp_release_or() local
95 OUTP_TRACE(outp, "release %02x &= %02x %p", outp->acquired, ~user, ior); in nvkm_outp_release_or()
96 if (ior) { in nvkm_outp_release_or()
99 outp->ior->asy.outp = NULL; in nvkm_outp_release_or()
100 outp->ior = NULL; in nvkm_outp_release_or()
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->iors, head) { in nvkm_outp_acquire_hda()
123 if (!ior->identity && ior->hda == 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->iors, head) { in nvkm_outp_acquire_hda()
133 if (!ior->identity && ior->hda == 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_or() local
149 OUTP_TRACE(outp, "acquire %02x |= %02x %p", outp->acquired, user, ior); in nvkm_outp_acquire_or()
150 if (ior) { in nvkm_outp_acquire_or()
162 ior = nvkm_ior_find(outp->disp, SOR, ffs(outp->info.or) - 1); in nvkm_outp_acquire_or()
163 if (WARN_ON(!ior)) in nvkm_outp_acquire_or()
165 return nvkm_outp_acquire_ior(outp, user, ior); in nvkm_outp_acquire_or()
171 list_for_each_entry(ior, &outp->disp->iors, head) { in nvkm_outp_acquire_or()
172 if (!ior->identity && !ior->asy.outp && ior->arm.outp == outp) { in nvkm_outp_acquire_or()
184 WARN_ON(hda && !ior->hda); in nvkm_outp_acquire_or()
185 return nvkm_outp_acquire_ior(outp, user, ior); in nvkm_outp_acquire_or()
219 if (outp->ior->func->bl) in nvkm_outp_bl_set()
220 ret = outp->ior->func->bl->set(outp->ior, level); in nvkm_outp_bl_set()
237 if (outp->ior->func->bl) in nvkm_outp_bl_get()
238 ret = outp->ior->func->bl->get(outp->ior); in nvkm_outp_bl_get()
294 struct nvkm_ior *ior; in nvkm_outp_inherit() local
304 ior = nvkm_ior_find(disp, type, -1); in nvkm_outp_inherit()
305 if (WARN_ON(!ior)) in nvkm_outp_inherit()
309 if (ior->func->route.get) { in nvkm_outp_inherit()
310 id = ior->func->route.get(outp, &link); in nvkm_outp_inherit()
318 link = (ior->type == SOR) ? outp->info.sorconf.link : 0; in nvkm_outp_inherit()
321 ior = nvkm_ior_find(disp, type, id); in nvkm_outp_inherit()
322 if (WARN_ON(!ior)) in nvkm_outp_inherit()
325 return ior; in nvkm_outp_inherit()
333 struct nvkm_ior *ior; in nvkm_outp_init() local
337 ior = outp->func->inherit(outp); in nvkm_outp_init()
338 if (!ior) in nvkm_outp_init()
342 ior->func->state(ior, &ior->arm); in nvkm_outp_init()
343 if (!ior->arm.head || ior->arm.proto != proto) { in nvkm_outp_init()
344 OUTP_DBG(outp, "no heads (%x %d %d)", ior->arm.head, in nvkm_outp_init()
345 ior->arm.proto, proto); in nvkm_outp_init()
351 if (ior->func->route.get && !ior->arm.head && outp->info.type == DCB_OUTPUT_DP) in nvkm_outp_init()
352 nvkm_dp_disable(outp, ior); in nvkm_outp_init()
357 OUTP_DBG(outp, "on %s link %x", ior->name, ior->arm.link); in nvkm_outp_init()
358 ior->arm.outp = outp; in nvkm_outp_init()