Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: vmwgfx: fix incorrect VRAM size check in vmw_kms_fb_create() drm/radeon/kms: bail on BTC parts if MC ucode is missing
This commit is contained in:
commit
4962516b23
2 changed files with 15 additions and 3 deletions
|
@ -3276,6 +3276,18 @@ int evergreen_init(struct radeon_device *rdev)
|
|||
rdev->accel_working = false;
|
||||
}
|
||||
}
|
||||
|
||||
/* Don't start up if the MC ucode is missing on BTC parts.
|
||||
* The default clocks and voltages before the MC ucode
|
||||
* is loaded are not suffient for advanced operations.
|
||||
*/
|
||||
if (ASIC_IS_DCE5(rdev)) {
|
||||
if (!rdev->mc_fw && !(rdev->flags & RADEON_IS_IGP)) {
|
||||
DRM_ERROR("radeon: MC ucode required for NI+.\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1093,7 +1093,6 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev,
|
|||
struct vmw_surface *surface = NULL;
|
||||
struct vmw_dma_buffer *bo = NULL;
|
||||
struct ttm_base_object *user_obj;
|
||||
u64 required_size;
|
||||
int ret;
|
||||
|
||||
/**
|
||||
|
@ -1102,8 +1101,9 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev,
|
|||
* requested framebuffer.
|
||||
*/
|
||||
|
||||
required_size = mode_cmd->pitch * mode_cmd->height;
|
||||
if (unlikely(required_size > (u64) dev_priv->vram_size)) {
|
||||
if (!vmw_kms_validate_mode_vram(dev_priv,
|
||||
mode_cmd->pitch,
|
||||
mode_cmd->height)) {
|
||||
DRM_ERROR("VRAM size is too small for requested mode.\n");
|
||||
return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue