Lines Matching refs:fuc

98 	struct gt215_ramfuc fuc;  member
164 struct gt215_ramfuc *fuc = &ram->fuc; in gt215_link_train() local
208 r1700 = ram_rd32(fuc, 0x001700); in gt215_link_train()
210 ram_mask(fuc, 0x100200, 0x00000800, 0x00000000); in gt215_link_train()
211 ram_wr32(fuc, 0x611200, 0x3300); in gt215_link_train()
212 ram_wait_vblank(fuc); in gt215_link_train()
213 ram_wait(fuc, 0x611200, 0x00000003, 0x00000000, 500000); in gt215_link_train()
214 ram_mask(fuc, 0x001610, 0x00000083, 0x00000003); in gt215_link_train()
215 ram_mask(fuc, 0x100080, 0x00000020, 0x00000000); in gt215_link_train()
216 ram_mask(fuc, 0x10f804, 0x80000000, 0x00000000); in gt215_link_train()
217 ram_wr32(fuc, 0x001700, 0x00000000); in gt215_link_train()
219 ram_train(fuc); in gt215_link_train()
222 ram_mask(fuc, 0x10f804, 0x80000000, 0x80000000); in gt215_link_train()
223 ram_wr32(fuc, 0x10053c, 0x0); in gt215_link_train()
224 ram_wr32(fuc, 0x100720, train->r_100720); in gt215_link_train()
225 ram_wr32(fuc, 0x1111e0, train->r_1111e0); in gt215_link_train()
226 ram_wr32(fuc, 0x111400, train->r_111400); in gt215_link_train()
227 ram_nuke(fuc, 0x100080); in gt215_link_train()
228 ram_mask(fuc, 0x100080, 0x00000020, 0x00000020); in gt215_link_train()
229 ram_nsec(fuc, 1000); in gt215_link_train()
231 ram_wr32(fuc, 0x001700, r1700); in gt215_link_train()
232 ram_mask(fuc, 0x001610, 0x00000083, 0x00000080); in gt215_link_train()
233 ram_wr32(fuc, 0x611200, 0x3330); in gt215_link_train()
234 ram_mask(fuc, 0x100200, 0x00000800, 0x00000800); in gt215_link_train()
236 ram_exec(fuc, true); in gt215_link_train()
239 ram_exec(fuc, true); in gt215_link_train()
425 nvkm_sddr2_dll_reset(struct gt215_ramfuc *fuc) in nvkm_sddr2_dll_reset() argument
427 ram_mask(fuc, mr[0], 0x100, 0x100); in nvkm_sddr2_dll_reset()
428 ram_nsec(fuc, 1000); in nvkm_sddr2_dll_reset()
429 ram_mask(fuc, mr[0], 0x100, 0x000); in nvkm_sddr2_dll_reset()
430 ram_nsec(fuc, 1000); in nvkm_sddr2_dll_reset()
434 nvkm_sddr3_dll_disable(struct gt215_ramfuc *fuc, u32 *mr) in nvkm_sddr3_dll_disable() argument
436 u32 mr1_old = ram_rd32(fuc, mr[1]); in nvkm_sddr3_dll_disable()
439 ram_wr32(fuc, 0x1002d4, 0x00000001); in nvkm_sddr3_dll_disable()
440 ram_wr32(fuc, mr[1], mr[1]); in nvkm_sddr3_dll_disable()
441 ram_nsec(fuc, 1000); in nvkm_sddr3_dll_disable()
446 nvkm_gddr3_dll_disable(struct gt215_ramfuc *fuc, u32 *mr) in nvkm_gddr3_dll_disable() argument
448 u32 mr1_old = ram_rd32(fuc, mr[1]); in nvkm_gddr3_dll_disable()
451 ram_wr32(fuc, mr[1], mr[1]); in nvkm_gddr3_dll_disable()
452 ram_nsec(fuc, 1000); in nvkm_gddr3_dll_disable()
457 gt215_ram_lock_pll(struct gt215_ramfuc *fuc, struct gt215_clk_info *mclk) in gt215_ram_lock_pll() argument
459 ram_wr32(fuc, 0x004004, mclk->pll); in gt215_ram_lock_pll()
460 ram_mask(fuc, 0x004000, 0x00000001, 0x00000001); in gt215_ram_lock_pll()
461 ram_mask(fuc, 0x004000, 0x00000010, 0x00000000); in gt215_ram_lock_pll()
462 ram_wait(fuc, 0x004000, 0x00020000, 0x00020000, 64000); in gt215_ram_lock_pll()
463 ram_mask(fuc, 0x004000, 0x00000010, 0x00000010); in gt215_ram_lock_pll()
467 gt215_ram_fbvref(struct gt215_ramfuc *fuc, u32 val) in gt215_ram_fbvref() argument
469 struct nvkm_gpio *gpio = nvkm_gpio(fuc->base.pfb); in gt215_ram_fbvref()
480 gpio_val = ram_rd32(fuc, gpioFBVREF); in gt215_ram_fbvref()
484 ram_mask(fuc, gpioFBVREF, (0x3 << sh), ((val | 0x2) << sh)); in gt215_ram_fbvref()
485 ram_nsec(fuc, 20000); in gt215_ram_fbvref()
494 struct gt215_ramfuc *fuc = &ram->fuc; in gt215_ram_calc() local
555 ret = ram_init(fuc, pfb); in gt215_ram_calc()
560 ram->base.mr[0] = ram_rd32(fuc, mr[0]); in gt215_ram_calc()
561 ram->base.mr[1] = ram_rd32(fuc, mr[1]); in gt215_ram_calc()
562 ram->base.mr[2] = ram_rd32(fuc, mr[2]); in gt215_ram_calc()
597 ctrl = ram_rd32(fuc, 0x004000); in gt215_ram_calc()
602 ram_mask(fuc, 0x111104, 0x00000600, 0x00000000); in gt215_ram_calc()
604 ram_mask(fuc, 0x111100, 0x40000000, 0x40000000); in gt215_ram_calc()
605 ram_mask(fuc, 0x111104, 0x00000180, 0x00000000); in gt215_ram_calc()
608 ram_mask(fuc, 0x100200, 0x00000800, 0x00000000); in gt215_ram_calc()
612 ram_mask(fuc, 0x004128, 0x003f3141, mclk.clk | 0x00000101); in gt215_ram_calc()
613 gt215_ram_lock_pll(fuc, &mclk); in gt215_ram_calc()
617 ram_wait_vblank(fuc); in gt215_ram_calc()
618 ram_wr32(fuc, 0x611200, 0x3300); in gt215_ram_calc()
619 ram_mask(fuc, 0x002504, 0x1, 0x1); in gt215_ram_calc()
620 ram_nsec(fuc, 10000); in gt215_ram_calc()
621 ram_wait(fuc, 0x002504, 0x10, 0x10, 20000); /* XXX: or longer? */ in gt215_ram_calc()
622 ram_block(fuc); in gt215_ram_calc()
623 ram_nsec(fuc, 2000); in gt215_ram_calc()
627 ram_mask(fuc, 0x111100, 0x04020000, 0x00020000); in gt215_ram_calc()
629 ram_mask(fuc, 0x111100, 0x04020000, 0x04020000); in gt215_ram_calc()
635 nvkm_sddr3_dll_disable(fuc, ram->base.mr); in gt215_ram_calc()
638 nvkm_gddr3_dll_disable(fuc, ram->base.mr); in gt215_ram_calc()
642 if (fuc->r_gpioFBVREF.addr && next->bios.timing_10_ODT) in gt215_ram_calc()
643 gt215_ram_fbvref(fuc, 0); in gt215_ram_calc()
646 ram_wr32(fuc, 0x1002d4, 0x00000001); in gt215_ram_calc()
647 ram_wr32(fuc, 0x1002d0, 0x00000001); in gt215_ram_calc()
648 ram_wr32(fuc, 0x1002d0, 0x00000001); in gt215_ram_calc()
649 ram_wr32(fuc, 0x100210, 0x00000000); in gt215_ram_calc()
650 ram_wr32(fuc, 0x1002dc, 0x00000001); in gt215_ram_calc()
651 ram_nsec(fuc, 2000); in gt215_ram_calc()
654 ram_mask(fuc, 0x100700, 0x00000006, 0x00000006); in gt215_ram_calc()
665 ram_mask(fuc, 0x004000, 0x00000004, 0x00000004); in gt215_ram_calc()
666 ram_mask(fuc, 0x004168, 0x003f3141, 0x00083101); in gt215_ram_calc()
667 ram_mask(fuc, 0x004000, 0x00000008, 0x00000008); in gt215_ram_calc()
668 ram_mask(fuc, 0x1110e0, 0x00088000, 0x00088000); in gt215_ram_calc()
669 ram_wr32(fuc, 0x004018, 0x00001000); in gt215_ram_calc()
670 gt215_ram_lock_pll(fuc, &mclk); in gt215_ram_calc()
674 ram_mask(fuc, 0x004000, 0x00000105, 0x00000105); in gt215_ram_calc()
675 ram_wr32(fuc, 0x004018, 0x00001000 | r004018); in gt215_ram_calc()
676 ram_wr32(fuc, 0x100da0, r100da0); in gt215_ram_calc()
678 ram_mask(fuc, 0x004168, 0x003f3141, mclk.clk | 0x00000101); in gt215_ram_calc()
679 ram_mask(fuc, 0x004000, 0x00000108, 0x00000008); in gt215_ram_calc()
680 ram_mask(fuc, 0x1110e0, 0x00088000, 0x00088000); in gt215_ram_calc()
681 ram_wr32(fuc, 0x004018, 0x00009000 | r004018); in gt215_ram_calc()
682 ram_wr32(fuc, 0x100da0, r100da0); in gt215_ram_calc()
684 ram_nsec(fuc, 20000); in gt215_ram_calc()
687 ram_wr32(fuc, 0x1005a0, next->bios.ramcfg_10_06 << 16 | in gt215_ram_calc()
690 ram_wr32(fuc, 0x1005a4, next->bios.ramcfg_10_08 << 8 | in gt215_ram_calc()
692 ram_wr32(fuc, 0x10f804, next->bios.ramcfg_10_09_f0 << 20 | in gt215_ram_calc()
696 ram_mask(fuc, 0x10053c, 0x00001000, 0x00000000); in gt215_ram_calc()
699 ram_wr32(fuc, 0x100080, 0x1020); in gt215_ram_calc()
700 ram_mask(fuc, 0x111400, 0xffffffff, train->r_111400); in gt215_ram_calc()
701 ram_mask(fuc, 0x1111e0, 0xffffffff, train->r_1111e0); in gt215_ram_calc()
702 ram_mask(fuc, 0x100720, 0xffffffff, train->r_100720); in gt215_ram_calc()
704 ram_mask(fuc, 0x10053c, 0x00001000, 0x00001000); in gt215_ram_calc()
705 ram_mask(fuc, 0x10f804, 0x80000000, 0x00000000); in gt215_ram_calc()
706 ram_mask(fuc, 0x100760, 0x22222222, r100760); in gt215_ram_calc()
707 ram_mask(fuc, 0x1007a0, 0x22222222, r100760); in gt215_ram_calc()
708 ram_mask(fuc, 0x1007e0, 0x22222222, r100760); in gt215_ram_calc()
712 ram_mask(fuc, 0x100700, 0x00000006, 0x00000000); in gt215_ram_calc()
717 ram_mask(fuc, 0x1110e0, 0x00088000, 0x00011000); in gt215_ram_calc()
718 ram_mask(fuc, 0x004000, 0x00000008, 0x00000000); in gt215_ram_calc()
721 ram_wr32(fuc, 0x1002dc, 0x00000000); in gt215_ram_calc()
722 ram_wr32(fuc, 0x1002d4, 0x00000001); in gt215_ram_calc()
723 ram_wr32(fuc, 0x100210, 0x80000000); in gt215_ram_calc()
724 ram_nsec(fuc, 2000); in gt215_ram_calc()
728 if (ram_rd32(fuc, mr[i]) != ram->base.mr[i]) { in gt215_ram_calc()
729 ram_wr32(fuc, mr[i], ram->base.mr[i]); in gt215_ram_calc()
730 ram_nsec(fuc, 1000); in gt215_ram_calc()
734 ram_wr32(fuc, 0x100220[3], timing[3]); in gt215_ram_calc()
735 ram_wr32(fuc, 0x100220[1], timing[1]); in gt215_ram_calc()
736 ram_wr32(fuc, 0x100220[6], timing[6]); in gt215_ram_calc()
737 ram_wr32(fuc, 0x100220[7], timing[7]); in gt215_ram_calc()
738 ram_wr32(fuc, 0x100220[2], timing[2]); in gt215_ram_calc()
739 ram_wr32(fuc, 0x100220[4], timing[4]); in gt215_ram_calc()
740 ram_wr32(fuc, 0x100220[5], timing[5]); in gt215_ram_calc()
741 ram_wr32(fuc, 0x100220[0], timing[0]); in gt215_ram_calc()
742 ram_wr32(fuc, 0x100220[8], timing[8]); in gt215_ram_calc()
745 ram_mask(fuc, 0x100200, 0x00001000, !next->bios.ramcfg_10_02_08 << 12); in gt215_ram_calc()
748 unk714 = ram_rd32(fuc, 0x100714) & ~0xf0000130; in gt215_ram_calc()
749 unk718 = ram_rd32(fuc, 0x100718) & ~0x00000100; in gt215_ram_calc()
750 unk71c = ram_rd32(fuc, 0x10071c) & ~0x00000100; in gt215_ram_calc()
751 r111100 = ram_rd32(fuc, 0x111100) & ~0x3a800000; in gt215_ram_calc()
804 ram_mask(fuc, 0x100714, 0xffffffff, unk714); in gt215_ram_calc()
805 ram_mask(fuc, 0x10071c, 0xffffffff, unk71c); in gt215_ram_calc()
806 ram_mask(fuc, 0x100718, 0xffffffff, unk718); in gt215_ram_calc()
807 ram_mask(fuc, 0x111100, 0xffffffff, r111100); in gt215_ram_calc()
809 if (fuc->r_gpioFBVREF.addr && !next->bios.timing_10_ODT) in gt215_ram_calc()
810 gt215_ram_fbvref(fuc, 1); in gt215_ram_calc()
814 nvkm_sddr2_dll_reset(fuc); in gt215_ram_calc()
817 ram_nsec(fuc, 31000); in gt215_ram_calc()
819 ram_nsec(fuc, 14000); in gt215_ram_calc()
823 ram_wr32(fuc, 0x100264, 0x1); in gt215_ram_calc()
824 ram_nsec(fuc, 2000); in gt215_ram_calc()
827 ram_nuke(fuc, 0x100700); in gt215_ram_calc()
828 ram_mask(fuc, 0x100700, 0x01000000, 0x01000000); in gt215_ram_calc()
829 ram_mask(fuc, 0x100700, 0x01000000, 0x00000000); in gt215_ram_calc()
832 ram_unblock(fuc); in gt215_ram_calc()
833 ram_wr32(fuc, 0x611200, 0x3330); in gt215_ram_calc()
837 ram_mask(fuc, 0x100200, 0x00000800, 0x00000800); in gt215_ram_calc()
839 ram_mask(fuc, 0x111104, 0x00000180, 0x00000180); in gt215_ram_calc()
840 ram_mask(fuc, 0x111100, 0x40000000, 0x00000000); in gt215_ram_calc()
842 ram_mask(fuc, 0x111104, 0x00000600, 0x00000600); in gt215_ram_calc()
846 ram_mask(fuc, 0x004168, 0x00000001, 0x00000000); in gt215_ram_calc()
847 ram_mask(fuc, 0x004168, 0x00000100, 0x00000000); in gt215_ram_calc()
849 ram_mask(fuc, 0x004000, 0x00000001, 0x00000000); in gt215_ram_calc()
850 ram_mask(fuc, 0x004128, 0x00000001, 0x00000000); in gt215_ram_calc()
851 ram_mask(fuc, 0x004128, 0x00000100, 0x00000000); in gt215_ram_calc()
862 struct gt215_ramfuc *fuc = &ram->fuc; in gt215_ram_prog() local
868 ram_exec(fuc, true); in gt215_ram_prog()
877 ram_exec(fuc, false); in gt215_ram_prog()
886 struct gt215_ramfuc *fuc = &ram->fuc; in gt215_ram_tidy() local
887 ram_exec(fuc, false); in gt215_ram_tidy()
946 ram->fuc.r_0x001610 = ramfuc_reg(0x001610); in gt215_ram_ctor()
947 ram->fuc.r_0x001700 = ramfuc_reg(0x001700); in gt215_ram_ctor()
948 ram->fuc.r_0x002504 = ramfuc_reg(0x002504); in gt215_ram_ctor()
949 ram->fuc.r_0x004000 = ramfuc_reg(0x004000); in gt215_ram_ctor()
950 ram->fuc.r_0x004004 = ramfuc_reg(0x004004); in gt215_ram_ctor()
951 ram->fuc.r_0x004018 = ramfuc_reg(0x004018); in gt215_ram_ctor()
952 ram->fuc.r_0x004128 = ramfuc_reg(0x004128); in gt215_ram_ctor()
953 ram->fuc.r_0x004168 = ramfuc_reg(0x004168); in gt215_ram_ctor()
954 ram->fuc.r_0x100080 = ramfuc_reg(0x100080); in gt215_ram_ctor()
955 ram->fuc.r_0x100200 = ramfuc_reg(0x100200); in gt215_ram_ctor()
956 ram->fuc.r_0x100210 = ramfuc_reg(0x100210); in gt215_ram_ctor()
958 ram->fuc.r_0x100220[i] = ramfuc_reg(0x100220 + (i * 4)); in gt215_ram_ctor()
959 ram->fuc.r_0x100264 = ramfuc_reg(0x100264); in gt215_ram_ctor()
960 ram->fuc.r_0x1002d0 = ramfuc_reg(0x1002d0); in gt215_ram_ctor()
961 ram->fuc.r_0x1002d4 = ramfuc_reg(0x1002d4); in gt215_ram_ctor()
962 ram->fuc.r_0x1002dc = ramfuc_reg(0x1002dc); in gt215_ram_ctor()
963 ram->fuc.r_0x10053c = ramfuc_reg(0x10053c); in gt215_ram_ctor()
964 ram->fuc.r_0x1005a0 = ramfuc_reg(0x1005a0); in gt215_ram_ctor()
965 ram->fuc.r_0x1005a4 = ramfuc_reg(0x1005a4); in gt215_ram_ctor()
966 ram->fuc.r_0x100700 = ramfuc_reg(0x100700); in gt215_ram_ctor()
967 ram->fuc.r_0x100714 = ramfuc_reg(0x100714); in gt215_ram_ctor()
968 ram->fuc.r_0x100718 = ramfuc_reg(0x100718); in gt215_ram_ctor()
969 ram->fuc.r_0x10071c = ramfuc_reg(0x10071c); in gt215_ram_ctor()
970 ram->fuc.r_0x100720 = ramfuc_reg(0x100720); in gt215_ram_ctor()
971 ram->fuc.r_0x100760 = ramfuc_stride(0x100760, 4, ram->base.part_mask); in gt215_ram_ctor()
972 ram->fuc.r_0x1007a0 = ramfuc_stride(0x1007a0, 4, ram->base.part_mask); in gt215_ram_ctor()
973 ram->fuc.r_0x1007e0 = ramfuc_stride(0x1007e0, 4, ram->base.part_mask); in gt215_ram_ctor()
974 ram->fuc.r_0x100da0 = ramfuc_stride(0x100da0, 4, ram->base.part_mask); in gt215_ram_ctor()
975 ram->fuc.r_0x10f804 = ramfuc_reg(0x10f804); in gt215_ram_ctor()
976 ram->fuc.r_0x1110e0 = ramfuc_stride(0x1110e0, 4, ram->base.part_mask); in gt215_ram_ctor()
977 ram->fuc.r_0x111100 = ramfuc_reg(0x111100); in gt215_ram_ctor()
978 ram->fuc.r_0x111104 = ramfuc_reg(0x111104); in gt215_ram_ctor()
979 ram->fuc.r_0x1111e0 = ramfuc_reg(0x1111e0); in gt215_ram_ctor()
980 ram->fuc.r_0x111400 = ramfuc_reg(0x111400); in gt215_ram_ctor()
981 ram->fuc.r_0x611200 = ramfuc_reg(0x611200); in gt215_ram_ctor()
984 ram->fuc.r_mr[0] = ramfuc_reg2(0x1002c0, 0x1002c8); in gt215_ram_ctor()
985 ram->fuc.r_mr[1] = ramfuc_reg2(0x1002c4, 0x1002cc); in gt215_ram_ctor()
986 ram->fuc.r_mr[2] = ramfuc_reg2(0x1002e0, 0x1002e8); in gt215_ram_ctor()
987 ram->fuc.r_mr[3] = ramfuc_reg2(0x1002e4, 0x1002ec); in gt215_ram_ctor()
989 ram->fuc.r_mr[0] = ramfuc_reg(0x1002c0); in gt215_ram_ctor()
990 ram->fuc.r_mr[1] = ramfuc_reg(0x1002c4); in gt215_ram_ctor()
991 ram->fuc.r_mr[2] = ramfuc_reg(0x1002e0); in gt215_ram_ctor()
992 ram->fuc.r_mr[3] = ramfuc_reg(0x1002e4); in gt215_ram_ctor()
998 ram->fuc.r_gpioFBVREF = ramfuc_reg(reg); in gt215_ram_ctor()