Re: [PATCH 000/156] drm/nouveau: replace "ioctl" interface between drm/nvkm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]<

 



On Fri, Apr 19, 2024 at 12:03:41AM +1000, Ben Skeggs wrote:
> On 18/4/24 08:24, Danilo Krummrich wrote:
> 
> > Hi Ben,
> > 
> > Welcome back from my side as well!
> 
> Hey Danilo,
> 
> Thanks!
> 
> > 
> > On Wed, Apr 17, 2024 at 09:37:26AM +1000, Ben Skeggs wrote:
> > > This is a series of cleanups that I intended on doing after posting
> > > the initial GSP-RM support several months ago, and have now had the
> > > opportunity to work on again.
> > > 
> > > The main intention here is to replace the ioctl-like interface that
> > > sits between NVKM and the nouveau DRM driver with more direct calls,
> > > to reduce the call-chain complexity (and overhead).
> > That sounds like a great and welcome simplification.
> > 
> > > This is achieved by having NVKM return structs of info and function
> > > pointers specific to each class, along with an opaque pointer to its
> > > private data.  These are stored in the NVIF structs and used to call
> > > directly into an implementation without handle lookups and multiple
> > > layers of indirection.
> > I just had a very brief look on the rework of the VMM bits to get a rough idea
> > how the new interface looks like.
> > 
> > I think I will get the full picture, once I can apply all the patches to a tree
> > and don't need to look at the changes scattered throughout patches.
> > 
> > However, I wonder if we need another indirection (such as nvif_vmm_impl) instead
> > of just calling the corresponding functions directly? Or even more crazy, what
> > if we'd try to rip out nvif entirely?
> 
> I'm opposed to removing NVIF.  HW has always had a quite strong priv/user
> separation (it's been designed for usermode submission from the beginning,
> even before DMA channels were a thing), and many many years ago now I made
> the decision to split nouveau along those same boundaries.

I don't see why we'd need NVIF to keep this separation. I'm also not saying we
have to get rid of it either though. But I think we should simplify this as much
as possible.

> 
> It also happens to (basically) mirror the interface GSP-RM provides to the
> kernel driver.  Had I not split nouveau the way I did, and had the code to
> manage the priv/user parts of the GPU mingled together, adding support for
> GSP-RM would have been a lot more painful than it was.

This wouldn't really change by ripping out NVIF and just directly call nvkm_*
functions, right?

It would give us a bit more flexibility though, especially in terms of locking
architecture, which, with asynchronous VM_BIND, needs to be aligned closely
between layers to not break dma_fence rules.

In IRC you already mentioned you'd like to rip out the VMM parts and move them
to the "DRM side" of the driver. That'd already be a huge step into this
direction I think.

However, Dave and me had a brief look at how to do that as well, and it seemed
quite difficult in terms of where to "draw the line". We need to avoid that the#
ripped out VMM code still depends on NVKM layers that have their own (isolated)
locking architecture. Having a more flexible interface, that does not hide data
structures, might help.

> 
> 
> > 
> > Maybe it would be good to sketch up some example code of how the interface works
> > and include it in the cover letter? This way we could see / discuss whether we
> > can even simplify it more or why it needs the indirections you have chosen.
> 
> I tried to make this clear in the cover letter, but this isn't an attempt at
> designing a new interface.  This is the old one, and works in nearly the
> same way as it did before, just with a whole bunch of middle layers ripped
> out.
> 
> A patch series I've been pondering writing if/when this one is merged, would
> be to directly implement GSP-RM on top of the "new" interfaces, so that it
> doesn't need to awkwardly integrate with NVKM's other abstractions that are
> only really relevant when running on top of HW directly.
> 
> There is (almost) be a 1-1 mapping between NVIF function pointer and RM
> alloc/control call (this was already the case before this series).  The
> GSP-supporting code in NVKM could be cleaned up significantly.

Can you put some examples please? Afaics, most of the GSP code is called from
device probe / init, isn't it?

> 
> 
> > 
> > > There's room for further cleanups and API changes from here, but for
> > > now most of the API usage is exactly as it was before, as the series
> > > has gotten quite large enough already.
> > > 
> > > The first part of the series starts out by cleaning up some of the
> > > interfaces within the DRM driver, and reimplementing the subset of
> > > "ioctl" interfaces needed by userspace directly.
> > > 
> > > A number of unused interfaces/function args are then removed so that
> > > they don't need to be ported, and some initial renames/preparations
> > > are made to the NVKM's user object implementations so that diffs of
> > > the next set of patches are more straightforward to read.
> > > 
> > > I then go through each class in turn, starting from the root of the
> > > object tree (client), and working up from there.  The object ctors/
> > > dtors are ported first, followed by sclass/map/etc, followed by the
> > > class's methods, and then repeating the process with each of their
> > > children.
> > > 
> > > Objects remain accessible with the "ioctl" interface throughout the
> > > changes (until their last use, after which they're removed from the
> > > object rb entirely) to allow each change to be done independently.
> > > 
> > > After all classes have been ported, some final cleanups are made to
> > > the DRM driver to complete the series.
> > > 
> > > Ben Skeggs (156):
> > Wow! That's a lot of work - very much appreciated. However, I think it would
> > have been better to share your ideas and / or example code regarding this rework
> > early, such that discussions can happen in advance.
> > 
> > We could have been discussing the (new) interface, get to an agreement and then
> > work through it in several patch series.
> 
> I don't disagree that discussion should be had over new interfaces, but as I
> said above, this series isn't an attempt at that.  It's attempting to remove
> a whole bunch of cruft that makes it hard to make changes to the APIs, a
> whole bunch of memcpy(), and hacks around awkward locking problems (like the
> linked-list of all memory allocations to avoid object tree locking issues).

