|
@@ -8598,19 +8598,30 @@ int intel_framebuffer_init(struct drm_device *dev,
|
|
|
{
|
|
|
int ret;
|
|
|
|
|
|
- if (obj->tiling_mode == I915_TILING_Y)
|
|
|
+ if (obj->tiling_mode == I915_TILING_Y) {
|
|
|
+ DRM_DEBUG("hardware does not support tiling Y\n");
|
|
|
return -EINVAL;
|
|
|
+ }
|
|
|
|
|
|
- if (mode_cmd->pitches[0] & 63)
|
|
|
+ if (mode_cmd->pitches[0] & 63) {
|
|
|
+ DRM_DEBUG("pitch (%d) must be at least 64 byte aligned\n",
|
|
|
+ mode_cmd->pitches[0]);
|
|
|
return -EINVAL;
|
|
|
+ }
|
|
|
|
|
|
/* FIXME <= Gen4 stride limits are bit unclear */
|
|
|
- if (mode_cmd->pitches[0] > 32768)
|
|
|
+ if (mode_cmd->pitches[0] > 32768) {
|
|
|
+ DRM_DEBUG("pitch (%d) must be at less than 32768\n",
|
|
|
+ mode_cmd->pitches[0]);
|
|
|
return -EINVAL;
|
|
|
+ }
|
|
|
|
|
|
if (obj->tiling_mode != I915_TILING_NONE &&
|
|
|
- mode_cmd->pitches[0] != obj->stride)
|
|
|
+ mode_cmd->pitches[0] != obj->stride) {
|
|
|
+ DRM_DEBUG("pitch (%d) must match tiling stride (%d)\n",
|
|
|
+ mode_cmd->pitches[0], obj->stride);
|
|
|
return -EINVAL;
|
|
|
+ }
|
|
|
|
|
|
/* Reject formats not supported by any plane early. */
|
|
|
switch (mode_cmd->pixel_format) {
|
|
@@ -8621,8 +8632,10 @@ int intel_framebuffer_init(struct drm_device *dev,
|
|
|
break;
|
|
|
case DRM_FORMAT_XRGB1555:
|
|
|
case DRM_FORMAT_ARGB1555:
|
|
|
- if (INTEL_INFO(dev)->gen > 3)
|
|
|
+ if (INTEL_INFO(dev)->gen > 3) {
|
|
|
+ DRM_DEBUG("invalid format: 0x%08x\n", mode_cmd->pixel_format);
|
|
|
return -EINVAL;
|
|
|
+ }
|
|
|
break;
|
|
|
case DRM_FORMAT_XBGR8888:
|
|
|
case DRM_FORMAT_ABGR8888:
|
|
@@ -8630,18 +8643,22 @@ int intel_framebuffer_init(struct drm_device *dev,
|
|
|
case DRM_FORMAT_ARGB2101010:
|
|
|
case DRM_FORMAT_XBGR2101010:
|
|
|
case DRM_FORMAT_ABGR2101010:
|
|
|
- if (INTEL_INFO(dev)->gen < 4)
|
|
|
+ if (INTEL_INFO(dev)->gen < 4) {
|
|
|
+ DRM_DEBUG("invalid format: 0x%08x\n", mode_cmd->pixel_format);
|
|
|
return -EINVAL;
|
|
|
+ }
|
|
|
break;
|
|
|
case DRM_FORMAT_YUYV:
|
|
|
case DRM_FORMAT_UYVY:
|
|
|
case DRM_FORMAT_YVYU:
|
|
|
case DRM_FORMAT_VYUY:
|
|
|
- if (INTEL_INFO(dev)->gen < 5)
|
|
|
+ if (INTEL_INFO(dev)->gen < 5) {
|
|
|
+ DRM_DEBUG("invalid format: 0x%08x\n", mode_cmd->pixel_format);
|
|
|
return -EINVAL;
|
|
|
+ }
|
|
|
break;
|
|
|
default:
|
|
|
- DRM_DEBUG_KMS("unsupported pixel format 0x%08x\n", mode_cmd->pixel_format);
|
|
|
+ DRM_DEBUG("unsupported pixel format 0x%08x\n", mode_cmd->pixel_format);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|