Lines Matching +full:1 +full:- +full:v0

40 		struct nv50_disp_mthd_v0 v0;  in nv50_disp_root_mthd_()  member
44 struct nv50_disp *disp = root->disp; in nv50_disp_root_mthd_()
48 int hidx, ret = -ENOSYS; in nv50_disp_root_mthd_()
51 return -EINVAL; in nv50_disp_root_mthd_()
54 if (!(ret = nvif_unpack(ret, &data, &size, args->v0, 0, 0, true))) { in nv50_disp_root_mthd_()
56 args->v0.version, args->v0.method, args->v0.head); in nv50_disp_root_mthd_()
57 mthd = args->v0.method; in nv50_disp_root_mthd_()
58 hidx = args->v0.head; in nv50_disp_root_mthd_()
60 if (!(ret = nvif_unpack(ret, &data, &size, args->v1, 1, 1, true))) { in nv50_disp_root_mthd_()
63 args->v1.version, args->v1.method, in nv50_disp_root_mthd_()
64 args->v1.hasht, args->v1.hashm); in nv50_disp_root_mthd_()
65 mthd = args->v1.method; in nv50_disp_root_mthd_()
66 type = args->v1.hasht; in nv50_disp_root_mthd_()
67 mask = args->v1.hashm; in nv50_disp_root_mthd_()
68 hidx = ffs((mask >> 8) & 0x0f) - 1; in nv50_disp_root_mthd_()
72 if (!(head = nvkm_head_find(&disp->base, hidx))) in nv50_disp_root_mthd_()
73 return -ENXIO; in nv50_disp_root_mthd_()
76 list_for_each_entry(temp, &disp->base.outp, head) { in nv50_disp_root_mthd_()
77 if ((temp->info.hasht == type) && in nv50_disp_root_mthd_()
78 (temp->info.hashm & mask) == mask) { in nv50_disp_root_mthd_()
84 return -ENXIO; in nv50_disp_root_mthd_()
98 struct nv50_disp_acquire_v0 v0; in nv50_disp_root_mthd_() member
100 int ret = -ENOSYS; in nv50_disp_root_mthd_()
101 if (!(ret = nvif_unpack(ret, &data, &size, args->v0, 0, 0, false))) { in nv50_disp_root_mthd_()
102 ret = nvkm_outp_acquire(outp, NVKM_OUTP_USER, args->v0.hda); in nv50_disp_root_mthd_()
104 args->v0.or = outp->ior->id; in nv50_disp_root_mthd_()
105 args->v0.link = outp->ior->asy.link; in nv50_disp_root_mthd_()
116 struct nv50_disp_dac_load_v0 v0; in nv50_disp_root_mthd_() member
118 int ret = -ENOSYS; in nv50_disp_root_mthd_()
119 if (!(ret = nvif_unpack(ret, &data, &size, args->v0, 0, 0, false))) { in nv50_disp_root_mthd_()
120 if (args->v0.data & 0xfff00000) in nv50_disp_root_mthd_()
121 return -EINVAL; in nv50_disp_root_mthd_()
125 ret = outp->ior->func->sense(outp->ior, args->v0.data); in nv50_disp_root_mthd_()
129 args->v0.load = ret; in nv50_disp_root_mthd_()
137 struct nv50_disp_sor_hda_eld_v0 v0; in nv50_disp_root_mthd_() member
139 struct nvkm_ior *ior = outp->ior; in nv50_disp_root_mthd_()
140 int ret = -ENOSYS; in nv50_disp_root_mthd_()
143 if (!(ret = nvif_unpack(ret, &data, &size, args->v0, 0, 0, true))) { in nv50_disp_root_mthd_()
145 args->v0.version); in nv50_disp_root_mthd_()
147 return -E2BIG; in nv50_disp_root_mthd_()
151 if (!ior->func->hda.hpd) in nv50_disp_root_mthd_()
152 return -ENODEV; in nv50_disp_root_mthd_()
154 if (size && args->v0.data[0]) { in nv50_disp_root_mthd_()
155 if (outp->info.type == DCB_OUTPUT_DP) in nv50_disp_root_mthd_()
156 ior->func->dp.audio(ior, hidx, true); in nv50_disp_root_mthd_()
157 ior->func->hda.hpd(ior, hidx, true); in nv50_disp_root_mthd_()
158 ior->func->hda.eld(ior, hidx, data, size); in nv50_disp_root_mthd_()
160 if (outp->info.type == DCB_OUTPUT_DP) in nv50_disp_root_mthd_()
161 ior->func->dp.audio(ior, hidx, false); in nv50_disp_root_mthd_()
162 ior->func->hda.hpd(ior, hidx, false); in nv50_disp_root_mthd_()
170 struct nv50_disp_sor_hdmi_pwr_v0 v0; in nv50_disp_root_mthd_() member
174 int ret = -ENOSYS; in nv50_disp_root_mthd_()
177 if (!(ret = nvif_unpack(ret, &data, &size, args->v0, 0, 0, true))) { in nv50_disp_root_mthd_()
180 args->v0.version, args->v0.state, in nv50_disp_root_mthd_()
181 args->v0.max_ac_packet, args->v0.rekey, in nv50_disp_root_mthd_()
182 args->v0.scdc); in nv50_disp_root_mthd_()
183 if (args->v0.max_ac_packet > 0x1f || args->v0.rekey > 0x7f) in nv50_disp_root_mthd_()
184 return -EINVAL; in nv50_disp_root_mthd_()
185 if ((args->v0.avi_infoframe_length in nv50_disp_root_mthd_()
186 + args->v0.vendor_infoframe_length) > size) in nv50_disp_root_mthd_()
187 return -EINVAL; in nv50_disp_root_mthd_()
189 if ((args->v0.avi_infoframe_length in nv50_disp_root_mthd_()
190 + args->v0.vendor_infoframe_length) < size) in nv50_disp_root_mthd_()
191 return -E2BIG; in nv50_disp_root_mthd_()
193 avi_size = args->v0.avi_infoframe_length; in nv50_disp_root_mthd_()
195 vendor_size = args->v0.vendor_infoframe_length; in nv50_disp_root_mthd_()
199 if (!outp->ior->func->hdmi.ctrl) in nv50_disp_root_mthd_()
200 return -ENODEV; in nv50_disp_root_mthd_()
202 outp->ior->func->hdmi.ctrl(outp->ior, hidx, args->v0.state, in nv50_disp_root_mthd_()
203 args->v0.max_ac_packet, in nv50_disp_root_mthd_()
204 args->v0.rekey, avi, avi_size, in nv50_disp_root_mthd_()
207 if (outp->ior->func->hdmi.scdc) in nv50_disp_root_mthd_()
208 outp->ior->func->hdmi.scdc(outp->ior, args->v0.scdc); in nv50_disp_root_mthd_()
215 struct nv50_disp_sor_lvds_script_v0 v0; in nv50_disp_root_mthd_() member
217 int ret = -ENOSYS; in nv50_disp_root_mthd_()
219 if (!(ret = nvif_unpack(ret, &data, &size, args->v0, 0, 0, false))) { in nv50_disp_root_mthd_()
222 args->v0.version, args->v0.script); in nv50_disp_root_mthd_()
223 disp->sor.lvdsconf = args->v0.script; in nv50_disp_root_mthd_()
232 struct nv50_disp_sor_dp_mst_link_v0 v0; in nv50_disp_root_mthd_() member
234 int ret = -ENOSYS; in nv50_disp_root_mthd_()
236 if (!(ret = nvif_unpack(ret, &data, &size, args->v0, 0, 0, false))) { in nv50_disp_root_mthd_()
238 args->v0.version, args->v0.state); in nv50_disp_root_mthd_()
239 dp->lt.mst = !!args->v0.state; in nv50_disp_root_mthd_()
247 struct nv50_disp_sor_dp_mst_vcpi_v0 v0; in nv50_disp_root_mthd_() member
249 int ret = -ENOSYS; in nv50_disp_root_mthd_()
251 if (!(ret = nvif_unpack(ret, &data, &size, args->v0, 0, 0, false))) { in nv50_disp_root_mthd_()
254 args->v0.version, args->v0.start_slot, in nv50_disp_root_mthd_()
255 args->v0.num_slots, args->v0.pbn, in nv50_disp_root_mthd_()
256 args->v0.aligned_pbn); in nv50_disp_root_mthd_()
257 if (!outp->ior->func->dp.vcpi) in nv50_disp_root_mthd_()
258 return -ENODEV; in nv50_disp_root_mthd_()
259 outp->ior->func->dp.vcpi(outp->ior, hidx, in nv50_disp_root_mthd_()
260 args->v0.start_slot, in nv50_disp_root_mthd_()
261 args->v0.num_slots, in nv50_disp_root_mthd_()
262 args->v0.pbn, in nv50_disp_root_mthd_()
263 args->v0.aligned_pbn); in nv50_disp_root_mthd_()
273 return -EINVAL; in nv50_disp_root_mthd_()
280 struct nv50_disp *disp = nv50_disp_root(oclass->parent)->disp; in nv50_disp_root_child_new_()
281 const struct nv50_disp_user *user = oclass->priv; in nv50_disp_root_child_new_()
282 return user->ctor(oclass, argv, argc, disp, pobject); in nv50_disp_root_child_new_()
291 if (root->func->user[index].ctor) { in nv50_disp_root_child_get_()
292 sclass->base = root->func->user[index].base; in nv50_disp_root_child_get_()
293 sclass->priv = root->func->user + index; in nv50_disp_root_child_get_()
294 sclass->ctor = nv50_disp_root_child_new_; in nv50_disp_root_child_get_()
298 return -EINVAL; in nv50_disp_root_child_get_()
325 return -ENOMEM; in nv50_disp_root_new_()
326 *pobject = &root->object; in nv50_disp_root_new_()
328 nvkm_object_ctor(&nv50_disp_root_, oclass, &root->object); in nv50_disp_root_new_()
329 root->func = func; in nv50_disp_root_new_()
330 root->disp = disp; in nv50_disp_root_new_()
357 .base.minver = -1,
358 .base.maxver = -1,