Lines Matching refs:clk

141 read_clk(struct gk104_clk_priv *priv, int clk)  in read_clk()  argument
143 u32 sctl = nv_rd32(priv, 0x137250 + (clk * 4)); in read_clk()
146 if (clk < 7) { in read_clk()
148 if (ssel & (1 << clk)) { in read_clk()
149 sclk = read_pll(priv, 0x137000 + (clk * 0x20)); in read_clk()
152 sclk = read_div(priv, clk, 0x137160, 0x1371d0); in read_clk()
156 u32 ssrc = nv_rd32(priv, 0x137160 + (clk * 0x04)); in read_clk()
158 sclk = read_div(priv, clk, 0x137160, 0x1371d0); in read_clk()
167 sclk = read_div(priv, clk, 0x137160, 0x1371d0); in read_clk()
184 gk104_clk_read(struct nvkm_clk *clk, enum nv_clk_src src) in gk104_clk_read() argument
186 struct nvkm_device *device = nv_device(clk); in gk104_clk_read()
187 struct gk104_clk_priv *priv = (void *)clk; in gk104_clk_read()
211 nv_error(clk, "invalid clock source %d\n", src); in gk104_clk_read()
217 calc_div(struct gk104_clk_priv *priv, int clk, u32 ref, u32 freq, u32 *ddiv) in calc_div() argument
228 calc_src(struct gk104_clk_priv *priv, int clk, u32 freq, u32 *dsrc, u32 *ddiv) in calc_src() argument
250 sclk = read_vco(priv, 0x137160 + (clk * 4)); in calc_src()
251 if (clk < 7) in calc_src()
252 sclk = calc_div(priv, clk, sclk, freq, ddiv); in calc_src()
257 calc_pll(struct gk104_clk_priv *priv, int clk, u32 freq, u32 *coef) in calc_pll() argument
263 ret = nvbios_pll_parse(bios, 0x137000 + (clk * 0x20), &limits); in calc_pll()
267 limits.refclk = read_div(priv, clk, 0x137120, 0x137140); in calc_pll()
281 struct nvkm_cstate *cstate, int clk, int dom) in calc_clk() argument
283 struct gk104_clk_info *info = &priv->eng[clk]; in calc_clk()
293 clk0 = calc_src(priv, clk, freq, &src0, &div0); in calc_clk()
294 clk0 = calc_div(priv, clk, clk0, freq, &div1D); in calc_clk()
297 if (clk0 != freq && (0x0000ff87 & (1 << clk))) { in calc_clk()
298 if (clk <= 7) in calc_clk()
299 clk1 = calc_pll(priv, clk, freq, &info->coef); in calc_clk()
302 clk1 = calc_div(priv, clk, clk1, freq, &div1P); in calc_clk()
323 info->ssel = (1 << clk); in calc_clk()
332 gk104_clk_calc(struct nvkm_clk *clk, struct nvkm_cstate *cstate) in gk104_clk_calc() argument
334 struct gk104_clk_priv *priv = (void *)clk; in gk104_clk_calc()
350 gk104_clk_prog_0(struct gk104_clk_priv *priv, int clk) in gk104_clk_prog_0() argument
352 struct gk104_clk_info *info = &priv->eng[clk]; in gk104_clk_prog_0()
354 nv_mask(priv, 0x1371d0 + (clk * 0x04), 0x8000003f, info->ddiv); in gk104_clk_prog_0()
355 nv_wr32(priv, 0x137160 + (clk * 0x04), info->dsrc); in gk104_clk_prog_0()
360 gk104_clk_prog_1_0(struct gk104_clk_priv *priv, int clk) in gk104_clk_prog_1_0() argument
362 nv_mask(priv, 0x137100, (1 << clk), 0x00000000); in gk104_clk_prog_1_0()
363 nv_wait(priv, 0x137100, (1 << clk), 0x00000000); in gk104_clk_prog_1_0()
367 gk104_clk_prog_1_1(struct gk104_clk_priv *priv, int clk) in gk104_clk_prog_1_1() argument
369 nv_mask(priv, 0x137160 + (clk * 0x04), 0x00000100, 0x00000000); in gk104_clk_prog_1_1()
373 gk104_clk_prog_2(struct gk104_clk_priv *priv, int clk) in gk104_clk_prog_2() argument
375 struct gk104_clk_info *info = &priv->eng[clk]; in gk104_clk_prog_2()
376 const u32 addr = 0x137000 + (clk * 0x20); in gk104_clk_prog_2()
388 gk104_clk_prog_3(struct gk104_clk_priv *priv, int clk) in gk104_clk_prog_3() argument
390 struct gk104_clk_info *info = &priv->eng[clk]; in gk104_clk_prog_3()
392 nv_mask(priv, 0x137250 + (clk * 0x04), 0x00003f00, info->mdiv); in gk104_clk_prog_3()
394 nv_mask(priv, 0x137250 + (clk * 0x04), 0x0000003f, info->mdiv); in gk104_clk_prog_3()
398 gk104_clk_prog_4_0(struct gk104_clk_priv *priv, int clk) in gk104_clk_prog_4_0() argument
400 struct gk104_clk_info *info = &priv->eng[clk]; in gk104_clk_prog_4_0()
402 nv_mask(priv, 0x137100, (1 << clk), info->ssel); in gk104_clk_prog_4_0()
403 nv_wait(priv, 0x137100, (1 << clk), info->ssel); in gk104_clk_prog_4_0()
408 gk104_clk_prog_4_1(struct gk104_clk_priv *priv, int clk) in gk104_clk_prog_4_1() argument
410 struct gk104_clk_info *info = &priv->eng[clk]; in gk104_clk_prog_4_1()
412 nv_mask(priv, 0x137160 + (clk * 0x04), 0x40000000, 0x40000000); in gk104_clk_prog_4_1()
413 nv_mask(priv, 0x137160 + (clk * 0x04), 0x00000100, 0x00000100); in gk104_clk_prog_4_1()
418 gk104_clk_prog(struct nvkm_clk *clk) in gk104_clk_prog() argument
420 struct gk104_clk_priv *priv = (void *)clk; in gk104_clk_prog()
449 gk104_clk_tidy(struct nvkm_clk *clk) in gk104_clk_tidy() argument
451 struct gk104_clk_priv *priv = (void *)clk; in gk104_clk_tidy()