• J
    drm/i915: Cache ringbuf pointer in request structure · 98e1bd4a
    John Harrison 提交于
    In execlist mode, the ringbuf is a function of the ring and context whereas in
    legacy mode, it is derived from the ring alone. Thus the calculation required to
    determine the ringbuf pointer from the ring (and context) also needs to test
    execlist mode or not. This is messy.
    
    Further, the request structure holds a pointer to both the ring and the context
    for which it was created. Thus, given a request, it is possible to derive the
    ringbuf in either legacy or execlist mode. Hence it is necessary to pass just
    the request in to all the low level functions rather than some combination of
    request, ring, context and ringbuf. However, rather than recalculating it each
    time, it is much simpler to just cache the ringbuf pointer in the request
    structure itself.
    
    Caching the pointer means the calculation is done once at request creation time
    and all further code and simply read it directly from the request structure.
    
    OTC-Jira: VIZ-5115
    Signed-off-by: NJohn Harrison <John.C.Harrison@Intel.com>
    [danvet: Drop contentless comment in lrc alloc request entirely. And
    spelling fix in the commit message.]
    Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
    98e1bd4a
intel_lrc.c 58.5 KB