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

Commit 896066ee authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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

Pull drm fixes from Dave Airlie:
 "Last fixes from me: one amdgpu/radeon suspend resume and one leak fix,
  along with one vmware fix for some issues when command submission
  fails"

* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
  drm/amdgpu: don't try to recreate sysfs entries on resume
  drm/radeon: don't try to recreate sysfs entries on resume
  drm/amdgpu: stop leaking page flip fence
  drm/vmwgfx: Stabilize the command buffer submission code
parents 85051e29 22ca7ca5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1654,6 +1654,7 @@ struct amdgpu_pm {
	u8                      fan_max_rpm;
	/* dpm */
	bool                    dpm_enabled;
	bool                    sysfs_initialized;
	struct amdgpu_dpm       dpm;
	const struct firmware	*fw;	/* SMC firmware */
	uint32_t                fw_version;
+0 −4
Original line number Diff line number Diff line
@@ -184,10 +184,6 @@ int amdgpu_crtc_page_flip(struct drm_crtc *crtc,
		goto cleanup;
	}

	fence_get(work->excl);
	for (i = 0; i < work->shared_count; ++i)
		fence_get(work->shared[i]);

	amdgpu_bo_get_tiling_flags(new_rbo, &tiling_flags);
	amdgpu_bo_unreserve(new_rbo);

+5 −0
Original line number Diff line number Diff line
@@ -695,6 +695,9 @@ int amdgpu_pm_sysfs_init(struct amdgpu_device *adev)
{
	int ret;

	if (adev->pm.sysfs_initialized)
		return 0;

	if (adev->pm.funcs->get_temperature == NULL)
		return 0;
	adev->pm.int_hwmon_dev = hwmon_device_register_with_groups(adev->dev,
@@ -723,6 +726,8 @@ int amdgpu_pm_sysfs_init(struct amdgpu_device *adev)
		return ret;
	}

	adev->pm.sysfs_initialized = true;

	return 0;
}

+1 −0
Original line number Diff line number Diff line
@@ -1658,6 +1658,7 @@ struct radeon_pm {
	u8                      fan_max_rpm;
	/* dpm */
	bool                    dpm_enabled;
	bool                    sysfs_initialized;
	struct radeon_dpm       dpm;
};

+21 −14
Original line number Diff line number Diff line
@@ -1528,6 +1528,7 @@ int radeon_pm_late_init(struct radeon_device *rdev)

	if (rdev->pm.pm_method == PM_METHOD_DPM) {
		if (rdev->pm.dpm_enabled) {
			if (!rdev->pm.sysfs_initialized) {
				ret = device_create_file(rdev->dev, &dev_attr_power_dpm_state);
				if (ret)
					DRM_ERROR("failed to create device file for dpm state\n");
@@ -1541,6 +1542,9 @@ int radeon_pm_late_init(struct radeon_device *rdev)
				ret = device_create_file(rdev->dev, &dev_attr_power_method);
				if (ret)
					DRM_ERROR("failed to create device file for power method\n");
				if (!ret)
					rdev->pm.sysfs_initialized = true;
			}

			mutex_lock(&rdev->pm.mutex);
			ret = radeon_dpm_late_enable(rdev);
@@ -1556,7 +1560,8 @@ int radeon_pm_late_init(struct radeon_device *rdev)
			}
		}
	} else {
		if (rdev->pm.num_power_states > 1) {
		if ((rdev->pm.num_power_states > 1) &&
		    (!rdev->pm.sysfs_initialized)) {
			/* where's the best place to put these? */
			ret = device_create_file(rdev->dev, &dev_attr_power_profile);
			if (ret)
@@ -1564,6 +1569,8 @@ int radeon_pm_late_init(struct radeon_device *rdev)
			ret = device_create_file(rdev->dev, &dev_attr_power_method);
			if (ret)
				DRM_ERROR("failed to create device file for power method\n");
			if (!ret)
				rdev->pm.sysfs_initialized = true;
		}
	}
	return ret;
Loading