OpenCloudOS-Kernel/drivers/gpu/drm/nouveau
Ben Skeggs 9274f4a9ba drm/nouveau/core: pull in most of the new core infrastructure
This commit provides most of the infrastructure to support a major overhaul
of Nouveau's internals coming in the following commits.  This work aims to
take all the things we've learned over the last several years, and turn that
into a cleaner architecture that's more maintainable going forward.

RAMHT and MM bits of the new core have been left out for the moment, and
will be pulled in as I go through the process of porting the code to
become either subdev or engine modules.

There are several main goals I wanted to achieve through this work:

-- Reduce complexity

The goal here was to make each component of the driver as independent as
possible, which will ease maintainability and readability, and provide a
good base for resetting locked up GPU units in the future.

-- Better tracking of GPU units that are required at any given time

This is for future PM work, we'll be able to tell exactly what parts of the
GPU we need powered at any given point (etc).

-- Expose all available NVIDIA GPUs to the client

In order to support things such as multi-GPU channels, we want to be able
to expose all the NVIDIA GPUs to the client over a single file descriptor
so it can send a single push buffer to multiple GPUs.

-- Untangle the core hardware support code from the DRM implementation

This happened initially as an unexpected side-effect of developing the
initial core infrastructure in userspace, but it turned into a goal of
the whole project.  Initial benefits will be the availablility of a
number of userspace tools and tests using the same code as the driver
itself, but will also be important as I look into some virtualisation
ideas.

v2: Ben Skeggs <bskeggs@redhat.com>
- fix duplicate assignments noticed by clang
- implement some forgotten yelling in error path
- ensure 64-bit engine mask is used everywhere

v3: Marcin Slusarz <marcin.slusarz@gmail.com>
- sparse fixes
- inline nv_printk into nv_assert to prevent recursive inlining issues

