search for: nouveau_object_ref

Displaying 17 results from an estimated 17 matches for "nouveau_object_ref".

Did you mean: nouveau_object_new
2014 Jun 17
1
[PATCH] drm/nouveau: fix oops in display destructor with headless cards
...4 --- a/drivers/gpu/drm/nouveau/core/engine/disp/base.c +++ b/drivers/gpu/drm/nouveau/core/engine/disp/base.c @@ -99,8 +99,10 @@ _nouveau_disp_dtor(struct nouveau_object *object) nouveau_event_destroy(&disp->vblank); - list_for_each_entry_safe(outp, outt, &disp->outp, head) { - nouveau_object_ref(NULL, (struct nouveau_object **)&outp); + if (disp->outp.next) { + list_for_each_entry_safe(outp, outt, &disp->outp, head) { + nouveau_object_ref(NULL, (struct nouveau_object **)&outp); + } } nouveau_engine_destroy(&disp->base);
2014 Jun 26
0
[PATCH v3 1/3] drm/nouveau: support for probing platform devices
...id -nouveau_drm_remove(struct pci_dev *pdev) +void +nouveau_drm_device_remove(struct drm_device *dev) { - struct drm_device *dev = pci_get_drvdata(pdev); struct nouveau_drm *drm = nouveau_drm(dev); struct nouveau_object *device; @@ -508,6 +507,15 @@ nouveau_drm_remove(struct pci_dev *pdev) nouveau_object_ref(NULL, &device); nouveau_object_debug(); } +EXPORT_SYMBOL(nouveau_drm_device_remove); + +static void +nouveau_drm_remove(struct pci_dev *pdev) +{ + struct drm_device *dev = pci_get_drvdata(pdev); + + nouveau_drm_device_remove(dev); +} static int nouveau_do_suspend(struct drm_device *dev,...
2014 Jun 26
6
[PATCH v3 0/3] drm/nouveau: support for probing platform devices
This series adds support for probing platform devices on Nouveau, as well as the DT bindings for GK20A. It doesn't enable the GPU yet on Tegra boards since a few extra things need to be supported before that. This version is mostly identical to v2 but fixes an important issue: the drvdata must be set to the drm_device for sysfs to work, so the platform device structure now includes the
2014 Jun 13
3
[PATCH v2 0/3] drm/nouveau: support for probing platform devices
This series adds support for probing platform devices on Nouveau, as well as the DT bindings for GK20A. It doesn't enable the GPU yet on Tegra boards since a few extra things need to be supported before that. Thanks to the input received for v1, this version is more self-contained and shares less stuff between nouveau_drm and nouveau_platform. The major change is that nouveau_platform is now
2014 Jun 26
2
[PATCH v3 1/3] drm/nouveau: support for probing platform devices
...+void > +nouveau_drm_device_remove(struct drm_device *dev) > { > - struct drm_device *dev = pci_get_drvdata(pdev); > struct nouveau_drm *drm = nouveau_drm(dev); > struct nouveau_object *device; > > @@ -508,6 +507,15 @@ nouveau_drm_remove(struct pci_dev *pdev) > nouveau_object_ref(NULL, &device); > nouveau_object_debug(); > } > +EXPORT_SYMBOL(nouveau_drm_device_remove); > + > +static void > +nouveau_drm_remove(struct pci_dev *pdev) > +{ > + struct drm_device *dev = pci_get_drvdata(pdev); > + > + nouveau_drm_device_remove(dev); > +} &...
2015 Jan 15
2
[PATCH] drm: merge nouveau_platform.ko into nouveau.ko
...#include "nouveau_usif.h" #include "nouveau_connector.h" +#include "nouveau_platform.h" MODULE_PARM_DESC(config, "option string to pass to driver core"); static char *nouveau_config; @@ -533,7 +534,6 @@ nouveau_drm_device_remove(struct drm_device *dev) nouveau_object_ref(NULL, &device); nouveau_object_debug(); } -EXPORT_SYMBOL(nouveau_drm_device_remove); static void nouveau_drm_remove(struct pci_dev *pdev) @@ -1083,7 +1083,6 @@ err_free: return ERR_PTR(err); } -EXPORT_SYMBOL(nouveau_platform_device_create_); static int __init nouveau_drm_init(vo...
2014 May 19
10
[PATCH 0/5] drm/nouveau: platform devices and GK20A probing
This patch series is the final (?) step towards the initial support of GK20A, allowing it to be probed and used (currently at a very slow speed, and for offscreen rendering only) on the Jetson TK1 and Venice 2 boards. The main piece if the first patch which adds platform devices probing support to Nouveau. There are probably lots of things that need to be discussed about it, e.g.: * The way the
2014 Feb 01
0
[RFC 03/16] drm/nouveau: add platform device probing function
...atform_device *pdev) +{ + struct nouveau_device *device; + int ret; + + ret = nouveau_device_platform_create(pdev, nouveau_platform_name(pdev), + dev_name(&pdev->dev), nouveau_config, + nouveau_debug, &device); + + ret = drm_platform_init(&driver, pdev); + if (ret) { + nouveau_object_ref(NULL, (struct nouveau_object **)&device); + return ret; + } + + return ret; +} + static int __init nouveau_drm_init(void) { -- 1.8.5.3
2015 Jan 15
0
[PATCH] drm: merge nouveau_platform.ko into nouveau.ko
...; #include "nouveau_connector.h" > +#include "nouveau_platform.h" > > MODULE_PARM_DESC(config, "option string to pass to driver core"); > static char *nouveau_config; > @@ -533,7 +534,6 @@ nouveau_drm_device_remove(struct drm_device *dev) > nouveau_object_ref(NULL, &device); > nouveau_object_debug(); > } > -EXPORT_SYMBOL(nouveau_drm_device_remove); > > static void > nouveau_drm_remove(struct pci_dev *pdev) > @@ -1083,7 +1083,6 @@ err_free: > > return ERR_PTR(err); > } > -EXPORT_SYMBOL(nouveau_plat...
2014 May 16
2
Machine freeze on latest Linus kernel, seems related to nouveau
...ouveau_vm_get+0x1a1/0x2a0 [nouveau] May 16 08:32:14 brouette kernel: [<ffffffffa0501519>] nouveau_bo_vma_add+0x29/0x90 [nouveau] May 16 08:32:14 brouette kernel: [<ffffffffa04fb5e8>] nouveau_channel_prep+0x278/0x360 [nouveau] May 16 08:32:14 brouette kernel: [<ffffffffa047d997>] ? nouveau_object_ref+0x57/0xc0 [nouveau] May 16 08:32:14 brouette kernel: [<ffffffffa04fb708>] nouveau_channel_new+0x38/0x6b0 [nouveau] May 16 08:32:14 brouette kernel: [<ffffffff8106845d>] ? get_parent_ip+0xd/0x50 May 16 08:32:14 brouette kernel: [<ffffffff810ef793>] ? kmem_cache_alloc+0xd3/0xe0 May...
2013 Feb 05
0
[PATCH] drm/nouveau: fix lockdep splat in display
...39;s not possible to allocate the object with it held. */ spin_lock_irqsave(&engine->lock, save); - ret = nouveau_engctx_exists(parent, engine, pobject); + ret = nouveau_engctx_exists(parent, flags, engine, pobject); if (ret) { spin_unlock_irqrestore(&engine->lock, save); nouveau_object_ref(NULL, &engctx); diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nv50.c b/drivers/gpu/drm/nouveau/core/engine/disp/nv50.c index ca1a7d7..1d3dcd0 100644 --- a/drivers/gpu/drm/nouveau/core/engine/disp/nv50.c +++ b/drivers/gpu/drm/nouveau/core/engine/disp/nv50.c @@ -695,9 +695,8 @@ nv50_disp_...
2014 Feb 10
0
[PATCH] drm/nouveau: support for platform devices
...ce *device; > + int ret; > + > + ret = nouveau_device_platform_create(pdev, nouveau_platform_name(pdev), > + dev_name(&pdev->dev), nouveau_config, > + nouveau_debug, &device); > + > + ret = drm_platform_init(&driver, pdev); > + if (ret) { > + nouveau_object_ref(NULL, (struct nouveau_object **)&device); > + return ret; > + } > + > + return ret; > +} I think we should move the whole of gk20a probing into nouveau. Keeping one part in tegra-drm and one part in nouveau is confusing, and I can't see a reason why we'd have to keep it...
2014 Feb 10
2
[PATCH] drm/nouveau: support for platform devices
...atform_device *pdev) +{ + struct nouveau_device *device; + int ret; + + ret = nouveau_device_platform_create(pdev, nouveau_platform_name(pdev), + dev_name(&pdev->dev), nouveau_config, + nouveau_debug, &device); + + ret = drm_platform_init(&driver, pdev); + if (ret) { + nouveau_object_ref(NULL, (struct nouveau_object **)&device); + return ret; + } + + return ret; +} + static int __init nouveau_drm_init(void) { diff --git a/drivers/gpu/drm/nouveau/nouveau_sysfs.c b/drivers/gpu/drm/nouveau/nouveau_sysfs.c index 89201a17ce75..75dda2b07176 100644 --- a/drivers/gpu/drm/nouveau/no...
2014 Feb 11
2
[PATCH] drm/nouveau: support for platform devices
...pdev), >> + dev_name(&pdev->dev), nouveau_config, >> + nouveau_debug, &device); >> + >> + ret = drm_platform_init(&driver, pdev); >> + if (ret) { >> + nouveau_object_ref(NULL, (struct nouveau_object **)&device); >> + return ret; >> + } >> + >> + return ret; >> +} > > I think we should move the whole of gk20a probing into nouveau. Keeping > one part in tegra-drm and one part in nouveau is confusing, and...
2014 Feb 12
0
[PATCH v2] drm/nouveau: support for platform devices
...{ + struct nouveau_device *device; + int ret; + + ret = nouveau_device_create(pdev, NOUVEAU_BUS_PLATFORM, + nouveau_platform_name(pdev), + dev_name(&pdev->dev), nouveau_config, + nouveau_debug, &device); + + ret = drm_platform_init(&driver, pdev); + if (ret) { + nouveau_object_ref(NULL, (struct nouveau_object **)&device); + return ret; + } + + return ret; +} + static int __init nouveau_drm_init(void) { diff --git a/drivers/gpu/drm/nouveau/nouveau_sysfs.c b/drivers/gpu/drm/nouveau/nouveau_sysfs.c index 89201a17ce75..75dda2b07176 100644 --- a/drivers/gpu/drm/nouveau/no...
2014 Feb 12
2
[PATCH v2] drm/nouveau: support for platform devices
On 12/02/14 05:38, Alexandre Courbot wrote: > Upcoming mobile Kepler GPUs (such as GK20A) use the platform bus instead > of PCI to which Nouveau is tightly dependent. This patch allows Nouveau > to handle platform devices by: > > - abstracting PCI-dependent functions that were typically used for > resource querying and page mapping, > - introducing a nv_device_is_pci()
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