History log of /external/libdrm/nouveau/nouveau.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
4291eea18fd81ca084935fb09a0e97a6661f4f85 24-Nov-2015 Ben Skeggs <bskeggs@redhat.com> nouveau: add support for newer kernel interfaces

v2.
- leave client-provided pointer unmodified on sclass_get() failure

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
4c92a9d70725ec393899979bbfc21a37684e88d9 24-Nov-2015 Ben Skeggs <bskeggs@redhat.com> nouveau: add new interface to create a nouveau_device

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
4a68c5638e1b0dd62860f1211dbcd751005beb79 27-Nov-2015 Ben Skeggs <bskeggs@redhat.com> nouveau: remove nouveau_object_find()

No more internal users, and there's never been external users.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
4283e3f656541c4533c89b2cdc501aa6dc7da3dc 24-Nov-2015 Ben Skeggs <bskeggs@redhat.com> nouveau: make use of nouveau_drm::fd instead of nouveau_device::fd

The latter is deprecated, and will not be valid for newer clients.

v2.
- split out nouveau_object_find removal

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
cdf9029f5f2d3d7c7b77eda2a5d3ef3b44a82cdf 24-Nov-2015 Ben Skeggs <bskeggs@redhat.com> nouveau: stack legacy nouveau_device on top of nouveau_drm

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
b845d61de93c762f73463a67a634ecb1ae8c4c35 24-Nov-2015 Ben Skeggs <bskeggs@redhat.com> nouveau: introduce object to represent the kernel client

Because NVIF intentionally lacks some of the paths necessary to be
compatible with various mistakes we've made over the years, libdrm
needs to know whether a client has been updated and that it's safe
to make use of the new kernel interfaces.

Clients still using nouveau_device_open()/wrap() will be forced to
make use of ABI16 instead of NVIF.

v2.
- remove lib_version, nothing used it
- leave client-provided pointer unmodified on failure

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
f6b1b5b7c9cf6667d169bad3b33a73e4fe2bc14c 24-Nov-2015 Ben Skeggs <bskeggs@redhat.com> nouveau: add interfaces to query information about supported classes

This will expose functionality supported by newer kernel interfaces.

Current userspace uses the chipset to determine which classes are likely
exposed, which generally works pretty well, but isn't as flexible as it
could be.

Unfortunately, the G98:GF100 video code in Mesa is still relying on the
kernel exposing incorrect vdec classes on some chipsets. The ABI16
kernel interfaces have a workaround for this in place, but that will no
longer be available once libdrm supports NVIF.

To prevent a regression when NVIF support is added, if there's no kernel
support for NVIF, libdrm will magic up a class list containing correct
vdec classes anyway instead of failing with -ENODEV.

v2.
- add description of abi16/vdec workaround
- add description of sclass/mclass
- leave client-provided pointer unmodified on abi16_sclass() failure

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
c00e1a92a24cb84008d90ce67218bb593396fde5 24-Nov-2015 Ben Skeggs <bskeggs@redhat.com> nouveau: add interface to call an object's methods

This will expose functionality supported by newer kernel interfaces,
giving access to things such as ZBC controls, perfmon, etc.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
343d1ee83e8bf833b575cc1df097d5202e11b8e8 24-Nov-2015 Ben Skeggs <bskeggs@redhat.com> nouveau: make it possible to init object in pre-allocated memory

Required for an upcoming patch, not exposed to library clients.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
0996ad0e12a25841f350b8c5cacccff3d0aa24d2 24-Nov-2015 Ben Skeggs <bskeggs@redhat.com> nouveau: move object functions up, to avoid future foward decls

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
4a3cbf5c0a38adf41d637c5d7273480336df39d0 24-Nov-2015 Ben Skeggs <bskeggs@redhat.com> nouveau: move more abi16-specific logic into abi16.c

v2.
- add a comment about the (ab)use of nouveau_object::length
- add a comment about abi16_object() return values
v3.
- handle new client + old kernel for sw classes

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
a9e5880b3e93f2fc981c910d16a9eab2ca81c7a0 15-Aug-2015 Emil Velikov <emil.l.velikov@gmail.com> nouveau: use designated initializers

Cc: nouveau@lists.freedesktop.org
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
812e8fe6ce46d733c30207ee26c788c61f546294 06-May-2015 Ben Skeggs <bskeggs@redhat.com> nouveau: restore check that avoids multiple user bos per kernel bo

Lost in 5ea6f1c32628887c9df0c53bc8c199eb12633fec, triggering fdo#89842.

Unlike the PRIME fd->handle interfaces, the GEM_OPEN interface doesn't
do anything at the kernel level to prevent this situation occuring,
and we end up with multiple GEM handles for a single kernel buffer.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
/external/libdrm/nouveau/nouveau.c
0c8db0a563857239cfe2b38df1590c571db5a1f1 16-Apr-2015 Greg Hackmann <ghackmann@google.com> Add missing <strings.h> includes

A couple of files use ffs() without explicitly including strings.h.
Some systems will pull in ffs()'s declaration through another header
anyway, but not when compiling against bionic in AOSP master.

Signed-off-by: Greg Hackmann <ghackmann@google.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
0f8da82500ec542e269092c0718479e25eaff5f6 31-Mar-2015 Emil Velikov <emil.l.velikov@gmail.com> drm: remove drm_public macro

Some compilers (like the Oracle Studio), require that the function
declaration must be annotated with the same visibility attribute as the
definition. As annotating functions with drm_public is no longer
required just remove the macro.

Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Damien Lespiau <damien.lespiau@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Cc: Michel Dänzer <michel.daenzer@amd.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Thierry Reding <treding@nvidia.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
42465feb9759ef5a6d79d7e628510cd0a081f913 05-Apr-2015 Emil Velikov <emil.l.velikov@gmail.com> drm: rename libdrm{,_macros}.h