Yes, I'm aware of that. But still, it's a rather huge change and all the points
below still apply.

> 
> 
> Thank you,
> 
> Ben.
> 
> > 
> > This has multiple advantages:
> > 
> >    1. It makes things much easier to review; bulky patch series, such as this
> >       one, are hard to review.
> >    2. It potentially provides different perspectives for improvements ahead of
> >       time and potentially saves a lot of your time compared to working through
> >       the feedback afterwards.
> >    3. It better involves the community. Wouldn't it be great if someone, due to a
> >       previous discussion, voluntarily picked up some of the effort?
> > 
> > Can you please resend patch 25 with a corresponding '--in-reply-to='? Also, as
> > Dave already mentioned, I'd be great if you could provide a branch containing
> > the patches.
> > 
> > - Danilo
> > 
> > >    drm/nouveau: add nouveau_drm.device/mmu
> > >    drm/nouveau: alias nouveau_drm.client to nouveau_drm.cli
> > >    drm/nouveau: pass drm to nouveau_mem_new(), instead of cli
> > >    drm/nouveau: pass drm to nv50_dmac_create(), rather than device+disp
> > >    drm/nouveau: pass cli to nouveau_channel_new() instead of drm+device
> > >    drm/nouveau: remove nouveau_chan.device
> > >    drm/nouveau: remove chan->drm
> > >    drm/nouveau: replace some void casts with chan->cli
> > >    drm/nouveau: remove nouveau_drm.master
> > >    drm/nouveau: always map device
> > >    drm/nouveau: add nouveau_cli to nouveau_abi16
> > >    drm/nouveau: handle limited nvif in abi16
> > >    drm/nouveau: remove abi16->device
> > >    drm/nouveau: remove abi16->handles
> > >    drm/nouveau: store nvkm_device pointer in nouveau_drm
> > >    drm/nouveau: create pci device once
> > >    drm/nouveau: remove push pointer from nouveau_channel
> > >    drm/nouveau/kms: remove a few unused struct members and fn decls
> > >    drm/nouveau/kms: remove push pointer from nv50_dmac
> > >    drm/nouveau/kms: move hw ring tracking vars into nvif_push
> > >    drm/nouveau/kms: move dmac sync/vram ctxdmas to core+wndws
> > >    drm/nouveau/nvkm: remove detect/mmio/subdev_mask from device args
> > >    drm/nouveau/nvkm: move nouveau_nvif.c to nvkm/core/driver.c
> > >    drm/nouveau/nvkm: move nvkm/engine/device/ to nvkm/device/
> > >    drm/nouveau/nvkm: remove perfmon
> > >    drm/nouveau/nvkm: remove nvkm_client_search()
> > >    drm/nouveau/nvif: remove support for userspace backends
> > >    drm/nouveau/nvif: remove route/token
> > >    drm/nouveau/nvif: remove nvxx_object()
> > >    drm/nouveau/nvif: remove nvxx_client()
> > >    drm/nouveau/nvif: remove driver keep/fini
> > >    drm/nouveau/nvif: remove client version
> > >    drm/nouveau/nvif: remove client devlist
> > >    drm/nouveau/nvif: remove client fini
> > >    drm/nouveau/nvif: remove device args
> > >    drm/nouveau/nvif: remove device rd/wr
> > >    drm/nouveau/nvif: remove disp chan rd/wr
> > >    drm/nouveau/nvkm: rename struct nvkm_uevent
> > >    drm/nouveau/nvkm: remove nvkm_client()
> > >    drm/nouveau/nvkm: rename struct nvkm_udevice
> > >    drm/nouveau/nvkm: rename struct nvkm_control
> > >    drm/nouveau/nvkm: rename struct nvkm_uvfn
> > >    drm/nouveau/nvkm: rename struct nvkm_ummu
> > >    drm/nouveau/nvkm: rename struct nvkm_umem
> > >    drm/nouveau/nvkm: rename struct nvkm_uvmm
> > >    drm/nouveau/nvkm: detach user handling from nvkm_fault_buffer
> > >    drm/nouveau/nvkm: detach user handling from nvkm_disp
> > >    drm/nouveau/nvkm: detach user handling from nvkm_conn
> > >    drm/nouveau/nvkm: detach user handling from nvkm_outp
> > >    drm/nouveau/nvkm: detach user handling from nvkm_uhead
> > >    drm/nouveau/nvkm: detach user handling from nvkm_disp_chan
> > >    drm/nouveau/nvkm: rename struct nvkm_ucgrp
> > >    drm/nouveau/nvkm: rename struct nvkm_uchan
> > >    drm/nouveau/nvkm: move umem list to mmu
> > >    drm/nouveau/disp: simplify hw user definition
> > >    drm/nouveau/nvif: output oclass id in object dbg messages
> > >    drm/nouveau/nvif: add alternate version of nvif_object_ctor()
> > >    drm/nouveau/nvif: add alternate version of nvif_event_ctor()
> > >    drm/nouveau/nvif: move nvif<->nvkm interface definitions to driverif.h
> > >    drm/nouveau/nvif: rework "new driver" api
> > >    drm/nouveau/nvkm: remove device list
> > >    drm/nouveau/nvif: rework driver "new client" api
> > >    drm/nouveau/nvif: rework client "new device" api
> > >    drm/nouveau/nvif: remove client from object rb
> > >    drm/nouveau/nvif: rework device "sclass" api
> > >    drm/nouveau/nvif: rework device "map" api
> > >    drm/nouveau/nvif: rework device "info v0" api
> > >    drm/nouveau/nvif: rework device "info v1" api
> > >    drm/nouveau/nvif: rework device "time" api
> > >    drm/nouveau/nvif: rework device "new ctrl" api
> > >    drm/nouveau/nvif: rework ctrl "pstate info" api
> > >    drm/nouveau/nvif: rework ctrl "pstate attr" api
> > >    drm/nouveau/nvif: rework ctrl "pstate user" api
> > >    drm/nouveau/nvif: remove ctrl from object rb
> > >    drm/nouveau/nvif: rework device "new usermode" api
> > >    drm/nouveau/nvif: rework usermode "map" api
> > >    drm/nouveau/nvif: remove usermode from object rb
> > >    drm/nouveau/nvif: rework device "new mmu" api
> > >    drm/nouveau/nvif: rework mmu "sclass" api
> > >    drm/nouveau/nvif: rework mmu "heap" api
> > >    drm/nouveau/nvif: rework mmu "type" api
> > >    drm/nouveau/nvif: rework mmu "kind" api
> > >    drm/nouveau/nvif: rework mmu "new mem" api
> > >    drm/nouveau/nvif: rework mem "map"/"unmap" apis
> > >    drm/nouveau/nvif: rework mmu "new vmm" api
> > >    drm/nouveau/nvif: remove mmu from object rb
> > >    drm/nouveau/nvif: rework vmm "page" api
> > >    drm/nouveau/nvif: rework vmm "get"/"put" apis
> > >    drm/nouveau/nvif: rework vmm "map"/"unmap" apis
> > >    drm/nouveau/nvif: rework vmm "pfnmap"/"pfnclr" apis
> > >    drm/nouveau/nvif: rework vmm "raw get"/"raw put" apis
> > >    drm/nouveau/nvif: rework vmm "raw map"/"raw unmap" apis
> > >    drm/nouveau/nvif: rework vmm "raw sparse" api
> > >    drm/nouveau/nvif: rework vmm "fault replay"/"fault cancel" apis
> > >    drm/nouveau/nvif: rework device "new fault buffer" api
> > >    drm/nouveau/nvif: rework fault buffer "map" api
> > >    drm/nouveau/nvif: rework fault buffer "new event" api
> > >    drm/nouveau/nvif: remove fault buffer from object rb
> > >    drm/nouveau/nvif: rework device "new disp" api
> > >    drm/nouveau/nvif: rework disp "sclass" api
> > >    drm/nouveau/nvif: rework disp "new caps" api
> > >    drm/nouveau/nvif: rework disp "new conn" api
> > >    drm/nouveau/nvif: rework conn "new event" api
> > >    drm/nouveau/nvif: remove conn from object rb
> > >    drm/nouveau/nvif: rework disp "new outp" api
> > >    drm/nouveau/nvif: rework outp "detect" api
> > >    drm/nouveau/nvif: rework outp "edid get" api
> > >    drm/nouveau/nvif: rework outp "load detect" api
> > >    drm/nouveau/nvif: rework outp "inherit" apis
> > >    drm/nouveau/nvif: rework outp "acquire" api
> > >    drm/nouveau/nvif: rework outp "release" api
> > >    drm/nouveau/nvif: rework outp "bl get"/"bl set" apis
> > >    drm/nouveau/nvif: rework outp "lvds config" api
> > >    drm/nouveau/nvif: rework outp "hdmi config" api
> > >    drm/nouveau/nvif: rework outp "infoframe" api
> > >    drm/nouveau/nvif: rework outp "hda eld" api
> > >    drm/nouveau/nvif: rework outp "dp aux pwr" api
> > >    drm/nouveau/nvif: rework outp "dp aux xfer" api
> > >    drm/nouveau/nvif: rework outp "dp rates" api
> > >    drm/nouveau/nvif: rework outp "dp train" api
> > >    drm/nouveau/nvif: rework outp "dp drive" api
> > >    drm/nouveau/nvif: rework outp "dp sst" api
> > >    drm/nouveau/nvif: rework outp "dp mst id get"/"dp mst id put" apis
> > >    drm/nouveau/nvif: rework outp "dp mst vcpi" api
> > >    drm/nouveau/nvif: remove outp from object rb
> > >    drm/nouveau/nvif: rework disp "new head" api
> > >    drm/nouveau/nvif: rework head "scanoutpos" api
> > >    drm/nouveau/nvif: rework head "new event" api
> > >    drm/nouveau/nvif: remove head from object rb
> > >    drm/nouveau/nvif: rework disp "new chan" apis
> > >    drm/nouveau/nvif: remove disp from object rb
> > >    drm/nouveau/nvif: rework disp chan "new ctxdma" api
> > >    drm/nouveau/nvif: remove disp chans from object rb
> > >    drm/nouveau/nvif: rework device "new cgrp" api
> > >    drm/nouveau/nvif: rework device "new ctxdma" api
> > >    drm/nouveau/nvif: rework device/cgrp "new chan" apis
> > >    drm/nouveau/nvif: remove mem from object rb
> > >    drm/nouveau/nvif: remove vmm from object rb
> > >    drm/nouveau/nvif: remove ctxdma from object rb
> > >    drm/nouveau/nvif: remove device from object rb
> > >    drm/nouveau/nvif: rework chan "map" api
> > >    drm/nouveau/nvif: rework chan "sclass" api
> > >    drm/nouveau/nvif: rework chan "new event" apis
> > >    drm/nouveau/nvif: rework chan "new ctxdma" api
> > >    drm/nouveau/nvif: rework chan "new engobj" apis
> > >    drm/nouveau/nvif: remove chan from object rb
> > >    drm/nouveau/nvif: rework engobj "mthd" api
> > >    drm/nouveau/nvif: rework engobj "new event" api
> > >    drm/nouveau/nvif: remove engobj from object rb
> > >    drm/nouveau/nvkm: switch nvkm_object to non-irqsafe spinlock
> > >    drm/nouveau: remove client_mutex
> > >    drm/nouveau: move nvxx_* definitions to nouveau_drv.h
> > >    drm/nouveau: pass nouveau_drm to nvxx_*
> > >    drm/nouveau: remove remaining usage of nvif_device.info
> > >    drm/nouveau: remove remaining usage of nvif_device.object.map
> > >    drm/nouveau: remove remaining usage of nouveau_drm.client
> > > 
> > >   drivers/gpu/drm/nouveau/Kbuild                |   2 -
> > >   drivers/gpu/drm/nouveau/dispnv04/arb.c        |   7 +-
> > >   drivers/gpu/drm/nouveau/dispnv04/crtc.c       |  50 +-
> > >   drivers/gpu/drm/nouveau/dispnv04/cursor.c     |   2 +-
> > >   drivers/gpu/drm/nouveau/dispnv04/dac.c        |  18 +-
> > >   drivers/gpu/drm/nouveau/dispnv04/dfp.c        |  12 +-
> > >   drivers/gpu/drm/nouveau/dispnv04/disp.c       |  15 +-
> > >   drivers/gpu/drm/nouveau/dispnv04/disp.h       |   6 +-
> > >   drivers/gpu/drm/nouveau/dispnv04/hw.c         |  83 +-
> > >   drivers/gpu/drm/nouveau/dispnv04/hw.h         |  45 +-
> > >   drivers/gpu/drm/nouveau/dispnv04/overlay.c    |  21 +-
> > >   drivers/gpu/drm/nouveau/dispnv04/tvnv04.c     |   4 +-
> > >   drivers/gpu/drm/nouveau/dispnv04/tvnv17.c     |  16 +-
> > >   drivers/gpu/drm/nouveau/dispnv04/tvnv17.h     |  10 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/base.c       |  33 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/base507c.c   |  43 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/base827c.c   |   2 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/base907c.c   |  10 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/core.c       |  84 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/core.h       |   9 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/core507d.c   |  34 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/core907d.c   |   2 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/corec37d.c   |  19 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/corec57d.c   |   4 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/crc.c        |  34 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/crc.h        |   4 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/crc907d.c    |  12 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/crcc37d.c    |  12 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/crcc57d.c    |   4 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/curs.c       |  35 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/curs507a.c   |  41 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/cursc37a.c   |  12 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/dac507d.c    |   2 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/dac907d.c    |   2 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/disp.c       | 313 +------
> > >   drivers/gpu/drm/nouveau/dispnv50/disp.h       |  37 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/head.c       |   4 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/head507d.c   |  26 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/head827d.c   |  10 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/head907d.c   |  26 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/head917d.c   |   6 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/headc37d.c   |  18 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/headc57d.c   |  12 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/lut.c        |  12 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/lut.h        |   5 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/oimm.c       |  29 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/oimm507b.c   |  20 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/ovly.c       |  32 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/ovly507e.c   |  28 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/ovly827e.c   |   2 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/ovly907e.c   |   2 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/pior507d.c   |   2 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/sor507d.c    |   2 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/sor907d.c    |   2 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/sorc37d.c    |   2 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/wimm.c       |  25 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c   |  24 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/wndw.c       | 101 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/wndw.h       |  20 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/wndwc37e.c   |  46 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/wndwc57e.c   |  10 +-
> > >   drivers/gpu/drm/nouveau/dispnv50/wndwc67e.c   |   2 +-
> > >   drivers/gpu/drm/nouveau/include/nvif/cgrp.h   |  17 +
> > >   drivers/gpu/drm/nouveau/include/nvif/chan.h   |  45 +
> > >   drivers/gpu/drm/nouveau/include/nvif/cl0080.h |  60 --
> > >   drivers/gpu/drm/nouveau/include/nvif/class.h  |   8 -
> > >   drivers/gpu/drm/nouveau/include/nvif/clb069.h |  15 -
> > >   drivers/gpu/drm/nouveau/include/nvif/client.h |  14 +-
> > >   drivers/gpu/drm/nouveau/include/nvif/conn.h   |  24 +-
> > >   drivers/gpu/drm/nouveau/include/nvif/ctxdma.h |  29 +
> > >   drivers/gpu/drm/nouveau/include/nvif/device.h |  51 +-
> > >   drivers/gpu/drm/nouveau/include/nvif/disp.h   |  19 +-
> > >   .../gpu/drm/nouveau/include/nvif/dispchan.h   |  25 +
> > >   drivers/gpu/drm/nouveau/include/nvif/driver.h |  27 +-
> > >   .../gpu/drm/nouveau/include/nvif/driverif.h   | 643 +++++++++++++
> > >   drivers/gpu/drm/nouveau/include/nvif/event.h  |  16 +-
> > >   drivers/gpu/drm/nouveau/include/nvif/fifo.h   |  11 +-
> > >   drivers/gpu/drm/nouveau/include/nvif/head.h   |   2 +
> > >   drivers/gpu/drm/nouveau/include/nvif/if0000.h |  20 -
> > >   drivers/gpu/drm/nouveau/include/nvif/if0001.h |  47 -
> > >   drivers/gpu/drm/nouveau/include/nvif/if0002.h |  39 -
> > >   drivers/gpu/drm/nouveau/include/nvif/if0003.h |  34 -
> > >   drivers/gpu/drm/nouveau/include/nvif/if0008.h |  42 -
> > >   drivers/gpu/drm/nouveau/include/nvif/if000c.h | 117 ---
> > >   drivers/gpu/drm/nouveau/include/nvif/if000d.h |   1 -
> > >   drivers/gpu/drm/nouveau/include/nvif/if000e.h |  26 -
> > >   drivers/gpu/drm/nouveau/include/nvif/if0010.h |  14 -
> > >   drivers/gpu/drm/nouveau/include/nvif/if0011.h |  18 -
> > >   drivers/gpu/drm/nouveau/include/nvif/if0012.h | 294 ------
> > >   drivers/gpu/drm/nouveau/include/nvif/if0013.h |  35 -
> > >   drivers/gpu/drm/nouveau/include/nvif/if0014.h |  13 -
> > >   drivers/gpu/drm/nouveau/include/nvif/if0020.h |  45 -
> > >   drivers/gpu/drm/nouveau/include/nvif/if0021.h |  16 -
> > >   drivers/gpu/drm/nouveau/include/nvif/if500d.h |   1 -
> > >   drivers/gpu/drm/nouveau/include/nvif/if900d.h |   1 -
> > >   drivers/gpu/drm/nouveau/include/nvif/ifb00d.h |   1 -
> > >   drivers/gpu/drm/nouveau/include/nvif/ifc00d.h |   1 -
> > >   drivers/gpu/drm/nouveau/include/nvif/ioctl.h  |  44 -
> > >   drivers/gpu/drm/nouveau/include/nvif/mem.h    |  18 +-
> > >   drivers/gpu/drm/nouveau/include/nvif/mmu.h    |  38 +-
> > >   drivers/gpu/drm/nouveau/include/nvif/object.h | 105 +--
> > >   drivers/gpu/drm/nouveau/include/nvif/os.h     |  19 +
> > >   drivers/gpu/drm/nouveau/include/nvif/outp.h   |  58 +-
> > >   drivers/gpu/drm/nouveau/include/nvif/printf.h |   9 +-
> > >   drivers/gpu/drm/nouveau/include/nvif/push.h   |  18 +-
> > >   drivers/gpu/drm/nouveau/include/nvif/user.h   |   6 +-
> > >   drivers/gpu/drm/nouveau/include/nvif/vmm.h    |  30 +-
> > >   .../drm/nouveau/include/nvkm/core/client.h    |  16 +-
> > >   .../drm/nouveau/include/nvkm/core/device.h    |   6 -
> > >   .../drm/nouveau/include/nvkm/core/driver.h    |   9 +
> > >   .../gpu/drm/nouveau/include/nvkm/core/event.h |  10 +-
> > >   .../gpu/drm/nouveau/include/nvkm/core/ioctl.h |   8 -
> > >   .../drm/nouveau/include/nvkm/core/layout.h    |   1 -
> > >   .../drm/nouveau/include/nvkm/core/object.h    |  43 +-
> > >   .../drm/nouveau/include/nvkm/core/oclass.h    |   2 -
> > >   .../gpu/drm/nouveau/include/nvkm/core/os.h    |  21 +-
> > >   .../gpu/drm/nouveau/include/nvkm/core/pci.h   |   1 -
> > >   .../drm/nouveau/include/nvkm/core/subdev.h    |   2 -
> > >   .../gpu/drm/nouveau/include/nvkm/core/tegra.h |   1 -
> > >   .../drm/nouveau/include/nvkm/engine/disp.h    |   4 +-
> > >   .../gpu/drm/nouveau/include/nvkm/engine/dma.h |   2 -
> > >   .../gpu/drm/nouveau/include/nvkm/engine/pm.h  |  29 -
> > >   .../gpu/drm/nouveau/include/nvkm/subdev/mmu.h |   3 -
> > >   drivers/gpu/drm/nouveau/nouveau_abi16.c       | 498 ++++++----
> > >   drivers/gpu/drm/nouveau/nouveau_abi16.h       |  11 +-
> > >   drivers/gpu/drm/nouveau/nouveau_backlight.c   |  30 +-
> > >   drivers/gpu/drm/nouveau/nouveau_bios.c        |  22 +-
> > >   drivers/gpu/drm/nouveau/nouveau_bios.h        |   1 +
> > >   drivers/gpu/drm/nouveau/nouveau_bo.c          | 130 +--
> > >   drivers/gpu/drm/nouveau/nouveau_bo0039.c      |   8 +-
> > >   drivers/gpu/drm/nouveau/nouveau_bo5039.c      |  10 +-
> > >   drivers/gpu/drm/nouveau/nouveau_bo74c1.c      |   2 +-
> > >   drivers/gpu/drm/nouveau/nouveau_bo85b5.c      |   2 +-
> > >   drivers/gpu/drm/nouveau/nouveau_bo9039.c      |   4 +-
> > >   drivers/gpu/drm/nouveau/nouveau_bo90b5.c      |   2 +-
> > >   drivers/gpu/drm/nouveau/nouveau_boa0b5.c      |   4 +-
> > >   drivers/gpu/drm/nouveau/nouveau_chan.c        | 353 ++++---
> > >   drivers/gpu/drm/nouveau/nouveau_chan.h        |  31 +-
> > >   drivers/gpu/drm/nouveau/nouveau_connector.c   |  30 +-
> > >   drivers/gpu/drm/nouveau/nouveau_debugfs.c     |  47 +-
> > >   drivers/gpu/drm/nouveau/nouveau_debugfs.h     |   2 +
> > >   drivers/gpu/drm/nouveau/nouveau_display.c     |  50 +-
> > >   drivers/gpu/drm/nouveau/nouveau_dma.c         |  10 +-
> > >   drivers/gpu/drm/nouveau/nouveau_dma.h         |   2 +-
> > >   drivers/gpu/drm/nouveau/nouveau_dmem.c        |  19 +-
> > >   drivers/gpu/drm/nouveau/nouveau_dp.c          |   2 +-
> > >   drivers/gpu/drm/nouveau/nouveau_drm.c         | 359 +++-----
> > >   drivers/gpu/drm/nouveau/nouveau_drv.h         |  71 +-
> > >   drivers/gpu/drm/nouveau/nouveau_fence.c       |  33 +-
> > >   drivers/gpu/drm/nouveau/nouveau_gem.c         |  34 +-
> > >   drivers/gpu/drm/nouveau/nouveau_hwmon.c       |  46 +-
> > >   drivers/gpu/drm/nouveau/nouveau_led.c         |   6 +-
> > >   drivers/gpu/drm/nouveau/nouveau_mem.c         |  44 +-
> > >   drivers/gpu/drm/nouveau/nouveau_mem.h         |   4 +-
> > >   drivers/gpu/drm/nouveau/nouveau_prime.c       |   2 +-
> > >   drivers/gpu/drm/nouveau/nouveau_sgdma.c       |   4 +-
> > >   drivers/gpu/drm/nouveau/nouveau_svm.c         | 174 ++--
> > >   drivers/gpu/drm/nouveau/nouveau_ttm.c         |  43 +-
> > >   drivers/gpu/drm/nouveau/nouveau_usif.c        | 194 ----
> > >   drivers/gpu/drm/nouveau/nouveau_usif.h        |  10 -
> > >   drivers/gpu/drm/nouveau/nouveau_uvmm.c        |   4 +-
> > >   drivers/gpu/drm/nouveau/nouveau_vga.c         |   8 +-
> > >   drivers/gpu/drm/nouveau/nouveau_vmm.c         |  14 +-
> > >   drivers/gpu/drm/nouveau/nouveau_vmm.h         |   2 +-
> > >   drivers/gpu/drm/nouveau/nv04_fence.c          |   9 +-
> > >   drivers/gpu/drm/nouveau/nv10_fence.c          |   6 +-
> > >   drivers/gpu/drm/nouveau/nv10_fence.h          |   2 +-
> > >   drivers/gpu/drm/nouveau/nv17_fence.c          |  25 +-
> > >   drivers/gpu/drm/nouveau/nv50_fence.c          |  13 +-
> > >   drivers/gpu/drm/nouveau/nv84_fence.c          |  20 +-
> > >   drivers/gpu/drm/nouveau/nvc0_fence.c          |   4 +-
> > >   drivers/gpu/drm/nouveau/nvif/Kbuild           |   3 +
> > >   drivers/gpu/drm/nouveau/nvif/cgrp.c           |  52 ++
> > >   drivers/gpu/drm/nouveau/nvif/chan.c           | 130 +++
> > >   drivers/gpu/drm/nouveau/nvif/client.c         |  54 +-
> > >   drivers/gpu/drm/nouveau/nvif/conn.c           |  53 +-
> > >   drivers/gpu/drm/nouveau/nvif/device.c         |  67 +-
> > >   drivers/gpu/drm/nouveau/nvif/disp.c           | 107 ++-
> > >   drivers/gpu/drm/nouveau/nvif/dispchan.c       | 222 +++++
> > >   drivers/gpu/drm/nouveau/nvif/driver.c         |  40 +-
> > >   drivers/gpu/drm/nouveau/nvif/event.c          |  63 +-
> > >   drivers/gpu/drm/nouveau/nvif/fifo.c           |  66 +-
> > >   drivers/gpu/drm/nouveau/nvif/head.c           |  35 +-
> > >   drivers/gpu/drm/nouveau/nvif/mem.c            | 102 ++-
> > >   drivers/gpu/drm/nouveau/nvif/mmu.c            | 111 +--
> > >   drivers/gpu/drm/nouveau/nvif/object.c         | 290 +-----
> > >   drivers/gpu/drm/nouveau/nvif/outp.c           | 353 ++-----
> > >   drivers/gpu/drm/nouveau/nvif/user.c           |  50 +-
> > >   drivers/gpu/drm/nouveau/nvif/userc361.c       |   8 +-
> > >   drivers/gpu/drm/nouveau/nvif/vmm.c            | 200 +---
> > >   drivers/gpu/drm/nouveau/nvkm/Kbuild           |   1 +
> > >   drivers/gpu/drm/nouveau/nvkm/core/Kbuild      |   2 +-
> > >   drivers/gpu/drm/nouveau/nvkm/core/client.c    | 150 +--
> > >   .../{nouveau_nvif.c => nvkm/core/driver.c}    |  69 +-
> > >   drivers/gpu/drm/nouveau/nvkm/core/engine.c    |  12 -
> > >   drivers/gpu/drm/nouveau/nvkm/core/ioctl.c     | 390 --------
> > >   drivers/gpu/drm/nouveau/nvkm/core/object.c    | 159 +---
> > >   drivers/gpu/drm/nouveau/nvkm/core/oproxy.c    |  76 --
> > >   drivers/gpu/drm/nouveau/nvkm/core/subdev.c    |   8 -
> > >   drivers/gpu/drm/nouveau/nvkm/core/uevent.c    |  88 +-
> > >   drivers/gpu/drm/nouveau/nvkm/device/Kbuild    |   7 +
> > >   .../nouveau/nvkm/{engine => }/device/acpi.c   |   0
> > >   .../nouveau/nvkm/{engine => }/device/acpi.h   |   0
> > >   .../nouveau/nvkm/{engine => }/device/base.c   | 552 +++++------
> > >   drivers/gpu/drm/nouveau/nvkm/device/ctrl.c    | 172 ++++
> > >   drivers/gpu/drm/nouveau/nvkm/device/ctrl.h    |   9 +
> > >   .../nouveau/nvkm/{engine => }/device/pci.c    |   4 +-
> > >   .../nouveau/nvkm/{engine => }/device/priv.h   |   2 -
> > >   .../nouveau/nvkm/{engine => }/device/tegra.c  |   5 +-
> > >   drivers/gpu/drm/nouveau/nvkm/device/user.c    | 434 +++++++++
> > >   drivers/gpu/drm/nouveau/nvkm/device/user.h    |   9 +
> > >   drivers/gpu/drm/nouveau/nvkm/engine/Kbuild    |   2 -
> > >   .../gpu/drm/nouveau/nvkm/engine/device/Kbuild |   7 -
> > >   .../gpu/drm/nouveau/nvkm/engine/device/ctrl.c | 212 -----
> > >   .../gpu/drm/nouveau/nvkm/engine/device/ctrl.h |  13 -
> > >   .../gpu/drm/nouveau/nvkm/engine/device/user.c | 431 ---------
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/Kbuild   |   1 +
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/ad102.c  |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/base.c   |  29 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/chan.c   | 272 +++---
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/chan.h   |  15 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/conn.h   |   2 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/g84.c    |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/g94.c    |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/ga102.c  |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/gf119.c  |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/gk104.c  |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/gk110.c  |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/gm107.c  |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/gm200.c  |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/gp100.c  |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/gp102.c  |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/gt200.c  |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/gt215.c  |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/gv100.c  |  52 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/head.h   |   2 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/mcp77.c  |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/mcp89.c  |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/nv04.c   |   5 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/nv50.c   |  20 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/outp.h   |   3 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/priv.h   |  31 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/r535.c   |  46 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/tu102.c  |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/ucaps.c  |  70 ++
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/ucaps.h  |   9 +
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/uchan.h  |  10 +
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/uconn.c  | 176 ++--
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/uconn.h  |   9 +
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/udisp.c  | 288 ++++--
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/udisp.h  |  17 +
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/uhead.c  | 125 +--
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/uhead.h  |   9 +
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/uoutp.c  | 778 ++++++++--------
> > >   .../gpu/drm/nouveau/nvkm/engine/disp/uoutp.h  |   9 +
> > >   .../gpu/drm/nouveau/nvkm/engine/dma/user.c    |  19 -
> > >   .../drm/nouveau/nvkm/engine/dma/usergf100.c   |   5 -
> > >   .../drm/nouveau/nvkm/engine/dma/usergf119.c   |   5 -
> > >   .../drm/nouveau/nvkm/engine/dma/usergv100.c   |   5 -
> > >   .../drm/nouveau/nvkm/engine/dma/usernv50.c    |   6 -
> > >   .../gpu/drm/nouveau/nvkm/engine/fifo/Kbuild   |   1 +
> > >   .../gpu/drm/nouveau/nvkm/engine/fifo/base.c   | 126 ---
> > >   .../gpu/drm/nouveau/nvkm/engine/fifo/chan.c   |   2 -
> > >   .../gpu/drm/nouveau/nvkm/engine/fifo/priv.h   |   5 -
> > >   .../gpu/drm/nouveau/nvkm/engine/fifo/ucgrp.c  | 108 ++-
> > >   .../gpu/drm/nouveau/nvkm/engine/fifo/ucgrp.h  |   9 +
> > >   .../gpu/drm/nouveau/nvkm/engine/fifo/uchan.c  | 388 +++++---
> > >   .../gpu/drm/nouveau/nvkm/engine/fifo/uchan.h  |  11 +
> > >   .../gpu/drm/nouveau/nvkm/engine/fifo/ufifo.c  | 129 +++
> > >   .../gpu/drm/nouveau/nvkm/engine/fifo/ufifo.h  |   8 +
> > >   .../gpu/drm/nouveau/nvkm/engine/gr/gf100.c    |   1 -
> > >   drivers/gpu/drm/nouveau/nvkm/engine/pm/Kbuild |  11 -
> > >   drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 867 ------------------
> > >   drivers/gpu/drm/nouveau/nvkm/engine/pm/g84.c  | 165 ----
> > >   .../gpu/drm/nouveau/nvkm/engine/pm/gf100.c    | 243 -----
> > >   .../gpu/drm/nouveau/nvkm/engine/pm/gf100.h    |  20 -
> > >   .../gpu/drm/nouveau/nvkm/engine/pm/gf108.c    |  66 --
> > >   .../gpu/drm/nouveau/nvkm/engine/pm/gf117.c    |  80 --
> > >   .../gpu/drm/nouveau/nvkm/engine/pm/gk104.c    | 184 ----
> > >   .../gpu/drm/nouveau/nvkm/engine/pm/gt200.c    | 157 ----
> > >   .../gpu/drm/nouveau/nvkm/engine/pm/gt215.c    | 138 ---
> > >   drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.c | 123 ---
> > >   drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.h |  15 -
> > >   drivers/gpu/drm/nouveau/nvkm/engine/pm/nv50.c | 175 ----
> > >   drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h | 105 ---
> > >   drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c |  14 +-
> > >   .../gpu/drm/nouveau/nvkm/subdev/fault/base.c  |   1 -
> > >   .../gpu/drm/nouveau/nvkm/subdev/fault/priv.h  |   5 -
> > >   .../gpu/drm/nouveau/nvkm/subdev/fault/user.c  |  99 +-
> > >   .../gpu/drm/nouveau/nvkm/subdev/fault/user.h  |   9 +
> > >   .../gpu/drm/nouveau/nvkm/subdev/mmu/base.c    |   1 -
> > >   .../gpu/drm/nouveau/nvkm/subdev/mmu/umem.c    | 125 ++-
> > >   .../gpu/drm/nouveau/nvkm/subdev/mmu/umem.h    |  24 +-
> > >   .../gpu/drm/nouveau/nvkm/subdev/mmu/ummu.c    | 186 ++--
> > >   .../gpu/drm/nouveau/nvkm/subdev/mmu/ummu.h    |  13 +-
> > >   .../gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.c    | 357 +++-----
> > >   .../gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.h    |  12 +-
> > >   drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h |   8 +-
> > >   .../drm/nouveau/nvkm/subdev/mmu/vmmgp100.c    |  68 +-
> > >   .../drm/nouveau/nvkm/subdev/mmu/vmmgp10b.c    |   2 +-
> > >   .../drm/nouveau/nvkm/subdev/mmu/vmmgv100.c    |   2 +-
> > >   .../drm/nouveau/nvkm/subdev/mmu/vmmtu102.c    |   2 +-
> > >   .../gpu/drm/nouveau/nvkm/subdev/vfn/base.c    |   1 -
> > >   .../gpu/drm/nouveau/nvkm/subdev/vfn/priv.h    |   3 -
> > >   .../gpu/drm/nouveau/nvkm/subdev/vfn/uvfn.c    |  44 +-
> > >   .../gpu/drm/nouveau/nvkm/subdev/vfn/uvfn.h    |   9 +
> > >   306 files changed, 6653 insertions(+), 10697 deletions(-)
> > >   create mode 100644 drivers/gpu/drm/nouveau/include/nvif/cgrp.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/include/nvif/chan.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/clb069.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/include/nvif/ctxdma.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/include/nvif/dispchan.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/include/nvif/driverif.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0000.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0001.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0002.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0003.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0008.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if000c.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if000e.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0010.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0012.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0013.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0014.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0020.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0021.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/include/nvkm/core/driver.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvkm/core/ioctl.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/include/nvkm/engine/pm.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nouveau_usif.c
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nouveau_usif.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvif/cgrp.c
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvif/chan.c
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvif/dispchan.c
> > >   rename drivers/gpu/drm/nouveau/{nouveau_nvif.c => nvkm/core/driver.c} (65%)
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/core/ioctl.c
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/device/Kbuild
> > >   rename drivers/gpu/drm/nouveau/nvkm/{engine => }/device/acpi.c (100%)
> > >   rename drivers/gpu/drm/nouveau/nvkm/{engine => }/device/acpi.h (100%)
> > >   rename drivers/gpu/drm/nouveau/nvkm/{engine => }/device/base.c (89%)
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/device/ctrl.c
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/device/ctrl.h
> > >   rename drivers/gpu/drm/nouveau/nvkm/{engine => }/device/pci.c (99%)
> > >   rename drivers/gpu/drm/nouveau/nvkm/{engine => }/device/priv.h (95%)
> > >   rename drivers/gpu/drm/nouveau/nvkm/{engine => }/device/tegra.c (97%)
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/device/user.c
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/device/user.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/device/Kbuild
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/device/user.c
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ucaps.c
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ucaps.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/uchan.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/udisp.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/uhead.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/fifo/ucgrp.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/fifo/ufifo.c
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/fifo/ufifo.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/Kbuild
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/g84.c
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.c
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/gf108.c
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/gf117.c
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/gk104.c
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/gt200.c
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/gt215.c
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.c
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.h
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/nv50.c
> > >   delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/fault/user.h
> > >   create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/vfn/uvfn.h
> > > 
> > > --
> > > 2.41.0
> > > 



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux