History log of /drivers/gpu/drm/nouveau/nouveau_drm.h
Revision Date Author Comments
055dffdfb65eb8dcc8e7dabc84fd53059a92a23a 10-Sep-2014 Maarten Lankhorst <maarten.lankhorst@canonical.com> drm/nouveau: bump driver patchlevel to 1.2.1

Allows userspace to detect shared fences are supported.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
27111a23d01c1dba3180c998629004ab4c9ac985 09-Aug-2014 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: expose the full object/event interfaces to userspace

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
648d4dfde721885737b33a06f2b73ee125acf271 09-Aug-2014 Ben Skeggs <bskeggs@redhat.com> drm/nouveau/disp: audit and version display 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>
a4e610b5e655186f81f18f027d2b7a15e010cbef 09-Aug-2014 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: use ioctl interface for abi16 grobj alloc

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
fdb751ef2bbc78314d1e01d3425cfacfb19b9f86 09-Aug-2014 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: remove as much direct use of core headers as possible

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
0ad72863ea426d46b2786cba9430e122a40aad0b 09-Aug-2014 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: port to nvif client/device/objects

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
967e7bde8739fe3b215f7537e8f1f39c044902af 09-Aug-2014 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: initial pass at moving to struct nvif_device

This is an attempt at isolating some of the changes necessary to port
to NVIF in a separate commit.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
db2bec187dd68e79d512112df1f6e7a849e7f0ce 09-Aug-2014 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: kill nouveau_dev() + wrap register macros

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
fa2bade99a6fb24c3847d48ba3cad9a70dbb5364 09-Aug-2014 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: fix some usages of the wrong print function

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
3ee6f5b5036be4fd4e64be4233f29ee1c552c005 09-Aug-2014 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: store a pointer to vm in nouveau_cli

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
7820e5eef0faa4a5e10834296680827f7ce78a89 06-Aug-2014 Mario Kleiner <mario.kleiner.de@gmail.com> drm/nouveau: Bump version from 1.1.1 to 1.1.2

Linux 3.16 fixed multiple bugs in kms pageflip completion events
and timestamping, which were originally introduced in Linux 3.13.

These fixes have been backported to all stable kernels since 3.13.

However, the userspace nouveau-ddx needs to be aware if it is
running on a kernel on which these bugs are fixed, or not.

Bump the patchlevel of the drm driver version to signal this,
so backporting this patch to stable 3.13+ kernels will give the
ddx the required info.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Cc: <stable@vger.kernel.org> #v3.13+
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
8ba9ff11632cb05d6f55555711d8425e32ee44b0 26-Jun-2014 Alexandre Courbot <acourbot@nvidia.com> drm/nouveau: support for probing platform devices

Add a platform driver for Nouveau devices declared using the device tree
or platform data. This driver currently supports GK20A on Tegra
platforms and is only compiled for these platforms if Nouveau is
enabled.

Nouveau will probe the chip type itself using the BOOT0 register, so all
this driver really needs to do is to make sure the module is powered and
its clocks active before calling nouveau_drm_platform_probe().

Heavily based on work done by Thierry Reding.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
c33e05a1369262ce7930e536af1e049646275198 14-Feb-2014 Ilia Mirkin <imirkin@alum.mit.edu> drm/nouveau: use nv_debug for NV_DEBUG, make DRM a separate subflag

It's really confusing for NV_DEBUG's printing to be controlled via
drm.debug while everything else is controlled via nouveau.debug. These
messages can be turned on with nouveau.debug=DRM=debug.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2332b31116d5500d05173b2a7aaa95ba15d7983a 21-Jan-2014 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: create base display from common code

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
69a6146d1e06b50d070ea40064fccd910371b3b0 13-Nov-2013 Ben Skeggs <bskeggs@redhat.com> drm/nv10-: we no longer need to create nvsw object on user channels

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
26fdd78cce3f51a49e1f2d3ad27ee893a28d220e 15-Oct-2013 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: implement a simple sysfs interface to new pm code

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
b9ed919f1c8f18f419ca6159fdfec656690800b6 15-Oct-2013 Ben Skeggs <bskeggs@redhat.com> drm/nouveau/drm/pm: remove everything except the hwmon interfaces to THERM

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
c52f4fa61d7504bacd94fd54f43fd0b5bdf74bbc 08-Nov-2013 Ben Skeggs <bskeggs@redhat.com> drm/nouveau/core: make all info-level messages silent for runtime pm

