Only one fix for DSC (backoff after drm_modeset_lock deadlock)
and GVT's fixes including vGPU display plane size calculation, shadow mm pin count, error recovery path for workload create and one kerneldoc fix. -----BEGIN PGP SIGNATURE----- iQEcBAABAgAGBQJcpiyNAAoJEPpiX2QO6xPKgUEIAITZrpMNGN+n/agRByVgkTJC oR+7hon2nctO42kMrrc/oD6ddPp7WE88dlu7J5w3+25lL5xVM25I9mLmUzlcD1P3 nDCRIw5UCoQUhO+5Hk8+p38mPQdkv8bNUUsA1JgXgDPtJ7fxxkh6HbwV9+JkG8zd f+/o2gZZVOd0EDXZqVCqFPT354LqwlX7OUBn8J2hLorL6y/2YbBNjTYGbe7+G18q c0fOZafTrgGqIKWUviBgsNx0FHaG0vhLBO/uqoO67yDUgBnViwujOpbkz+OhoQRS Qaf/62M/tC/218+CnftxdCcy45M4dTmhd2qKyjDVHPZB3NUcagaaotn8LXBbeUA= =2Q2R -----END PGP SIGNATURE----- Merge tag 'drm-intel-fixes-2019-04-04' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes Only one fix for DSC (backoff after drm_modeset_lock deadlock) and GVT's fixes including vGPU display plane size calculation, shadow mm pin count, error recovery path for workload create and one kerneldoc fix. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Rodrigo Vivi <rodrigo.vivi@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190404161116.GA14522@intel.com
This commit is contained in:
Коммит
23b5f422e8
|
@ -448,7 +448,7 @@ void intel_gvt_emulate_vblank(struct intel_gvt *gvt)
|
|||
/**
|
||||
* intel_vgpu_emulate_hotplug - trigger hotplug event for vGPU
|
||||
* @vgpu: a vGPU
|
||||
* @conncted: link state
|
||||
* @connected: link state
|
||||
*
|
||||
* This function is used to trigger hotplug interrupt for vGPU
|
||||
*
|
||||
|
|
|
@ -238,9 +238,6 @@ static int vgpu_get_plane_info(struct drm_device *dev,
|
|||
default:
|
||||
gvt_vgpu_err("invalid tiling mode: %x\n", p.tiled);
|
||||
}
|
||||
|
||||
info->size = (((p.stride * p.height * p.bpp) / 8) +
|
||||
(PAGE_SIZE - 1)) >> PAGE_SHIFT;
|
||||
} else if (plane_id == DRM_PLANE_TYPE_CURSOR) {
|
||||
ret = intel_vgpu_decode_cursor_plane(vgpu, &c);
|
||||
if (ret)
|
||||
|
@ -262,14 +259,13 @@ static int vgpu_get_plane_info(struct drm_device *dev,
|
|||
info->x_hot = UINT_MAX;
|
||||
info->y_hot = UINT_MAX;
|
||||
}
|
||||
|
||||
info->size = (((info->stride * c.height * c.bpp) / 8)
|
||||
+ (PAGE_SIZE - 1)) >> PAGE_SHIFT;
|
||||
} else {
|
||||
gvt_vgpu_err("invalid plane id:%d\n", plane_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
info->size = (info->stride * info->height + PAGE_SIZE - 1)
|
||||
>> PAGE_SHIFT;
|
||||
if (info->size == 0) {
|
||||
gvt_vgpu_err("fb size is zero\n");
|
||||
return -EINVAL;
|
||||
|
|
|
@ -1946,7 +1946,7 @@ void _intel_vgpu_mm_release(struct kref *mm_ref)
|
|||
*/
|
||||
void intel_vgpu_unpin_mm(struct intel_vgpu_mm *mm)
|
||||
{
|
||||
atomic_dec(&mm->pincount);
|
||||
atomic_dec_if_positive(&mm->pincount);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1486,8 +1486,9 @@ intel_vgpu_create_workload(struct intel_vgpu *vgpu, int ring_id,
|
|||
intel_runtime_pm_put_unchecked(dev_priv);
|
||||
}
|
||||
|
||||
if (ret && (vgpu_is_vm_unhealthy(ret))) {
|
||||
enter_failsafe_mode(vgpu, GVT_FAILSAFE_GUEST_ERR);
|
||||
if (ret) {
|
||||
if (vgpu_is_vm_unhealthy(ret))
|
||||
enter_failsafe_mode(vgpu, GVT_FAILSAFE_GUEST_ERR);
|
||||
intel_vgpu_destroy_workload(workload);
|
||||
return ERR_PTR(ret);
|
||||
}
|
||||
|
|
|
@ -4830,7 +4830,10 @@ static int i915_dsc_fec_support_show(struct seq_file *m, void *data)
|
|||
ret = drm_modeset_lock(&dev->mode_config.connection_mutex,
|
||||
&ctx);
|
||||
if (ret) {
|
||||
ret = -EINTR;
|
||||
if (ret == -EDEADLK && !drm_modeset_backoff(&ctx)) {
|
||||
try_again = true;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
crtc = connector->state->crtc;
|
||||
|
|
Загрузка…
Ссылка в новой задаче