Commit 98fd7f83 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/clk: switch to instanced constructor

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
parent d37766e5
...@@ -60,7 +60,6 @@ struct nvkm_device { ...@@ -60,7 +60,6 @@ struct nvkm_device {
struct notifier_block nb; struct notifier_block nb;
} acpi; } acpi;
struct nvkm_clk *clk;
struct nvkm_devinit *devinit; struct nvkm_devinit *devinit;
struct nvkm_fault *fault; struct nvkm_fault *fault;
struct nvkm_fb *fb; struct nvkm_fb *fb;
...@@ -144,7 +143,6 @@ struct nvkm_device_chip { ...@@ -144,7 +143,6 @@ struct nvkm_device_chip {
#include <core/layout.h> #include <core/layout.h>
#undef NVKM_LAYOUT_INST #undef NVKM_LAYOUT_INST
#undef NVKM_LAYOUT_ONCE #undef NVKM_LAYOUT_ONCE
int (*clk )(struct nvkm_device *, int idx, struct nvkm_clk **);
int (*devinit )(struct nvkm_device *, int idx, struct nvkm_devinit **); int (*devinit )(struct nvkm_device *, int idx, struct nvkm_devinit **);
int (*fault )(struct nvkm_device *, int idx, struct nvkm_fault **); int (*fault )(struct nvkm_device *, int idx, struct nvkm_fault **);
int (*fb )(struct nvkm_device *, int idx, struct nvkm_fb **); int (*fb )(struct nvkm_device *, int idx, struct nvkm_fb **);
......
...@@ -3,3 +3,4 @@ NVKM_LAYOUT_ONCE(NVKM_SUBDEV_VBIOS , struct nvkm_bios , bios) ...@@ -3,3 +3,4 @@ NVKM_LAYOUT_ONCE(NVKM_SUBDEV_VBIOS , struct nvkm_bios , bios)
NVKM_LAYOUT_ONCE(NVKM_SUBDEV_BUS , struct nvkm_bus , bus) NVKM_LAYOUT_ONCE(NVKM_SUBDEV_BUS , struct nvkm_bus , bus)
NVKM_LAYOUT_ONCE(NVKM_SUBDEV_BAR , struct nvkm_bar , bar) NVKM_LAYOUT_ONCE(NVKM_SUBDEV_BAR , struct nvkm_bar , bar)
NVKM_LAYOUT_ONCE(NVKM_SUBDEV_ACR , struct nvkm_acr , acr) NVKM_LAYOUT_ONCE(NVKM_SUBDEV_ACR , struct nvkm_acr , acr)
NVKM_LAYOUT_ONCE(NVKM_SUBDEV_CLK , struct nvkm_clk , clk)
...@@ -125,14 +125,14 @@ int nvkm_clk_astate(struct nvkm_clk *, int req, int rel, bool wait); ...@@ -125,14 +125,14 @@ int nvkm_clk_astate(struct nvkm_clk *, int req, int rel, bool wait);
int nvkm_clk_dstate(struct nvkm_clk *, int req, int rel); int nvkm_clk_dstate(struct nvkm_clk *, int req, int rel);
int nvkm_clk_tstate(struct nvkm_clk *, u8 temperature); int nvkm_clk_tstate(struct nvkm_clk *, u8 temperature);
int nv04_clk_new(struct nvkm_device *, int, struct nvkm_clk **); int nv04_clk_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_clk **);
int nv40_clk_new(struct nvkm_device *, int, struct nvkm_clk **); int nv40_clk_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_clk **);
int nv50_clk_new(struct nvkm_device *, int, struct nvkm_clk **); int nv50_clk_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_clk **);
int g84_clk_new(struct nvkm_device *, int, struct nvkm_clk **); int g84_clk_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_clk **);
int mcp77_clk_new(struct nvkm_device *, int, struct nvkm_clk **); int mcp77_clk_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_clk **);
int gt215_clk_new(struct nvkm_device *, int, struct nvkm_clk **); int gt215_clk_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_clk **);
int gf100_clk_new(struct nvkm_device *, int, struct nvkm_clk **); int gf100_clk_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_clk **);
int gk104_clk_new(struct nvkm_device *, int, struct nvkm_clk **); int gk104_clk_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_clk **);
int gk20a_clk_new(struct nvkm_device *, int, struct nvkm_clk **); int gk20a_clk_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_clk **);
int gm20b_clk_new(struct nvkm_device *, int, struct nvkm_clk **); int gm20b_clk_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_clk **);
#endif #endif
...@@ -33,7 +33,6 @@ nvkm_subdev_type[NVKM_SUBDEV_NR] = { ...@@ -33,7 +33,6 @@ nvkm_subdev_type[NVKM_SUBDEV_NR] = {
#include <core/layout.h> #include <core/layout.h>
#undef NVKM_LAYOUT_ONCE #undef NVKM_LAYOUT_ONCE
#undef NVKM_LAYOUT_INST #undef NVKM_LAYOUT_INST
[NVKM_SUBDEV_CLK ] = "clk",
[NVKM_SUBDEV_DEVINIT ] = "devinit", [NVKM_SUBDEV_DEVINIT ] = "devinit",
[NVKM_SUBDEV_FAULT ] = "fault", [NVKM_SUBDEV_FAULT ] = "fault",
[NVKM_SUBDEV_FB ] = "fb", [NVKM_SUBDEV_FB ] = "fb",
......
...@@ -649,7 +649,7 @@ nvkm_clk = { ...@@ -649,7 +649,7 @@ nvkm_clk = {
int int
nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device, nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
int index, bool allow_reclock, struct nvkm_clk *clk) enum nvkm_subdev_type type, int inst, bool allow_reclock, struct nvkm_clk *clk)
{ {
struct nvkm_subdev *subdev = &clk->subdev; struct nvkm_subdev *subdev = &clk->subdev;
struct nvkm_bios *bios = device->bios; struct nvkm_bios *bios = device->bios;
...@@ -657,7 +657,7 @@ nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device, ...@@ -657,7 +657,7 @@ nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
const char *mode; const char *mode;
struct nvbios_vpstate_header h; struct nvbios_vpstate_header h;
nvkm_subdev_ctor(&nvkm_clk, device, index, subdev); nvkm_subdev_ctor(&nvkm_clk, device, type, inst, subdev);
if (bios && !nvbios_vpstate_parse(bios, &h)) { if (bios && !nvbios_vpstate_parse(bios, &h)) {
struct nvbios_vpstate_entry base, boost; struct nvbios_vpstate_entry base, boost;
...@@ -716,9 +716,9 @@ nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device, ...@@ -716,9 +716,9 @@ nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device,
int int
nvkm_clk_new_(const struct nvkm_clk_func *func, struct nvkm_device *device, nvkm_clk_new_(const struct nvkm_clk_func *func, struct nvkm_device *device,
int index, bool allow_reclock, struct nvkm_clk **pclk) enum nvkm_subdev_type type, int inst, bool allow_reclock, struct nvkm_clk **pclk)
{ {
if (!(*pclk = kzalloc(sizeof(**pclk), GFP_KERNEL))) if (!(*pclk = kzalloc(sizeof(**pclk), GFP_KERNEL)))
return -ENOMEM; return -ENOMEM;
return nvkm_clk_ctor(func, device, index, allow_reclock, *pclk); return nvkm_clk_ctor(func, device, type, inst, allow_reclock, *pclk);
} }
...@@ -41,8 +41,8 @@ g84_clk = { ...@@ -41,8 +41,8 @@ g84_clk = {
}; };
int int
g84_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) g84_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_clk **pclk)
{ {
return nv50_clk_new_(&g84_clk, device, index, return nv50_clk_new_(&g84_clk, device, type, inst, (device->chipset >= 0x94), pclk);
(device->chipset >= 0x94), pclk);
} }
...@@ -468,7 +468,8 @@ gf100_clk = { ...@@ -468,7 +468,8 @@ gf100_clk = {
}; };
int int
gf100_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) gf100_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_clk **pclk)
{ {
struct gf100_clk *clk; struct gf100_clk *clk;
...@@ -476,5 +477,5 @@ gf100_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) ...@@ -476,5 +477,5 @@ gf100_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk)
return -ENOMEM; return -ENOMEM;
*pclk = &clk->base; *pclk = &clk->base;
return nvkm_clk_ctor(&gf100_clk, device, index, false, &clk->base); return nvkm_clk_ctor(&gf100_clk, device, type, inst, false, &clk->base);
} }
...@@ -504,7 +504,8 @@ gk104_clk = { ...@@ -504,7 +504,8 @@ gk104_clk = {
}; };
int int
gk104_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) gk104_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_clk **pclk)
{ {
struct gk104_clk *clk; struct gk104_clk *clk;
...@@ -512,5 +513,5 @@ gk104_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) ...@@ -512,5 +513,5 @@ gk104_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk)
return -ENOMEM; return -ENOMEM;
*pclk = &clk->base; *pclk = &clk->base;
return nvkm_clk_ctor(&gk104_clk, device, index, true, &clk->base); return nvkm_clk_ctor(&gk104_clk, device, type, inst, true, &clk->base);
} }
...@@ -610,10 +610,9 @@ gk20a_clk = { ...@@ -610,10 +610,9 @@ gk20a_clk = {
}; };
int int
gk20a_clk_ctor(struct nvkm_device *device, int index, gk20a_clk_ctor(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
const struct nvkm_clk_func *func, const struct nvkm_clk_func *func, const struct gk20a_clk_pllg_params *params,
const struct gk20a_clk_pllg_params *params, struct gk20a_clk *clk)
struct gk20a_clk *clk)
{ {
struct nvkm_device_tegra *tdev = device->func->tegra(device); struct nvkm_device_tegra *tdev = device->func->tegra(device);
int ret; int ret;
...@@ -628,7 +627,7 @@ gk20a_clk_ctor(struct nvkm_device *device, int index, ...@@ -628,7 +627,7 @@ gk20a_clk_ctor(struct nvkm_device *device, int index,
clk->params = params; clk->params = params;
clk->parent_rate = clk_get_rate(tdev->clk); clk->parent_rate = clk_get_rate(tdev->clk);
ret = nvkm_clk_ctor(func, device, index, true, &clk->base); ret = nvkm_clk_ctor(func, device, type, inst, true, &clk->base);
if (ret) if (ret)
return ret; return ret;
...@@ -639,7 +638,8 @@ gk20a_clk_ctor(struct nvkm_device *device, int index, ...@@ -639,7 +638,8 @@ gk20a_clk_ctor(struct nvkm_device *device, int index,
} }
int int
gk20a_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) gk20a_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_clk **pclk)
{ {
struct gk20a_clk *clk; struct gk20a_clk *clk;
int ret; int ret;
...@@ -649,11 +649,9 @@ gk20a_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) ...@@ -649,11 +649,9 @@ gk20a_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk)
return -ENOMEM; return -ENOMEM;
*pclk = &clk->base; *pclk = &clk->base;
ret = gk20a_clk_ctor(device, index, &gk20a_clk, &gk20a_pllg_params, ret = gk20a_clk_ctor(device, type, inst, &gk20a_clk, &gk20a_pllg_params, clk);
clk);
clk->pl_to_div = pl_to_div; clk->pl_to_div = pl_to_div;
clk->div_to_pl = div_to_pl; clk->div_to_pl = div_to_pl;
return ret; return ret;
} }
...@@ -146,8 +146,8 @@ gk20a_pllg_n_lo(struct gk20a_clk *clk, struct gk20a_pll *pll) ...@@ -146,8 +146,8 @@ gk20a_pllg_n_lo(struct gk20a_clk *clk, struct gk20a_pll *pll)
clk->parent_rate / KHZ); clk->parent_rate / KHZ);
} }
int gk20a_clk_ctor(struct nvkm_device *, int, const struct nvkm_clk_func *, int gk20a_clk_ctor(struct nvkm_device *, enum nvkm_subdev_type, int, const struct nvkm_clk_func *,
const struct gk20a_clk_pllg_params *, struct gk20a_clk *); const struct gk20a_clk_pllg_params *, struct gk20a_clk *);
void gk20a_clk_fini(struct nvkm_clk *); void gk20a_clk_fini(struct nvkm_clk *);
int gk20a_clk_read(struct nvkm_clk *, enum nv_clk_src); int gk20a_clk_read(struct nvkm_clk *, enum nv_clk_src);
int gk20a_clk_calc(struct nvkm_clk *, struct nvkm_cstate *); int gk20a_clk_calc(struct nvkm_clk *, struct nvkm_cstate *);
......
...@@ -908,7 +908,7 @@ gm20b_clk = { ...@@ -908,7 +908,7 @@ gm20b_clk = {
}; };
static int static int
gm20b_clk_new_speedo0(struct nvkm_device *device, int index, gm20b_clk_new_speedo0(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_clk **pclk) struct nvkm_clk **pclk)
{ {
struct gk20a_clk *clk; struct gk20a_clk *clk;
...@@ -919,12 +919,9 @@ gm20b_clk_new_speedo0(struct nvkm_device *device, int index, ...@@ -919,12 +919,9 @@ gm20b_clk_new_speedo0(struct nvkm_device *device, int index,
return -ENOMEM; return -ENOMEM;
*pclk = &clk->base; *pclk = &clk->base;
ret = gk20a_clk_ctor(device, index, &gm20b_clk_speedo0, ret = gk20a_clk_ctor(device, type, inst, &gm20b_clk_speedo0, &gm20b_pllg_params, clk);
&gm20b_pllg_params, clk);
clk->pl_to_div = pl_to_div; clk->pl_to_div = pl_to_div;
clk->div_to_pl = div_to_pl; clk->div_to_pl = div_to_pl;
return ret; return ret;
} }
...@@ -1014,7 +1011,8 @@ gm20b_clk_init_safe_fmax(struct gm20b_clk *clk) ...@@ -1014,7 +1011,8 @@ gm20b_clk_init_safe_fmax(struct gm20b_clk *clk)
} }
int int
gm20b_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) gm20b_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_clk **pclk)
{ {
struct nvkm_device_tegra *tdev = device->func->tegra(device); struct nvkm_device_tegra *tdev = device->func->tegra(device);
struct gm20b_clk *clk; struct gm20b_clk *clk;
...@@ -1024,7 +1022,7 @@ gm20b_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) ...@@ -1024,7 +1022,7 @@ gm20b_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk)
/* Speedo 0 GPUs cannot use noise-aware PLL */ /* Speedo 0 GPUs cannot use noise-aware PLL */
if (tdev->gpu_speedo_id == 0) if (tdev->gpu_speedo_id == 0)
return gm20b_clk_new_speedo0(device, index, pclk); return gm20b_clk_new_speedo0(device, type, inst, pclk);
/* Speedo >= 1, use NAPLL */ /* Speedo >= 1, use NAPLL */
clk = kzalloc(sizeof(*clk) + sizeof(*clk_params), GFP_KERNEL); clk = kzalloc(sizeof(*clk) + sizeof(*clk_params), GFP_KERNEL);
...@@ -1036,8 +1034,7 @@ gm20b_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) ...@@ -1036,8 +1034,7 @@ gm20b_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk)
/* duplicate the clock parameters since we will patch them below */ /* duplicate the clock parameters since we will patch them below */
clk_params = (void *) (clk + 1); clk_params = (void *) (clk + 1);
*clk_params = gm20b_pllg_params; *clk_params = gm20b_pllg_params;
ret = gk20a_clk_ctor(device, index, &gm20b_clk, clk_params, ret = gk20a_clk_ctor(device, type, inst, &gm20b_clk, clk_params, &clk->base);
&clk->base);
if (ret) if (ret)
return ret; return ret;
...@@ -1050,7 +1047,7 @@ gm20b_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) ...@@ -1050,7 +1047,7 @@ gm20b_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk)
if (clk_params->max_m == 0) { if (clk_params->max_m == 0) {
nvkm_warn(subdev, "cannot use NAPLL, using legacy clock...\n"); nvkm_warn(subdev, "cannot use NAPLL, using legacy clock...\n");
kfree(clk); kfree(clk);
return gm20b_clk_new_speedo0(device, index, pclk); return gm20b_clk_new_speedo0(device, type, inst, pclk);
} }
clk->base.pl_to_div = pl_to_div; clk->base.pl_to_div = pl_to_div;
......
...@@ -537,7 +537,8 @@ gt215_clk = { ...@@ -537,7 +537,8 @@ gt215_clk = {
}; };
int int
gt215_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) gt215_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_clk **pclk)
{ {
struct gt215_clk *clk; struct gt215_clk *clk;
...@@ -545,5 +546,5 @@ gt215_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) ...@@ -545,5 +546,5 @@ gt215_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk)
return -ENOMEM; return -ENOMEM;
*pclk = &clk->base; *pclk = &clk->base;
return nvkm_clk_ctor(&gt215_clk, device, index, true, &clk->base); return nvkm_clk_ctor(&gt215_clk, device, type, inst, true, &clk->base);
} }
...@@ -409,7 +409,8 @@ mcp77_clk = { ...@@ -409,7 +409,8 @@ mcp77_clk = {
}; };
int int
mcp77_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) mcp77_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_clk **pclk)
{ {
struct mcp77_clk *clk; struct mcp77_clk *clk;
...@@ -417,5 +418,5 @@ mcp77_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) ...@@ -417,5 +418,5 @@ mcp77_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk)
return -ENOMEM; return -ENOMEM;
*pclk = &clk->base; *pclk = &clk->base;
return nvkm_clk_ctor(&mcp77_clk, device, index, true, &clk->base); return nvkm_clk_ctor(&mcp77_clk, device, type, inst, true, &clk->base);
} }
...@@ -72,9 +72,10 @@ nv04_clk = { ...@@ -72,9 +72,10 @@ nv04_clk = {
}; };
int int
nv04_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) nv04_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_clk **pclk)
{ {
int ret = nvkm_clk_new_(&nv04_clk, device, index, false, pclk); int ret = nvkm_clk_new_(&nv04_clk, device, type, inst, false, pclk);
if (ret == 0) { if (ret == 0) {
(*pclk)->pll_calc = nv04_clk_pll_calc; (*pclk)->pll_calc = nv04_clk_pll_calc;
(*pclk)->pll_prog = nv04_clk_pll_prog; (*pclk)->pll_prog = nv04_clk_pll_prog;
......
...@@ -218,7 +218,8 @@ nv40_clk = { ...@@ -218,7 +218,8 @@ nv40_clk = {
}; };
int int
nv40_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) nv40_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_clk **pclk)
{ {
struct nv40_clk *clk; struct nv40_clk *clk;
...@@ -228,5 +229,5 @@ nv40_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) ...@@ -228,5 +229,5 @@ nv40_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk)
clk->base.pll_prog = nv04_clk_pll_prog; clk->base.pll_prog = nv04_clk_pll_prog;
*pclk = &clk->base; *pclk = &clk->base;
return nvkm_clk_ctor(&nv40_clk, device, index, true, &clk->base); return nvkm_clk_ctor(&nv40_clk, device, type, inst, true, &clk->base);
} }
...@@ -507,14 +507,14 @@ nv50_clk_tidy(struct nvkm_clk *base) ...@@ -507,14 +507,14 @@ nv50_clk_tidy(struct nvkm_clk *base)
int int
nv50_clk_new_(const struct nvkm_clk_func *func, struct nvkm_device *device, nv50_clk_new_(const struct nvkm_clk_func *func, struct nvkm_device *device,
int index, bool allow_reclock, struct nvkm_clk **pclk) enum nvkm_subdev_type type, int inst, bool allow_reclock, struct nvkm_clk **pclk)
{ {
struct nv50_clk *clk; struct nv50_clk *clk;
int ret; int ret;
if (!(clk = kzalloc(sizeof(*clk), GFP_KERNEL))) if (!(clk = kzalloc(sizeof(*clk), GFP_KERNEL)))
return -ENOMEM; return -ENOMEM;
ret = nvkm_clk_ctor(func, device, index, allow_reclock, &clk->base); ret = nvkm_clk_ctor(func, device, type, inst, allow_reclock, &clk->base);
*pclk = &clk->base; *pclk = &clk->base;
if (ret) if (ret)
return ret; return ret;
...@@ -555,7 +555,8 @@ nv50_clk = { ...@@ -555,7 +555,8 @@ nv50_clk = {
}; };
int int
nv50_clk_new(struct nvkm_device *device, int index, struct nvkm_clk **pclk) nv50_clk_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_clk **pclk)
{ {
return nv50_clk_new_(&nv50_clk, device, index, false, pclk); return nv50_clk_new_(&nv50_clk, device, type, inst, false, pclk);
} }
...@@ -20,7 +20,7 @@ struct nv50_clk { ...@@ -20,7 +20,7 @@ struct nv50_clk {
struct nv50_clk_hwsq hwsq; struct nv50_clk_hwsq hwsq;
}; };
int nv50_clk_new_(const struct nvkm_clk_func *, struct nvkm_device *, int, int nv50_clk_new_(const struct nvkm_clk_func *, struct nvkm_device *, enum nvkm_subdev_type, int,
bool, struct nvkm_clk **); bool, struct nvkm_clk **);
int nv50_clk_read(struct nvkm_clk *, enum nv_clk_src); int nv50_clk_read(struct nvkm_clk *, enum nv_clk_src);
int nv50_clk_calc(struct nvkm_clk *, struct nvkm_cstate *); int nv50_clk_calc(struct nvkm_clk *, struct nvkm_cstate *);
......
...@@ -16,9 +16,9 @@ struct nvkm_clk_func { ...@@ -16,9 +16,9 @@ struct nvkm_clk_func {
struct nvkm_domain domains[]; struct nvkm_domain domains[];
}; };
int nvkm_clk_ctor(const struct nvkm_clk_func *, struct nvkm_device *, int, int nvkm_clk_ctor(const struct nvkm_clk_func *, struct nvkm_device *, enum nvkm_subdev_type, int,
bool allow_reclock, struct nvkm_clk *); bool allow_reclock, struct nvkm_clk *);
int nvkm_clk_new_(const struct nvkm_clk_func *, struct nvkm_device *, int, int nvkm_clk_new_(const struct nvkm_clk_func *, struct nvkm_device *, enum nvkm_subdev_type, int,
bool allow_reclock, struct nvkm_clk **); bool allow_reclock, struct nvkm_clk **);
int nv04_clk_pll_calc(struct nvkm_clk *, struct nvbios_pll *, int clk, int nv04_clk_pll_calc(struct nvkm_clk *, struct nvbios_pll *, int clk,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment