]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/bridge: it6505: Use SHA-1 library instead of crypto_shash
authorEric Biggers <ebiggers@kernel.org>
Thu, 21 Aug 2025 17:56:13 +0000 (13:56 -0400)
committerChen-Yu Tsai <wenst@chromium.org>
Thu, 4 Sep 2025 03:27:45 +0000 (11:27 +0800)
Instead of using the "sha1" crypto_shash, simply call the sha1() library
function.  This is simpler and faster.

Signed-off-by: Eric Biggers <ebiggers@kernel.org>
Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
Link: https://patch.msgid.link/20250821175613.14717-1-ebiggers@kernel.org
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
drivers/gpu/drm/bridge/Kconfig
drivers/gpu/drm/bridge/ite-it6505.c

index 6945029b35929a8e30054ac1a699bd88ab0487f2..a250afd8d662200c250f8e7c1b968a956b9c180c 100644 (file)
@@ -120,8 +120,7 @@ config DRM_ITE_IT6505
        select DRM_DISPLAY_DP_AUX_BUS
        select DRM_KMS_HELPER
        select EXTCON
-       select CRYPTO
-       select CRYPTO_HASH
+       select CRYPTO_LIB_SHA1
        select REGMAP_I2C
        help
          ITE IT6505 DisplayPort bridge chip driver.
index 89649c17ffad95e8691fd3583aad22817027ef17..a094803ba7aa4e12165fcde432d4e6417fbf3676 100644 (file)
@@ -21,7 +21,7 @@
 #include <linux/wait.h>
 #include <linux/bitfield.h>
 
-#include <crypto/hash.h>
+#include <crypto/sha1.h>
 
 #include <drm/display/drm_dp_helper.h>
 #include <drm/display/drm_hdcp_helper.h>
@@ -2107,35 +2107,6 @@ static void it6505_hdcp_part1_auth(struct it6505 *it6505)
        it6505->hdcp_status = HDCP_AUTH_GOING;
 }
 
-static int it6505_sha1_digest(struct it6505 *it6505, u8 *sha1_input,
-                             unsigned int size, u8 *output_av)
-{
-       struct shash_desc *desc;
-       struct crypto_shash *tfm;
-       int err;
-       struct device *dev = it6505->dev;
-
-       tfm = crypto_alloc_shash("sha1", 0, 0);
-       if (IS_ERR(tfm)) {
-               dev_err(dev, "crypto_alloc_shash sha1 failed");
-               return PTR_ERR(tfm);
-       }
-       desc = kzalloc(sizeof(*desc) + crypto_shash_descsize(tfm), GFP_KERNEL);
-       if (!desc) {
-               crypto_free_shash(tfm);
-               return -ENOMEM;
-       }
-
-       desc->tfm = tfm;
-       err = crypto_shash_digest(desc, sha1_input, size, output_av);
-       if (err)
-               dev_err(dev, "crypto_shash_digest sha1 failed");
-
-       crypto_free_shash(tfm);
-       kfree(desc);
-       return err;
-}
-
 static int it6505_setup_sha1_input(struct it6505 *it6505, u8 *sha1_input)
 {
        struct device *dev = it6505->dev;
@@ -2205,7 +2176,7 @@ static bool it6505_hdcp_part2_ksvlist_check(struct it6505 *it6505)
                return false;
        }
 
-       it6505_sha1_digest(it6505, it6505->sha1_input, i, (u8 *)av);
+       sha1(it6505->sha1_input, i, (u8 *)av);
        /*1B-05 V' must retry 3 times */
        for (retry = 0; retry < 3; retry++) {
                err = it6505_get_dpcd(it6505, DP_AUX_HDCP_V_PRIME(0), (u8 *)bv,