[Freedreno] [pull] drm/msm: msm-next for 4.9
Jordan Crouse
jcrouse at codeaurora.org
Wed Sep 21 14:17:42 UTC 2016
On Wed, Sep 21, 2016 at 03:23:33AM -0400, Rob Clark wrote:
> On Wed, Sep 21, 2016 at 12:35 AM, Rob Clark <robdclark at gmail.com> wrote:
> > On Tue, Sep 20, 2016 at 10:39 AM, Jordan Crouse <jcrouse at codeaurora.org> wrote:
> >> So this isn't how I planned on announcing it, but hey, I'm back.
> >>
> >>> Rob Clark (5):
> >>> drm/msm: extend the submit ioctl to pass in flags
> >>
> >> Renaming 'pipe' to 'flags' would break backwards compatibility - I'm not big
> >> fan of 'pipe' either but I would strongly recommend keeping it just to keep
> >> everybody happy. I know that you bump the API version a couple of changes
> >> later and we could use that as a stop gap but workarounds suck.
> >
> > well.. it doesn't break *ABI* compat, and the upstream user (libdrm)
> > carries it's own copy of the header in sync with the name change. As
> > far as I know this is all we care about. Any other "hypothetical"
> > userspace should just carry it's own copy of the kernel header, IMHO.
>
> jfyi, if it wasn't clear, the "flags" field has the "pipe" in the low
> bits (since an ABI break is never ok), and new flags in the high bits:
>
> /* The pipe-id just uses the lower bits, so can be OR'd with flags in
> * the upper 16 bits (which could be extended further, if needed, maybe
> * we extend/overload the pipe-id some day to deal with multiple rings,
> * but even then I don't think we need the full lower 16 bits).
> */
> #define MSM_PIPE_ID_MASK 0xffff
> #define MSM_PIPE_ID(x) ((x) & MSM_PIPE_ID_MASK)
> #define MSM_PIPE_FLAGS(x) ((x) & ~MSM_PIPE_ID_MASK)
>
> Because the new flags are allocated from bit 31 downward, and
> previously the only valid pipe value was "3D0" (0x10), this keeps
> compatibility with old userspace on new kernel. And new userspace on
> old kernel would fail properly with -EINVAL (since pipe!=0x10 was
> never valid before).
>
> (Maybe we'll reduce PIPE_ID_MASK later if we need more room for
> flags.. I kept it large to start since I'm undecided if we want to
> use pipe-id eventually for multi-context support, vs just tying the
> gpu context to the drm_file)
>
>
> BR,
> -R
I saw that ABI was preserved but I was looking for both ABI and API. It seems
we have differing opinions regarding carrying around header file copies but
I guess we'll just have to agree to disagree about that.
Jordan
--
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
More information about the Freedreno
mailing list