Provide a more meaningful name, considering what it does.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
76e9799b8a465bc3545823ed283a6c3a049c7524 23-Mar-2015 Emil Velikov <emil.l.velikov@gmail.com> nouveau: annotate the private symbols

They are less and easier to track than the public ones. The macro
drm_public will be going away by the end of the series.

Cc: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Cc: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
ba5a0b6274ad9c493ed3ddaf4e13559b9ff55ac1 26-Feb-2015 Maarten Lankhorst <maarten.lankhorst@ubuntu.com> nouveau: Do not add most bo's to the global bo list.

Only add wrapped bo's and bo's that have been exported through flink or dma-buf.
This avoids a lock in the common case, and decreases traversal needed for importing
a dma-buf or flink.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@ubuntu.com>
Tested-By: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
5ea6f1c32628887c9df0c53bc8c199eb12633fec 26-Feb-2015 Maarten Lankhorst <maarten.lankhorst@ubuntu.com> nouveau: make nouveau importing global buffers completely thread-safe, with tests

While I've closed off most races in a previous patch, a small race still existed
where importing then unreffing cound cause an invalid bo. Add a test for this case.

Racing sequence fixed:

- thread 1 releases bo, refcount drops to zero, blocks on acquiring nvdev->lock.
- thread 2 increases refcount to 1.
- thread 2 decreases refcount to zero, blocks on acquiring nvdev->lock.

At this point the 2 threads will clean up the same bo.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@ubuntu.com>
Reviewed-By: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
7cb1d6e2d6c63e3bc4b275ff073152b550ba5b0f 16-Feb-2015 Jerome Glisse <jglisse@redhat.com> nouveau: fix unlock nouveau_bo_name_ref()

Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
/external/libdrm/nouveau/nouveau.c
c98c54f8434e2d38353bbf65b538bfcbf709409b 07-Sep-2014 Emil Velikov <emil.l.velikov@gmail.com> nouveau: use drm_mmap/drm_munmap wrappers

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
/external/libdrm/nouveau/nouveau.c
56c4857f1763b40e566839bdc6fa14f873baf9b8 31-Jul-2014 Maarten Lankhorst <maarten.lankhorst@canonical.com> nouveau: Only export public functions.

This hides all the abi16_* functions and the nouveau_debug variable,
they should have been private to begin with.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/nouveau/nouveau.c
7974b539d2b46167972b9109046a45dbe852ae4c 16-Apr-2014 Maarten Lankhorst <maarten.lankhorst@canonical.com> amend previous commit to actually compile

Ugh!
/external/libdrm/nouveau/nouveau.c
b1d4def05992bf061d6e0cc901ca00b7995e8d75 13-Mar-2014 Maarten Lankhorst <maarten.lankhorst@ubuntu.com> nouveau: safen up nouveau_device list usage against concurrent access

I cannot make nouveau_bo_wrap thread-safe (by design), but it seems to be used to convert
drm fb's to nouveau_bo's and to get a notify handle from fifo->notify in nv30_screen.c

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@ubuntu.com>
/external/libdrm/nouveau/nouveau.c
f92d7969bf6ba636d193423cf2388956badde3ff 03-Mar-2013 Marcin Slusarz <marcin.slusarz@gmail.com> nouveau: add a way to override single pushbuffer memory limits

Currently single pushbuffer can take up to 80% of VRAM and 80% of GART.
As this value seems to be arbitrary (and user may need to set it differently)
this patch adds support for 2 environment variables:
NOUVEAU_LIBDRM_VRAM_LIMIT_PERCENT (default 80)
NOUVEAU_LIBDRM_GART_LIMIT_PERCENT (default 80)
which will let users override pushbuffer VRAM/GART limits.

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
/external/libdrm/nouveau/nouveau.c
c41b494c47f8e514e69cb8c2f2ace41d5fa17c94 22-Nov-2012 Ben Skeggs <bskeggs@redhat.com> nouveau: expose channel engine selection on kepler chipsets

v2: Take Maarten Lankhorst's suggestion of nesting the struct to prevent
sizeof() issues due to padding on older revisions.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
/external/libdrm/nouveau/nouveau.c
13c06cde4e9a4ce275c6cbf477d211344f468dbf 16-Jul-2012 Dave Airlie <airlied@redhat.com> libdrm/nouveau: add prime handle->bo and bo->handle support.

This adds prime support to nouveau libdrm.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/libdrm/nouveau/nouveau.c
5288729823ee1c243023758c35fbe8e3a70ccf9c 01-May-2012 Marcin Slusarz <marcin.slusarz@gmail.com> nouveau: fix channel closing

Restore code lost in libdrm_nouveau rewrite.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
/external/libdrm/nouveau/nouveau.c
d954648b4872e6b40ec8768a14eee818bc7613a8 23-Apr-2012 Marcin Slusarz <marcin.slusarz@gmail.com> nouveau: remove unnecessary EAGAIN loops

drmCommandWrite / drmCommandWriteRead already loop on EAGAIN.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
/external/libdrm/nouveau/nouveau.c
292da616fe1f936ca78a3fa8e1b1b19883e343b6 09-Dec-2011 Ben Skeggs <bskeggs@redhat.com> nouveau: pull in major libdrm rewrite

Redesigned primarily to allow us to better take advantage of BO's having
fixed GPU virtual addresses on GeForce 8 and up, and to reduce the overhead
of handling relocations on earlier chipsets.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Christoph Bumiller <e0425955@student.tuwien.ac.at>
/external/libdrm/nouveau/nouveau.c