Lines Matching refs:ior
94 nv50_pior_depth(struct nvkm_ior *ior, struct nvkm_ior_state *state, u32 ctrl) in nv50_pior_depth() argument
99 if (state->head && state == &ior->asy) { in nv50_pior_depth()
100 struct nvkm_head *head = nvkm_head_find(ior->disp, __ffs(state->head)); in nv50_pior_depth()
162 nv50_sor_bl_set(struct nvkm_ior *ior, int lvl) in nv50_sor_bl_set() argument
164 struct nvkm_device *device = ior->disp->engine.subdev.device; in nv50_sor_bl_set()
165 const u32 soff = nv50_ior_base(ior); in nv50_sor_bl_set()
174 nv50_sor_bl_get(struct nvkm_ior *ior) in nv50_sor_bl_get() argument
176 struct nvkm_device *device = ior->disp->engine.subdev.device; in nv50_sor_bl_get()
177 const u32 soff = nv50_ior_base(ior); in nv50_sor_bl_get()
1030 struct nvkm_ior *ior, int id, u32 khz) in nv50_disp_super_ied_on() argument
1034 struct nvkm_outp *outp = ior->asy.outp; in nv50_disp_super_ied_on()
1041 IOR_DBG(ior, "nothing to attach"); in nv50_disp_super_ied_on()
1051 if (ior->type == SOR) { in nv50_disp_super_ied_on()
1052 if (ior->asy.proto == LVDS) { in nv50_disp_super_ied_on()
1056 if (ior->asy.link == 3) in nv50_disp_super_ied_on()
1060 data = nvbios_ocfg_match(bios, data, ior->asy.proto_evo, flags, in nv50_disp_super_ied_on()
1064 ior->asy.proto_evo, flags); in nv50_disp_super_ied_on()
1072 id, ior->asy.proto_evo, flags, khz); in nv50_disp_super_ied_on()
1078 init.or = ior->id; in nv50_disp_super_ied_on()
1079 init.link = ior->asy.link; in nv50_disp_super_ied_on()
1085 nv50_disp_super_ied_off(struct nvkm_head *head, struct nvkm_ior *ior, int id) in nv50_disp_super_ied_off() argument
1087 struct nvkm_outp *outp = ior->arm.outp; in nv50_disp_super_ied_off()
1093 IOR_DBG(ior, "nothing attached"); in nv50_disp_super_ied_off()
1103 init.or = ior->id; in nv50_disp_super_ied_off()
1104 init.link = ior->arm.link; in nv50_disp_super_ied_off()
1112 struct nvkm_ior *ior; in nv50_disp_super_ior_asy() local
1113 list_for_each_entry(ior, &head->disp->iors, head) { in nv50_disp_super_ior_asy()
1114 if (ior->asy.head & (1 << head->id)) { in nv50_disp_super_ior_asy()
1115 HEAD_DBG(head, "to %s", ior->name); in nv50_disp_super_ior_asy()
1116 return ior; in nv50_disp_super_ior_asy()
1126 struct nvkm_ior *ior; in nv50_disp_super_ior_arm() local
1127 list_for_each_entry(ior, &head->disp->iors, head) { in nv50_disp_super_ior_arm()
1128 if (ior->arm.head & (1 << head->id)) { in nv50_disp_super_ior_arm()
1129 HEAD_DBG(head, "on %s", ior->name); in nv50_disp_super_ior_arm()
1130 return ior; in nv50_disp_super_ior_arm()
1140 struct nvkm_ior *ior; in nv50_disp_super_3_0() local
1144 ior = nv50_disp_super_ior_asy(head); in nv50_disp_super_3_0()
1145 if (!ior) in nv50_disp_super_3_0()
1149 nv50_disp_super_ied_on(head, ior, 1, head->asy.hz / 1000); in nv50_disp_super_3_0()
1152 if (ior->func->war_3) in nv50_disp_super_3_0()
1153 ior->func->war_3(ior); in nv50_disp_super_3_0()
1157 nv50_disp_super_2_2_dp(struct nvkm_head *head, struct nvkm_ior *ior) in nv50_disp_super_2_2_dp() argument
1161 const u32 linkKBps = ior->dp.bw * 27000; in nv50_disp_super_2_2_dp()
1173 h = h - (3 * ior->dp.ef) - (12 / ior->dp.nr); in nv50_disp_super_2_2_dp()
1179 v = v - ((36 / ior->dp.nr) + 3) - 1; in nv50_disp_super_2_2_dp()
1181 ior->func->dp->audio_sym(ior, head->id, h, v); in nv50_disp_super_2_2_dp()
1184 link_data_rate = (khz * head->asy.or.depth / 8) / ior->dp.nr; in nv50_disp_super_2_2_dp()
1190 for (TU = 64; ior->func->dp->activesym && TU >= 32; TU--) { in nv50_disp_super_2_2_dp()
1241 if (ior->func->dp->activesym) { in nv50_disp_super_2_2_dp()
1247 ior->func->dp->activesym(ior, head->id, bestTU, bestVTUa, bestVTUf, bestVTUi); in nv50_disp_super_2_2_dp()
1259 ior->func->dp->watermark(ior, head->id, unk); in nv50_disp_super_2_2_dp()
1267 struct nvkm_ior *ior; in nv50_disp_super_2_2() local
1271 ior = nv50_disp_super_ior_asy(head); in nv50_disp_super_2_2()
1272 if (!ior) in nv50_disp_super_2_2()
1275 outp = ior->asy.outp; in nv50_disp_super_2_2()
1286 if (outp && ior->type == SOR && ior->asy.proto == LVDS) { in nv50_disp_super_2_2()
1288 ior->asy.link = outp->lvds.dual ? 3 : 1; in nv50_disp_super_2_2()
1292 nv50_disp_super_ied_on(head, ior, 0, khz); in nv50_disp_super_2_2()
1295 head->func->rgclk(head, ior->asy.rgdiv); in nv50_disp_super_2_2()
1298 if (ior->type == SOR && ior->asy.proto == DP) in nv50_disp_super_2_2()
1299 nv50_disp_super_2_2_dp(head, ior); in nv50_disp_super_2_2()
1302 ior->func->clock(ior); in nv50_disp_super_2_2()
1303 if (ior->func->war_2) in nv50_disp_super_2_2()
1304 ior->func->war_2(ior); in nv50_disp_super_2_2()
1320 struct nvkm_ior *ior; in nv50_disp_super_2_0() local
1324 ior = nv50_disp_super_ior_arm(head); in nv50_disp_super_2_0()
1325 if (!ior) in nv50_disp_super_2_0()
1329 nv50_disp_super_ied_off(head, ior, 2); in nv50_disp_super_2_0()
1335 struct nvkm_ior *ior; in nv50_disp_super_1_0() local
1339 ior = nv50_disp_super_ior_arm(head); in nv50_disp_super_1_0()
1340 if (!ior) in nv50_disp_super_1_0()
1344 nv50_disp_super_ied_off(head, ior, 1); in nv50_disp_super_1_0()
1351 struct nvkm_ior *ior; in nv50_disp_super_1() local
1358 list_for_each_entry(ior, &disp->iors, head) { in nv50_disp_super_1()
1359 ior->func->state(ior, &ior->arm); in nv50_disp_super_1()
1360 ior->func->state(ior, &ior->asy); in nv50_disp_super_1()
1589 struct nvkm_ior *ior; in nv50_disp_oneinit() local
1757 ior = nvkm_ior_find(disp, SOR, ffs(outp->info.or) - 1); in nv50_disp_oneinit()
1758 if (!WARN_ON(!ior)) in nv50_disp_oneinit()
1759 ior->identity = true; in nv50_disp_oneinit()