Use the SHA-1 library instead of crypto_shash.  This is simpler and
faster.

Signed-off-by: Eric Biggers <ebigg...@kernel.org>
---
 drivers/gpu/drm/bridge/Kconfig      |  3 +--
 drivers/gpu/drm/bridge/ite-it6505.c | 33 ++---------------------------
 2 files changed, 3 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig
index b9e0ca85226a6..89ac820a13e1e 100644
--- a/drivers/gpu/drm/bridge/Kconfig
+++ b/drivers/gpu/drm/bridge/Kconfig
@@ -118,12 +118,11 @@ config DRM_ITE_IT6505
        select DRM_DISPLAY_HDCP_HELPER
        select DRM_DISPLAY_HELPER
        select DRM_DISPLAY_DP_AUX_BUS
        select DRM_KMS_HELPER
        select EXTCON
-       select CRYPTO
-       select CRYPTO_HASH
+       select CRYPTO_LIB_SHA1
        help
          ITE IT6505 DisplayPort bridge chip driver.
 
 config DRM_LONTIUM_LT8912B
        tristate "Lontium LT8912B DSI/HDMI bridge"
diff --git a/drivers/gpu/drm/bridge/ite-it6505.c 
b/drivers/gpu/drm/bridge/ite-it6505.c
index 1383d1e21afea..319d956c0a28c 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -19,11 +19,11 @@
 #include <linux/regulator/consumer.h>
 #include <linux/types.h>
 #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>
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_bridge.h>
@@ -2105,39 +2105,10 @@ static void it6505_hdcp_part1_auth(struct it6505 
*it6505)
                        HDCP_TRIGGER_START);
 
        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;
        u8 binfo[2];
        int down_stream_count, err, msg_count = 0;
@@ -2203,11 +2174,11 @@ static bool it6505_hdcp_part2_ksvlist_check(struct 
it6505 *it6505)
        if (i <= 0) {
                dev_err(dev, "SHA-1 Input length error %d", i);
                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,
                                      sizeof(bv));
 
-- 
2.50.1


Reply via email to