Removes the need for special handling of messages in init paths.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
51cb4b392a307a8293b4f1f300ab803d7ad3b036 02-Oct-2013 Ben Skeggs <bskeggs@redhat.com> drm/nouveau/core: convert event handler apis to split create/enable semantics

This is a necessary step towards being able to work with the insane locking
requirements of the DRM core's vblank routines, and a nice cleanup as a
side-effect.

This is similar in spirit to the interfaces that Peter Hurley arrived at
with his nouveau_event rcu conversion series.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
5addcf0a5f0fadceba6bd562d0616a1c5d4c1a4d 10-Sep-2012 Dave Airlie <airlied@redhat.com> nouveau: add runtime PM support (v0.9)

This hooks nouveau up to the runtime PM system to enable
dynamic power management for secondary GPUs in switchable
and optimus laptops.

a) rewrite suspend/resume printks to hide them during dynamic s/r
to avoid cluttering logs
b) add runtime pm suspend to irq handler, crtc display, ioctl handler,
connector status,
c) handle hdmi audio dynamic power on/off using magic register.

v0.5:
make sure we hit D3 properly
fix fbdev_set_suspend locking interaction, we only will poweroff if we have no
active crtcs/fbcon anyways.
add reference for active crtcs.
sprinkle mark last busy for autosuspend timeout

v0.6:
allow more flexible debugging - to avoid log spam
add option to enable/disable dynpm
got to D3Cold

v0.7:
add hdmi audio support.

v0.8:
call autosuspend from idle, so pci config space access doesn't go straight
back to sleep, this makes starting X faster.
only signal usage if we actually handle the irq, otherwise usb keeps us awake.
fix nv50 display active powerdown

v0.9:
use masking function to enable hdmi audio
set busy when we fail to suspend

Signed-off-by: Dave Airlie <airlied@redhat.com>
1bb3f6a252c92cbc07884091e185a51b4ccb4f1d 08-Jul-2013 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: fix minor thinko causing bo moves to not be async on kepler

Reported-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
142c21b8d493318551932eee2e9d98ff14b473da 27-Mar-2013 Christoph Bumiller <e0425955@student.tuwien.ac.at> drm/nouveau/drm: bump the driver version to 1.1.1 to report new features

Signed-off-by: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
e4604d8fe8492f8120cf92d4b60b3cc90ba87bd0 24-Mar-2013 Maarten Lankhorst <maarten.lankhorst@canonical.com> drm/nouveau: fix NULL ptr dereference from nv50_disp_intr()

Op 23-03-13 12:47, Peter Hurley schreef:
> On Tue, 2013-03-19 at 11:13 -0400, Peter Hurley wrote:
>> On vanilla 3.9.0-rc3, I get this 100% repeatable oops after login when
>> the user X session is coming up:
> Perhaps I wasn't clear that this happens on every boot and is a
> regression from 3.8
>
> I'd be happy to help resolve this but time is of the essence; it would
> be a shame to have to revert all of this for 3.9

Well it broke on my system too, so it was easy to fix.

I didn't even need gdm to trigger it!

>8----
This fixes regression caused by 1d7c71a3e2f7 (drm/nouveau/disp: port vblank handling to event interface),

which causes a oops in the following way:

