dspcntr |= DISPPLANE_RGBX101010;
                break;
        default:
-               DRM_ERROR("Unknown pixel format 0x%08x\n", fb->pixel_format);
-               return -EINVAL;
+               BUG();
        }
 
        if (INTEL_INFO(dev)->gen >= 4) {
                dspcntr |= DISPPLANE_RGBX101010;
                break;
        default:
-               DRM_ERROR("Unknown pixel format 0x%08x\n", fb->pixel_format);
-               return -EINVAL;
+               BUG();
        }
 
        if (obj->tiling_mode != I915_TILING_NONE)
                bpp = 8*3;
                break;
        case 30:
+               if (INTEL_INFO(dev)->gen < 4) {
+                       DRM_DEBUG_KMS("10 bpc not supported on gen2/3\n");
+                       return -EINVAL;
+               }
+
                bpp = 10*3;
                break;
-       case 48:
-               bpp = 12*3;
-               break;
+       /* TODO: gen4+ supports 16 bpc floating point, too. */
        default:
                DRM_DEBUG_KMS("unsupported depth\n");
                return -EINVAL;
        }
 
-       if (fb->depth > 24 && !HAS_PCH_SPLIT(dev)) {
-               DRM_DEBUG_KMS("high depth not supported on gmch platforms\n");
-               return -EINVAL;
-       }
-
        pipe_config->pipe_bpp = bpp;
 
        /* Clamp display bpp to EDID value */