• Sean Paul's avatar
    drm/i915: Fix sha_text population code · 9ab57658
    Sean Paul authored
    This patch fixes a few bugs:
    
    1- We weren't taking into account sha_leftovers when adding multiple
       ksvs to sha_text. As such, we were or'ing the end of ksv[j - 1] with
       the beginning of ksv[j]
    
    2- In the sha_leftovers == 2 and sha_leftovers == 3 case, bstatus was
       being placed on the wrong half of sha_text, overlapping the leftover
       ksv value
    
    3- In the sha_leftovers == 2 case, we need to manually terminate the
       byte stream with 0x80 since the hardware doesn't have enough room to
       add it after writing M0
    
    The upside is that all of the HDCP supported HDMI repeaters I could
    find on Amazon just strip HDCP anyways, so it turns out to be _really_
    hard to hit any of these cases without an MST hub, which is not (yet)
    supported. Oh, and the sha_leftovers == 1 case works perfectly!
    
    Fixes: ee5e5e7a ("drm/i915: Add HDCP framework + base implementation")
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Ramalingam C <ramalingam.c@intel.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Sean Paul <seanpaul@chromium.org>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: intel-gfx@lists.freedesktop.org
    Cc: <stable@vger.kernel.org> # v4.17+
    Reviewed-by: default avatarRamalingam C <ramalingam.c@intel.com>
    Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
    Signed-off-by: default avatarRamalingam C <ramalingam.c@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200818153910.27894-2-sean@poorly.run
    (cherry picked from commit 1f088221)
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    9ab57658
intel_hdcp.c 60.7 KB