24 Jul, 2020

11 commits


18 May, 2018

2 commits


02 Nov, 2017

1 commit


28 Aug, 2015

1 commit

  • 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

    Ben Skeggs
     

10 Aug, 2014

3 commits


18 Dec, 2013

1 commit


14 Nov, 2013

1 commit


20 Feb, 2013

1 commit


03 Oct, 2012

1 commit

  • 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
    - fix find/replace bug in license header

    v3: Ben Skeggs
    - 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
    - add sparse annotations to nv04_fifo_pause/nv04_fifo_start
    - use ioread32_native/iowrite32_native for fifo control registers

    v5: Ben Skeggs
    - 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

    Ben Skeggs
     

24 May, 2012

4 commits


29 Mar, 2012

1 commit


22 Mar, 2012

1 commit


25 Feb, 2011

3 commits


21 Dec, 2010

2 commits


05 Oct, 2010

1 commit


25 Feb, 2010

2 commits

  • This commit breaks the userspace interface, and requires a new libdrm for
    nouveau to operate again.

    The multiple GEM_PUSHBUF ioctls that were present in 0.0.15 for
    compatibility purposes are now gone, and replaced with the new ioctl which
    allows for multiple push buffers to be submitted (necessary for hw index
    buffers in the nv50 3d driver) and relocations to be applied on any buffer.

    A number of other ioctls (CARD_INIT, GEM_PIN, GEM_UNPIN) that were needed
    for userspace modesetting have also been removed.

    Signed-off-by: Ben Skeggs
    Signed-off-by: Francisco Jerez

    Ben Skeggs
     
  • PFIFO on G80 and up has a new mode where the main ring buffer is simply a
    ring of pointers to indirect buffers containing the actual command/data
    packets. In order to be able to implement index buffers in the 3D driver
    we need to be able to submit data-only push buffers right after the cmd
    packet header, which is only possible using the new command submission
    method.

    This commit doesn't make it possible to implement index buffers yet, some
    userspace interface changes will be required, but it does allow for
    testing/debugging of the hardware-side support in the meantime.

    Signed-off-by: Ben Skeggs

    Ben Skeggs
     

11 Jan, 2010

1 commit


11 Dec, 2009

1 commit

  • This adds a drm/kms staging non-API stable driver for GPUs from NVIDIA.

    This driver is a KMS-based driver and requires a compatible nouveau
    userspace libdrm and nouveau X.org driver.

    This driver requires firmware files not available in this kernel tree,
    interested parties can find them via the nouveau project git archive.

    This driver is reverse engineered, and is in no way supported by nVidia.

    Support for nearly the complete range of nvidia hw from nv04->g80 (nv50)
    is available, and the kms driver should support driving nearly all
    output types (displayport is under development still) along with supporting
    suspend/resume.

    This work is all from the upstream nouveau project found at
    nouveau.freedesktop.org.

    The original authors list from nouveau git tree is:
    Anssi Hannula
    Ben Skeggs
    Francisco Jerez
    Maarten Maathuis
    Marcin Kościelnicki
    Matthew Garrett
    Matt Parnell
    Patrice Mandin
    Pekka Paalanen
    Xavier Chantry
    along with project founder Stephane Marchesin

    Signed-off-by: Ben Skeggs
    Signed-off-by: Dave Airlie

    Ben Skeggs