Lines Matching +full:0 +full:x6b0000

56 	switch (chan->object.oclass & 0xff) {  in r535_chan_user()
57 case 0x7d: *psize = 0x10000; return 0x680000; in r535_chan_user()
58 case 0x7e: *psize = 0x01000; return 0x690000 + (chan->head * *psize); in r535_chan_user()
59 case 0x7b: *psize = 0x01000; return 0x6b0000 + (chan->head * *psize); in r535_chan_user()
60 case 0x7a: *psize = 0x01000; return 0x6d8000 + (chan->head * *psize); in r535_chan_user()
66 return 0ULL; in r535_chan_user()
96 ctrl->cacheSnoop = 0; in r535_chan_push()
116 ctrl->valid = ((chan->object.oclass & 0xff) != 0x7a) ? 1 : 0; in r535_chan_push()
161 (chan->disp->rm.client.object.handle & 0x3fff)); in r535_dmac_bind()
168 const u32 uoff = (chan->chid.user - 1) * 0x1000; in r535_dmac_fini()
170 chan->suspend_put = nvkm_rd32(device, 0x690000 + uoff); in r535_dmac_fini()
203 return 0; in r535_dmac_push()
242 chan->suspend_put = nvkm_rd32(device, 0x680000); in r535_core_fini()
259 .user = 0,
329 ctrl->maxFreqSupported = 0; //XXX in r535_sor_hda_eld()
412 ctrl->subDeviceInstance = 0; in r535_sor_dp_vcpi()
418 ctrl->hBlankSym = 0; in r535_sor_dp_vcpi()
419 ctrl->vBlankSym = 0; in r535_sor_dp_vcpi()
420 ctrl->colorFormat = 0; in r535_sor_dp_vcpi()
421 ctrl->bEnableTwoHeadOneOr = 0; in r535_sor_dp_vcpi()
422 ctrl->singleHeadMultistreamMode = 0; in r535_sor_dp_vcpi()
427 ctrl->MST.sendACT = 0; in r535_sor_dp_vcpi()
428 ctrl->MST.singleHeadMSTPipeline = 0; in r535_sor_dp_vcpi()
429 ctrl->MST.bEnableAudioOverRightPanel = 0; in r535_sor_dp_vcpi()
445 ctrl->subDeviceInstance = 0; in r535_sor_dp_sst()
450 ctrl->bMST = 0; in r535_sor_dp_sst()
453 ctrl->colorFormat = 0; in r535_sor_dp_sst()
454 ctrl->bEnableTwoHeadOneOr = 0; in r535_sor_dp_sst()
458 ctrl->SST.bEnableAudioOverRightPanel = 0; in r535_sor_dp_sst()
483 ctrl->caps = 0; in r535_sor_hdmi_scdc()
530 ctrl->aPacket[0] = 0x03; in r535_sor_hdmi_ctrl_audio()
531 ctrl->aPacket[1] = 0x00; in r535_sor_hdmi_ctrl_audio()
532 ctrl->aPacket[2] = 0x00; in r535_sor_hdmi_ctrl_audio()
533 ctrl->aPacket[3] = enable ? 0x10 : 0x01; in r535_sor_hdmi_ctrl_audio()
534 ctrl->aPacket[4] = 0x00; in r535_sor_hdmi_ctrl_audio()
535 ctrl->aPacket[5] = 0x00; in r535_sor_hdmi_ctrl_audio()
536 ctrl->aPacket[6] = 0x00; in r535_sor_hdmi_ctrl_audio()
537 ctrl->aPacket[7] = 0x00; in r535_sor_hdmi_ctrl_audio()
538 ctrl->aPacket[8] = 0x00; in r535_sor_hdmi_ctrl_audio()
539 ctrl->aPacket[9] = 0x00; in r535_sor_hdmi_ctrl_audio()
547 const u32 hdmi = head * 0x400; in r535_sor_hdmi_audio()
553 nvkm_mask(device, 0x6f00c0 + hdmi, 0x00000001, 0x00000000); in r535_sor_hdmi_audio()
554 nvkm_wr32(device, 0x6f00cc + hdmi, !enable ? 0x00000001 : 0x00000010); in r535_sor_hdmi_audio()
555 nvkm_mask(device, 0x6f00c0 + hdmi, 0x00000001, 0x00000001); in r535_sor_hdmi_audio()
605 *pmask = 0xf; in r535_sor_cnt()
614 nvkm_mask(device, 0x611d80 + (head->id * 4), 0x00000002, 0x00000000); in r535_head_vblank_put()
622 nvkm_wr32(device, 0x611800 + (head->id * 4), 0x00000002); in r535_head_vblank_get()
623 nvkm_mask(device, 0x611d80 + (head->id * 4), 0x00000002, 0x00000002); in r535_head_vblank_get()
651 ctrl->subDeviceInstance = 0; in r535_conn_new()
661 if (conn->index == ctrl->data[0].index) { in r535_conn_new()
667 dcbE.type = ctrl->data[0].type; in r535_conn_new()
668 index = ctrl->data[0].index; in r535_conn_new()
700 ctrl->subDeviceInstance = 0; in r535_outp_acquire()
712 for (or = 0; or < ARRAY_SIZE(ctrl->sorAssignListWithTag); or++) { in r535_outp_acquire()
729 return 0; in r535_outp_acquire()
743 ctrl->subDeviceInstance = 0; in r535_disp_head_displayid()
754 return 0; in r535_disp_head_displayid()
781 ctrl->subDeviceInstance = 0; in r535_outp_inherit()
857 return 0; in r535_outp_dfp_get_info()
872 ctrl->subDeviceInstance = 0; in r535_outp_detect()
883 if (ret == 0) in r535_outp_detect()
886 ret = 0; in r535_outp_detect()
904 ctrl->subDeviceInstance = 0; in r535_dp_mst_id_put()
922 ctrl->subDeviceInstance = 0; in r535_dp_mst_id_get()
932 return 0; in r535_dp_mst_id_get()
948 for (int i = 0; i < lanes; i++) in r535_dp_drive()
976 if (target == 0 && in r535_dp_train_target()
977 (outp->dp.dpcd[DPCD_RC02] & 0x20) && in r535_dp_train_target()
982 for (retries = 0; retries < 3; ++retries) { in r535_dp_train_target()
988 ctrl->subDeviceInstance = 0; in r535_dp_train_target()
990 ctrl->retryTimeMs = 0; in r535_dp_train_target()
1020 for (int target = outp->dp.lttprs; target >= 0; target--) { in r535_dp_train()
1028 return 0; in r535_dp_train()
1038 !outp->dp.rates || outp->dp.rate[0].dpcd < 0) in r535_dp_rates()
1039 return 0; in r535_dp_rates()
1050 for (int i = 0; i < outp->dp.rates; i++) in r535_dp_rates()
1065 for (retries = 0; retries < 3; ++retries) { in r535_dp_aux_xfer()
1070 ctrl->subDeviceInstance = 0; in r535_dp_aux_xfer()
1079 ctrl->size = !ctrl->bAddrOnly ? (size - 1) : 0; in r535_dp_aux_xfer()
1107 return 0; in r535_dp_aux_pwr()
1115 outp->dp.lt.bw = outp->dp.rate[0].rate / 27000; in r535_dp_release()
1117 outp->dp.lt.bw = 0x06; in r535_dp_release()
1120 outp->dp.lt.nr = 0; in r535_dp_release()
1122 r535_dp_train_target(outp, 0, outp->dp.lt.mst, outp->dp.lt.nr, outp->dp.lt.bw); in r535_dp_release()
1135 return 0; in r535_dp_acquire()
1165 ctrl->subDeviceInstance = 0; in r535_tmds_edid_get()
1178 ret = 0; in r535_tmds_edid_get()
1202 u8 locn, link = 0; in r535_outp_new()
1210 ctrl->subDeviceInstance = 0; in r535_outp_new()
1221 return 0; in r535_outp_new()
1273 dcbE.i2c_index = 0xff; in r535_outp_new()
1289 ctrl->sorIndex = ~0; in r535_outp_new()
1299 dcbE.dpconf.link_bw = 0x06; in r535_outp_new()
1302 dcbE.dpconf.link_bw = 0x0a; in r535_outp_new()
1305 dcbE.dpconf.link_bw = 0x14; in r535_outp_new()
1308 dcbE.dpconf.link_bw = 0x1e; in r535_outp_new()
1311 dcbE.dpconf.link_bw = 0x00; in r535_outp_new()
1335 return 0; in r535_outp_new()
1365 for (int i = 0; i < 31; i++) { in r535_disp_hpd()
1366 u32 mask = 0; in r535_disp_hpd()
1387 u32 stat = nvkm_rd32(device, 0x611c00 + (head * 0x04)); in r535_disp_intr_head_timing()
1389 if (stat & 0x00000002) { in r535_disp_intr_head_timing()
1392 nvkm_wr32(device, 0x611800 + (head * 0x04), 0x00000002); in r535_disp_intr_head_timing()
1402 unsigned long mask = nvkm_rd32(device, 0x611ec0) & 0x000000ff; in r535_disp_intr()
1436 disp->func->root.oclass, 0, &disp->rm.object); in r535_disp_init()
1440 return 0; in r535_disp_init()
1452 ret = nvkm_gpuobj_new(device, 0x10000, 0x10000, false, NULL, &disp->inst); in r535_disp_oneinit()
1479 ret = nvkm_gsp_rm_alloc(&disp->rm.device.object, 0x00730000, NV04_DISPLAY_COMMON, 0, in r535_disp_oneinit()
1510 ctrl->status = 0x56; /* NV_ERR_NOT_SUPPORTED */ in r535_disp_oneinit()
1514 GUID_INIT(0xD4A50B75, 0x65C7, 0x46F7, in r535_disp_oneinit()
1515 0xBF, 0xB7, 0x41, 0x51, 0x4C, 0xEA, 0x02, 0x44); in r535_disp_oneinit()
1516 u64 NBCI_DSM_REV = 0x00000102; in r535_disp_oneinit()
1518 GUID_INIT(0x9D95A0A0, 0x0060, 0x4D48, in r535_disp_oneinit()
1519 0xB3, 0x4D, 0x7E, 0x5F, 0xEA, 0x12, 0x9F, 0xD4); in r535_disp_oneinit()
1520 u64 NVHG_DSM_REV = 0x00000102; in r535_disp_oneinit()
1525 1ULL << 0x00000014); in r535_disp_oneinit()
1527 1ULL << 0x00000014); in r535_disp_oneinit()
1537 0x00000102, 0x14, &argv4); in r535_disp_oneinit()
1541 for (int i = 0; i < obj->package.count; i++) { in r535_disp_oneinit()
1545 if (elt->integer.value & ~0xffffffffULL) in r535_disp_oneinit()
1554 ctrl->status = 0; in r535_disp_oneinit()
1650 ret = nvkm_gsp_device_event_ctor(&disp->rm.device, 0x007e0000, NV2080_NOTIFIERS_HOTPLUG, in r535_disp_oneinit()
1655 ret = nvkm_gsp_device_event_ctor(&disp->rm.device, 0x007e0001, NV2080_NOTIFIERS_DP_IRQ, in r535_disp_oneinit()
1662 0x1000, 0, disp->inst, &disp->ramht); in r535_disp_oneinit()
1667 if (ret < 0) in r535_disp_oneinit()
1676 return 0; in r535_disp_oneinit()
1692 if (!(rm = kzalloc(sizeof(*rm) + 6 * sizeof(rm->user[0]), GFP_KERNEL))) in r535_disp_new()
1706 for (int i = 0; hw->user[i].ctor; i++) { in r535_disp_new()
1707 switch (hw->user[i].base.oclass & 0xff) { in r535_disp_new()
1708 case 0x73: rm->user[i] = hw->user[i]; break; in r535_disp_new()
1709 case 0x7d: rm->user[i] = hw->user[i]; rm->user[i].chan = &r535_core; break; in r535_disp_new()
1710 case 0x7e: rm->user[i] = hw->user[i]; rm->user[i].chan = &r535_wndw; break; in r535_disp_new()
1711 case 0x7b: rm->user[i] = hw->user[i]; rm->user[i].chan = &r535_wimm; break; in r535_disp_new()
1712 case 0x7a: rm->user[i] = hw->user[i]; rm->user[i].chan = &r535_curs; break; in r535_disp_new()