Lines Matching defs:ior

27 #include "ior.h"
38 struct nvkm_ior *ior;
40 list_for_each_entry(ior, &disp->iors, head) {
41 if ((outp = ior->arm.outp) && ior->arm.outp != ior->asy.outp) {
42 OUTP_DBG(outp, "release %s", ior->name);
43 if (ior->func->route.set)
44 ior->func->route.set(outp, NULL);
45 ior->arm.outp = NULL;
49 list_for_each_entry(ior, &disp->iors, head) {
50 if ((outp = ior->asy.outp)) {
51 if (ior->asy.outp != ior->arm.outp) {
52 OUTP_DBG(outp, "acquire %s", ior->name);
53 if (ior->func->route.set)
54 ior->func->route.set(outp, ior);
55 ior->arm.outp = ior->asy.outp;
94 struct nvkm_ior *ior = outp->ior;
95 OUTP_TRACE(outp, "release %02x &= %02x %p", outp->acquired, ~user, ior);
96 if (ior) {
99 outp->ior->asy.outp = NULL;
100 outp->ior = NULL;
106 nvkm_outp_acquire_ior(struct nvkm_outp *outp, u8 user, struct nvkm_ior *ior)
108 outp->ior = ior;
109 outp->ior->asy.outp = outp;
110 outp->ior->asy.link = outp->info.sorconf.link;
119 struct nvkm_ior *ior;
122 list_for_each_entry(ior, &outp->disp->iors, head) {
123 if (!ior->identity && ior->hda == hda &&
124 !ior->asy.outp && ior->type == type && !ior->arm.outp &&
125 (ior->func->route.set || ior->id == __ffs(outp->info.or)))
126 return nvkm_outp_acquire_ior(outp, user, ior);
132 list_for_each_entry(ior, &outp->disp->iors, head) {
133 if (!ior->identity && ior->hda == hda &&
134 !ior->asy.outp && ior->type == type &&
135 (ior->func->route.set || ior->id == __ffs(outp->info.or)))
136 return nvkm_outp_acquire_ior(outp, user, ior);
145 struct nvkm_ior *ior = outp->ior;
149 OUTP_TRACE(outp, "acquire %02x |= %02x %p", outp->acquired, user, ior);
150 if (ior) {
162 ior = nvkm_ior_find(outp->disp, SOR, ffs(outp->info.or) - 1);
163 if (WARN_ON(!ior))
165 return nvkm_outp_acquire_ior(outp, user, ior);
171 list_for_each_entry(ior, &outp->disp->iors, head) {
172 if (!ior->identity && !ior->asy.outp && ior->arm.outp == outp) {
184 WARN_ON(hda && !ior->hda);
185 return nvkm_outp_acquire_ior(outp, user, ior);
219 if (outp->ior->func->bl)
220 ret = outp->ior->func->bl->set(outp->ior, level);
237 if (outp->ior->func->bl)
238 ret = outp->ior->func->bl->get(outp->ior);
294 struct nvkm_ior *ior;
304 ior = nvkm_ior_find(disp, type, -1);
305 if (WARN_ON(!ior))
309 if (ior->func->route.get) {
310 id = ior->func->route.get(outp, &link);
318 link = (ior->type == SOR) ? outp->info.sorconf.link : 0;
321 ior = nvkm_ior_find(disp, type, id);
322 if (WARN_ON(!ior))
325 return ior;
333 struct nvkm_ior *ior;
337 ior = outp->func->inherit(outp);
338 if (!ior)
342 ior->func->state(ior, &ior->arm);
343 if (!ior->arm.head || ior->arm.proto != proto) {
344 OUTP_DBG(outp, "no heads (%x %d %d)", ior->arm.head,
345 ior->arm.proto, proto);
351 if (ior->func->route.get && !ior->arm.head && outp->info.type == DCB_OUTPUT_DP)
352 nvkm_dp_disable(outp, ior);
357 OUTP_DBG(outp, "on %s link %x", ior->name, ior->arm.link);
358 ior->arm.outp = outp;