linux/drivers/gpu/drm
Lyude Paul 1bab09acc9 drm/nouveau: Add support for BLCG on Kepler1
This enables BLCG optimization for kepler1. When using clockgating,
nvidia's firmware has a set of registers which are initially programmed
by the vbios with various engine delays and other mysterious settings
that are safe enough to bring up the GPU. However, the values used by
the vbios are more power hungry then they need to be, so the nvidia driver
writes it's own more optimized set of BLCG settings before enabling
CG_CTRL. This adds support for programming the optimized BLCG values
during engine/subdev init, which enables rather significant power
savings.

This introduces the nvkm_therm_clkgate_init() helper, which we use to
program the optimized BLCG settings before enabling clockgating with
nvkm_therm_clkgate_enable.

As well, this commit shares a lot more code with Fermi since BLCG is
mostly the same there as far as we can tell. In the future, it's likely
we'll reformat the clkgate_packs for kepler1 so that they share a list
of mmio packs with Fermi.

Signed-off-by: Lyude Paul <lyude@redhat.com>
Reviewed-by: Martin Peres <martin.peres@free.fr>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2018-02-02 15:24:08 +10:00
..
amd Merge branch 'drm-next-4.16' of git://people.freedesktop.org/~agd5f/linux into drm-next 2018-01-25 11:40:54 +10:00
arc drm/arc: Use drm_gem_cma_print_info() 2017-11-11 11:23:15 +01:00
arm drm/arm/mali: Use drm_fb_cma_fbdev_init/fini() 2017-12-08 14:47:43 +01:00
armada Merge branch 'drm-armada-devel-4.15' of git://git.armlinux.org.uk/~rmk/linux-arm into drm-next 2018-01-05 09:51:43 +10:00
ast drm/ast: Load lut in crtc_commit 2018-02-01 11:35:46 +10:00
atmel-hlcdc drm/atmel-hlcdc: Use drm_fb_cma_fbdev_init/fini() 2017-12-08 14:47:39 +01:00
bochs drm/bochs: remove the default io_mem_pfn set 2017-12-27 11:34:51 -05:00
bridge Linux 4.15-rc4 2017-12-19 21:37:24 +10:00
cirrus drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2) 2017-12-28 09:48:19 -05:00
etnaviv drm/etnaviv: use memset32 to init pagetable 2018-01-02 17:36:53 +01:00
exynos drm/exynos: ipp: Remove Exynos DRM IPP subsystem 2018-01-02 08:41:22 +09:00
fsl-dcu drm/fsl-dcu: Use drm_mode_config_helper_suspend/resume() 2017-12-05 13:46:41 +01:00
gma500 drm/gma500: Use drm_fb_helper_lastclose() and _poll_changed() 2017-12-08 13:05:22 +01:00
hisilicon drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2) 2017-12-28 09:48:19 -05:00
i2c Merge tag 'drm-misc-next-2017-11-30' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2017-12-04 05:42:49 +10:00
i810
i915 Linux 4.15-rc8 2018-01-18 09:32:15 +10:00
imx drm/imx: format modifier support 2018-01-05 11:33:24 +10:00
lib License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mediatek Merge tag 'drm-misc-next-2017-11-30' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2017-12-04 05:42:49 +10:00
meson drm/meson: Add missing VPU init 2017-12-08 10:43:46 +01:00
mga
mgag200 drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2) 2017-12-28 09:48:19 -05:00
msm Merge tag 'drm-msm-next-2018-01-10' of git://people.freedesktop.org/~robclark/linux into drm-next 2018-01-12 11:45:18 +10:00
mxsfb
nouveau drm/nouveau: Add support for BLCG on Kepler1 2018-02-02 15:24:08 +10:00
omapdrm Linux 4.15-rc8 2018-01-18 09:32:15 +10:00
panel drm/panel: lvds: Handle the optional regulator case properly 2018-01-15 10:16:56 +01:00
pl111 drm/pl111: Use drm_fb_cma_fbdev_init/fini() 2017-12-08 14:47:41 +01:00
qxl drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2) 2017-12-28 09:48:19 -05:00
r128
radeon drm/radeon: fill in rb backend map on evergreen/ni. 2018-01-16 15:35:28 -05:00
rcar-du drm: rcar-du: Clip planes to screen boundaries 2017-12-04 18:38:31 +02:00
rockchip drm/rockchip: Use drm_fb_helper_lastclose() and _poll_changed() 2017-12-08 13:08:06 +01:00
savage
scheduler drm/scheduler: add license to the Makefile 2017-12-07 11:52:29 -05:00
selftests Merge tag 'drm-misc-next-2017-11-30' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2017-12-04 05:42:49 +10:00
shmobile main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
sis
sti drm/sti: Use drm_fb_cma_fbdev_init/fini() 2017-12-08 14:47:41 +01:00
stm drm/stm: ltdc: Remove unnecessary platform_get_resource() error check 2017-12-19 15:23:45 +01:00
sun4i Fixes for 4.16: 2018-01-25 11:42:25 +10:00
tdfx
tegra Linux 4.15-rc8 2018-01-18 09:32:15 +10:00
tilcdc drm/tilcdc changes for 4.16 2017-12-21 11:10:20 +10:00
tinydrm drm/tinydrm: add driver for ST7735R panels 2018-01-03 13:54:24 +01:00
ttm Merge branch 'drm-next-4.16' of git://people.freedesktop.org/~agd5f/linux into drm-next 2018-01-25 11:40:54 +10:00
tve200 drm/tve200: Use drm_fb_cma_fbdev_init/fini() 2017-12-08 14:47:42 +01:00
udl
vc4 Linux 4.15-rc8 2018-01-18 09:32:15 +10:00
vgem treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
via Merge tag 'drm-misc-next-2017-11-30' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2017-12-04 05:42:49 +10:00
virtio drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2) 2017-12-28 09:48:19 -05:00
vmwgfx Linux 4.15-rc8 2018-01-18 09:32:15 +10:00
zte drm/zte: Use drm_fb_cma_fbdev_init/fini() 2017-12-08 14:47:43 +01:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic_helper.c Merge tag 'drm-misc-next-2017-11-30' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2017-12-04 05:42:49 +10:00
drm_atomic.c drm/atomic: document how to handle driver private objects 2017-12-15 11:26:54 +01:00
drm_auth.c drm: Check for lessee in DROP_MASTER ioctl 2018-01-31 09:27:51 +01:00
drm_blend.c drm/atomic-helper: Make zpos property kerneldoc less misleading 2017-12-14 14:20:35 +01:00
drm_bridge.c
drm_bufs.c
drm_cache.c
drm_color_mgmt.c
drm_connector.c Linux 4.15-rc4 2017-12-19 21:37:24 +10:00
drm_context.c
drm_crtc_helper_internal.h
drm_crtc_helper.c
drm_crtc_internal.h drm: rework delayed connector cleanup in connector_iter 2017-12-13 22:59:00 +01:00
drm_crtc.c
drm_debugfs_crc.c
drm_debugfs.c drm/debugfs: Fix framebuffer debugfs file init 2017-11-14 11:08:17 +02:00
drm_dma.c
drm_dp_aux_dev.c Pass mode to wait_on_atomic_t() action funcs and provide default actions 2017-11-13 15:38:16 +00:00
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm: don't link DP aux i2c adapter to the hardware device node 2017-11-20 09:34:17 +01:00
drm_dp_mst_topology.c
drm_drv.c Merge airlied/drm-next into drm-misc-next 2017-11-21 14:17:56 +01:00
drm_dumb_buffers.c
drm_edid_load.c
drm_edid.c drm/edid: kerneldoc for is_hdmi2_sink 2017-12-15 11:13:15 +01:00
drm_encoder_slave.c
drm_encoder.c
drm_fb_cma_helper.c drm/cma-helper: Add drm_fb_cma_fbdev_init/fini() 2017-12-08 14:27:47 +01:00
drm_fb_helper.c drm/framebuffer: Print task that allocated the fb in debug info. 2017-12-20 15:30:17 +01:00
drm_file.c
drm_flip_work.c
drm_fourcc.c
drm_framebuffer.c drm/framebuffer: Print task that allocated the fb in debug info. 2017-12-20 15:30:17 +01:00
drm_gem_cma_helper.c drm: gem_cma_helper.c: Allow importing of contiguous scatterlists with nents > 1 2017-11-15 18:14:46 +01:00
drm_gem_framebuffer_helper.c drm/gem-fb-helper: drm_gem_fbdev_fb_create() make funcs optional 2017-12-08 14:26:00 +01:00
drm_gem.c drm/framebuffer: Add framebuffer debugfs file 2017-11-11 11:21:19 +01:00
drm_global.c
drm_hashtab.c
drm_info.c
drm_internal.h Merge airlied/drm-next into drm-misc-next 2017-11-21 14:17:56 +01:00
drm_ioc32.c
drm_ioctl.c
drm_irq.c
drm_kms_helper_common.c
drm_lease.c drm: move lease init after validation in drm_lease_create 2017-12-21 09:49:40 +01:00
drm_legacy.h
drm_lock.c
drm_memory.c
drm_mipi_dsi.c
drm_mm.c Linux 4.15-rc4 2017-12-19 21:37:24 +10:00
drm_mode_config.c Linux 4.15-rc4 2017-12-19 21:37:24 +10:00
drm_mode_object.c drm/mode_object: fix documentation for object lookups. 2017-11-10 13:50:47 +10:00
drm_modes.c
drm_modeset_helper.c drm/modeset-helper: Add simple modeset suspend/resume helpers 2017-11-30 18:18:08 +01:00
drm_modeset_lock.c
drm_of.c
drm_panel_orientation_quirks.c drm: fix tainted kernel caused by drm_panel_orientation_quirks.c 2017-12-23 20:06:45 +01:00
drm_panel.c
drm_pci.c
drm_plane_helper.c drm: Move drm_plane_helper_check_state() into drm_atomic_helper.c 2017-11-20 21:14:22 +02:00
drm_plane.c drm/plane: Make framebuffer refcounting the responsibility of setplane_internal callers 2017-12-20 14:49:06 +01:00
drm_prime.c drm/prime: skip CPU sync in map/unmap dma_buf 2017-12-04 17:30:19 +01:00
drm_print.c drm/printer: Add drm_vprintf() 2017-11-23 12:31:49 +02:00
drm_probe_helper.c drm/probe-helper: Fix drm_kms_helper_poll_enable() docs 2017-11-30 18:17:37 +01:00
drm_property.c
drm_rect.c
drm_scatter.c
drm_scdc_helper.c
drm_simple_kms_helper.c drm: Move drm_plane_helper_check_state() into drm_atomic_helper.c 2017-11-20 21:14:22 +02:00
drm_syncobj.c Linux 4.15-rc8 2018-01-18 09:32:15 +10:00
drm_sysfs.c
drm_trace_points.c
drm_trace.h main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
drm_vblank.c Merge tag 'drm-misc-next-2017-11-30' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2017-12-04 05:42:49 +10:00
drm_vm.c
drm_vma_manager.c drm/drm_vma_manager.c: Remove useless goto statement 2017-11-02 10:44:08 +01:00
Kconfig Fixes for 4.16: 2018-01-25 11:42:25 +10:00
Makefile drm: fix gpu scheduler link order 2018-01-24 15:49:04 -05:00