search for: nouveau_subdev_create_

Displaying 20 results from an estimated 20 matches for "nouveau_subdev_create_".

2014 Feb 01
0
[RFC 06/16] drm/nouveau/bar: only ioremap BAR3 if it exists
...ev/bar/base.c +++ b/drivers/gpu/drm/nouveau/core/subdev/bar/base.c @@ -110,6 +110,7 @@ nouveau_bar_create_(struct nouveau_object *parent, { struct nouveau_device *device = nv_device(parent); struct nouveau_bar *bar; + bool has_bar3 = nv_device_resource_len(device, 3) != 0; int ret; ret = nouveau_subdev_create_(parent, engine, oclass, 0, "BARCTL", @@ -118,8 +119,10 @@ nouveau_bar_create_(struct nouveau_object *parent, if (ret) return ret; - bar->iomem = ioremap(nv_device_resource_start(device, 3), - nv_device_resource_len(device, 3)); + if (has_bar3) + bar->iomem = ioremap(n...
2014 Mar 24
0
[PATCH 03/12] drm/nouveau/bar: only ioremap BAR3 if it exists
...ev/bar/base.c +++ b/drivers/gpu/drm/nouveau/core/subdev/bar/base.c @@ -110,6 +110,7 @@ nouveau_bar_create_(struct nouveau_object *parent, { struct nouveau_device *device = nv_device(parent); struct nouveau_bar *bar; + bool has_bar3 = nv_device_resource_len(device, 3) != 0; int ret; ret = nouveau_subdev_create_(parent, engine, oclass, 0, "BARCTL", @@ -118,8 +119,10 @@ nouveau_bar_create_(struct nouveau_object *parent, if (ret) return ret; - bar->iomem = ioremap(nv_device_resource_start(device, 3), - nv_device_resource_len(device, 3)); + if (has_bar3) + bar->iomem = ioremap(n...
2014 Nov 28
0
[RESEND PATCH nouveau 2/3] volt: allow non-bios voltage scaling
...u_object *object) { @@ -136,10 +171,6 @@ nouveau_volt_create_(struct nouveau_object *parent, { struct nouveau_bios *bios = nouveau_bios(parent); struct nouveau_volt *volt; - struct nvbios_volt_entry ivid; - struct nvbios_volt info; - u8 ver, hdr, cnt, len; - u16 data; int ret, i; ret = nouveau_subdev_create_(parent, engine, oclass, 0, "VOLT", @@ -152,31 +183,9 @@ nouveau_volt_create_(struct nouveau_object *parent, volt->set = nouveau_volt_set; volt->set_id = nouveau_volt_set_id; - data = nvbios_volt_parse(bios, &ver, &hdr, &cnt, &len, &info); - if (data &&a...
2014 Aug 24
0
[PATCH 1/3] subdev: add a pfuse subdev
...y(&fuse->base); > +} > + > +int > +nouveau_fuse_create_(struct nouveau_object *parent, > + struct nouveau_object *engine, > + struct nouveau_oclass *oclass, int length, void **pobject) > +{ > + struct nouveau_fuse *fuse; > + int ret; > + > + ret = nouveau_subdev_create_(parent, engine, oclass, 0, "FUSE", > + "fuse", length, pobject); ^^^^^^^ I think you want to use &fuse here ? > + fuse = *pobject; Swap the assignment order and move it past the condit...
2013 Feb 03
1
3.8-rc6: nouveau lockdep recursive lock acquisition
>From recent additional locking in nouveau, it looks like we see recursive lock acquisition in 3.8-rc6: nouveau [ DEVICE][0000:01:00.0] BOOT0 : 0x0e7150a2 nouveau [ DEVICE][0000:01:00.0] Chipset: GK107 (NVE7) nouveau [ DEVICE][0000:01:00.0] Family : NVE0 nouveau [ VBIOS][0000:01:00.0] checking PRAMIN for image... nouveau [ VBIOS][0000:01:00.0] ... appears to be valid nouveau [
2014 Jan 10
2
[PATCH 1/3] drm/nouveau: provide a way for devinit to mark engines as disabled
...4 --- a/drivers/gpu/drm/nouveau/core/core/engine.c +++ b/drivers/gpu/drm/nouveau/core/core/engine.c @@ -34,6 +34,7 @@ nouveau_engine_create_(struct nouveau_object *parent, int length, void **pobject) { struct nouveau_engine *engine; + struct nouveau_device *device; int ret; ret = nouveau_subdev_create_(parent, engobj, oclass, NV_ENGINE_CLASS, @@ -42,11 +43,21 @@ nouveau_engine_create_(struct nouveau_object *parent, if (ret) return ret; - if ( parent && - !nouveau_boolopt(nv_device(parent)->cfgopt, iname, enable)) { - if (!enable) - nv_warn(engine, "disabled, %s=1 to...
2014 Nov 28
2
[PATCH 1/2] volt: allow non-bios voltage scaling
...u_object *object) { @@ -136,10 +171,6 @@ nouveau_volt_create_(struct nouveau_object *parent, { struct nouveau_bios *bios = nouveau_bios(parent); struct nouveau_volt *volt; - struct nvbios_volt_entry ivid; - struct nvbios_volt info; - u8 ver, hdr, cnt, len; - u16 data; int ret, i; ret = nouveau_subdev_create_(parent, engine, oclass, 0, "VOLT", @@ -152,31 +183,9 @@ nouveau_volt_create_(struct nouveau_object *parent, volt->set = nouveau_volt_set; volt->set_id = nouveau_volt_set_id; - data = nvbios_volt_parse(bios, &ver, &hdr, &cnt, &len, &info); - if (data &&a...
2014 Dec 18
2
[RFC PATCH 2/3] dvfs: add support for GK20A
...ruct nouveau_object *parent, > + struct nouveau_object *engine, > + struct nouveau_oclass *oclass, > + int size, void **pobject) > +{ > + struct nouveau_dvfs *dvfs; > + int ret; > + > + ret = nouveau_subdev_create_(parent, engine, oclass, 0, "DVFS", > + "dvfs", size, pobject); > + dvfs = *pobject; > + if (ret) > + return ret; > + > + nouveau_alarm_init(&dvfs->alarm, _nouveau_dvfs_work); > + >...
2014 Dec 01
2
[V3 PATCH 1/3] soc/tegra: fuse: export tegra_sku_info
Some Tegra drivers might be compiled as kernel modules, and they need the fuse information for initialization. One example is the GK20A Nouveau driver. It needs the GPU speedo value to calculate frequency-voltage table. So export the tegra_sku_info. Signed-off-by: Vince Hsu <vinceh at nvidia.com> Acked-by: Alexandre Courbot <acourbot at nvidia.com> Acked-by: Thierry Reding <treding
2014 Dec 18
3
[RFC PATCH 2/3] dvfs: add support for GK20A
...struct nouveau_object *engine, >>> + struct nouveau_oclass *oclass, >>> + int size, void **pobject) >>> +{ >>> + struct nouveau_dvfs *dvfs; >>> + int ret; >>> + >>> + ret = nouveau_subdev_create_(parent, engine, oclass, 0, "DVFS", >>> + "dvfs", size, pobject); >>> + dvfs = *pobject; >>> + if (ret) >>> + return ret; >>> + >>> + nouveau_alarm_init(&d...
2014 Dec 02
3
[V3 PATCH 1/4] soc/tegra: fuse: export tegra_sku_info
Some Tegra drivers might be compiled as kernel modules, and they need the fuse information for initialization. One example is the GK20A Nouveau driver. It needs the GPU speedo value to calculate frequency-voltage table. So export the tegra_sku_info. Signed-off-by: Vince Hsu <vinceh at nvidia.com> Acked-by: Alexandre Courbot <acourbot at nvidia.com> Acked-by: Thierry Reding <treding
2014 Dec 18
4
[RFC PATCH 0/3] introduce DVFS for GK20A
Hi, This is a try to have some simple DVFS (Dynamic Voltage and Frequency Scaling) support for GK20A. Instead of relying on other existing frequency scaling framework, we create a simple subdev in Nouveau for the same purpose. That's because we don't want to make the DVFS implementation for GK20A far more than enough in the beginning and hinder the implementation for dGPU in the future.
2014 Aug 24
8
[PATCH 1/3] subdev: add a pfuse subdev
...au_fuse *fuse = (void *)object; + nouveau_subdev_destroy(&fuse->base); +} + +int +nouveau_fuse_create_(struct nouveau_object *parent, + struct nouveau_object *engine, + struct nouveau_oclass *oclass, int length, void **pobject) +{ + struct nouveau_fuse *fuse; + int ret; + + ret = nouveau_subdev_create_(parent, engine, oclass, 0, "FUSE", + "fuse", length, pobject); + fuse = *pobject; + if (ret) + return ret; + + return ret; +} diff --git a/nvkm/subdev/fuse/g80.c b/nvkm/subdev/fuse/g80.c new file mode 100644 index 0000000..31ab5c7 --- /dev/null +++ b/nvkm/subdev/fuse/g8...
2014 Dec 18
0
[RFC PATCH 2/3] dvfs: add support for GK20A
...ouveau_dvfs *dvfs = (void *)object; + + nouveau_subdev_destroy(&dvfs->base); +} + +int +nouveau_dvfs_create_(struct nouveau_object *parent, + struct nouveau_object *engine, + struct nouveau_oclass *oclass, + int size, void **pobject) +{ + struct nouveau_dvfs *dvfs; + int ret; + + ret = nouveau_subdev_create_(parent, engine, oclass, 0, "DVFS", + "dvfs", size, pobject); + dvfs = *pobject; + if (ret) + return ret; + + nouveau_alarm_init(&dvfs->alarm, _nouveau_dvfs_work); + + return 0; +} diff --git a/nvkm/subdev/dvfs/gk20a.c b/nvkm/subdev/dvfs/gk20a.c new file mode 1006...
2014 Dec 18
0
[RFC PATCH 2/3] dvfs: add support for GK20A
...;> + struct nouveau_object *engine, >> + struct nouveau_oclass *oclass, >> + int size, void **pobject) >> +{ >> + struct nouveau_dvfs *dvfs; >> + int ret; >> + >> + ret = nouveau_subdev_create_(parent, engine, oclass, 0, "DVFS", >> + "dvfs", size, pobject); >> + dvfs = *pobject; >> + if (ret) >> + return ret; >> + >> + nouveau_alarm_init(&dvfs->alarm, _nouveau_...
2014 Dec 18
0
[RFC PATCH 2/3] dvfs: add support for GK20A
...ine, >>>> + struct nouveau_oclass *oclass, >>>> + int size, void **pobject) >>>> +{ >>>> + struct nouveau_dvfs *dvfs; >>>> + int ret; >>>> + >>>> + ret = nouveau_subdev_create_(parent, engine, oclass, 0, "DVFS", >>>> + "dvfs", size, pobject); >>>> + dvfs = *pobject; >>>> + if (ret) >>>> + return ret; >>>> + >>>> + n...
2014 Nov 28
8
[RESEND V2 PATCH 1/3] soc/tegra: fuse: export tegra_sku_info for module use
Some Tegra drivers might be complied as kernel modules, and they need the fuse information for initialization. One example is the GK20A Nouveau driver. It needs the GPU speedo value to calculate frequency-voltage table. So export the tegra_sku_info. Signed-off-by: Vince Hsu <vinceh at nvidia.com> --- v2: add more description why we need this patch drivers/soc/tegra/fuse/fuse-tegra.c | 1
2014 Aug 24
0
[PATCH 1/3] subdev: add a pfuse subdev
...y(&fuse->base); > +} > + > +int > +nouveau_fuse_create_(struct nouveau_object *parent, > + struct nouveau_object *engine, > + struct nouveau_oclass *oclass, int length, void **pobject) > +{ > + struct nouveau_fuse *fuse; > + int ret; > + > + ret = nouveau_subdev_create_(parent, engine, oclass, 0, "FUSE", > + "fuse", length, pobject); > + fuse = *pobject; > + if (ret) > + return ret; > + > + return ret; > +} > diff --git a/nvkm/subdev/fuse/g80.c b/nvkm/subdev/fuse/g80.c > new file mode 100644 > index 000000...
2014 Mar 24
27
[PATCH 00/12] drm/nouveau: support for GK20A, cont'd
Hi everyone, Here is the second batch of patches to add GK20A support to Nouveau. This time we are adding the actual chip support, and this series brings the driver to a point where a slightly-tweaked Mesa successfully runs shaders and renders triangles on GBM! Many thanks to Thierry Reding and the people on the #nouveau IRC channel for their help without which we would not have reached this
2014 Feb 01
28
[RFC 00/16] drm/nouveau: initial support for GK20A (Tegra K1)
Hello everyone, GK20A is the Kepler-based GPU used in the upcoming Tegra K1 chips. The following patches perform architectural changes to Nouveau that are necessary to support non-PCI GPUs and add initial support for GK20A. Although the support is still very basic and more user-space changes will be needed to make the full graphics stack run on top of it, we were able to successfully open