On 05/30/2012 02:32 PM, Laurent Pinchart wrote:
> [...]
> +     for (i = 0; i < (format->yuv ? 2 : 1); ++i) {
> +             obj = drm_gem_object_lookup(dev, file_priv,
> +                                         mode_cmd->handles[i]);
> +             if (obj == NULL) {
> +                     dev_dbg(dev->dev, "GEM object %u not found\n",
> +                             mode_cmd->handles[i]);
> +                     ret = -ENOENT;
> +                     goto error;
> +             }
> +             sfb->sobj[i] = to_shmob_gem_object(obj);
> +     }
> +

I added multi-plane support the cma fb helper functions and it seems to
work. But all other DRM drivers seem to assume that multi-plane formats
still only have a single buffer, while yours seems to assume that there is a
plane for each buffer. The exception is the Exynos driver, but it added a
new set of formats which are identical to the other formats, but use one
buffer per plane.

So I'm not sure how to implement this correctly in a generic fashion.

- Lars

Reply via email to