linux_dsm_epyc7002/drivers/gpu/drm
Jordan Crouse 9325d4266a drm/msm/gpu: Attach to the GPU GX power domain
99.999% of the time during normal operation the GMU is responsible
for power and clock control on the GX domain and the CPU remains
blissfully unaware. However, there is one situation where the CPU
needs to get involved:

The power sequencing rules dictate that the GX needs to be turned
off before the CX so that the CX can be turned on before the GX
during power up. During normal operation when the CPU is taking
down the CX domain a stop command is sent to the GMU which turns
off the GX domain and then the CPU handles the CX domain.

But if the GMU happened to be unresponsive while the GX domain was
left then the CPU will need to step in and turn off the GX domain
before resetting the CX and rebooting the GMU. This unfortunately
means that the CPU needs to be marginally aware of the GX domain
even though it is expected to usually keep its hands off.

To support this we create a semi-disabled GX power domain that
does nothing to the hardware on power up but tries to shut it
down normally on power down. In this method the reference counting
is correct and we can step in with the pm_runtime_put() at the right
time during the failure path.

This patch sets up the connection to the GX power domain and does
the magic to "enable" and disable it at the right points.

Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@chromium.org>
2019-04-19 11:50:06 -07:00
..
amd drm/amdgpu: remove unnecessary rlc reset function on gfx9 2019-04-02 16:23:16 -05:00
arc
arm drm/komeda: fix build with drm_modeset_helper.h update 2019-02-11 10:36:00 +01:00
armada
ast Merge branch 'drm-next-5.1' of git://people.freedesktop.org/~agd5f/linux into drm-next 2019-02-04 14:57:34 +10:00
atmel-hlcdc drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install 2019-01-29 15:45:06 +01:00
bochs Linux 5.0 2019-03-04 12:02:55 +10:00
bridge drm next pull request for 5.1 2019-03-08 08:23:15 -08:00
cirrus drm/cirrus: add plane setup 2019-02-05 10:28:13 +01:00
etnaviv Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2019-03-12 15:20:57 +10:00
exynos drm/exynos/mixer: fix MIXER shadow registry synchronisation code 2019-03-21 09:47:29 +09:00
fsl-dcu drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install 2019-01-29 15:45:06 +01:00
gma500 drm/irq: Ditch DRIVER_IRQ_SHARED 2019-01-29 15:45:21 +01:00
hisilicon drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install 2019-01-29 15:45:06 +01:00
i2c
i810
i915 Merge tag 'gvt-fixes-2019-04-04' of https://github.com/intel/gvt-linux into drm-intel-fixes 2019-04-03 18:00:42 -07:00
imx drm/imx: handle pending updates better, add plane zpos property support 2019-02-28 12:53:16 +10:00
lib
mediatek
meson drm/meson: fix TMDS clock filtering for DMT monitors 2019-03-25 11:19:50 +01:00
mga drm/irq: Ditch DRIVER_IRQ_SHARED 2019-01-29 15:45:21 +01:00
mgag200 Merge branch 'drm-next-5.1' of git://people.freedesktop.org/~agd5f/linux into drm-next 2019-02-04 14:57:34 +10:00
msm drm/msm/gpu: Attach to the GPU GX power domain 2019-04-19 11:50:06 -07:00
mxsfb drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install 2019-01-29 15:45:06 +01:00
nouveau Merge branch 'linux-5.1' of git://github.com/skeggsb/linux into drm-fixes 2019-03-22 10:39:35 +10:00
omapdrm Linux 5.0-rc7 2019-02-18 13:27:15 +10:00
panel drm/panel: simple: Add support for PDA 91-00156-A0 panel 2019-01-28 17:45:28 +01:00
pl111
qxl - qxl: Remove the conflicting framebuffers earlier 2019-03-14 11:37:46 +10:00
r128 drm/irq: Ditch DRIVER_IRQ_SHARED 2019-01-29 15:45:21 +01:00
radeon Linux 5.0 2019-03-04 12:02:55 +10:00
rcar-du Merge drm/drm-next into drm-misc-next 2019-02-11 10:35:35 +01:00
rockchip drm/rockchip: vop: reset scale mode when win is disabled 2019-03-18 18:58:12 +01:00
savage drm/savage: mark expected switch fall-throughs 2019-01-30 17:35:29 +01:00
scheduler Merge branch 'drm-next-5.1' of git://people.freedesktop.org/~agd5f/linux into drm-next 2019-02-22 15:56:42 +10:00
selftests
shmobile drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install 2019-01-29 15:45:06 +01:00
sis
sti
stm
sun4i Linux 5.0-rc7 2019-02-18 13:27:15 +10:00
tdfx
tegra drm/tegra: vic: Fix implicit function declaration warning 2019-03-22 14:08:55 +01:00
tilcdc drm/irq: Don't check for DRIVER_HAVE_IRQ in drm_irq_(un)install 2019-01-29 15:45:06 +01:00
tinydrm
ttm drm/ttm: Remove ttm_bo_reference and ttm_bo_unref 2019-01-28 11:43:38 -05:00
tve200
udl drm/udl: Refactor edid retrieving in UDL driver (v2) 2019-03-25 15:58:15 +10:00
v3d drm/sched: Refactor ring mirror list handling. 2019-01-25 16:15:36 -05:00
vc4 drm/vc4: Use struct_size() in kzalloc() 2019-02-06 15:16:08 -08:00
vgem drm/vgem: fix use-after-free when drm_gem_handle_create() fails 2019-03-18 08:45:57 +01:00
via drm/via: mark expected switch fall-throughs 2019-01-30 17:35:29 +01:00
virtio Linux 5.0-rc7 2019-02-18 13:27:15 +10:00
vkms drm/vkms: fix use-after-free when drm_gem_handle_create() fails 2019-03-18 08:45:57 +01:00
vmwgfx Merge branch 'vmwgfx-fixes-5.1' of git://people.freedesktop.org/~thomash/linux into drm-fixes 2019-03-22 11:53:36 +10:00
xen drm/xen-front: Fix mmap attributes for display buffers 2019-02-04 08:39:31 +02:00
zte
ati_pcigart.c
drm_agpsupport.c drm: Trivial comment grammar cleanups 2019-02-04 10:21:17 +01:00
drm_atomic_helper.c - Properly mark the ptr_to_compat argument with the __user tag 2019-03-12 14:57:14 +10:00
drm_atomic_state_helper.c
drm_atomic_uapi.c Linux 5.0-rc7 2019-02-18 13:27:15 +10:00
drm_atomic.c
drm_auth.c
drm_blend.c
drm_bridge.c
drm_bufs.c drm: Trivial comment grammar cleanups 2019-02-04 10:21:17 +01:00
drm_cache.c
drm_client.c
drm_color_mgmt.c drm: Constify drm_color_lut_check() 2019-01-29 23:26:12 +02:00
drm_connector.c drm: Trivial comment grammar cleanups 2019-02-04 10:21:17 +01:00
drm_context.c
drm_crtc_helper_internal.h
drm_crtc_helper.c
drm_crtc_internal.h
drm_crtc.c
drm_damage_helper.c drm: prepare for drmP.h removal from drm_modeset_helper.h 2019-02-07 21:48:28 +01:00
drm_debugfs_crc.c
drm_debugfs.c
drm_dma.c
drm_dp_aux_dev.c
drm_dp_cec.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm/dsc: Add kernel documentation for DRM DP DSC helpers 2019-02-08 13:38:51 -08:00
drm_dp_mst_topology.c drm/dp_mst: Remove rebase-detritus in VCPI helper kernel-docs 2019-02-06 13:37:38 -05:00
drm_drv.c drm: Fix drm_release() and device unplug 2019-03-25 15:58:05 +10:00
drm_dsc.c drm/dsc: Add kernel documentation for DRM DP DSC helpers 2019-02-08 13:38:51 -08:00
drm_dumb_buffers.c
drm_edid_load.c
drm_edid.c
drm_encoder_slave.c
drm_encoder.c
drm_fb_cma_helper.c
drm_fb_helper.c drm/fb: avoid setting 0 depth. 2019-03-25 09:25:20 +10:00
drm_file.c drm: Fix drm_release() and device unplug 2019-03-25 15:58:05 +10:00
drm_flip_work.c
drm_fourcc.c drm/fourcc: Add new P010, P016 video format 2019-02-08 22:17:08 +01:00
drm_framebuffer.c drm: Trivial comment grammar cleanups 2019-02-04 10:21:17 +01:00
drm_gem_cma_helper.c
drm_gem_framebuffer_helper.c
drm_gem.c drm: Trivial comment grammar cleanups 2019-02-04 10:21:17 +01:00
drm_hashtab.c
drm_internal.h
drm_ioc32.c drm: add __user attribute to ptr_to_compat() 2019-03-04 09:55:31 -05:00
drm_ioctl.c drm: allow render capable master with DRM_AUTH ioctls 2019-02-13 17:42:36 +00:00
drm_irq.c drm/irq: Ditch DRIVER_IRQ_SHARED 2019-01-29 15:45:21 +01:00
drm_kms_helper_common.c
drm_lease.c Linux 5.0-rc7 2019-02-18 13:27:15 +10:00
drm_legacy.h
drm_lock.c
drm_memory.c
drm_mipi_dsi.c
drm_mm.c drm: Trivial comment grammar cleanups 2019-02-04 10:21:17 +01:00
drm_mode_config.c
drm_mode_object.c
drm_modes.c Linux 5.0-rc7 2019-02-18 13:27:15 +10:00
drm_modeset_helper.c drm: prepare for drmP.h removal from drm_modeset_helper.h 2019-02-07 21:48:28 +01:00
drm_modeset_lock.c
drm_of.c
drm_panel_orientation_quirks.c
drm_panel.c
drm_pci.c
drm_plane_helper.c
drm_plane.c
drm_prime.c
drm_print.c
drm_probe_helper.c
drm_property.c drm: Trivial comment grammar cleanups 2019-02-04 10:21:17 +01:00
drm_rect.c drm: Nuke drm_calc_{h,v}scale_relaxed() 2019-02-07 13:14:06 +02:00
drm_scatter.c
drm_scdc_helper.c
drm_simple_kms_helper.c
drm_syncobj.c
drm_sysfs.c
drm_trace_points.c
drm_trace.h
drm_vblank.c drm: Trivial comment grammar cleanups 2019-02-04 10:21:17 +01:00
drm_vm.c
drm_vma_manager.c
drm_writeback.c
Kconfig
Makefile drm: rcar-du: lvds: Add API to enable/disable clock output 2019-02-08 02:25:56 +02:00