Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 219b3b22 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge branch 'drm-fixes-4.16' of git://people.freedesktop.org/~agd5f/linux into drm-fixes

- Powerplay fixes for cards with no displays attached
- Couple of DC fixes
- radeon workaround for PPC64

* 'drm-fixes-4.16' of git://people.freedesktop.org/~agd5f/linux:
  drm/radeon: insist on 32-bit DMA for Cedar on PPC64/PPC64LE
  drm/amd/display: VGA black screen from s3 when attached to hook
  drm/amdgpu: Unify the dm resume calls into one
  drm/amdgpu: Add a missing lock for drm_mm_takedown
  Revert "drm/radeon/pm: autoswitch power state when in balanced mode"
  drm/amd/powerplay/smu7: allow mclk switching with no displays
  drm/amd/powerplay/vega10: allow mclk switching with no displays
parents 4a3928c6 2c83029c
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -2284,14 +2284,6 @@ int amdgpu_device_resume(struct drm_device *dev, bool resume, bool fbcon)
				drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
			}
			drm_modeset_unlock_all(dev);
		} else {
			/*
			 * There is no equivalent atomic helper to turn on
			 * display, so we defined our own function for this,
			 * once suspend resume is supported by the atomic
			 * framework this will be reworked
			 */
			amdgpu_dm_display_resume(adev);
		}
	}

@@ -2726,7 +2718,6 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,
	if (amdgpu_device_has_dc_support(adev)) {
		if (drm_atomic_helper_resume(adev->ddev, state))
			dev_info(adev->dev, "drm resume failed:%d\n", r);
		amdgpu_dm_display_resume(adev);
	} else {
		drm_helper_resume_force_mode(adev->ddev);
	}
+1 −1
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ static int amdgpu_gtt_mgr_init(struct ttm_mem_type_manager *man,
static int amdgpu_gtt_mgr_fini(struct ttm_mem_type_manager *man)
{
	struct amdgpu_gtt_mgr *mgr = man->priv;

	spin_lock(&mgr->lock);
	drm_mm_takedown(&mgr->mm);
	spin_unlock(&mgr->lock);
	kfree(mgr);
+3 −1
Original line number Diff line number Diff line
@@ -629,11 +629,13 @@ static int dm_resume(void *handle)
{
	struct amdgpu_device *adev = handle;
	struct amdgpu_display_manager *dm = &adev->dm;
	int ret = 0;

	/* power on hardware */
	dc_set_power_state(dm->dc, DC_ACPI_CM_POWER_STATE_D0);

	return 0;
	ret = amdgpu_dm_display_resume(adev);
	return ret;
}

int amdgpu_dm_display_resume(struct amdgpu_device *adev)
+1 −1
Original line number Diff line number Diff line
@@ -1465,7 +1465,7 @@ void decide_link_settings(struct dc_stream_state *stream,
	/* MST doesn't perform link training for now
	 * TODO: add MST specific link training routine
	 */
	if (is_mst_supported(link)) {
	if (stream->signal == SIGNAL_TYPE_DISPLAY_PORT_MST) {
		*link_setting = link->verified_link_cap;
		return;
	}
+7 −4
Original line number Diff line number Diff line
@@ -2756,6 +2756,9 @@ static int smu7_apply_state_adjust_rules(struct pp_hwmgr *hwmgr,
				    PHM_PlatformCaps_DisableMclkSwitchingForFrameLock);


	if (info.display_count == 0)
		disable_mclk_switching = false;
	else
		disable_mclk_switching = ((1 < info.display_count) ||
					  disable_mclk_switching_for_frame_lock ||
					  smu7_vblank_too_short(hwmgr, mode_info.vblank_time_us) ||
Loading