996f5a08235b27a7adcd01fe2b3f79e2f0f20ced |
|
11-Aug-2014 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/core: pass related object into notify constructor The event source types/index might need to be derived from it. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
867920f8c920bcaa5a6fa5ebad4596669b82ba80 |
|
09-Aug-2014 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/fifo: implement nvif event source Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
6c6ae061b61c1fd0d1823765299bcc009ddc21c8 |
|
09-Aug-2014 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/fifo: allow direct access to channel control registers where possible The indirect method has been left in-place here as a fallback path, as it may not be possible to map the non-PAGE_SIZE aligned control areas across some chipset+interface combinations. This isn't a problem for the primary use-case where the core and drm are linked together in kernel-land, but across a VM or (in the case where it applies now) between the core in the kernel and a userspace test tool. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
bbf8906b2cad17cf9530b06db7509d0e39b02d16 |
|
09-Aug-2014 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/fifo: audit and version fifo channel classes The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
4acfd707e28c820ba8ed8c12b497413a133d8c8f |
|
09-Aug-2014 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/dma: audit and version NV_DMA classes The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
b2c817031bc99d6e809fa10dcd8bf709b61d088d |
|
09-Aug-2014 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/dmaobj: switch to a slightly saner design Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
79ca27706a034b683196c85f5c6901b78e5ab8f0 |
|
09-Aug-2014 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/core: rework event interface This is a lot of prep-work for being able to send event notifications back to userspace. Events now contain data, rather than a "something just happened" signal. Handler data is now embedded into a containing structure, rather than being kmalloc()'d, and can optionally have the notify routine handled in a workqueue. Various races between suspend/unload with display HPD/DP IRQ handlers automagically solved as a result. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
8e8832e8a8ad4159fd6f9cb13975941c5de50c0f |
|
13-May-2014 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/core: allow event source to handle multiple event types per index Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
420b94697722512a2c0732970dc1530197a49adb |
|
17-Feb-2014 |
Alexandre Courbot <acourbot@nvidia.com> |
support for platform devices 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() function that allows to make PCI-dependent code conditional, - providing a nouveau_drm_platform_probe() function that takes a GPU platform device to be probed. Core code as well as engine/subdev drivers are updated wherever possible to make use of these functions. Some older drivers are too dependent on PCI to be properly updated, but all newer code on which future chips may depend should at least be runnable with platform devices. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
893e90c554c1ef85684b335655a5030d38a4a1b0 |
|
26-Apr-2013 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/fifo: implement channel creation event generation Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
9bd2ddbaa241274cd11191838d080fc308ecf6c7 |
|
31-Jan-2013 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/fifo/nvc0-: use interrupt 31 as an event trigger Generated if you try and use fifo method 0x20 on any subchannel, appears that it can be safely masked off without stalling the whole GPU. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
a2896cede08ddeed4f2c4fca616943a63dff5fa8 |
|
09-Dec-2012 |
Marcin Slusarz <marcin.slusarz@gmail.com> |
drm/nouveau: prepare for reporting channel owner - record channel owner process name - add some helpers for accessing this information - let nouveau_enum hold additional value (will be needed in the next patch) Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
507ceb15187fe302b9ba2d3da5559041be51c3bf |
|
27-Nov-2012 |
Martin Peres <martin.peres@labri.fr> |
drm/nouveau/core: fix the assumption that NVDEV_XXXX is always under 32 It fixes a bug that would have been introduced when adding more sudevs/engines. Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
82d23aea108886c869fce4c1e3178db5f57b6e9c |
|
08-Oct-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nvc0/dmaobj: stub bind function for now so we can call unconditionally Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
6c1689a08cf54e58c19eb565528a293f36f731be |
|
07-Oct-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/dmaobj: move parent class check to bind() method Otherwise when nvc0- gains a bind() method (disp needs it), the fifo engine will attempt to create a dma object for the push buffer, which is unnecessary on fermi. The only sane place to put these checks is in the bind method itself, and have it unconditionally called from wherever it might be needed. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
0a32241d8b58ab11d629b78adf81803bca918b69 |
|
17-Nov-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: pass address to object accessor functions as u64 Will be required by future work. Make the API change now to catch any (but hopefully none) unexpected fallout. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
5b8a43aeb9cbf6b965f67f6c850382788076325a |
|
19-Aug-2012 |
Marcin Slusarz <marcin.slusarz@gmail.com> |
drm/nouveau: quiet some static-related sparse noise Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
0c5b8cecf34d6b25e577475cc5e8c7169d63ba92 |
|
10-Aug-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/fifo: add method to lookup fifo chid related to a given object Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
ebb945a94bba2ce8dff7b0942ff2b3f2a52a0a69 |
|
20-Jul-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: port all engines to new engine module format This is a HUGE commit, but it's not nearly as bad as it looks - any problems can be isolated to a particular chipset and engine combination. It was simply too difficult to port each one at a time, the compat layers are *already* ridiculous. Most of the changes here are simply to the glue, the process for each of the engine modules was to start with a standard skeleton and copy+paste the old code into the appropriate places, fixing up variable names etc as needed. v2: Marcin Slusarz <marcin.slusarz@gmail.com> - fix find/replace bug in license header v3: Ben Skeggs <bskeggs@redhat.com> - bump indirect pushbuf size to 8KiB, 4KiB barely enough for userspace and left no space for kernel's requirements during GEM pushbuf submission. - fix duplicate assignments noticed by clang v4: Marcin Slusarz <marcin.slusarz@gmail.com> - add sparse annotations to nv04_fifo_pause/nv04_fifo_start - use ioread32_native/iowrite32_native for fifo control registers v5: Ben Skeggs <bskeggs@redhat.com> - rebase on v3.6-rc4, modified to keep copy engine fix intact - nv10/fence: unmap fence bo before destroying - fixed fermi regression when using nvidia gr fuc - fixed typo in supported dma_mask checking Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|