Lines Matching refs:ram
143 struct gk104_ram *ram = container_of(fuc, typeof(*ram), fuc); in gk104_ram_train() local
149 for (i = 0; (data & 0x80000000) && i < ram->parts; addr += 0x1000, i++) { in gk104_ram_train()
150 if (ram->pmask & (1 << i)) in gk104_ram_train()
159 struct gk104_ram *ram = container_of(fuc, typeof(*ram), fuc); in r1373f4_init() local
160 const u32 mcoef = ((--ram->P2 << 28) | (ram->N2 << 8) | ram->M2); in r1373f4_init()
161 const u32 rcoef = (( ram->P1 << 16) | (ram->N1 << 8) | ram->M1); in r1373f4_init()
162 const u32 runk0 = ram->fN1 << 16; in r1373f4_init()
163 const u32 runk1 = ram->fN1; in r1373f4_init()
165 if (ram->from == 2) { in r1373f4_init()
191 if (ram->mode == 2) { in r1373f4_init()
209 struct gk104_ram *ram = container_of(fuc, typeof(*ram), fuc); in r1373f4_fini() local
210 struct nvkm_ram_data *next = ram->base.next; in r1373f4_fini()
217 ram_mask(fuc, 0x1373f0, (~ram->mode & 3), 0x00000000); in r1373f4_fini()
218 if (ram->mode == 2) { in r1373f4_fini()
229 gk104_ram_nuts(struct gk104_ram *ram, struct ramfuc_reg *reg, in gk104_ram_nuts() argument
232 struct gk104_fb_priv *priv = (void *)nvkm_fb(ram); in gk104_ram_nuts()
233 struct ramfuc *fuc = &ram->fuc.base; in gk104_ram_nuts()
240 if (ram->pnuts & (1 << i)) { in gk104_ram_nuts()
253 struct gk104_ram *ram = (void *)pfb->ram; in gk104_ram_calc_gddr5() local
254 struct gk104_ramfuc *fuc = &ram->fuc; in gk104_ram_calc_gddr5()
255 struct nvkm_ram_data *next = ram->base.next; in gk104_ram_calc_gddr5()
265 if ((ram->base.mr[1] & 0x03c) != 0x030) { in gk104_ram_calc_gddr5()
266 ram_mask(fuc, mr[1], 0x03c, ram->base.mr[1] & 0x03c); in gk104_ram_calc_gddr5()
267 ram_nuts(ram, mr[1], 0x03c, ram->base.mr1_nuts & 0x03c, 0x000); in gk104_ram_calc_gddr5()
341 if (ram->from == 2 && ram->mode != 2) { in gk104_ram_calc_gddr5()
352 if (ram->from != 2 && ram->mode != 2) { in gk104_ram_calc_gddr5()
371 if (ram->from != 2 && ram->mode == 2) { in gk104_ram_calc_gddr5()
382 if (ram->from == 2 && ram->mode == 2) { in gk104_ram_calc_gddr5()
388 if (ram->mode != 2) /*XXX*/ { in gk104_ram_calc_gddr5()
406 if (ram->mode != 2) { in gk104_ram_calc_gddr5()
412 if (ram->mode == 2 && next->bios.ramcfg_11_08_10) in gk104_ram_calc_gddr5()
472 if (ram->diff.ramcfg_11_08_20) { in gk104_ram_calc_gddr5()
480 if (ram->diff.ramcfg_11_02_03) { in gk104_ram_calc_gddr5()
484 if (ram->diff.ramcfg_11_01_10) { in gk104_ram_calc_gddr5()
492 if (ram->diff.timing_20_30_07) { in gk104_ram_calc_gddr5()
496 if (ram->diff.ramcfg_11_01_01) { in gk104_ram_calc_gddr5()
504 if (ram->diff.timing_20_30_07) { in gk104_ram_calc_gddr5()
508 if (ram->diff.ramcfg_11_01_02) { in gk104_ram_calc_gddr5()
542 if (ram->diff.ramcfg_11_02_03) { in gk104_ram_calc_gddr5()
546 if (ram->diff.ramcfg_11_01_10) { in gk104_ram_calc_gddr5()
583 if (next->bios.ramcfg_11_08_10 && (ram->mode == 2) /*XXX*/) { in gk104_ram_calc_gddr5()
590 ram_mask(fuc, mr[3], 0xfff, ram->base.mr[3]); in gk104_ram_calc_gddr5()
591 ram_wr32(fuc, mr[0], ram->base.mr[0]); in gk104_ram_calc_gddr5()
592 ram_mask(fuc, mr[8], 0xfff, ram->base.mr[8]); in gk104_ram_calc_gddr5()
594 ram_mask(fuc, mr[1], 0xfff, ram->base.mr[1]); in gk104_ram_calc_gddr5()
595 ram_mask(fuc, mr[5], 0xfff, ram->base.mr[5] & ~0x004); /* LP3 later */ in gk104_ram_calc_gddr5()
596 ram_mask(fuc, mr[6], 0xfff, ram->base.mr[6]); in gk104_ram_calc_gddr5()
597 ram_mask(fuc, mr[7], 0xfff, ram->base.mr[7]); in gk104_ram_calc_gddr5()
611 ram_nuts(ram, 0x10f200, 0x18808800, 0x00000000, 0x18808800); in gk104_ram_calc_gddr5()
626 if (ram->mode == 1) { in gk104_ram_calc_gddr5()
644 if (ram->mode == 2) { /*XXX*/ in gk104_ram_calc_gddr5()
649 if (ram_mask(fuc, mr[5], 0x004, ram->base.mr[5]) != ram->base.mr[5]) in gk104_ram_calc_gddr5()
652 if (ram->mode != 2) { in gk104_ram_calc_gddr5()
668 ram_nuts(ram, 0x10f200, 0x18808800, data, 0x18808800); in gk104_ram_calc_gddr5()
679 struct gk104_ram *ram = (void *)pfb->ram; in gk104_ram_calc_sddr3() local
680 struct gk104_ramfuc *fuc = &ram->fuc; in gk104_ram_calc_sddr3()
681 const u32 rcoef = (( ram->P1 << 16) | (ram->N1 << 8) | ram->M1); in gk104_ram_calc_sddr3()
682 const u32 runk0 = ram->fN1 << 16; in gk104_ram_calc_sddr3()
683 const u32 runk1 = ram->fN1; in gk104_ram_calc_sddr3()
684 struct nvkm_ram_data *next = ram->base.next; in gk104_ram_calc_sddr3()
796 if (ram->mode != 2) /*XXX*/ { in gk104_ram_calc_sddr3()
887 ram_mask(fuc, mr[2], 0xfff, ram->base.mr[2]); in gk104_ram_calc_sddr3()
888 ram_wr32(fuc, mr[0], ram->base.mr[0]); in gk104_ram_calc_sddr3()
903 if (ram->mode != 2) { in gk104_ram_calc_sddr3()
931 struct gk104_ram *ram = (void *)pfb->ram; in gk104_ram_calc_data() local
935 list_for_each_entry(cfg, &ram->cfg, head) { in gk104_ram_calc_data()
944 nv_error(ram, "ramcfg data for %dMHz not found\n", mhz); in gk104_ram_calc_data()
951 struct gk104_ram *ram = (void *)pfb->ram; in gk104_ram_calc_xits() local
952 struct gk104_ramfuc *fuc = &ram->fuc; in gk104_ram_calc_xits()
960 ram->mode = (next->freq > fuc->refpll.vco1.max_freq) ? 2 : 1; in gk104_ram_calc_xits()
961 ram->from = ram_rd32(fuc, 0x1373f4) & 0x0000000f; in gk104_ram_calc_xits()
972 if (ram->mode == 2) in gk104_ram_calc_xits()
976 ret = gt215_pll_calc(nv_subdev(pfb), &fuc->refpll, refclk, &ram->N1, in gk104_ram_calc_xits()
977 &ram->fN1, &ram->M1, &ram->P1); in gk104_ram_calc_xits()
985 if (ram->mode == 2) { in gk104_ram_calc_xits()
994 &ram->N2, NULL, &ram->M2, &ram->P2); in gk104_ram_calc_xits()
1003 ram->base.mr[i] = ram_rd32(fuc, mr[i]); in gk104_ram_calc_xits()
1005 ram->base.freq = next->freq; in gk104_ram_calc_xits()
1007 switch (ram->base.type) { in gk104_ram_calc_xits()
1009 ret = nvkm_sddr3_calc(&ram->base); in gk104_ram_calc_xits()
1014 ret = nvkm_gddr5_calc(&ram->base, ram->pnuts != 0); in gk104_ram_calc_xits()
1030 struct gk104_ram *ram = (void *)pfb->ram; in gk104_ram_calc() local
1031 struct nvkm_ram_data *xits = &ram->base.xition; in gk104_ram_calc()
1035 if (ram->base.next == NULL) { in gk104_ram_calc()
1037 &ram->base.former); in gk104_ram_calc()
1041 ret = gk104_ram_calc_data(pfb, freq, &ram->base.target); in gk104_ram_calc()
1045 if (ram->base.target.freq < ram->base.former.freq) { in gk104_ram_calc()
1046 *xits = ram->base.target; in gk104_ram_calc()
1047 copy = &ram->base.former; in gk104_ram_calc()
1049 *xits = ram->base.former; in gk104_ram_calc()
1050 copy = &ram->base.target; in gk104_ram_calc()
1057 ram->base.next = &ram->base.target; in gk104_ram_calc()
1058 if (memcmp(xits, &ram->base.former, sizeof(xits->bios))) in gk104_ram_calc()
1059 ram->base.next = &ram->base.xition; in gk104_ram_calc()
1061 BUG_ON(ram->base.next != &ram->base.xition); in gk104_ram_calc()
1062 ram->base.next = &ram->base.target; in gk104_ram_calc()
1065 return gk104_ram_calc_xits(pfb, ram->base.next); in gk104_ram_calc()
1071 struct gk104_ram *ram = (void *)pfb->ram; in gk104_ram_prog_0() local
1076 list_for_each_entry(cfg, &ram->cfg, head) { in gk104_ram_prog_0()
1082 if (&cfg->head == &ram->cfg) in gk104_ram_prog_0()
1085 if (mask = 0, data = 0, ram->diff.rammap_11_0a_03fe) { in gk104_ram_prog_0()
1089 if (ram->diff.rammap_11_09_01ff) { in gk104_ram_prog_0()
1095 if (mask = 0, data = 0, ram->diff.rammap_11_0a_0400) { in gk104_ram_prog_0()
1101 if (mask = 0, data = 0, ram->diff.rammap_11_0a_0800) { in gk104_ram_prog_0()
1107 if (mask = 0, data = 0, ram->diff.rammap_11_0b_01f0) { in gk104_ram_prog_0()
1113 if (mask = 0, data = 0, ram->diff.rammap_11_0b_0200) { in gk104_ram_prog_0()
1119 if (mask = 0, data = 0, ram->diff.rammap_11_0d) { in gk104_ram_prog_0()
1123 if (ram->diff.rammap_11_0f) { in gk104_ram_prog_0()
1129 if (mask = 0, data = 0, ram->diff.rammap_11_0e) { in gk104_ram_prog_0()
1133 if (ram->diff.rammap_11_0b_0800) { in gk104_ram_prog_0()
1137 if (ram->diff.rammap_11_0b_0400) { in gk104_ram_prog_0()
1148 struct gk104_ram *ram = (void *)pfb->ram; in gk104_ram_prog() local
1149 struct gk104_ramfuc *fuc = &ram->fuc; in gk104_ram_prog()
1150 struct nvkm_ram_data *next = ram->base.next; in gk104_ram_prog()
1154 return (ram->base.next == &ram->base.xition); in gk104_ram_prog()
1161 return (ram->base.next == &ram->base.xition); in gk104_ram_prog()
1167 struct gk104_ram *ram = (void *)pfb->ram; in gk104_ram_tidy() local
1168 struct gk104_ramfuc *fuc = &ram->fuc; in gk104_ram_tidy()
1169 ram->base.next = NULL; in gk104_ram_tidy()
1295 switch (pfb->ram->type) { in gk104_ram_train_init()
1312 struct gk104_ram *ram = (void *)object; in gk104_ram_init() local
1318 ret = nvkm_ram_init(&ram->base); in gk104_ram_init()
1360 gk104_ram_ctor_data(struct gk104_ram *ram, u8 ramcfg, int i) in gk104_ram_ctor_data() argument
1362 struct nvkm_fb *pfb = (void *)nv_object(ram)->parent; in gk104_ram_ctor_data()
1365 struct nvbios_ramcfg *d = &ram->diff; in gk104_ram_ctor_data()
1373 p = &list_last_entry(&ram->cfg, typeof(*cfg), head)->bios; in gk104_ram_ctor_data()
1402 list_add_tail(&cfg->head, &ram->cfg); in gk104_ram_ctor_data()
1432 struct gk104_ram *ram = (void *)object; in gk104_ram_dtor() local
1435 list_for_each_entry_safe(cfg, tmp, &ram->cfg, head) { in gk104_ram_dtor()
1439 nvkm_ram_destroy(&ram->base); in gk104_ram_dtor()
1451 struct gk104_ram *ram; in gk104_ram_ctor() local
1456 ret = gf100_ram_create(parent, engine, oclass, 0x022554, &ram); in gk104_ram_ctor()
1457 *pobject = nv_object(ram); in gk104_ram_ctor()
1461 INIT_LIST_HEAD(&ram->cfg); in gk104_ram_ctor()
1463 switch (ram->base.type) { in gk104_ram_ctor()
1466 ram->base.calc = gk104_ram_calc; in gk104_ram_ctor()
1467 ram->base.prog = gk104_ram_prog; in gk104_ram_ctor()
1468 ram->base.tidy = gk104_ram_tidy; in gk104_ram_ctor()
1480 ram->parts = nv_rd32(pfb, 0x022438); in gk104_ram_ctor()
1481 ram->pmask = nv_rd32(pfb, 0x022554); in gk104_ram_ctor()
1482 ram->pnuts = 0; in gk104_ram_ctor()
1483 for (i = 0, tmp = 0; i < ram->parts; i++) { in gk104_ram_ctor()
1484 if (!(ram->pmask & (1 << i))) { in gk104_ram_ctor()
1487 ram->pnuts |= (1 << i); in gk104_ram_ctor()
1506 ret = gk104_ram_ctor_data(ram, ramcfg, i); in gk104_ram_ctor()
1514 ret = nvbios_pll_parse(bios, 0x0c, &ram->fuc.refpll); in gk104_ram_ctor()
1520 ret = nvbios_pll_parse(bios, 0x04, &ram->fuc.mempll); in gk104_ram_ctor()
1529 ram->fuc.r_gpioMV = ramfuc_reg(0x00d610 + (func.line * 0x04)); in gk104_ram_ctor()
1530 ram->fuc.r_funcMV[0] = (func.log[0] ^ 2) << 12; in gk104_ram_ctor()
1531 ram->fuc.r_funcMV[1] = (func.log[1] ^ 2) << 12; in gk104_ram_ctor()
1536 ram->fuc.r_gpio2E = ramfuc_reg(0x00d610 + (func.line * 0x04)); in gk104_ram_ctor()
1537 ram->fuc.r_func2E[0] = (func.log[0] ^ 2) << 12; in gk104_ram_ctor()
1538 ram->fuc.r_func2E[1] = (func.log[1] ^ 2) << 12; in gk104_ram_ctor()
1541 ram->fuc.r_gpiotrig = ramfuc_reg(0x00d604); in gk104_ram_ctor()
1543 ram->fuc.r_0x132020 = ramfuc_reg(0x132020); in gk104_ram_ctor()
1544 ram->fuc.r_0x132028 = ramfuc_reg(0x132028); in gk104_ram_ctor()
1545 ram->fuc.r_0x132024 = ramfuc_reg(0x132024); in gk104_ram_ctor()
1546 ram->fuc.r_0x132030 = ramfuc_reg(0x132030); in gk104_ram_ctor()
1547 ram->fuc.r_0x132034 = ramfuc_reg(0x132034); in gk104_ram_ctor()
1548 ram->fuc.r_0x132000 = ramfuc_reg(0x132000); in gk104_ram_ctor()
1549 ram->fuc.r_0x132004 = ramfuc_reg(0x132004); in gk104_ram_ctor()
1550 ram->fuc.r_0x132040 = ramfuc_reg(0x132040); in gk104_ram_ctor()
1552 ram->fuc.r_0x10f248 = ramfuc_reg(0x10f248); in gk104_ram_ctor()
1553 ram->fuc.r_0x10f290 = ramfuc_reg(0x10f290); in gk104_ram_ctor()
1554 ram->fuc.r_0x10f294 = ramfuc_reg(0x10f294); in gk104_ram_ctor()
1555 ram->fuc.r_0x10f298 = ramfuc_reg(0x10f298); in gk104_ram_ctor()
1556 ram->fuc.r_0x10f29c = ramfuc_reg(0x10f29c); in gk104_ram_ctor()
1557 ram->fuc.r_0x10f2a0 = ramfuc_reg(0x10f2a0); in gk104_ram_ctor()
1558 ram->fuc.r_0x10f2a4 = ramfuc_reg(0x10f2a4); in gk104_ram_ctor()
1559 ram->fuc.r_0x10f2a8 = ramfuc_reg(0x10f2a8); in gk104_ram_ctor()
1560 ram->fuc.r_0x10f2ac = ramfuc_reg(0x10f2ac); in gk104_ram_ctor()
1561 ram->fuc.r_0x10f2cc = ramfuc_reg(0x10f2cc); in gk104_ram_ctor()
1562 ram->fuc.r_0x10f2e8 = ramfuc_reg(0x10f2e8); in gk104_ram_ctor()
1563 ram->fuc.r_0x10f250 = ramfuc_reg(0x10f250); in gk104_ram_ctor()
1564 ram->fuc.r_0x10f24c = ramfuc_reg(0x10f24c); in gk104_ram_ctor()
1565 ram->fuc.r_0x10fec4 = ramfuc_reg(0x10fec4); in gk104_ram_ctor()
1566 ram->fuc.r_0x10fec8 = ramfuc_reg(0x10fec8); in gk104_ram_ctor()
1567 ram->fuc.r_0x10f604 = ramfuc_reg(0x10f604); in gk104_ram_ctor()
1568 ram->fuc.r_0x10f614 = ramfuc_reg(0x10f614); in gk104_ram_ctor()
1569 ram->fuc.r_0x10f610 = ramfuc_reg(0x10f610); in gk104_ram_ctor()
1570 ram->fuc.r_0x100770 = ramfuc_reg(0x100770); in gk104_ram_ctor()
1571 ram->fuc.r_0x100778 = ramfuc_reg(0x100778); in gk104_ram_ctor()
1572 ram->fuc.r_0x10f224 = ramfuc_reg(0x10f224); in gk104_ram_ctor()
1574 ram->fuc.r_0x10f870 = ramfuc_reg(0x10f870); in gk104_ram_ctor()
1575 ram->fuc.r_0x10f698 = ramfuc_reg(0x10f698); in gk104_ram_ctor()
1576 ram->fuc.r_0x10f694 = ramfuc_reg(0x10f694); in gk104_ram_ctor()
1577 ram->fuc.r_0x10f6b8 = ramfuc_reg(0x10f6b8); in gk104_ram_ctor()
1578 ram->fuc.r_0x10f808 = ramfuc_reg(0x10f808); in gk104_ram_ctor()
1579 ram->fuc.r_0x10f670 = ramfuc_reg(0x10f670); in gk104_ram_ctor()
1580 ram->fuc.r_0x10f60c = ramfuc_reg(0x10f60c); in gk104_ram_ctor()
1581 ram->fuc.r_0x10f830 = ramfuc_reg(0x10f830); in gk104_ram_ctor()
1582 ram->fuc.r_0x1373ec = ramfuc_reg(0x1373ec); in gk104_ram_ctor()
1583 ram->fuc.r_0x10f800 = ramfuc_reg(0x10f800); in gk104_ram_ctor()
1584 ram->fuc.r_0x10f82c = ramfuc_reg(0x10f82c); in gk104_ram_ctor()
1586 ram->fuc.r_0x10f978 = ramfuc_reg(0x10f978); in gk104_ram_ctor()
1587 ram->fuc.r_0x10f910 = ramfuc_reg(0x10f910); in gk104_ram_ctor()
1588 ram->fuc.r_0x10f914 = ramfuc_reg(0x10f914); in gk104_ram_ctor()
1590 switch (ram->base.type) { in gk104_ram_ctor()
1592 ram->fuc.r_mr[0] = ramfuc_reg(0x10f300); in gk104_ram_ctor()
1593 ram->fuc.r_mr[1] = ramfuc_reg(0x10f330); in gk104_ram_ctor()
1594 ram->fuc.r_mr[2] = ramfuc_reg(0x10f334); in gk104_ram_ctor()
1595 ram->fuc.r_mr[3] = ramfuc_reg(0x10f338); in gk104_ram_ctor()
1596 ram->fuc.r_mr[4] = ramfuc_reg(0x10f33c); in gk104_ram_ctor()
1597 ram->fuc.r_mr[5] = ramfuc_reg(0x10f340); in gk104_ram_ctor()
1598 ram->fuc.r_mr[6] = ramfuc_reg(0x10f344); in gk104_ram_ctor()
1599 ram->fuc.r_mr[7] = ramfuc_reg(0x10f348); in gk104_ram_ctor()
1600 ram->fuc.r_mr[8] = ramfuc_reg(0x10f354); in gk104_ram_ctor()
1601 ram->fuc.r_mr[15] = ramfuc_reg(0x10f34c); in gk104_ram_ctor()
1604 ram->fuc.r_mr[0] = ramfuc_reg(0x10f300); in gk104_ram_ctor()
1605 ram->fuc.r_mr[2] = ramfuc_reg(0x10f320); in gk104_ram_ctor()
1611 ram->fuc.r_0x62c000 = ramfuc_reg(0x62c000); in gk104_ram_ctor()
1612 ram->fuc.r_0x10f200 = ramfuc_reg(0x10f200); in gk104_ram_ctor()
1613 ram->fuc.r_0x10f210 = ramfuc_reg(0x10f210); in gk104_ram_ctor()
1614 ram->fuc.r_0x10f310 = ramfuc_reg(0x10f310); in gk104_ram_ctor()
1615 ram->fuc.r_0x10f314 = ramfuc_reg(0x10f314); in gk104_ram_ctor()
1616 ram->fuc.r_0x10f318 = ramfuc_reg(0x10f318); in gk104_ram_ctor()
1617 ram->fuc.r_0x10f090 = ramfuc_reg(0x10f090); in gk104_ram_ctor()
1618 ram->fuc.r_0x10f69c = ramfuc_reg(0x10f69c); in gk104_ram_ctor()
1619 ram->fuc.r_0x10f824 = ramfuc_reg(0x10f824); in gk104_ram_ctor()
1620 ram->fuc.r_0x1373f0 = ramfuc_reg(0x1373f0); in gk104_ram_ctor()
1621 ram->fuc.r_0x1373f4 = ramfuc_reg(0x1373f4); in gk104_ram_ctor()
1622 ram->fuc.r_0x137320 = ramfuc_reg(0x137320); in gk104_ram_ctor()
1623 ram->fuc.r_0x10f65c = ramfuc_reg(0x10f65c); in gk104_ram_ctor()
1624 ram->fuc.r_0x10f6bc = ramfuc_reg(0x10f6bc); in gk104_ram_ctor()
1625 ram->fuc.r_0x100710 = ramfuc_reg(0x100710); in gk104_ram_ctor()
1626 ram->fuc.r_0x100750 = ramfuc_reg(0x100750); in gk104_ram_ctor()