Commit e339a737 authored by Eric Biggers's avatar Eric Biggers Committed by Chen-Yu Tsai
Browse files

drm/bridge: it6505: Use SHA-1 library instead of crypto_shash



Instead of using the "sha1" crypto_shash, simply call the sha1() library
function.  This is simpler and faster.

Signed-off-by: default avatarEric Biggers <ebiggers@kernel.org>
Reviewed-by: default avatarChen-Yu Tsai <wenst@chromium.org>
Link: https://patch.msgid.link/20250821175613.14717-1-ebiggers@kernel.org


Signed-off-by: default avatarChen-Yu Tsai <wenst@chromium.org>
parent a3ae3384
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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.
+2 −31
Original line number Diff line number Diff line
@@ -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,