• James Jones's avatar
    drm/nouveau: Fix ttm move init with multiple GPUs · 72ecb0a6
    James Jones authored
    The pointer used to walk the table of move ops
    and pick the right one for the current GPU was
    declared static, meaning its state was carried
    over between invocations of the function, and also
    made the function non-rentrant and thread-unsafe.
    Since the table is ordered such that newer GPU
    methods are listed first, the result of this was
    that initializing newer GPUs after older GPUs
    would result in no suitable ttm move acceleration
    operations being found, and ttm would fall back
    to CPU blits on the older GPUs.
    
    This change declares the walking pointer
    separately from the table and makes it non-static
    to fix the logic.
    Signed-off-by: default avatarJames Jones <jajones@nvidia.com>
    Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
    72ecb0a6
nouveau_bo.c 43.2 KB