drm/bridge: it6505: Use SHA-1 library instead of crypto_shash
Subsystems (4)
PATCH 1/1 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 Eric Biggers <[email protected]>
---
Note: this patch depends on the SHA-1 library functions that were merged in v6.17-rc1.
drivers/gpu/drm/bridge/Kconfig | 3 +-- drivers/gpu/drm/bridge/ite-it6505.c | 33 ++--------------------------- 2 files changed, 3 insertions(+), 33 deletions(-)
drivers/gpu/drm/bridge/Kconfig +1 -2
@@ -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"
drivers/gpu/drm/bridge/ite-it6505.c +2 -31
@@ -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));
base-commit: 0905809b38bda1fa0b206986c44d846e46f13c1d
Signature · 1 line
2.50.1