v4: Ben Skeggs <bskeggs@redhat.com>
- fixed minor memory leak on gpuobj destruction

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03 13:12:44 +10:00
..
core drm/nouveau/core: pull in most of the new core infrastructure 2012-10-03 13:12:44 +10:00
Kconfig drm/nouveau: select POWER_SUPPLY 2012-04-02 10:45:49 +01:00
Makefile drm/nouveau/core: pull in most of the new core infrastructure 2012-10-03 13:12:44 +10:00
nouveau_abi16.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_abi16.h drm/nouveau: mark most of our ioctls as deprecated, move to compat layer 2012-07-26 10:28:15 +10:00
nouveau_acpi.c vga_switcheroo: Don't require handler init callback 2012-08-17 17:34:41 -04:00
nouveau_agp.c drm/nouveau/agp: move all agp stuff into its own source file 2012-10-03 13:12:43 +10:00
nouveau_agp.h drm/nouveau/agp: move all agp stuff into its own source file 2012-10-03 13:12:43 +10:00
nouveau_backlight.c drm/nva3/backlight: add suppport for newer style backlight regs 2011-09-20 16:10:06 +10:00
nouveau_bios.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_bios.h drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_bo.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_calc.c drm/nouveau: make the behaviour of get_pll_limits() consistent 2010-09-24 16:26:49 +10:00
nouveau_channel.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_connector.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_connector.h drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_crtc.h drm/nv50/display: expose color vibrance control 2012-03-13 17:14:56 +10:00
nouveau_debugfs.c drm/nouveau/fence: convert to exec engine, and improve channel sync 2012-05-24 16:55:53 +10:00
nouveau_display.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_dma.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_dma.h drm/nouveau/ttm: untangle code to support accelerated buffer moves 2012-05-24 16:56:16 +10:00
nouveau_dp.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_drv.c drm/nouveau/agp: move all agp stuff into its own source file 2012-10-03 13:12:43 +10:00
nouveau_drv.h drm/nouveau/agp: move all agp stuff into its own source file 2012-10-03 13:12:43 +10:00
nouveau_encoder.h drm/nouveau/dp: make dp dpms function common, call from sor code instead 2012-03-13 17:15:04 +10:00
nouveau_fb.h drm/nouveau: move master modesetting init to nouveau_display 2011-12-21 19:01:16 +10:00
nouveau_fbcon.c drm/nouveau/fbcon: using nv_two_heads is not a good idea 2012-06-26 12:16:43 +01:00
nouveau_fbcon.h drm/nvc0: implement fbcon acceleration 2010-12-21 17:18:39 +10:00
nouveau_fence.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_fence.h drm/nouveau/fence: fix a race where fence->channel can disappear 2012-05-24 16:55:58 +10:00
nouveau_gem.c drm/nouveau/gem: use bo.offset rather than mm_node.start 2012-10-03 13:12:42 +10:00
nouveau_gpuobj.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_hdmi.c drm/nouveau/hdmi: use correct hdmi regs for nvaa/nvac 2012-04-30 15:55:39 +10:00
nouveau_hw.c drm/nv04/disp: disable vblank interrupts when disabling display 2012-05-24 16:32:01 +10:00
nouveau_hw.h drm/nv04: Fix scanout over the 16MB mark. 2010-11-18 14:38:38 +10:00
nouveau_hwsq.h drm/nouveau/hwsq: remove some magic, give proper opcode names 2011-12-21 19:01:44 +10:00
nouveau_ioc32.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
nouveau_irq.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_mem.c drm/nouveau/agp: move all agp stuff into its own source file 2012-10-03 13:12:43 +10:00
nouveau_mxm.c drm/nouveau/mxm: call mxmi to determine revision before calling mxms 2012-03-13 17:14:57 +10:00
nouveau_notifier.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_perf.c drm/nva3/pm: initial attempt at more magic PFB regs 2012-05-24 16:31:16 +10:00
nouveau_pm.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nouveau_pm.h drm/nva3/pm: initial attempt at more magic PFB regs 2012-05-24 16:31:16 +10:00
nouveau_prime.c drm/nouveau: add license header to prime. 2012-06-27 09:27:35 +01:00
nouveau_reg.h drm/nva3/backlight: add suppport for newer style backlight regs 2011-09-20 16:10:06 +10:00
nouveau_sgdma.c drm/nouveau: give a slightly larger pci(e)gart aperture on all chipsets 2012-05-24 16:31:38 +10:00
nouveau_software.h drm/nouveau: init vblank requests list 2012-07-26 10:28:16 +10:00
nouveau_state.c drm/nouveau/agp: move all agp stuff into its own source file 2012-10-03 13:12:43 +10:00
nouveau_temp.c drm/nouveau/i2c: do parsing of i2c-related vbios info in nouveau_i2c.c 2011-12-21 19:01:40 +10:00
nouveau_ttm.c drm: move ttm global code to core drm 2010-08-04 09:46:06 +10:00
nouveau_util.c drm/nouveau: add nouveau_enum_find() util function 2011-03-14 16:31:50 +10:00
nouveau_util.h drm/nouveau: add nouveau_enum_find() util function 2011-03-14 16:31:50 +10:00
nouveau_volt.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nv04_crtc.c drm: Make the .mode_fixup() operations mode argument a const pointer 2012-07-19 21:52:38 -04:00
nv04_cursor.c drm/nouveau: allow cursor image and position to survive suspend 2010-05-28 16:06:17 +10:00
nv04_dac.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nv04_dfp.c drm: Make the .mode_fixup() operations mode argument a const pointer 2012-07-19 21:52:38 -04:00
nv04_display.c drm/nv04/disp: disable vblank interrupts when disabling display 2012-05-24 16:32:01 +10:00
nv04_fbcon.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nv04_fence.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nv04_pm.c drm/nv04-nv30/pm: port to newer interfaces 2011-12-21 19:01:24 +10:00
nv04_software.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nv04_tv.c drm/nv0x-nv4x: Leave the 0x40 bit untouched when changing CRE_LCD. 2010-10-05 09:58:43 +10:00
nv10_fence.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nv17_tv.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nv17_tv.h drm: Mark constant arrays of drm_display_mode const 2011-02-23 11:13:11 +10:00
nv17_tv_modes.c drm: Mark constant arrays of drm_display_mode const 2011-02-23 11:13:11 +10:00
nv40_pm.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nv50_calc.c drm/nva3/clk: better pll calculation when no fractional fb div available 2011-05-16 10:50:59 +10:00
nv50_crtc.c drm: Make the .mode_fixup() operations mode argument a const pointer 2012-07-19 21:52:38 -04:00
nv50_cursor.c drm/nouveau: use the same packet header macros as userspace 2012-05-24 16:31:49 +10:00
nv50_dac.c drm: Make the .mode_fixup() operations mode argument a const pointer 2012-07-19 21:52:38 -04:00
nv50_display.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nv50_display.h drm/nouveau: create real execution engine for software object class 2012-05-24 16:55:41 +10:00
nv50_evo.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nv50_evo.h drm/nv50/display: expose color vibrance control 2012-03-13 17:14:56 +10:00
nv50_fbcon.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nv50_pm.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nv50_software.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nv50_sor.c drm: Make the .mode_fixup() operations mode argument a const pointer 2012-07-19 21:52:38 -04:00
nv84_fence.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nva3_pm.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nvc0_fbcon.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nvc0_fence.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nvc0_pm.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nvc0_software.c drm/nouveau: restructure source tree, split core from drm implementation 2012-10-03 13:12:43 +10:00
nvd0_display.c drm/nvd0/disp: hopefully fix selection of 6/8bpc mode on DP outputs 2012-08-31 10:49:38 +10:00
nvreg.h drm/nv17-nv40: Fix modesetting failure when pitch == 4096px (fdo bug 35901). 2011-06-07 09:22:29 +10:00