On Tue, Aug 12, 2014 at 07:39:55PM +0300, ville.syrj...@linux.intel.com wrote:
>       /* Check for which cursor types we support */
> -     if (!((width == 64 && height == 64) ||
> -                     (width == 128 && height == 128 && !IS_GEN2(dev)) ||
> -                     (width == 256 && height == 256 && !IS_GEN2(dev)))) {
> -             DRM_DEBUG("Cursor dimension not supported\n");
> -             return -EINVAL;
> +     if (IS_845G(dev) || IS_I865G(dev)) {
> +             if (width == 0 || height == 0 || (width & 63) != 0 ||
> +                 width > (IS_845G(dev) ? 64 : 512) || height > 1023) {
> +                     DRM_DEBUG("Cursor dimension not supported\n");
> +                     return -EINVAL;
> +             }
> +     } else {
> +             if (!((width == 64 && height == 64) ||
> +                   (width == 128 && height == 128 && !IS_GEN2(dev)) ||
> +                   (width == 256 && height == 256 && !IS_GEN2(dev)))) {
> +                     DRM_DEBUG("Cursor dimension not supported\n");
> +                     return -EINVAL;

Whilst changing this code, could we rewrite this sanely?

        switch (width | height) { // fails width==0 xor height==0
        case 128:
        case 256: if (!IS_GEN2(dev))
        case 64: break;
        default:
                 DRM_DEBUG("Cursor dimension not supported\n");
                 return -EINVAL;
        }

Ok, maybe I was having too much fun, but there are simpler ways of
writing that predicate.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to