[Linux-stm32] [PATCH 4/7] crypto: stm32/hash: Make dma_mode a bool

Lionel DEBIEVE lionel.debieve at foss.st.com
Tue Jan 3 08:21:16 UTC 2023


Hi Linus,

On 12/28/22 00:03, Linus Walleij wrote:

> This flag enables/disables DMA mode and is a true/false
> flag so make it a bool. Clamp the value from the
> HASH_HWCFGR register to a bool as well using a double-bang
> construction.
>
> Signed-off-by: Linus Walleij<linus.walleij at linaro.org>
> ---
>   drivers/crypto/stm32/stm32-hash.c | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/crypto/stm32/stm32-hash.c b/drivers/crypto/stm32/stm32-hash.c
> index cc0a4e413a82..5f03be121787 100644
> --- a/drivers/crypto/stm32/stm32-hash.c
> +++ b/drivers/crypto/stm32/stm32-hash.c
> @@ -166,7 +166,7 @@ struct stm32_hash_dev {
>   	struct reset_control	*rst;
>   	void __iomem		*io_base;
>   	phys_addr_t		phys_base;
> -	u32			dma_mode;
> +	bool			dma_mode;

Till now, the value is 0 or 1.
I'm expecting in the future that the value could become greater than 1, it comes from the HW register value where the bitfield is 4 bits.
Bool can simplify for now but will be moved back to u32 once the value will be increased. I'd prefer to keep the dma_mode as u32.

>   	u32			dma_maxburst;
>   
>   	struct ahash_request	*req;
> @@ -481,7 +481,7 @@ static int stm32_hash_hmac_dma_send(struct stm32_hash_dev *hdev)
>   	struct stm32_hash_ctx *ctx = crypto_ahash_ctx(tfm);
>   	int err;
>   
> -	if (ctx->keylen < HASH_DMA_THRESHOLD || (hdev->dma_mode == 1)) {
> +	if (ctx->keylen < HASH_DMA_THRESHOLD || (hdev->dma_mode)) {
>   		err = stm32_hash_write_key(hdev);
>   		if (stm32_hash_wait_busy(hdev))
>   			return -ETIMEDOUT;
> @@ -568,7 +568,7 @@ static int stm32_hash_dma_send(struct stm32_hash_dev *hdev)
>   
>   		sg[0] = *tsg;
>   		if (sg_is_last(sg)) {
> -			if (hdev->dma_mode == 1) {
> +			if (hdev->dma_mode) {
>   				len = (ALIGN(sg->length, 16) - 16);
>   
>   				ncp = sg_pcopy_to_buffer(
> @@ -602,7 +602,7 @@ static int stm32_hash_dma_send(struct stm32_hash_dev *hdev)
>   			return err;
>   	}
>   
> -	if (hdev->dma_mode == 1) {
> +	if (hdev->dma_mode) {
>   		if (stm32_hash_wait_busy(hdev))
>   			return -ETIMEDOUT;
>   		reg = stm32_hash_read(hdev, HASH_CR);
> @@ -663,7 +663,7 @@ static bool stm32_hash_dma_aligned_data(struct ahash_request *req)
>   		return false;
>   
>   	if (sg_nents(req->src) > 1) {
> -		if (hdev->dma_mode == 1)
> +		if (hdev->dma_mode)
>   			return false;
>   		for_each_sg(req->src, sg, sg_nents(req->src), i) {
>   			if ((!IS_ALIGNED(sg->length, sizeof(u32))) &&
> @@ -1525,7 +1525,7 @@ static int stm32_hash_probe(struct platform_device *pdev)
>   	if (ret)
>   		goto err_engine_start;
>   
> -	hdev->dma_mode = stm32_hash_read(hdev, HASH_HWCFGR);
> +	hdev->dma_mode = !!stm32_hash_read(hdev, HASH_HWCFGR);
>   
>   	/* Register algos */
>   	ret = stm32_hash_register_algs(hdev);
>

BR,
Lionel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://st-md-mailman.stormreply.com/pipermail/linux-stm32/attachments/20230103/cd4a635d/attachment.html>


More information about the Linux-stm32 mailing list