search for: nvkm_subdev_ctor

Displaying 20 results from an estimated 55 matches for "nvkm_subdev_ctor".

2016 Jan 21
2
[PATCH v2 2/5] core: add support for secure boot
...D] = "<invalid>", > +}; > + [snip] > +int > +nvkm_secboot_ctor(const struct nvkm_secboot_func *func, > + struct nvkm_device *device, int index, > + struct nvkm_secboot *sb) > +{ > + unsigned long fid; > + > + nvkm_subdev_ctor(&nvkm_secboot, device, index, 0, &sb->subdev); > + sb->func = func; > + Move these two after the switch statement ? > + /* setup the performing falcon's base address and masks */ > + switch (func->boot_falcon) { > + case NVKM_SECBOOT_FALC...
2015 Dec 02
2
[RFC PATCH 4/5] subdev/clk: print the base clocks
...gt; nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device, > int index, bool allow_reclock, struct nvkm_clk *clk) > { > + struct nvkm_bios *bios; > int ret, idx, arglen; > const char *mode; > + struct nvbios_baseclock_header header; > > nvkm_subdev_ctor(&nvkm_clk, device, index, 0, &clk->subdev); > + bios = device->bios; > + > + if (bios && !nvbios_baseclock_parse(bios, &header)) { > + struct nvbios_baseclock_entry base_entry, boost_entry; > + if (nvbios_baseclock_get_entry(bios, &header, header.base_...
2016 Mar 17
0
[PATCH 04/19] clk: print the base clocks
...t struct nvkm_clk_func *func, struct nvkm_device *device, int index, bool allow_reclock, struct nvkm_clk *clk) { + struct nvkm_subdev *subdev = &clk->subdev; + struct nvkm_bios *bios = device->bios; int ret, idx, arglen; const char *mode; + struct nvbios_baseclk_header h; + + nvkm_subdev_ctor(&nvkm_clk, device, index, 0, subdev); + + if (bios && !nvbios_baseclock_parse(bios, &h)) { + struct nvbios_baseclk_entry base, boost; + if (!nvbios_baseclock_entry(bios, &h, h.boost, &boost)) + nvkm_info(subdev, "boost: %i MHz\n", + boost.clock_mhz / 2); +...
2016 Apr 18
0
[PATCH v4 15/37] clk: allow boosting only when NvBoost is set
...t struct nvkm_clk_func *func, struct nvkm_device *device, int index, bool allow_reclock, struct nvkm_clk *clk) { + struct nvkm_subdev *subdev = &clk->subdev; + struct nvkm_bios *bios = device->bios; int ret, idx, arglen; const char *mode; + struct nvbios_baseclk_header h; + + nvkm_subdev_ctor(&nvkm_clk, device, index, subdev); + + clk->boost_mode = nvkm_longopt(device->cfgopt, "NvBoost", + NVKM_CLK_BOOST_AVG); + if (bios && !nvbios_baseclock_parse(bios, &h)) { + struct nvbios_baseclk_entry base, boost; + if (!nvbios_baseclock_entry(bios, &...
2015 Sep 03
5
[PATCH 0/2] two trivial PMU fixes
Two trivial PMU-related fixes for Tegra: - Add a dummy func member to GK20A, since nvkm_pmmu_pgob() unconditionally dereferences it - Check whether a PMU actually exists before calling nvkm_pmmu_pgob(). During early bringup we are likely to not have a PMU Alexandre Courbot (2): pmu/gk20a: add dummy func gr/gf100: do not assume a PMU is present drm/nouveau/nvkm/engine/gr/gf100.c | 3 ++-
2015 Sep 23
3
[PATCH] ibus/gf100: increase wait timeout to avoid read faults
...m_subdev_func +gf117_ibus = { + .init = gf117_ibus_init, + .intr = gf100_ibus_intr, +}; + +int +gf117_ibus_new(struct nvkm_device *device, int index, + struct nvkm_subdev **pibus) +{ + struct nvkm_subdev *ibus; + if (!(ibus = *pibus = kzalloc(sizeof(*ibus), GFP_KERNEL))) + return -ENOMEM; + nvkm_subdev_ctor(&gf117_ibus, device, index, 0, ibus); + return 0; +} diff --git a/drm/nouveau/nvkm/subdev/ibus/priv.h b/drm/nouveau/nvkm/subdev/ibus/priv.h new file mode 100644 index 0000000..48e1b63 --- /dev/null +++ b/drm/nouveau/nvkm/subdev/ibus/priv.h @@ -0,0 +1,7 @@ +#ifndef __NVKM_IBUS_PRIV_H__ +#define...
2015 Dec 01
0
[RFC PATCH 4/5] subdev/clk: print the base clocks
...v/bios/perf.h> @@ -562,10 +563,25 @@ int nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device, int index, bool allow_reclock, struct nvkm_clk *clk) { + struct nvkm_bios *bios; int ret, idx, arglen; const char *mode; + struct nvbios_baseclock_header header; nvkm_subdev_ctor(&nvkm_clk, device, index, 0, &clk->subdev); + bios = device->bios; + + if (bios && !nvbios_baseclock_parse(bios, &header)) { + struct nvbios_baseclock_entry base_entry, boost_entry; + if (nvbios_baseclock_get_entry(bios, &header, header.base_entry, &base_entry))...
2015 Dec 02
0
[RFC PATCH 4/5] subdev/clk: print the base clocks
...struct nvkm_clk_func *func, struct nvkm_device *device, > > int index, bool allow_reclock, struct nvkm_clk *clk) > > { > > + struct nvkm_bios *bios; > > int ret, idx, arglen; > > const char *mode; > > + struct nvbios_baseclock_header header; > > > > nvkm_subdev_ctor(&amp;nvkm_clk, device, index, 0, &amp;clk->subdev); > > + bios = device->bios; > > + > > + if (bios &amp;&amp; !nvbios_baseclock_parse(bios, &amp;header)) { > > + struct nvbios_baseclock_entry base_entry, boost_entry; > > + if (nvbios_basecloc...
2016 Jan 21
0
[PATCH v2 2/5] core: add support for secure boot
...;> + > > [snip] >> +int >> +nvkm_secboot_ctor(const struct nvkm_secboot_func *func, >> + struct nvkm_device *device, int index, >> + struct nvkm_secboot *sb) >> +{ >> + unsigned long fid; >> + >> + nvkm_subdev_ctor(&nvkm_secboot, device, index, 0, &sb->subdev); >> + sb->func = func; >> + > Move these two after the switch statement ? They need to be done here to make the failure path cleanup stuff work correctly, so it's correct as-is. > >> + /* setup the...
2016 Dec 13
0
[PATCH v2 5/15] pmu: add nvkm_pmu_ctor() function
...truct nvkm_device *device, - int index, struct nvkm_pmu **ppmu) +void +nvkm_pmu_ctor(const struct nvkm_pmu_func *func, struct nvkm_device *device, + int index, struct nvkm_pmu *pmu) { - struct nvkm_pmu *pmu; - if (!(pmu = *ppmu = kzalloc(sizeof(*pmu), GFP_KERNEL))) - return -ENOMEM; nvkm_subdev_ctor(&nvkm_pmu, device, index, &pmu->subdev); pmu->func = func; INIT_WORK(&pmu->recv.work, nvkm_pmu_recv); @@ -143,5 +140,17 @@ nvkm_pmu_new_(const struct nvkm_pmu_func *func, struct nvkm_device *device, nvkm_falcon_ctor(&pmu->subdev, &nvkm_falcon_v1_func, "PMU...
2020 Jul 27
0
[PATCH] drm/nouveau: add config NvForceGpioReset
...devinit/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.c index 4756019ddf3f..ddec3c16150f 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.c @@ -133,4 +133,6 @@ nvkm_devinit_ctor(const struct nvkm_devinit_func *func, nvkm_subdev_ctor(&nvkm_devinit, device, index, &init->subdev); init->func = func; init->force_post = nvkm_boolopt(device->cfgopt, "NvForcePost", false); + init->force_gpio_reset = nvkm_boolopt( + device->cfgopt, "NvForceGpioReset", false); } -- 2.27.0
2016 Jan 21
2
[PATCH v2 2/5] core: add support for secure boot
...t;> +int >>> +nvkm_secboot_ctor(const struct nvkm_secboot_func *func, >>> + struct nvkm_device *device, int index, >>> + struct nvkm_secboot *sb) >>> +{ >>> + unsigned long fid; >>> + >>> + nvkm_subdev_ctor(&nvkm_secboot, device, index, 0, &sb->subdev); >>> + sb->func = func; >>> + >> Move these two after the switch statement ? > They need to be done here to make the failure path cleanup stuff work > correctly, so it's correct as-is. > | always...
2016 Apr 01
0
[PATCH] devinit/gf100: make devinit on resume safer
...Post is set */ + if (init->force_post) { + init->post = init->force_post; + init->force_post = false; + } + /* unlock the extended vga crtc regs */ nvkm_lockvgac(subdev->device, false); return 0; @@ -126,5 +132,5 @@ nvkm_devinit_ctor(const struct nvkm_devinit_func *func, { nvkm_subdev_ctor(&nvkm_devinit, device, index, 0, &init->subdev); init->func = func; - init->post = nvkm_boolopt(device->cfgopt, "NvForcePost", false); + init->force_post = nvkm_boolopt(device->cfgopt, "NvForcePost", false); } diff --git a/drm/nouveau/nvkm/subdev/dev...
2016 Mar 17
0
[PATCH 05/19] clk: allow boosting only when NvBoost is set
...list_add(&cstate->head, &pstate->list); return 0; +err: + kfree(cstate); + return -EINVAL; } /****************************************************************************** @@ -570,14 +585,21 @@ nvkm_clk_ctor(const struct nvkm_clk_func *func, struct nvkm_device *device, nvkm_subdev_ctor(&nvkm_clk, device, index, 0, subdev); + clk->boost_mode = nvkm_longopt(device->cfgopt, "NvBoost", + NVKM_CLK_BOOST_AVG); if (bios && !nvbios_baseclock_parse(bios, &h)) { struct nvbios_baseclk_entry base, boost; - if (!nvbios_baseclock_entry(bios, &a...
2016 Mar 17
22
[PATCH 00/19] Volting/Clocking improvements for Fermi and newer
This series fixes most of the issues regarding volting on GPUs with any form of GPU Boost inside their vbios, which is mainly Kepler and newer, but we find some boosting related tables in Fermi vbios' already In the end reclocking should work on most Kepler cards without any issues Karol Herbst (19): bios/volt: handle voltage table version 0x50 with 0ed header volt: properly detect entry
2016 Feb 29
9
[PATCH 0/9] Groundwork for clocking fixes
This series contains a lot of groundwork to finally fix reclocking issues on Kepler+ gpus. There shouldn't be any functional changes with the first patch being the only exception (fixes some voltage table parsing issues with of few kepler gpus) The most interessting thing is the tool in the last patch, which can be ran alongside the nvidia driver to test nouveaus volting code and print the
2015 Dec 01
7
[RFC PATCH 0/5] stabilize kepler reclocking
this series solves different issues we encounter on kepler cards while reclocking: 1. core clock doesn't change at all and produces a volting error (patch 1) this can happen when the voltage table has only 0ed values in the header so we have to parse the entries itself, which contain the right voltages 2. kepler won't clock to highest cstates (patch 2) this happens, because there are
2015 Dec 02
11
[RFC PATCH v2 0/7] stabilize kepler reclocking
this series solves different issues we encounter on kepler cards while reclocking: 1. core clock doesn't change at all and produces a volting error (patch 1) this can happen when the voltage table has only 0ed values in the header so we have to parse the entries itself, which contain the right voltages 2. kepler won't clock to highest cstates (patch 2) this happens, because there are
2016 Feb 20
0
[PATCH v4 3/6] iccsense: implement for ina209, ina219 and ina3221
...return iccsense; +} + +struct nvkm_subdev_func iccsense_func = { + .dtor = nvkm_iccsense_dtor, +}; int nvkm_iccsense_ctor(struct nvkm_device *device, int index, struct nvkm_iccsense *iccsense) { + struct nvkm_bios *bios; + struct nvkm_i2c *i2c; + struct nvbios_iccsense stbl; + int i; + nvkm_subdev_ctor(&iccsense_func, device, index, 0, &iccsense->subdev); + bios = device->bios; + i2c = device->i2c; + + if (!i2c || !bios || nvbios_iccsense_parse(bios, &stbl) + || !stbl.nr_entry) + return 0; + + iccsense->rails = kmalloc(sizeof(*iccsense->rails) * stbl.nr_entry, +...
2016 Feb 20
12
[PATCH v4 0/6] Suppor for various power sensors on GF100+
This is a complete rework from the first version I sent out. Now the implementation is more centered around the power_rails we find in the SENSE table instead of extdev centered. This makes the implementation a lot easier and straightforward. I've added support for the INA219, INA209 and INA3221 sensors found on multiple Fermi and Kepler cards. The power consumption is also exported via