BUG: unable to handle kernel NULL pointer dereference at 0000000000000001
IP: [<0000000000000001>] 0x0
PGD 0
Oops: 0010 [#1] PREEMPT SMP
Modules linked in: ip6table_filter ip6_tables ebtable_nat ebtables ...<snip>...
CPU 3
Pid: 0, comm: swapper/3 Not tainted 3.9.0-rc3-xeon #rc3 Dell Inc. Precision WorkStation T5400 /0RW203
RIP: 0010:[<0000000000000001>] [<0000000000000001>] 0x0
RSP: 0018:ffff8802afcc3d80 EFLAGS: 00010087
RAX: ffff88029f6e5808 RBX: 0000000000000001 RCX: 0000000000000000
RDX: 0000000000000096 RSI: 0000000000000001 RDI: ffff88029f6e5808
RBP: ffff8802afcc3dc8 R08: 0000000000000000 R09: 0000000000000004
R10: 000000000000002c R11: ffff88029e559a98 R12: ffff8802a376cb78
R13: ffff88029f6e57e0 R14: ffff88029f6e57f8 R15: ffff88029f6e5808
FS: 0000000000000000(0000) GS:ffff8802afcc0000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000001 CR3: 000000029fa67000 CR4: 00000000000007e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper/3 (pid: 0, threadinfo ffff8802a355e000, task ffff8802a3535c40)
Stack:
ffffffffa0159d8a 0000000000000082 ffff88029f6e5820 0000000000000001
ffff88029f71aa00 0000000000000000 0000000000000000 0000000004000000
0000000004000000 ffff8802afcc3e38 ffffffffa01843b5 ffff8802afcc3df8
Call Trace:
<IRQ>
[<ffffffffa0159d8a>] ? nouveau_event_trigger+0xaa/0xe0 [nouveau]
[<ffffffffa01843b5>] nv50_disp_intr+0xc5/0x200 [nouveau]
[<ffffffff816fbacc>] ? _raw_spin_unlock_irqrestore+0x2c/0x50
[<ffffffff816ff98d>] ? notifier_call_chain+0x4d/0x70
[<ffffffffa017a105>] nouveau_mc_intr+0xb5/0x110 [nouveau]
[<ffffffffa01d45ff>] nouveau_irq_handler+0x6f/0x80 [nouveau]
[<ffffffff810eec95>] handle_irq_event_percpu+0x75/0x260
[<ffffffff810eeec8>] handle_irq_event+0x48/0x70
[<ffffffff810f205a>] handle_fasteoi_irq+0x5a/0x100
[<ffffffff810182f2>] handle_irq+0x22/0x40
[<ffffffff8170561a>] do_IRQ+0x5a/0xd0
[<ffffffff816fc2ad>] common_interrupt+0x6d/0x6d
<EOI>
[<ffffffff810449b6>] ? native_safe_halt+0x6/0x10
[<ffffffff8101ea1d>] default_idle+0x3d/0x170
[<ffffffff8101f736>] cpu_idle+0x116/0x130
[<ffffffff816e2a06>] start_secondary+0x251/0x258
Code: Bad RIP value.
RIP [<0000000000000001>] 0x0
RSP <ffff8802afcc3d80>
CR2: 0000000000000001
---[ end trace 907323cb8ce6f301 ]---

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
1d7c71a3e2f77336df536855b0efd2dc5bdeb41b 31-Jan-2013 Ben Skeggs <bskeggs@redhat.com> drm/nouveau/disp: port vblank handling to event interface

This removes the nastiness with the interactions between display and
software engines when handling vblank semaphore release interrupts.

Now, all the semantics are handled in one place (sw) \o/.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2d8b9ccbcee694c9ce681ec596df642e52ddcb15 02-Nov-2012 Dave Airlie <airlied@redhat.com> drm/nouveau: convert to dev_pm_ops

This is a precursor to dynamic power management support for nouveau,

we need to use pm ops for that, so first convert the driver to using pm ops
interfaces.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9430738d80223a1cd791a2baa74fa170d3df1262 30-Oct-2012 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: resurrect headless mode since rework

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
aa74c3755ecc24914f9b3aaf5ba1436836697a7d 12-Sep-2012 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: have drm debugging macros build on top of core macros

May kill the DRM version completely at some point, undecided..

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
49981046e3dc2f934663548a270d4bf1a4534bb9 06-Aug-2012 Ben Skeggs <bskeggs@redhat.com> drm/nve0: use async copy engine for ttm buffer moves if available

Kepler PFIFO lost the ability to address multiple engines from a single
channel, so we need a separate one for the copy engine.

v2: Marcin Slusarz <marcin.slusarz@gmail.com>
- regression fix: restore hw accelerated buffer copies

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
77145f1cbdf8d28b46ff8070ca749bad821e0774 31-Jul-2012 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: port remainder of drm code, and rip out compat layer

v2: Ben Skeggs <bskeggs@redhat.com>
- fill in nouveau_pm.dev to prevent oops
- fix ppc issues (build + OF shadow)

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
51a3d3425663698a79e8a9d01998a8a32ddee13b 26-Jul-2012 Ben Skeggs <bskeggs@redhat.com> drm/nouveau/backlight: remove dependence on nouveau_drv.h

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>
cb75d97e9c77743ecfcc43375be135a55a4d9b25 11-Jul-2012 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: implement devinit subdev, and new init table parser

v2:
- make sure not to execute display scripts unless resuming

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9458029940ffc64bca0c5a30ea626c377205842e 05-Jul-2012 Ben Skeggs <bskeggs@redhat.com> drm/nouveau: implement module init functions in nouveau_drm.c

These currently just call the existing ones in nouveau_drv.c, but will be
extended in upcoming commits. This needed to be separated from the current
code as there will be some header clashes until things are ported.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>