Ben Skeggs
41a634064d
drm/nouveau/nvif: return min/max versions for supported object classes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:32 +10:00
Ben Skeggs
f58ddf9581
drm/nouveau/nvif: assign internal class identifiers to sw classes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:32 +10:00
Ben Skeggs
315a8b2edf
drm/nouveau/nvif: use negative oclass identifier for internal classes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:32 +10:00
Ben Skeggs
99d4d36ad6
drm/nouveau/nvif: extend nop ioctl to return nvif version identifier
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:32 +10:00
Ben Skeggs
bf81df9be2
drm/nouveau/nvif: replace path-based object identification
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:32 +10:00
Ben Skeggs
a01ca78c8f
drm/nouveau/nvif: simplify and tidy library interfaces
...
A variety of tweaks to the NVIF library interfaces, mostly ripping out
things that turned out to be not so useful.
- Removed refcounting from nvif_object, callers are expected to not be
stupid instead.
- nvif_client is directly reachable from anything derived from nvif_object,
removing the need for heuristics to locate it
- _new() versions of interfaces, that allocate memory for the object
they construct, have been removed. The vast majority of callers used
the embedded _init() interfaces.
- No longer storing constructor arguments (and the data returned from
nvkm) inside nvif_object, it's more or less unused and just wastes
memory.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:32 +10:00
Ben Skeggs
4e7e62d607
drm/nouveau/client: store default device by handle, not reference
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:31 +10:00
Ben Skeggs
102b49da15
drm/nouveau/parent: remove some (now) unnecessary special-case handling
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:31 +10:00
Ben Skeggs
493f189dc0
drm/nouveau/object: store object type data outside of handle
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:31 +10:00
Ben Skeggs
a1e8873622
drm/nouveau/device: decouple from engine machinery
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:31 +10:00
Ben Skeggs
0ac9d210a1
drm/nouveau/device: simplify subdev construction
...
Replaces the piece-by-piece (in response to NV_DEVICE ctor args) device
contruction with a once-off all-or-nothing approach, eliminating some
tricky refcounting issues. The partial device init capability was only
required by some tools, and has been moved to probe time instead.
Temporarily removes a workaround for some boards where we need to fiddle
with AGP registers before executing the DEVINIT scripts. A later commit
in this series reinstates it.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:31 +10:00
Ben Skeggs
e781dc8f6c
drm/nouveau/device: tidy ctor/dtor interfaces
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:30 +10:00
Ben Skeggs
76ecea5b4b
drm/nouveau/client: tidy ctor/dtor interfaces
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:30 +10:00
Ben Skeggs
47b2505efb
drm/nouveau/platform: remove subclassing of nvkm_device
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:30 +10:00
Ben Skeggs
f2c906fc0c
drm/nouveau/disp: transition outp/conn away from being based on nvkm_object
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:30 +10:00
Ben Skeggs
2aa5eac516
drm/nouveau/i2c: transition pad/ports away from being based on nvkm_object
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:29 +10:00
Ben Skeggs
d36a99d2da
drm/nouveau/fb: transition nvkm_ram away from being based on nvkm_object
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:29 +10:00
Ben Skeggs
a8dae9fe0e
drm/nouveau/vga: require nvkm_device pointer in accessor functions
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:29 +10:00
Ben Skeggs
95cf469cc3
drm/nouveau/imem: use object accessor function for suspend/resume
...
Very much not ideal, but this will be improved later.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:29 +10:00
Ben Skeggs
cfdc4c44b4
drm/nouveau/core: wrap direct use of object accessor functions
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:29 +10:00
Ben Skeggs
384af9acea
drm/nouveau/gpuobj: type-safe accessor macros
...
These require an explicit struct nvkm_gpuobj pointer, unlike the previous
macros which take a void *, and work with any nvkm_object.
New semantics require acquiring/releasing a gpuobj before accessing them,
which will be made use of in later patches to greatly reduce the overhead
of accesses, particularly when a direct mmio mapping of the object is not
available (suspend/resume, out of ioremap() space, and on GK20A).
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:27 +10:00
Ben Skeggs
9ccdc76006
drm/nouveau/xtensa: remove object accessor functions
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:27 +10:00
Ben Skeggs
63902181a7
drm/nouveau/falcon: remove object accessor functions
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:27 +10:00
Ben Skeggs
a47474261e
drm/nouveau/imem: remove object accessor functions
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:26 +10:00
Ben Skeggs
7e24c1145a
drm/nouveau/fuse: remove object accessor functions
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:26 +10:00
Ben Skeggs
7f5f518fd7
drm/nouveau/bios: remove object accessor functions
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:26 +10:00
Ben Skeggs
5300394106
drm/nouveau/core: remove last printks
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:26 +10:00
Ben Skeggs
9e3911e5b2
drm/nouveau/sec: switch to subdev printk macros
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:26 +10:00
Ben Skeggs
109c2f2f1c
drm/nouveau/gr: switch to subdev printk macros
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:25 +10:00
Ben Skeggs
6594363b9f
drm/nouveau/core: type-safe printk macros
...
These require an explicit pointers to nvkm_object/nvkm_subdev/nvkm_device,
depending on which macros are used. This is unlike the previous macros
which take a void *, and work for anything derived from nvkm_object (by
way of some awful heuristics).
The output will be a bit confused until everything has been transitioned,
as the logging format used is a more standard style that previously.
In addition, usage of pr_cont(), which doesn't work correctly with the
dev_*() printk functions (and was potentially racy to begin with), will
be replaced.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:21 +10:00
Ben Skeggs
5444204036
drm/nouveau: switch to new-style timer macros
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:21 +10:00
Ben Skeggs
56f67dc196
drm/nouveau/tmr: type-safe PTIMER-based delay/wait macros
...
These require an explicit struct nvkm_device pointer, unlike the previous
macros which take a void *, and work for (almost) anything derived from
nvkm_object by using some heuristics.
These macros are more general than the previous ones, and can be used to
handle PTIMER-based busy-waits (will be used in later devinit fixes) as
well as more complicated wait conditions.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:19 +10:00
Ben Skeggs
2ebfa1bc6f
drm/nouveau/kms/nv04: fix incorrect use of register accessors
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:19 +10:00
Ben Skeggs
dd64694208
drm/nouveau/device: type-safe register accessor macros
...
These require an explit struct nvkm_device pointer, unlike the previous
macros which take a void *, and assume it's any old nvkm_subdev.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:13 +10:00
Ben Skeggs
226dcefe70
drm/nouveau/sw: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:13 +10:00
Ben Skeggs
8c1aeaa139
drm/nouveau/pm: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:12 +10:00
Ben Skeggs
11271f9f8f
drm/nouveau/mspdec: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:12 +10:00
Ben Skeggs
b19de4f3d7
drm/nouveau/mpeg: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:12 +10:00
Ben Skeggs
bfee3f3d97
drm/nouveau/gr: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:11 +10:00
Ben Skeggs
6189f1b093
drm/nouveau/fifo: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:11 +10:00
Ben Skeggs
a317aa21be
drm/nouveau/dma: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:11 +10:00
Ben Skeggs
fd166a1832
drm/nouveau/disp: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:11 +10:00
Ben Skeggs
d9261a6837
drm/nouveau/ce: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:11 +10:00
Ben Skeggs
f0961867b8
drm/nouveau/xtensa: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:10 +10:00
Ben Skeggs
b26ada6fed
drm/nouveau/falcon: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:10 +10:00
Ben Skeggs
6052dc5775
drm/nouveau/volt: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:10 +10:00
Ben Skeggs
cb8bb9cedb
drm/nouveau/tmr: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:09 +10:00
Ben Skeggs
da06b46b72
drm/nouveau/therm: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:09 +10:00
Ben Skeggs
5a7d1e22fe
drm/nouveau/pmu: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:09 +10:00
Ben Skeggs
2d9d5889e8
drm/nouveau/mxm: cosmetic changes
...
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2015-08-28 12:40:09 +10:00