From nobody Mon Feb 9 04:27:32 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0AFA630F547 for ; Fri, 28 Nov 2025 11:44:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330256; cv=none; b=utYckYVoKLXuPEoqjcrL+XXri2+Qv5QrQgeEHFrV1D6t4wYpQXgtWdTqaG2s8cGPDWJDdmKCwB0oBLvdn9jgBhoYgo5OoizO5SPHr5oxQORo1VM/YdzlImu6eNvzpQq9Go/OUYZHdaX5O6PB4iaH8Ze1dYFKBv0CJftCsa2hrV0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330256; c=relaxed/simple; bh=TUyr94Jtc33qfF1dHLVyC6XEZjaXwlAM1r5rnAPwmwY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ia6RbMQOdKBLiRdD48baJJQkTSW7BSPzaU3CdeZU3PCQLIn79a2+UGkdpSz8FXS+ycnGNHxmu6xCucXahYx8RqlGbjxgrYd4WcM9SmdPOS0EiUMth7nXUhZrqdA2XY8Yz7tk8406atH3zmga6QS1P6TinGD7K85DJ43jhUBxDl0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=MQ5NLo8R; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="MQ5NLo8R" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-477bf34f5f5so11734545e9.0 for ; Fri, 28 Nov 2025 03:44:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1764330253; x=1764935053; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=wsLkHPSXKJgPwvxtY/gmIzQjj9kLAJgCqTwY9k7v6bM=; b=MQ5NLo8RG4YGu+iv+0fBLa5akDVnyC4YJIToVoLtAGara/lMq+etDwx+MucK9jHu40 c9K39umXd117hTOIBZqysN1Mmw/VP2yDPj27UL9oXBFhsSOivxR540fA/Awz0O9dVUcr IKqz0Q9TG4/uURqucdWAmU5HOcGYCfE1np0GL/fmniX+GgVLHp7t3548UeTx1wyEnmX/ HUdJRpsJVRFFguifZBl/RaCbY6ktEZzLPn33oggYCv1W5aujx+cTZNltimwt1/co3cgo E7x4HbCyipKBRC0vWsP6+VY6Qz2FsQyFS13uwRt4gFPITRNlcLYQSbvokIkM1NyKApBO Y0KQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330253; x=1764935053; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=wsLkHPSXKJgPwvxtY/gmIzQjj9kLAJgCqTwY9k7v6bM=; b=kw9ZDK7P2FX4Y975kFHni9dR7PjWkUIYxWGfXMTBx9dTaN1xAi+yEidEgx6YZ/Ngt3 BpzxLFNh4WLHXsrx8KPHVxUgZw5ONISTyM0Q45qNgRWeLTtK8mrKY88iiCM+ARQyagRF 4uAr7VJcWORugQOO6C+iZjF1hwbEuXsuPTbDEWBvA1V0tfyhyjb5UQpaZ7oO49Z8Rvlb On20pt10lZEw0X+rWAmqnD6cXdpMMG0OqQoXZVNfhK9dqRt9/Z9sepfK5qsNcbX7/SsR CchTsGOBA6n9PPJrkyWZJauO/oMTqH8bqo4e55aFelJ8vfR2H7ATDO4g0lsTG3ezTUdr DiiA== X-Forwarded-Encrypted: i=1; AJvYcCWMYrT5n9vlPw2T0FcbvdIsBVf7ILJ6h4ML5yqHIqZbiSbbuHoSen1SQV5FTEkzF836LTLVQ/bGDfxJ53I=@vger.kernel.org X-Gm-Message-State: AOJu0YwnsRnchqoJxf3aMiPFAGO+hWH32fuiBgJu6dTqSsV1J/cTk+1U 7wd23BBVtvhUJ3CzkS/+TfyFciTys2Wwhrg6b+DzM2sR0HwPpPxS7pKgDZn3fcnIgbs= X-Gm-Gg: ASbGncv5aj7XsUinUFWKpOI1m5H6e8Lq187+2qhlcsq0AMfxRx+EytuTRJHa2CJuw5s GAd8GMVHpbAY0ivA2iRLPrSIiMxRt2/UYJyNS/gPKzF/3KOu0yl5o8VqDSneFL9rM/HoW8PESeJ G0QPQciMeemN64HD7zSHlUpxHC5JKPsgEQBHVzImaQ4HJ4vBX7O+kJPWal2IIjAOVG/5FcBiyGM qtmg8Y6mdaOBHGQ5SZjTJRoRmOfw1Lsi+qrsLrJWyjuTyoAQi0ty++y1Am/MKqRRO08xSqJngW9 yg3dOglT3EzJcPXtP7HP8FFiLWTRTXzpDeqGJPieT+6W8ujHkbEFD9z+fEgE6WRPnXjH+eYL8KG PGchE/zE7TEYoKWtL4l1i0IZ+QUSt2h82U8BzvsVgINRaQ2KcimBdD4aSradKGMpiufYR0TMi40 Q/H0XMTQ== X-Google-Smtp-Source: AGHT+IFSd8jIclsoKvcKNm3qGT/FEKyfyxGrRbEKlz3oiFEyjjtFmnavNU+aqDkyD9XhXLIvGRzzbQ== X-Received: by 2002:a05:600c:4fce:b0:477:9aeb:6a8f with SMTP id 5b1f17b1804b1-47904ad9438mr138361265e9.9.1764330253201; Fri, 28 Nov 2025 03:44:13 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:f3c6:aa54:79d2:8979]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47906cb1f60sm89888445e9.1.2025.11.28.03.44.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:44:12 -0800 (PST) From: Bartosz Golaszewski Date: Fri, 28 Nov 2025 12:43:59 +0100 Subject: [PATCH v9 01/11] dmaengine: qcom: bam_dma: Extend the driver's device match data Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-qcom-qce-cmd-descr-v9-1-9a5f72b89722@linaro.org> References: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> In-Reply-To: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam , Dmitry Baryshkov Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3649; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=0woh03/bgCFE8ePGo1YBxXHVZW/UvQS3qBPjY4r3K2A=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpKYsGNDUf9Ng+dfUac05iglgaNCsKaY2Lrm/P4 HhNOhG3EeeJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaSmLBgAKCRAFnS7L/zaE w4F9D/9BMJX/tFeUWAm1i3ry15M349LsqliUmWdcxq0xxLuIofu6Vx5Kas7waECTmxMM/pOaIyf cW+8672+vdSduCeRWD/aqJMAwbioj0G8jxYTQ5OcfqzHaImXCL2cvC3Ti4IeFCE0J6vnpaKeeeA NhkbZn5U8+p7ltLfZwYjD+J5ijbufnIXQOZyTYgVW8XwCiQq5hyEuny6KrboiKdtWNylznDIKMR M3XUfFmIbiyVkJgSuG9SJ15AR6mBssG6YEzi5zpP8P1sI7aKnMht//ukR5Nhyfu2pZdwhBZRueq KzOsoZyDNasf9Q/1EltdmlQOO5/j+mQ1rw6WvTYmWKmGsAJFn5TEQnzKNzmwn3tWfUcpnYtZaRF oXiHA82hXAzmuSV6Wu0MI/4dKmIju/yc6vhdje0Rj/BsRshC3m09SmbEi0bE9upb+fVJa6+rG7t RGsCuYlzpKTkAw8Bjo0hzzbX2h+sDOh293aMEkt3knnNNkQKI8cFF9fjBgCekLwwjwDtKXQcV70 16fLZUbVdTqanbJtEUQ7aP2KRqz5AuN/dEGv9AEQwkcA6l2mnM9Xs89nBaQGD6j9OBxsJjKmkmW BGX/+NoI6vuFWAwvdoasuqKTRtInW3mr/kg9kX+SUtzr1oDg1Wlk+4oaB6eUn9i1WnZ+r5evaZ/ cc/Of/cqn7I6M2A== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski In preparation for supporting the pipe locking feature flag, extend the amount of information we can carry in device match data: create a separate structure and make the register information one of its fields. This way, in subsequent patches, it will be just a matter of adding a new field to the device data. Reviewed-by: Dmitry Baryshkov Signed-off-by: Bartosz Golaszewski --- drivers/dma/qcom/bam_dma.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index 2cf060174795fe326abaf053a7a7a10022455586..8861245314b1d13c1abb78f474f= d0749fea52f06 100644 --- a/drivers/dma/qcom/bam_dma.c +++ b/drivers/dma/qcom/bam_dma.c @@ -111,6 +111,10 @@ struct reg_offset_data { unsigned int pipe_mult, evnt_mult, ee_mult; }; =20 +struct bam_device_data { + const struct reg_offset_data *reg_info; +}; + static const struct reg_offset_data bam_v1_3_reg_info[] =3D { [BAM_CTRL] =3D { 0x0F80, 0x00, 0x00, 0x00 }, [BAM_REVISION] =3D { 0x0F84, 0x00, 0x00, 0x00 }, @@ -140,6 +144,10 @@ static const struct reg_offset_data bam_v1_3_reg_info[= ] =3D { [BAM_P_FIFO_SIZES] =3D { 0x1020, 0x00, 0x40, 0x00 }, }; =20 +static const struct bam_device_data bam_v1_3_data =3D { + .reg_info =3D bam_v1_3_reg_info, +}; + static const struct reg_offset_data bam_v1_4_reg_info[] =3D { [BAM_CTRL] =3D { 0x0000, 0x00, 0x00, 0x00 }, [BAM_REVISION] =3D { 0x0004, 0x00, 0x00, 0x00 }, @@ -169,6 +177,10 @@ static const struct reg_offset_data bam_v1_4_reg_info[= ] =3D { [BAM_P_FIFO_SIZES] =3D { 0x1820, 0x00, 0x1000, 0x00 }, }; =20 +static const struct bam_device_data bam_v1_4_data =3D { + .reg_info =3D bam_v1_4_reg_info, +}; + static const struct reg_offset_data bam_v1_7_reg_info[] =3D { [BAM_CTRL] =3D { 0x00000, 0x00, 0x00, 0x00 }, [BAM_REVISION] =3D { 0x01000, 0x00, 0x00, 0x00 }, @@ -198,6 +210,10 @@ static const struct reg_offset_data bam_v1_7_reg_info[= ] =3D { [BAM_P_FIFO_SIZES] =3D { 0x13820, 0x00, 0x1000, 0x00 }, }; =20 +static const struct bam_device_data bam_v1_7_data =3D { + .reg_info =3D bam_v1_7_reg_info, +}; + /* BAM CTRL */ #define BAM_SW_RST BIT(0) #define BAM_EN BIT(1) @@ -391,7 +407,7 @@ struct bam_device { bool powered_remotely; u32 active_channels; =20 - const struct reg_offset_data *layout; + const struct bam_device_data *dev_data; =20 struct clk *bamclk; int irq; @@ -409,7 +425,7 @@ struct bam_device { static inline void __iomem *bam_addr(struct bam_device *bdev, u32 pipe, enum bam_reg reg) { - const struct reg_offset_data r =3D bdev->layout[reg]; + const struct reg_offset_data r =3D bdev->dev_data->reg_info[reg]; =20 return bdev->regs + r.base_offset + r.pipe_mult * pipe + @@ -1225,9 +1241,9 @@ static void bam_channel_init(struct bam_device *bdev,= struct bam_chan *bchan, } =20 static const struct of_device_id bam_of_match[] =3D { - { .compatible =3D "qcom,bam-v1.3.0", .data =3D &bam_v1_3_reg_info }, - { .compatible =3D "qcom,bam-v1.4.0", .data =3D &bam_v1_4_reg_info }, - { .compatible =3D "qcom,bam-v1.7.0", .data =3D &bam_v1_7_reg_info }, + { .compatible =3D "qcom,bam-v1.3.0", .data =3D &bam_v1_3_data }, + { .compatible =3D "qcom,bam-v1.4.0", .data =3D &bam_v1_4_data }, + { .compatible =3D "qcom,bam-v1.7.0", .data =3D &bam_v1_7_data }, {} }; =20 @@ -1251,7 +1267,7 @@ static int bam_dma_probe(struct platform_device *pdev) return -ENODEV; } =20 - bdev->layout =3D match->data; + bdev->dev_data =3D match->data; =20 bdev->regs =3D devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(bdev->regs)) --=20 2.51.0 From nobody Mon Feb 9 04:27:32 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA83D30F81F for ; Fri, 28 Nov 2025 11:44:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330258; cv=none; b=km7FIt3MWUqx6drMmvbT5GTk49+6IYpJ3Q0YILZHUtws/oT4G0W1ZaRdAP4w8KvWug26G/XvVL4IwlvyyCSuZsAqTSXdIcVlbmiiheBLyh7K+K9wUZANrYYw4YR9NPPVDW6rnHEyZ2GUgknH9Umj0wIRHtA/GjlLcjDCKV+DkpM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330258; c=relaxed/simple; bh=0cf2sYKS2TgBzFYc/lqN/kXN1VBlxGschLMTqCaHz40=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=S0utP9ZFhH3IxXuYLM3N55kfQ67qg2vsG8t/eL0z++FuUIQQQxAD/zTHjj5Mr4l85VbyM6P4H0iWUh2Z4pcttKos7FFy4KY3AuJzyB4YAc21uGhi2ueUyjvhXg11+hoy2dF1xN212efLaWoX5ssWk7294dcoEMxd4vtqwyyzfeo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=zK2vRFbF; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="zK2vRFbF" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-477632b0621so10000565e9.2 for ; Fri, 28 Nov 2025 03:44:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1764330255; x=1764935055; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=VMOh3EBYtYfHeuhJAyRcwyFC4rtu5MrYV13Tg8Gi6xw=; b=zK2vRFbFL9InZcNsrqUNABaSrNTv3aeUTCdq+okGh8Ta5RJ/s+GJMsFXH0xA2WQuz4 4lTineQ7RipTPuyUPYZbh6JE6N33i8e05GsWvzgO+RrEhLz/QbJik87443R0cl4Rub7L QfKI26vsewF8o5wzQVhXf3gYJKxsx0dYNS2f/+h9IU3scoNZe1JY7VU2LHv6xC7w8lwV fJSTkxKsw+Djn3Wan8pf77GhPzBuQR0XeanryKa4fraBhgjE1jd+n5Ly2u4HFpKpowjc hNmd+uub6PGWDDNf/bZaUzAxl2kuiN+6j01Oxcjp6gkidi2+trFG89l1FnAF0wfhrUNp fShA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330255; x=1764935055; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=VMOh3EBYtYfHeuhJAyRcwyFC4rtu5MrYV13Tg8Gi6xw=; b=KKYsA6z7iKbMNQ7p6e5lCor9ef+VtAKzGxzT6dsxvlojdcAL+rCi2edsBEWlKtNt6Z aPeQ3E5OHFkciJgzDDWaVBK1n0TLODwVyOySWlu/VSdmJnu3Xx9+ORw2IEeAYBhAfcgs waOIjxKmt0u3jtri1CqOBwSApugiZGpQ31Kp1VV2imsqZizAUTWBzbrIq4PJegh3upzA 8DqEpG4Ftm6fQWkH/GnpOXaIpGpqAvgbqNJvNQie0dW2mQfMxk/IT71vov2VbCzu6mZB 2zty0bJTa+Xr4LtNoxQabebE3i0Ez9a5BsxloqFV5LBgYQGDCyc1Y3Rft9q/g8zx2Sn6 DLNw== X-Forwarded-Encrypted: i=1; AJvYcCUSch5I3XLjbG8WveIzr4VsFDiMYYxnL/zxqgZr6lzQbc2zVCb729vm7qDzl/KKqqnTUUvksd9pWd0dWfc=@vger.kernel.org X-Gm-Message-State: AOJu0Yy6GPSjGHk6Qjd6uGHzIlQTUO2ji23TgeAZYzYGTQ0e9nK536z5 Txev/1Y2Sz8czfqrjyjAM/jeIUdAHyRBdLQD5ox8Dfa0eSsBmK1X5ZkZ09dWI68ZDmA= X-Gm-Gg: ASbGncsWT4Q49yJtSpNEH9BgGMl8eqgSBXb9069uaFxWZ3lnDbWGcYxt/TrfBD8VHUS OEp+NhbigUOXWOpdae6NxIHLFydfL8tCqfTGpADFHruLDsunCTBXVmP+XG9FCN/4CCzc6jPxF2a YcKQbSILtBaAeKPKD9OiPiPV3D/ngn8xihtYSTHjgvp3zhjVcXCxGQZtHONJ9MrT9GCIwL7jCFz S9bXZoxP6bquHrO/VFUoqEvrTEhhp9ifqWCe6FLBvFHMXCtb+w+Q0YBYvwSZ/TtFT/TuAuFSSdG GDchLVwq5B6BzFG0SNGJx1dV+6AiTL1t4eI217whJk+uhO9lj2VwpmDtk98UcLMGmrg3TgHmJse iDOmVYekGnER8uNf05euAJUDo3zdztJGYGg6Z3JrzQVhsubasnn4iRoGiIPMoiDkzSrLD+9R+Ni z3J0HuLA== X-Google-Smtp-Source: AGHT+IHYDT8265UCPLrcHldT6Cbr99LyQV0pdk7UJQ9F9zFrQVOxHXVebZp3Vbnh7paEy79wIqESwQ== X-Received: by 2002:a05:600c:524c:b0:477:9976:9e1a with SMTP id 5b1f17b1804b1-477c10c887bmr261551685e9.6.1764330255054; Fri, 28 Nov 2025 03:44:15 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:f3c6:aa54:79d2:8979]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47906cb1f60sm89888445e9.1.2025.11.28.03.44.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:44:13 -0800 (PST) From: Bartosz Golaszewski Date: Fri, 28 Nov 2025 12:44:00 +0100 Subject: [PATCH v9 02/11] dmaengine: qcom: bam_dma: Add bam_pipe_lock flag support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-qcom-qce-cmd-descr-v9-2-9a5f72b89722@linaro.org> References: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> In-Reply-To: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam , Dmitry Baryshkov Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1527; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=p9Va/58wF8Fjgoq2zpqVnJ+LhDyGow0rENCMKQ+9sJY=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpKYsHwzwo4ZQ+YyP3lY0RkcVBWJl0Pu9UcNY7U D4Ni3P7XVuJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaSmLBwAKCRAFnS7L/zaE wzazEACKqiqPyDSxCpX3RMA/OGSXlWSSDpAOHqGTID043zIFmbd8VLAcA1JGAHy39KfY3g+8Z72 q8y3l+rzjCr8J0s6dCjQg+XjTUzWUv2IW5F83SSqYqfMnyO8PaQuJE1sRDxfinHSYpGzhH+Rkwm ZqaG0PJy9pBNZ0XsKGGe+4nzbMG+A7eOHcSDOuTFDoCvNguNoeCQN2JqGatFKvNeqfBl4S9u+dB dBJkA+XxRCjRcgLCAMEQS1tguTejCy9VLNDnNhrkNz3sOsBDh3029fblFvutY+aWvEx7O3fJnuo LzpBD5vk72+J4hUYYnxXZ/BwBgptpcDOnt/pCLG/lXh/JKMVOgMdhnDQdd9Ks44rdGh42naB2u8 aqbhbmjW+xW4RG50P984sL7jsUJ6pWEbf+XINYRc5thLLvRBLwmNBTS/2wOXvuvHFJvqmZdhlSy n13XO9YvK6Gcrn1T7rpTPlCsbNfiuJTyhU0do3DWKVRESrfDV88qf6isIL/T9ETx0wr6hhAJ/nE ArY4fhXJdQoNytF9PBZlGegC4zRokbmOVUha9yqwoRzs/tMyHXZwt0l72Ug6w2Wo5Ax7Pre+q7K aMoVBsk0kWJhdmNUC1s7BRoschoGgPRx7PzqPp+znSW0Z4zYNnGOulp+3bmMmibgEpuiaTtu1xU v2k78Q0tTYVmEmg== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Extend the device match data with a flag indicating whether the IP supports the BAM lock/unlock feature. Set it to true on BAM IP versions 1.4.0 and above. Signed-off-by: Bartosz Golaszewski Reviewed-by: Dmitry Baryshkov --- drivers/dma/qcom/bam_dma.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index 8861245314b1d13c1abb78f474fd0749fea52f06..c9ae1fffe44d79c5eb59b8bbf7f= 147a8fa3aa0bd 100644 --- a/drivers/dma/qcom/bam_dma.c +++ b/drivers/dma/qcom/bam_dma.c @@ -58,6 +58,8 @@ struct bam_desc_hw { #define DESC_FLAG_EOB BIT(13) #define DESC_FLAG_NWD BIT(12) #define DESC_FLAG_CMD BIT(11) +#define DESC_FLAG_LOCK BIT(10) +#define DESC_FLAG_UNLOCK BIT(9) =20 struct bam_async_desc { struct virt_dma_desc vd; @@ -113,6 +115,7 @@ struct reg_offset_data { =20 struct bam_device_data { const struct reg_offset_data *reg_info; + bool bam_pipe_lock; }; =20 static const struct reg_offset_data bam_v1_3_reg_info[] =3D { @@ -179,6 +182,7 @@ static const struct reg_offset_data bam_v1_4_reg_info[]= =3D { =20 static const struct bam_device_data bam_v1_4_data =3D { .reg_info =3D bam_v1_4_reg_info, + .bam_pipe_lock =3D true, }; =20 static const struct reg_offset_data bam_v1_7_reg_info[] =3D { @@ -212,6 +216,7 @@ static const struct reg_offset_data bam_v1_7_reg_info[]= =3D { =20 static const struct bam_device_data bam_v1_7_data =3D { .reg_info =3D bam_v1_7_reg_info, + .bam_pipe_lock =3D true, }; =20 /* BAM CTRL */ --=20 2.51.0 From nobody Mon Feb 9 04:27:32 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7069330F951 for ; Fri, 28 Nov 2025 11:44:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330261; cv=none; b=ielBHASZU2rA65CQMw0uI3O8+uxhV9enA7375qRQmgWzzv0qs5FkYLOsPvwCMddfFS8qvIttK6e0UP7F1RTYQe72DiZGgLViqDXU1HnYlfotJ18FtcSXM6o2tyyZO9gG9LpDS2gf56V1TtJnrth34zMQI87x4ha9EwvG99snttY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330261; c=relaxed/simple; bh=5SsNI5wfu5lgcHaZXoeNIbiqegsl+8DrxdkhAnC6fZc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ivGVpHei4bwMpCHso3Ky3zF/OZRhu7H4eyCBhQQpwWOvgsD2a9d3rxYHDopPi/LsZbFxSN8bAFwNRC4A0fnGLwNKOFQzQAODXbTrHHZKxsgnupfbkMij1BTG5IQv/devkc/IdpbithYhDLkWM+s+u4HBRXWwMewIrZS2gykN0u8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=QryRi1MW; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="QryRi1MW" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-477a219dbcaso14930545e9.3 for ; Fri, 28 Nov 2025 03:44:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1764330257; x=1764935057; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=VmhVBdK9hHhNfy5tpBEdaPEwqaqku3n1Rc+zuO8j938=; b=QryRi1MWqlxRWHkvA3oieaugv3WBMCa6ZQZ84qEx1PvWQc8anfeV2rw9EP9n15hgmp CHqeCAZT7AUb9hDcWACI2HyW39mmK5L1l0JWj59t9nlyaHoK35DKX7wI04nggoHTsi5k TlOCNGxUOaZKvDkwn2iiQdAHiVzbX7wAyWwZROZfVST8Rh30VHxeS1s4H+SoWONE3xFY Wfx9+ZSEUPZl7csid8ByVjQLWHIT69lscOHXVZN9JR1CVefa+RLZ3LOQmj4Tcgumo7nt q7BJ3Bkt9kVcuf1HbtdkCI5um0akwjM690fGgLNWNdIKbiU6MWX7FmmCGaQXroNntZDj Bhsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330257; x=1764935057; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=VmhVBdK9hHhNfy5tpBEdaPEwqaqku3n1Rc+zuO8j938=; b=BnGVUT6Wq/pk2ne57S0WcmkA2Q33CjWq33InhVxuIkOJoRNXm/DgYPlVFLrEKEAbkm +aSXywH2A09Ua7VsCWVoDF4bCDTEW8DXG9cB+SnrYsHSnRnF14953v3KbBx0G1DkEoG6 l2UIi7UpPWO8oLAVOu1DZ3b6LaM+Bw14qEfNT5bYG6t3Hsmh73W+kunSRMVsL67LOzM3 Lct4SK2T28YF/YrICL2fj5MkMP7MIy9iNRgtHI1pdJRzRGi22OzzZTqgD3+jQsGlWNkT AgJ3VZc5FBPo19dMG/UZ/bfiyzi5oDtBAdax6XVzklETJYFfGyZnz/1sHW4XR38KcJ1H 4CLQ== X-Forwarded-Encrypted: i=1; AJvYcCXRSX9pcb3KHdfaqBsfRIZ+7f/6vMFWafsE4tmMnK12sHOECo08xgk8CLJf/1MAEyZ9nDl2SEyMtcGiuy4=@vger.kernel.org X-Gm-Message-State: AOJu0YyS69ZKa2Y+RMn/cgrTzDqAIRLfGFmIFXlH9D/yX7NSN9pHQVQh bPSq7XbVo9G54eRYihDfdlHSez0JoIyb8jhgAtJMTQWUnRGRC9pnVviA5G3NqgTOEyw= X-Gm-Gg: ASbGncsBtfGrgMT/2Ten/dq8cvizLPuHp+0awSSkf3DyeG0oad6R6cr/QKJ8nZRt/Mk zf/a/vyd7nMUbnOaWABugF/J9Meyhl8SrHmPs1Cwx3nXfbbjvcxuBoswWkpcM/fAOzSlYrU04rZ WM4Djb1bKEGrAo5bCZRVlC2OjbnkBSLTxg4l+AjGyO8NJiRWPV32sjVObxjEUg1pZNHOwMPT8hm 8vHg/3cR1LCdSY+M2cXZMSXavFOAkTpZQ3pvkUtEA8TxXGXAljdil22g79mbYysuVXcxzwQV8RD CWKiLP7Yr8kHQgjqME8rmEwI7UnYrhZ7GGpDRpSPPv9PU7sFW4Sh4TvPciRaXOJ1lKkTh0Ox1aW UPErjgM1C5S2WEiYADOdHDqtefrWqsL0g3GPt6hdO7y7Iv3bKHjMuMS0ckifaWTOBxxz8MtVG1q TaQa11GQ== X-Google-Smtp-Source: AGHT+IH/bPNb3tVGWmJ/mGLu86EetmMP4HcttQUvxHAOsCb0caYPMCirnCTECzvOSEb1zaAT/soKMA== X-Received: by 2002:a05:600c:5494:b0:477:93f7:bbc5 with SMTP id 5b1f17b1804b1-477c0184c3amr265902295e9.10.1764330256743; Fri, 28 Nov 2025 03:44:16 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:f3c6:aa54:79d2:8979]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47906cb1f60sm89888445e9.1.2025.11.28.03.44.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:44:15 -0800 (PST) From: Bartosz Golaszewski Date: Fri, 28 Nov 2025 12:44:01 +0100 Subject: [PATCH v9 03/11] dmaengine: qcom: bam_dma: implement support for BAM locking Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-qcom-qce-cmd-descr-v9-3-9a5f72b89722@linaro.org> References: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> In-Reply-To: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam , Dmitry Baryshkov Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4643; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=bgfjrE+6MFW+6aVmOB3gB7d/udRvEErQgUFqpC2tACA=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpKYsHYVr6kP3v2MpJMD3MUjt+93xs4Q5OR/N4i KwVVlINvBOJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaSmLBwAKCRAFnS7L/zaE wxRvD/9SGzVhWyOF9I8dJDSeLS24uqlLTy2z4SKX7R/h8xESixJzPD+t+G9aB9Y4i9PHI3Fuq1s he1BEkdT8/3LWdvsC6WuwdNAIXixk+HBnDqs4KyV/vig0n2ggSdCOzOoFR/1tntCtkPiM8JRUVr adBzk0yunOV38MnFXFXM+A/8Odh7gzieX1cHfnJGIV0724ZqqiUFtz40y5v2eZVrBzD2mhpF+Am CXQLxtq0xnYzRaukp49ciK6JYK7/9RKR5ob47keNwNBEGJAkSR6su+L26Bv99PJ0RzLtoA0l2pW YGagCp5LCYTzmOENnRO+N3Pwo1zTjT2TXiMkdruToLxhT4FtZ3CcUYS7L4UkBEDWw5LdJ+5ZBZq +qag9trswjADTegjZKulZmaqOL8/7im4D67vUw3yj3GNU7kIoUJR28jRCFpmne30ffDpzrsz7rM SXnpng3qsx3ezkFJajadHQeQDj/ozANMo2dF8r5go07a8H1Zbx+LI7kJlNknZ3veM/08icvh11q YE5kyYEwrcBJHu+ejqyR0TY8k71aV6dKn9gijmq9SmKewhmdaxNbNt/xKMVOju/djJQfoD3wYVH ag+ibcBG2RXb4fM8CoyKA1gYOfx3wnXrgK7mttyHeYgMGu05Fn45U9NFdLHP0FuLY4jIMYIpnQJ 8ES/g4BaDZ9+oaA== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Use metadata operations in DMA descriptors to allow BAM users to pass additional information to the engine. To that end: define a new structure - struct bam_desc_metadata - as a medium and define two new commands: for locking and unlocking the BAM respectively. Handle the locking in the .attach() callback. Signed-off-by: Bartosz Golaszewski Reviewed-by: Dmitry Baryshkov --- drivers/dma/qcom/bam_dma.c | 59 ++++++++++++++++++++++++++++++++++++= +++- include/linux/dma/qcom_bam_dma.h | 12 ++++++++ 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index c9ae1fffe44d79c5eb59b8bbf7f147a8fa3aa0bd..d1dc80b29818897b333cd223ec7= 306a169cc51fd 100644 --- a/drivers/dma/qcom/bam_dma.c +++ b/drivers/dma/qcom/bam_dma.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -391,6 +392,8 @@ struct bam_chan { struct list_head desc_list; =20 struct list_head node; + + bool bam_locked; }; =20 static inline struct bam_chan *to_bam_chan(struct dma_chan *common) @@ -655,6 +658,53 @@ static int bam_slave_config(struct dma_chan *chan, return 0; } =20 +static int bam_metadata_attach(struct dma_async_tx_descriptor *desc, void = *data, size_t len) +{ + struct virt_dma_desc *vd =3D container_of(desc, struct virt_dma_desc, tx); + struct bam_async_desc *async_desc =3D container_of(vd, struct bam_async_d= esc, vd); + struct bam_desc_hw *hw_desc =3D async_desc->desc; + struct bam_desc_metadata *metadata =3D data; + struct bam_chan *bchan =3D to_bam_chan(metadata->chan); + struct bam_device *bdev =3D bchan->bdev; + + if (!data) + return -EINVAL; + + if (metadata->op =3D=3D BAM_META_CMD_LOCK || metadata->op =3D=3D BAM_META= _CMD_UNLOCK) { + if (!bdev->dev_data->bam_pipe_lock) + return -EOPNOTSUPP; + + /* Expecting a dummy write when locking, only one descriptor allowed. */ + if (async_desc->num_desc !=3D 1) + return -EINVAL; + } + + switch (metadata->op) { + case BAM_META_CMD_LOCK: + if (bchan->bam_locked) + return -EBUSY; + + hw_desc->flags |=3D DESC_FLAG_LOCK; + bchan->bam_locked =3D true; + break; + case BAM_META_CMD_UNLOCK: + if (!bchan->bam_locked) + return -EPERM; + + hw_desc->flags |=3D DESC_FLAG_UNLOCK; + bchan->bam_locked =3D false; + break; + default: + return -EOPNOTSUPP; + } + + return 0; +} + +static struct dma_descriptor_metadata_ops bam_metadata_ops =3D { + .attach =3D bam_metadata_attach, +}; + /** * bam_prep_slave_sg - Prep slave sg transaction * @@ -671,6 +721,7 @@ static struct dma_async_tx_descriptor *bam_prep_slave_s= g(struct dma_chan *chan, void *context) { struct bam_chan *bchan =3D to_bam_chan(chan); + struct dma_async_tx_descriptor *tx_desc; struct bam_device *bdev =3D bchan->bdev; struct bam_async_desc *async_desc; struct scatterlist *sg; @@ -732,7 +783,12 @@ static struct dma_async_tx_descriptor *bam_prep_slave_= sg(struct dma_chan *chan, } while (remainder > 0); } =20 - return vchan_tx_prep(&bchan->vc, &async_desc->vd, flags); + tx_desc =3D vchan_tx_prep(&bchan->vc, &async_desc->vd, flags); + if (!tx_desc) + return NULL; + + tx_desc->metadata_ops =3D &bam_metadata_ops; + return tx_desc; } =20 /** @@ -1372,6 +1428,7 @@ static int bam_dma_probe(struct platform_device *pdev) bdev->common.device_terminate_all =3D bam_dma_terminate_all; bdev->common.device_issue_pending =3D bam_issue_pending; bdev->common.device_tx_status =3D bam_tx_status; + bdev->common.desc_metadata_modes =3D DESC_METADATA_CLIENT; bdev->common.dev =3D bdev->dev; =20 ret =3D dma_async_device_register(&bdev->common); diff --git a/include/linux/dma/qcom_bam_dma.h b/include/linux/dma/qcom_bam_= dma.h index 68fc0e643b1b97fe4520d5878daa322b81f4f559..dd30bb9c520fac7bd98c5a47e56= a5a286331461a 100644 --- a/include/linux/dma/qcom_bam_dma.h +++ b/include/linux/dma/qcom_bam_dma.h @@ -8,6 +8,8 @@ =20 #include =20 +struct dma_chan; + /* * This data type corresponds to the native Command Element * supported by BAM DMA Engine. @@ -34,6 +36,16 @@ enum bam_command_type { BAM_READ_COMMAND, }; =20 +enum bam_desc_metadata_op { + BAM_META_CMD_LOCK =3D 1, + BAM_META_CMD_UNLOCK, +}; + +struct bam_desc_metadata { + enum bam_desc_metadata_op op; + struct dma_chan *chan; +}; + /* * prep_bam_ce_le32 - Wrapper function to prepare a single BAM command * element with the data already in le32 format. --=20 2.51.0 From nobody Mon Feb 9 04:27:32 2026 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 374A430FC37 for ; Fri, 28 Nov 2025 11:44:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330262; cv=none; b=C21EgavxerzK7j0zc1q57MUYcZui3Uoo5nIyKonyDO/i4M+0EtT0Uvi15Jw3IMp/I5dSiUQW/B8qjBeOxUWww9Y8gsTwHEHOKQZ2ZDsI88VUslgEMMn6WnA3M929rnKPFBe20TmX6iguFagH0d/NSo/B7Gm5DgnSikG1rTKDIJM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330262; c=relaxed/simple; bh=84A4UM4OHcdSHSGFGPDI4qnvzgVV3Vm9nHDZmA6wQK4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=N5incvQlU6E6vr7LvEPuF2h3VD5UqI7ztQan81YZSGTPYee7Adqy02J/TCivICkVmHuqWk4PVM9uL56R4gO/BclAoTCKFWlV/sxfXz3peuezhlcwXw1SYkPA+pYe8a0/cpg5kvX0IIBgSIMQ6k3Upysy/Mv5nBA8hMLcWRg6N14= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=pzL9HvFp; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="pzL9HvFp" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-477632d9326so10357115e9.1 for ; Fri, 28 Nov 2025 03:44:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1764330258; x=1764935058; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=DJwBtHuhRdjkrm3XUVZe8PT8VCWUl331/NsK1Seo3b4=; b=pzL9HvFpueDKZd9+BRTvEQWyRKEbO+zVg8z0qunCmQyAgoi410pv8klSLQF6UXowoC pMzxGlb8k+DxEq3DTR9Rl3bUL5Fl0/6quF0HNRpGKb+iWGl5ZjEbPMDtODKYnJ67eAJO UjJOqOZaJ9PzTU3Fwq1oYUy7Rg5Db787VWgjQ2Ult/FRwUezCCFRxjaa1qqg5KdtPWSc QJ2pyVz0ZRgfVQn+SPRdSkaj3i8ZiOjQt82jT1j4gTdhVxizvuAZXZID+QMnPkqXwhDj USk0+bj/Zk0WtU63YIVupiPaIOGzHDAtKmYMEN02vq2I4Hwpne7Zl6PTCdzYQmyVax4T X6bA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330258; x=1764935058; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=DJwBtHuhRdjkrm3XUVZe8PT8VCWUl331/NsK1Seo3b4=; b=Wr3FQaSBClth35iX/7BTTgTgYDgmGRoMkNJk6IWq3xzFA8JwgWYytlCvqK6gdf0XmL SDx3DEUHhw9OropAHYTFZ+eueah0ODAGCwgOWgWgFL6u+3BtXS5IQmJaSlRNfFmnUO1d p/fc9DKiA9ytyjcCt+oeYMcgSYcvqUIT5NbJJ5jVhqn3X9cVbsnx9wVHucbbv+gqqx6D 4Or0U6nzP8hsZDVs9SIVJs7x+c8F4gvyzqFrTv6WUO0U6JMy9YUGTVMUX+tH2gFLoQfF zd5tzydQcdbn2/TKNyyXs3/4ME/ubjKpTo49n9DNr4ZiJWdS6g6qB25DKV+fOttIU0Fz eq6w== X-Forwarded-Encrypted: i=1; AJvYcCWQ1xpnIvSIBGz5Xx0a0QOJUGRESL57q5EWs6FmX3b/VMrxT0U8lShnYkE57kZuKpIXPC9T+ojcp+gA2sE=@vger.kernel.org X-Gm-Message-State: AOJu0YwcKysEjlyCbVJ26efIpG3Gg2hG91cVdh4pO6D7dFESdu0+aF2D i+8UmAheF6DINRjCIYL2QvoGZBTMLU43HFAiV/OUwoV+yji14nb6rkkeTNozX0mQJQA= X-Gm-Gg: ASbGncuN0KhdnSV6aSV5aAGCVvKnqNLbs5kW1eenJBmm+Wc55VYQVYf//SYHb8AfxIO 9OJAOTp7bE81irTyygJ07fGc3oLAOSDvTYSVIG0r4RiMLu1DNqHtNlhgnpC8082hT8pTs6aF9WX n0HT0+ce7i8Qhl3svCP9ItD2HwYXYVtbvfmDcya/t7GV1sJQTBs7kW60lHGfdIk9sJNcMLpvjYi ABtXYDf//krVuDokuaI3XDmsqpC/jtt+58ANqKAfMRRJ4C/VcGU5OaqFrT+fghUurYn2w3bn10D Zul4TFRwn08gh82lTxjpTz0ZT/OLgjohx12d+45DaFaPihxErA7evyiaoc+7tTtZbIjJQDs9e59 T5Rme08yk+Jhi/AcHDA8r6Rnk7MulF+xikifEXzr8FbFNS+K6axr6bIqGQpy53UymZTd6YadQRz iH8CFCQQ== X-Google-Smtp-Source: AGHT+IFTOBJT7pHAwTMbeZCPeiB3+NHv9oPpD2M5uIuFasAqIeDNAusPDzasOmA93IWJ3yHpCovGDA== X-Received: by 2002:a05:600c:354b:b0:46f:b327:ecfb with SMTP id 5b1f17b1804b1-477c0184c45mr260135565e9.9.1764330258412; Fri, 28 Nov 2025 03:44:18 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:f3c6:aa54:79d2:8979]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47906cb1f60sm89888445e9.1.2025.11.28.03.44.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:44:17 -0800 (PST) From: Bartosz Golaszewski Date: Fri, 28 Nov 2025 12:44:02 +0100 Subject: [PATCH v9 04/11] crypto: qce - Include algapi.h in the core.h header Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-qcom-qce-cmd-descr-v9-4-9a5f72b89722@linaro.org> References: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> In-Reply-To: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam , Dmitry Baryshkov Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1185; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=MwEAo2zVjW4LaqEinbRBgEzAJEbwJ4zGCvUL4X/EaY4=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpKYsImdOYAaVGAXSkPbpMt54/G8pWwJHzmmyJR zljuE4RAayJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaSmLCAAKCRAFnS7L/zaE w2eTD/0Yy3+1s6f5XVN9U8Wi3hXyMxzXXHGS3zVhnFuOk1UZwKAcurXooswdmXThO1ZApRlbDc3 33fabtlfpkMV5dOqDl4ljeO4RAZ0Gbfco6HJvKgV77MUlRlQLGNdpLnHmoF23a0fXZgm6QSgTtE nkepxAzYRJ/5DscpCvDLmhbjZgpWG/crYqtUpsO9WhI6NvhdVkw07wRS1M6nhxZAHhhW4qyMx6H wzIZ6lC3e9lDFnA0muabebaoxl1xPl2qfqCh+neNUtWG7SVH1sfEtRyYDJ5ziiqDFn49pUVZbS9 yMR6BufRHhSll6ERVH4FDNFKxKYwFIibAvH4FhuO2gMOxtlu17j7Ul7Yhgj76IXXNAbbM5ZWFxc 6qZSdnACVmoEEfUK4grpbIHovoWY0mXfIjXzhGxuQAmenQq6luDYZaQcqqMNgjLrdnWJ8wLnkjo t4j0hXeicnOHTtJcls3akv2Q8rl63oKa2+IaMVccs8yojHIhyxzXoiZxq+Wgw6sdyk5HbDy5gkA suFBhTTzZ8jMi4SEFCqrsBiNtp4b6QkTNUyXxmLHdRkfov1U+0g3bm1A+Le7cj4tKSeMkVooz4n FYy9GSdNaPIGin0fi8qFTJmG/XV9jv0yRAczxxqo7c1kLazkDgttdQZpth7hV18LtgBfk5t6w7d 7JmdZlG9qY89I+Q== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski The header defines a struct embedding struct crypto_queue whose size needs to be known and which is defined in crypto/algapi.h. Move the inclusion from core.c to core.h. Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/core.c | 1 - drivers/crypto/qce/core.h | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/crypto/qce/core.c b/drivers/crypto/qce/core.c index b966f3365b7de8d2a8f6707397a34aa4facdc4ac..65205100c3df961ffaa4b7bc9e2= 17e8d3e08ed57 100644 --- a/drivers/crypto/qce/core.c +++ b/drivers/crypto/qce/core.c @@ -13,7 +13,6 @@ #include #include #include -#include #include =20 #include "core.h" diff --git a/drivers/crypto/qce/core.h b/drivers/crypto/qce/core.h index eb6fa7a8b64a81daf9ad5304a3ae4e5e597a70b8..f092ce2d3b04a936a37805c20ac= 5ba78d8fdd2df 100644 --- a/drivers/crypto/qce/core.h +++ b/drivers/crypto/qce/core.h @@ -8,6 +8,7 @@ =20 #include #include +#include =20 #include "dma.h" =20 --=20 2.51.0 From nobody Mon Feb 9 04:27:32 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E1B003112BA for ; Fri, 28 Nov 2025 11:44:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330265; cv=none; b=XSgzuHD+hCCNum+cVvOFCZFSiKlcreYiDHeu1AT9eMDr8d9L/Fc76TPgVg1O9US0thhd2TnK7UQ5c2++6yVd+W1bmT5O/Q3yWX7N4RH+Pjd/kvsXrlrDjxgA2ym2itW7pRw2M0+6NjAhBcYY9lVqPeP5sTySbpBOvyrMdM61WxY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330265; c=relaxed/simple; bh=gP3sHPK8gXmSIAYj8c0TSwKZzT5w2oMcR+vB+mLVnSg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rwCAOb7RSoTRVfb1ndZQ+52GHrGO4YHwm3QodEAwFHPl8GXGQIxB8x0onCLzgABo8LrtXjyJTFQdYIxufndXh5UUHzxUmxy2eTos0CHyt26eo5ca1Oji8/yaaaekfb445cGiYVU935fHwWo1zLZVKXNeKhSLwmYckU9PjG5bXds= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=K/eqeP6R; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="K/eqeP6R" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-4779a4fc95aso19264235e9.1 for ; Fri, 28 Nov 2025 03:44:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1764330260; x=1764935060; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=mHD4rZPwi7RiLdWPbbS8FZM0CItCJ2sdBfbEOh+hWEI=; b=K/eqeP6RUZpyLY4r8CzO1H19dlzZgMz8va+OUPO+E80Isu9FuoJFmxegIB4PD4DcTH dFe2Eo4GxAFG04jqdZQDSeIi9xBNQclZNFoAh8m5eu0tg6OxiMyGhLRJRSA9YyJM3lFp vg08GdXqBEyafj5QyCG8xztCTH3OShvv5wq19Le5r35BpUECcy6eTF9ktt8RCfq7qgJd 2myci7CiLtlnyqX2UToxd+VcpHBN7a1g5dFM8JftDW2oriqbghZg2fRxDvl8VppEngYQ B7p1t5lxS0lOtSh5TnViRSkhAOVbRfMB5QRJhhdT+KPdbwkVEVpGklf4nBIid6Wl+UH2 6BKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330260; x=1764935060; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=mHD4rZPwi7RiLdWPbbS8FZM0CItCJ2sdBfbEOh+hWEI=; b=O4G5K12pc8RkfZAHyKwMTvGhFFBte5hmVoa9u76dPA7Jvzbop2IH7TxwxWhW6eMnJt tTX4KalvqqszsWq5wgtKcKipdRr2JaMFUwxIW7HDSCmzIRlCjd+sacI2bes9hBDw6olC lgTrXAhFuNIxlCxx4TThp4/jOu7Z3dXbvTlUC0astRswtOqVshlnXd103xvpnntvZmIA EcIfSArsMjJ3BQQVZOC+v7VXV4AgHNPmeFuDa03mdFPm5ZGqZ8AnxJXub9UqdhhTqP0r DkvNBITVlngOFfD2s904aQm3UuoJSMcqrp+QlDfcHvhyDWFYEsc7mZ27vdQNitlfoVHq 3t4g== X-Forwarded-Encrypted: i=1; AJvYcCVDh1QYwaCs6WVggTrK0645QWeuJsD1N3VcH784FFVn9DgXCODLxp7KI9A/v2yQRnzYZqKYL/URC5Xjibg=@vger.kernel.org X-Gm-Message-State: AOJu0YzhhFV8z/YHknOMmVC9iRhXcSbkJ3PJzhIKh97TnXUxB34en8l2 Vl3UJvCO8Hr6YjCLORCp4fGEtttHVrYrVfR4TX0mcwB6ZfpFjgEQjaW7SPGhfJMmd6w= X-Gm-Gg: ASbGncuihvTAxPD2EwkvLaxgRzT8cAuZSZOXLWTQonTwWCODmP3zqFnNHAJpSOnC0uf rs5tBhP0Qd2+VExfAEgyp11e+XLBFidbezG1zeecTSRJqRC7FHfvT7aw5Sqdzw1POsj36/FTfTF tCyM7bRUxwqEcJ3ACPKgedYusgtw39/WbO+sbspmFUSz5CiuXoeIy3ZUi2ROv4h4pC/lzfQ0gSU NNDHhg7iCheuvar7bfDrPZItOWy9C7VZPcWom0MKv0BGj1jTHH2KCmNOlJobSCanMu13+sZjQ37 7ZZr1dmX9Dnl8isYQlznPmTJEnAKtcikmeA5F05121m2ZX+O7y8ZifGZZX+BVP2aei/Ef0/NNLr hWBzG/AyjYyHeuohEfB+sOiUr4BqprhhZwFXvZIaJd8QMAk1Ur30VdMEgalEz+b0wwpsFZNm5EZ bxyLb//w== X-Google-Smtp-Source: AGHT+IEZEY1h+B91Cn4WUb1EKEGKqMtgbbknbuwNDpzOB9tvypFejJKMiqNdltD5wwnmIJndrvc33A== X-Received: by 2002:a05:600c:4eca:b0:46f:a2ba:581f with SMTP id 5b1f17b1804b1-477c0540a68mr312273545e9.16.1764330259964; Fri, 28 Nov 2025 03:44:19 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:f3c6:aa54:79d2:8979]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47906cb1f60sm89888445e9.1.2025.11.28.03.44.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:44:18 -0800 (PST) From: Bartosz Golaszewski Date: Fri, 28 Nov 2025 12:44:03 +0100 Subject: [PATCH v9 05/11] crypto: qce - Remove unused ignore_buf Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-qcom-qce-cmd-descr-v9-5-9a5f72b89722@linaro.org> References: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> In-Reply-To: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam , Dmitry Baryshkov Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1937; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=FPE7sVoSIw1wtmIdKZA+n/AK2oTfpfwCQfrZgNyVmEY=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpKYsIseksosC13SJcrBsMoK/GzT9RjKMGRCE6m ROxqKj11UeJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaSmLCAAKCRAFnS7L/zaE w8cGD/9VTcW4bLk1by06eHZI/KaNzbm5zKGNUTn2ki3t86bbPtA68kg40hYqXLdv2C7QJUaKWLJ c7ZLSCvWSp2x2qDNwveLKOHSKZn71zgu5PiLf0+WL5e5K3BzqK5lrQqexgIe9o+SzV0Qr6vyZL8 VBS+J4i9ookFkTLflRvBTEDcYsmqIU3rPb6h/3S/do2tct240HGf69aJkBrWb+hyb5j/k3KQ1EY VbryfbHdUBaMvULP1pj4kiwLhjo/NofBIoAj3PMN634Iz5Ubaz5o+wKvoBLt6vykch279HqKTb3 cYNl6tncHpd6YeYI4kJARYuzj7dzzAZeqU8se68jPRe5UB+M4vbZ4qW5rfHVdb9B+kXlaG+YINm 3C+eH7rKiFUZA93JNi1BpHFWf/dLkB1Bg74hjhL0xIGspU+ZZGb9VqvS7lkhOYt9noZ2fepxJci alzIFsYX4j/2V64D1O8YNq3cnA8s4k93PwiPn2+LPgzEPBbgePi8V2ks+2uvZPRbRv9rIcOAV9W vVwthqBN9s2IfwISUCJWx2Pb+krbaeI27BhQRjkmcuvHOMAs1bDApdEzY9tO7zAzSNNp+yoAxsf zMi0koQkGIU8u48FIjdeGYH7arHa2qf1nMYOIiYIp689RpRHxghf8TZ+l2nnhoVLXNei8rxOIoe JlJ3y2kTMNl9KDA== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski It's unclear what the purpose of this field is. It has been here since the initial commit but without any explanation. The driver works fine without it. We still keep allocating more space in the result buffer, we just don't need to store its address. While at it: move the QCE_IGNORE_BUF_SZ definition into dma.c as it's not used outside of this compilation unit. Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/dma.c | 4 ++-- drivers/crypto/qce/dma.h | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/crypto/qce/dma.c b/drivers/crypto/qce/dma.c index 68cafd4741ad3d91906d39e817fc7873b028d498..08bf3e8ec12433c1a8ee17003f3= 487e41b7329e4 100644 --- a/drivers/crypto/qce/dma.c +++ b/drivers/crypto/qce/dma.c @@ -9,6 +9,8 @@ =20 #include "dma.h" =20 +#define QCE_IGNORE_BUF_SZ (2 * QCE_BAM_BURST_SIZE) + static void qce_dma_release(void *data) { struct qce_dma_data *dma =3D data; @@ -41,8 +43,6 @@ int devm_qce_dma_request(struct device *dev, struct qce_d= ma_data *dma) goto error_nomem; } =20 - dma->ignore_buf =3D dma->result_buf + QCE_RESULT_BUF_SZ; - return devm_add_action_or_reset(dev, qce_dma_release, dma); =20 error_nomem: diff --git a/drivers/crypto/qce/dma.h b/drivers/crypto/qce/dma.h index 31629185000e12242fa07c2cc08b95fcbd5d4b8c..fc337c435cd14917bdfb99febcf= 9119275afdeba 100644 --- a/drivers/crypto/qce/dma.h +++ b/drivers/crypto/qce/dma.h @@ -23,7 +23,6 @@ struct qce_result_dump { u32 status2; }; =20 -#define QCE_IGNORE_BUF_SZ (2 * QCE_BAM_BURST_SIZE) #define QCE_RESULT_BUF_SZ \ ALIGN(sizeof(struct qce_result_dump), QCE_BAM_BURST_SIZE) =20 @@ -31,7 +30,6 @@ struct qce_dma_data { struct dma_chan *txchan; struct dma_chan *rxchan; struct qce_result_dump *result_buf; - void *ignore_buf; }; =20 int devm_qce_dma_request(struct device *dev, struct qce_dma_data *dma); --=20 2.51.0 From nobody Mon Feb 9 04:27:32 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 860C53115B1 for ; Fri, 28 Nov 2025 11:44:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330266; cv=none; b=es2AIHJPILsI4ckLZrbscLIQWxHmsYYTWocENu9rPDxG+c9nwlhYQVsjhAMy0nlVswJGVIbxDYvzhwx7pnZCN3h4K6o7u4husTNtUSzSJtO5dgZirQDfq+iHuy2F5XR78AbwRR515ZKLF7CneuviupfEvhTY+rpI1E1G4IXr300= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330266; c=relaxed/simple; bh=jjPbOJFfXgc2j2M1nzFoNpgu00yiy6mM2ewael8rYJs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cuVw8/wwAID7yQgGfaD8COTydjbqC3E5ZMo0GUn65HQEOG86lkNyuyfyH4gYtvKuyMC/h3b9SQMf2Vh1/57mWSN+VPPGlYZQkOLhEnik19jDmShDrArzSu1w25ypYWwHoqnFhwEeZh27DgskCQNQGbZPE414liemv4nEuhYfxiI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=l9semmwd; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="l9semmwd" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-47795f6f5c0so9388135e9.1 for ; Fri, 28 Nov 2025 03:44:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1764330261; x=1764935061; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=2CZU5ZuvBdXmOknsghzwIXQPJm9VKwYk4mzQdsJqW84=; b=l9semmwdPbTpHmUqboWGFt9O+8mUTTMYTUNra1301ReM1EZVHAfpmZogyozTpyrLoU 0xfu8KrxoINeD+pMfoa3YYJ9Vl58EYNOTvel02uEt6dgTTbvWhwfrnaiJoW9W+vChK0x OzG9V9gwk4Oonjx5ZFPurWnVQDYnWgWkNwNFNxuMJJH6yW4Ux41nTEaSXbYcCgFupq+X ASqgatsWPsLXHWsxCAVOh5RU6UxG2reJo8N0fHuLzmztVHv/9sN6v9OXfmgrdDHOKagm Gz1mhZxaqI2WYeE5Nfo5W56kNCWamLbzd03ODSZzg8PB7C1Il6og9lszCeIGfU8FmIkd s0rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330261; x=1764935061; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=2CZU5ZuvBdXmOknsghzwIXQPJm9VKwYk4mzQdsJqW84=; b=JH8NYY5hbVQRKTH6z+isImCXbbgWCHDRrBgajTAiWKtRv3G61Wt0TamRRxN4V13iEX I7YAJL+ZWReXHVRlK7lx/mDs9vZp33VtuHH4ig1PlDh0LDMqEmM7Gs4DEpQot7b++YFC 0h1NibJy2AxCx1ywUyZk+eIAXq13tRijow4lppiF0yNrlii1OrJyjhSfEAJz3QEuel/t yOoVAZpxXRqmfC1PB4MZmVM6MRH0DAH8NQr7MyekT+CbQXh3zukOxfysq039NfBtKziK 4h2l2PCwGIPiIkbRWdcMwXS9U5Ji4/34sF9tYtMfcOUs/fYpsqTUvdVtwrG7fD3ADcmL RMow== X-Forwarded-Encrypted: i=1; AJvYcCW85nu2pKO76UUKD9jNuTR+/PPjR2fZ7XCBC0gyExNu33quCDHckjquYoCxswTcA7U5IzTwBswlqlTHbG8=@vger.kernel.org X-Gm-Message-State: AOJu0YzAnbu401d4+fhlA/ilvPuAo9nTh166tIlsHQ+Z188ZoO10awzR FAKKvGqwrVVMKHFbR0i3LVl9p+WfIMb0mTHgnIUffriF+CFclj7bf9bEe6etQaFg4sQ= X-Gm-Gg: ASbGncsRJqaa9LtIs0/3OMtlBszMT0zcNNNJrlkZjewqqC08wywGDBcZBwxCky759sj /mwmZFleOPGI8SkgNDw9LZ+ZrkIXF6oo67PIMz9/9tn31LOIQianETnWSoQt+aQvsdQChE9rj14 kng61uyVac+7AK710w/79EZEun+YJGn7v4bIE4jlT2P151jLnCF9yQ6XVpPtNWPF1qMYIEOIAdS XqDvdSKVu/mLesDnxmAOcpz5s6rgc2TX5axAYXzefRUZzgQMw55wkt6I/8rEFdyxc5QrI6eg7l8 xAgtNcJ2IAAAjC9aoYj0UCk3Vqix6T5/ZcmcfE2v10OrhS7GRLr+O6fcvLNXBg/2InzoA+H2+hi Qzt4qFMky5dwJWxiTeFfwISPUGMTomjP1Kbl1JWytPBSfzv+B0hEK85nFZaPsBMWN/m7QNiku54 CoHlGEsw== X-Google-Smtp-Source: AGHT+IHFIgYlBpxn3c9paAciRv5NbWK6ivHWHM+DP/aH9NlaBNBySq4rTqL0gyyvo3eu5I/G3vNnEQ== X-Received: by 2002:a05:600c:4ed2:b0:477:55ce:f3c3 with SMTP id 5b1f17b1804b1-477c0162dd6mr259757175e9.5.1764330261434; Fri, 28 Nov 2025 03:44:21 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:f3c6:aa54:79d2:8979]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47906cb1f60sm89888445e9.1.2025.11.28.03.44.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:44:20 -0800 (PST) From: Bartosz Golaszewski Date: Fri, 28 Nov 2025 12:44:04 +0100 Subject: [PATCH v9 06/11] crypto: qce - Simplify arguments of devm_qce_dma_request() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-qcom-qce-cmd-descr-v9-6-9a5f72b89722@linaro.org> References: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> In-Reply-To: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam , Dmitry Baryshkov Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2545; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=Tu/2fgD2kuZ/5Q8ol0x7uSkKfyxWvVnr1Z7r0zJGsbc=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpKYsITfzj2E3jRweFoyHTvntofAw93VWl3pQYv s9g8B6Y92qJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaSmLCAAKCRAFnS7L/zaE w+RlEACdr0H3twl7t3Ov1BXP/Wk4UR3tn9025w6Q7VABm8js7X99DLz1p2Mm5o8+KER/O3mrpNW 41hAeQKVYETzW643dzTK+DyzCSkuuDe+bMfnzBtHNphSwm56ke7t0yoEvnu65v4ydVytj2M/hx9 csSi6NoP/KEeZe7ohcLwpvin8bUQhcffH7HoPERF3ev0Ei9DFHXnVyCMUx/GsUcYRcpOuM+ZLod Xcwc2bldC/5hv4XiR/zsupnbY4p2/rwP3PkSC+ILTzxNTtepYXNGcFmDRPa0kiFAfoDwyL2fzpt z2f/Y+9c2voEoFttvaZRNoNOX9THGQO8CIR3YPiSaEw6pMlsDwIUEa7Qzvorcw8LdVCXQpDQT8V yw3+MHGZB3w43fMKy1Zai64xa27Sgb+u60twXM6GLtjgxRGFaHZNtyzvtijpO91Ol+CdWIJd/6d UK8fkB1Qe9JGDZqUTDH/7x/oWMWp/QMsbOyU03n2so6mbaniXsVvQA8UXfEzRG49nQzLocJ9CYY nzAQjNc0DWWlyiOjMP3wiAWZE27qD/e04/nNDLSm7wwREyHpTvEK8xs8OzkRav7Te1yStyyb6lb TZ7wrGj8z1Cua67BTQJUOIk5nGUVrc+w0v4zqLVZMJ2vKNOe0T28QoVWKPLMC00xmZzL/e6EvJq hZ9TET8WgkIWKKA== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski This function can extract all the information it needs from struct qce_device alone so simplify its arguments. This is done in preparation for adding support for register I/O over DMA which will require accessing even more fields from struct qce_device. Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/core.c | 2 +- drivers/crypto/qce/dma.c | 5 ++++- drivers/crypto/qce/dma.h | 4 +++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/qce/core.c b/drivers/crypto/qce/core.c index 65205100c3df961ffaa4b7bc9e217e8d3e08ed57..8b7bcd0c420c45caf8b29e5455e= 0f384fd5c5616 100644 --- a/drivers/crypto/qce/core.c +++ b/drivers/crypto/qce/core.c @@ -226,7 +226,7 @@ static int qce_crypto_probe(struct platform_device *pde= v) if (ret) return ret; =20 - ret =3D devm_qce_dma_request(qce->dev, &qce->dma); + ret =3D devm_qce_dma_request(qce); if (ret) return ret; =20 diff --git a/drivers/crypto/qce/dma.c b/drivers/crypto/qce/dma.c index 08bf3e8ec12433c1a8ee17003f3487e41b7329e4..c29b0abe9445381a019e0447d30= acfd7319d5c1f 100644 --- a/drivers/crypto/qce/dma.c +++ b/drivers/crypto/qce/dma.c @@ -7,6 +7,7 @@ #include #include =20 +#include "core.h" #include "dma.h" =20 #define QCE_IGNORE_BUF_SZ (2 * QCE_BAM_BURST_SIZE) @@ -20,8 +21,10 @@ static void qce_dma_release(void *data) kfree(dma->result_buf); } =20 -int devm_qce_dma_request(struct device *dev, struct qce_dma_data *dma) +int devm_qce_dma_request(struct qce_device *qce) { + struct qce_dma_data *dma =3D &qce->dma; + struct device *dev =3D qce->dev; int ret; =20 dma->txchan =3D dma_request_chan(dev, "tx"); diff --git a/drivers/crypto/qce/dma.h b/drivers/crypto/qce/dma.h index fc337c435cd14917bdfb99febcf9119275afdeba..483789d9fa98e79d1283de8297b= f2fc2a773f3a7 100644 --- a/drivers/crypto/qce/dma.h +++ b/drivers/crypto/qce/dma.h @@ -8,6 +8,8 @@ =20 #include =20 +struct qce_device; + /* maximum data transfer block size between BAM and CE */ #define QCE_BAM_BURST_SIZE 64 =20 @@ -32,7 +34,7 @@ struct qce_dma_data { struct qce_result_dump *result_buf; }; =20 -int devm_qce_dma_request(struct device *dev, struct qce_dma_data *dma); +int devm_qce_dma_request(struct qce_device *qce); int qce_dma_prep_sgs(struct qce_dma_data *dma, struct scatterlist *sg_in, int in_ents, struct scatterlist *sg_out, int out_ents, dma_async_tx_callback cb, void *cb_param); --=20 2.51.0 From nobody Mon Feb 9 04:27:32 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 03410311C10 for ; Fri, 28 Nov 2025 11:44:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330268; cv=none; b=dzGFrW11jJxtJE6uo9iHMZZL+szs4k7j4xi6SXJGbF9/WG7Wni//vh0Mg6qxI5ZCOkvTGRB65CbXtKjO3sj6WZmpDyy3aHc0h8EqpRwSzqRdQ4TkuL0X19xz6ZrbGBFVnTHS+ewBt/myVbvkhXbm86OtJlybo0tlI6Z0cpUqjcU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330268; c=relaxed/simple; bh=XImptFJap0oPq5WrKW6CqR31kSzqsIuoWmParQCd2Oo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RLtgGzVrussZn2qhaJzsDerSbPZturf8XtjWBSqK5/8CFyaRQBD0/Hcgg0o+c2bb3KYuDtu4oXx4xvF0i/7ZPEMCJG8eTFM1hEEorTuk5JIWZ+iyZq7DCF0Otx3JTSiLXYb+F8pEm2uYnhty6RH1yq4R75LrJAuZ3p9sIWNoP6A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=ibdT/QXl; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="ibdT/QXl" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-47789cd2083so9215835e9.2 for ; Fri, 28 Nov 2025 03:44:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1764330263; x=1764935063; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=jJ2RVnJy5oJsAwMm3d/sS5ZIYEn59yzd0SudjeWcx/g=; b=ibdT/QXlMxBOSDhz5pyQpm7OQJxIHMfFgWQRiQn/e+4sr5t3CFy6H2mdp37Ab+48qq eI3vFX0igTKM7mzf4g8amcPht8qpm7EPi3JR02TYL9xQ6tqUwOQHJMmf6dXp5aAKLZ8l rGZoZTBk7UTscRCsj3bGK9MzDuprIFZoLvYuZ1C7lVB2yb7AARZj4P5d6SRsBEyUubIm A1XRGQUFvdfRYigmzU7WaFJMTHI5oOrjD6CSdBVdx1xAlAcgJn3QV0+g4zWeZ7xCBH+6 6tecMLxVkhT3VN9q9CZgDX778GQizHB59DK5S7FyWMcEb2LCVh+hYHcRgGYkJ1yYYFx4 qe1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330263; x=1764935063; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=jJ2RVnJy5oJsAwMm3d/sS5ZIYEn59yzd0SudjeWcx/g=; b=HCW9i/j06FP93eMGof6hVxPaAWOmPiECNZ3zQeeI6v/7PsNP/+JTRh41uP6YOFJmTi nvoFTwm6DLqttprbm0FdI2opxVlhnQT6MD9Cqlt9DhFI5KWhWm3SA9T/m9FywVqWJAk8 Wd7iotFzltf2Jds2W0z1vXLWF42FcBesGahTkJKrx9lVLdEUORMQWU+Q5bTcDcPnuDlY 7utkyDAOZKifLUeF/auWHKIpnq7SatgMLLGFeJx0QMJClntJ7yxX4ZCRdOwN7NeGVh73 89BE4D4+t6PjcFgP5wpx0FDJbnU6kc6Cf3llXBu9zDpxWdn2zKT+667Qv04C/WaX5e9U 17ig== X-Forwarded-Encrypted: i=1; AJvYcCWmRAXWyFmROejhoSKhY8rHC3H1UffMOZOumPudUNNAqHtjp5vALPIenY1RbK2/P98LTGEL6nLR6m+nK0s=@vger.kernel.org X-Gm-Message-State: AOJu0YxZFntg8BIby/20r6w12GW+1AnTHbIKpY3v5bHm+DFGGm1XBe+u L+gt600jjdT0w3JryxuNhrVEGqkwEu0aFAfnLVhz3LjTWu6UqYLDILMf3PP6WiN1268= X-Gm-Gg: ASbGncuBF4QNrYkCMw1At0u2oOWFYSL9o4LEmbzre4W1I4k4XlDNm6UCQetZYpwkoSj j7Px17+kx0fnO5XtPTRXzBtCgS6lCn0XBBgnlBDAa0Wx0IbLFXq/C9mKuUqbhQA0mhIA2YTukyX l+jXkswurS7VT2UXAvtCFtPiS0N8Q3SP7yW3JuZTl8zp5K4gqyZ10/cUzBAI/KuDWXUj8705FWc EvzVke6b812Nhrauogmit9079z5SHdRternTmlbBN/2YJIYYFLYtHuvm3Z6+H6bOOxxqz1/ypwT Lt1cTrK38+CV2F5V3A/em1Vm/ZVJogkDLEk0ArzYmdHK2onnKTxqJ4GqKx4hLhVR7EAIO/CegZU JStU4kTLBtS+J0uVded6IKtQZdSSyMS4x39MaYW3liK7nRJblkH/bnad3/Oyybqui3nZ/5wo3WU gTpV9M0w== X-Google-Smtp-Source: AGHT+IHhhS4/wCvbANF7Uuf+oLjy3xxv/2rDCPnr+ZbQtZO8GRMgWdt+QrRLr5yvheEx+Y99myaphw== X-Received: by 2002:a05:600c:1547:b0:477:63db:c718 with SMTP id 5b1f17b1804b1-477c114307emr300576425e9.16.1764330262944; Fri, 28 Nov 2025 03:44:22 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:f3c6:aa54:79d2:8979]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47906cb1f60sm89888445e9.1.2025.11.28.03.44.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:44:22 -0800 (PST) From: Bartosz Golaszewski Date: Fri, 28 Nov 2025 12:44:05 +0100 Subject: [PATCH v9 07/11] crypto: qce - Use existing devres APIs in devm_qce_dma_request() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-qcom-qce-cmd-descr-v9-7-9a5f72b89722@linaro.org> References: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> In-Reply-To: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam , Dmitry Baryshkov Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2130; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=0HNGOpA5BOBppMRD34n6Vlm9z76LKmywM4te9hh3rgw=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpKYsJ6qql8IGnaHnHmPWao/nY0akeTfuJ+1g/v ANx/BW1yo2JAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaSmLCQAKCRAFnS7L/zaE w0LsEACmw5Al7p+VtiKsgT5X28Z0MSlzU52WUmT5dx/6YTDd7dz/8kG8oK/u0E93LHsOTINuET2 YJX5F+mPovkmeV/TdynbCAF24QTr4d7hu5SnA8PJuHiBVOxhjovM49bT+baQfr1QYOjBqdQdIkc ZJP/eTUkNKr9KdjFwHJ+fd4XsRYSDuH+8Ossj95FzBr9feaRqGEvc806STtH3lftApVGRMwKLNF wXx3vQe94hl3JF9Zi8UamBVDmRubXQHtyOUpHqFyvzTDwX34uHfz1AMwxkNj6/jxuEIuitfCTHt UeKgKbUCdzwbDlTUHHuePv3SMmmBedKEl7e2aILqexcQADv8ozki6HJUrLIt4/7CjiI8WtaGMFy bN9uYzma9L/TvgWBbI1NX5a0wo4VygYxhn9mpXbwLsnoKLq2OTbo3E1gjHMoKZoojkh9aGXn6js VJ2rhdkgwxW++u1iy88Jj44VbMEwUZCwCtoYU5cWZQb0n0gFgL5XodxcLR6JAg99P69NQ0nhY8w bLVn8Pxan3DlErnhzZvSW0jDUW5ckhEAs7cZ3pwbjMjJc8YYbdS3Nj//jaNiUNx3JArFodjnLlN ARCN7iyXogCqURuExIR2b/2jh8XcxJe7DOgy1n/QBGtzM7iNPQ3sV4qOAfdI4OtVwke82hidYyH fYnVGVf/T5IPL1Q== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Switch to devm_kmalloc() and devm_dma_alloc_chan() in devm_qce_dma_request(). This allows us to drop two labels and shrink the function. Signed-off-by: Bartosz Golaszewski Reviewed-by: Konrad Dybcio --- drivers/crypto/qce/dma.c | 39 +++++++++------------------------------ 1 file changed, 9 insertions(+), 30 deletions(-) diff --git a/drivers/crypto/qce/dma.c b/drivers/crypto/qce/dma.c index c29b0abe9445381a019e0447d30acfd7319d5c1f..a46264735bb895b6199969e8339= 1383ccbbacc5f 100644 --- a/drivers/crypto/qce/dma.c +++ b/drivers/crypto/qce/dma.c @@ -12,47 +12,26 @@ =20 #define QCE_IGNORE_BUF_SZ (2 * QCE_BAM_BURST_SIZE) =20 -static void qce_dma_release(void *data) -{ - struct qce_dma_data *dma =3D data; - - dma_release_channel(dma->txchan); - dma_release_channel(dma->rxchan); - kfree(dma->result_buf); -} - int devm_qce_dma_request(struct qce_device *qce) { struct qce_dma_data *dma =3D &qce->dma; struct device *dev =3D qce->dev; - int ret; =20 - dma->txchan =3D dma_request_chan(dev, "tx"); + dma->txchan =3D devm_dma_request_chan(dev, "tx"); if (IS_ERR(dma->txchan)) return dev_err_probe(dev, PTR_ERR(dma->txchan), "Failed to get TX DMA channel\n"); =20 - dma->rxchan =3D dma_request_chan(dev, "rx"); - if (IS_ERR(dma->rxchan)) { - ret =3D dev_err_probe(dev, PTR_ERR(dma->rxchan), - "Failed to get RX DMA channel\n"); - goto error_rx; - } + dma->rxchan =3D devm_dma_request_chan(dev, "rx"); + if (IS_ERR(dma->rxchan)) + return dev_err_probe(dev, PTR_ERR(dma->rxchan), + "Failed to get RX DMA channel\n"); =20 - dma->result_buf =3D kmalloc(QCE_RESULT_BUF_SZ + QCE_IGNORE_BUF_SZ, - GFP_KERNEL); - if (!dma->result_buf) { - ret =3D -ENOMEM; - goto error_nomem; - } + dma->result_buf =3D devm_kmalloc(dev, QCE_RESULT_BUF_SZ + QCE_IGNORE_BUF_= SZ, GFP_KERNEL); + if (!dma->result_buf) + return -ENOMEM; =20 - return devm_add_action_or_reset(dev, qce_dma_release, dma); - -error_nomem: - dma_release_channel(dma->rxchan); -error_rx: - dma_release_channel(dma->txchan); - return ret; + return 0; } =20 struct scatterlist * --=20 2.51.0 From nobody Mon Feb 9 04:27:32 2026 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C862B31197A for ; Fri, 28 Nov 2025 11:44:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330270; cv=none; b=KrKL6jIDwiD54MKyt1cDPFnQ3EeGOyoZ94KfU5sl8FeIqhTHrqKTKA0z7TvUWvbnUToQ4rCUdJPG/pO1+Qd26ay1Sl5SUiIge/oKdwV2i3sLuIPOvkjXbkD1GwL0v4EWUe2carqwJ0HAVlbtnGSKsHgmlv50tDLCyNGWHAQDuQc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330270; c=relaxed/simple; bh=ZKzs687dLj16A7Kf7yoCj+ePQd4RDiiBWDaWylkwc6g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Lnz2sj8axTN3yXGffnd/9fl/eE/UCMyf46LLK9I/+gDxRjAw0R+TfA743m+ayzOEqOLNQUodTg9Gb8B7x8CBUo6DG+SJSAx+EVwN7KRZtrWdEXHdztpHqiKKSHZ3+NfCi8WdiImhyasmAz/ws8ElLM/9S5llhX1Nsoju8S7m6U0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=I1EeC1tI; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="I1EeC1tI" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-47796a837c7so11553375e9.0 for ; Fri, 28 Nov 2025 03:44:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1764330265; x=1764935065; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=uh7uPTnxM0ybqUV5+6YbE7YAw5NDuzVDUVQeWVG00yU=; b=I1EeC1tIzDfrua0VKrIK/pbZwseAfaVIe6najJFTy6/krbiRhHPjYlWwe6yhxhDZ4I SKvwPf33IWIN+TD+1EN8fbp5pQ51B1zarjI3kXKswm9nidNvOQaAoYvzK4LmzIkcSb1k Gv/u6y9iH07V8d1ibmvPMQ+ktfcXAP/cI4ezLgiRAIbO016yFn2RQX5rRGeof2sQMhrS BayeY/gq3+9jlby9DhlHo5NnwpG30uNODXKHvLow2NYwM0ihmGxKFssQ0EulThWO9WXo x3sOzHOusNPN7zH6Z1Su8JxTp8xhTNuu6KMtG8vAC/uqZM7aI6cAnJptaJdnuFgSFCbl ZmPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330265; x=1764935065; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=uh7uPTnxM0ybqUV5+6YbE7YAw5NDuzVDUVQeWVG00yU=; b=XbS5WI0quNtPLks8R7ceblE7bxuUlcRg/BXccbM3kzG1yPS+NaJYAtj2cf6Ong0Pmx QxQeuB3hul9DR95rsg5j/WK0kNQh63iMYDs1nHyhlpX8VLmYmDeZdStQm7o1uTlKfEco 0R3iFWR/PXbYxcNqpA/hR/6c5fCJ6rE7JlsOLSL/p0mnAMsM1EN9pzBQarLLNiWkOQ/z D8MtJXZOAXqjpHQpLjexu8Y1HRnVgxzyNI2z9Qu0gXewXNen4L/xZD8gpd54Os50uRwb eE9gLoYfInXmYGBOrmpfOWEuec1DHaGGC5aJjGfbRus/LrBQrdKkWP079Aloa33cLnqL hoRA== X-Forwarded-Encrypted: i=1; AJvYcCVGEU6cD43vP+hMg6Xk3gy8FglvqFbkPuyCoBkPB6tQbMQ4KDAhyU8cqSNJYGi6fADe4fKZY+zsmrFj+Qg=@vger.kernel.org X-Gm-Message-State: AOJu0Yz7bsMH+WEi3dl3FtYoGDe5pzuhXc6Xhi6pQPLgvi0dnuOEzX+C j5yBr8zx/UpwB+cCaaGmTge+e7Dbimf05mhjSYhuBrOWLymGZIeycnNxV8vBq/zckYY= X-Gm-Gg: ASbGncs+dkpa+RgjtSv13ljB3iorKaQRJ9ovpzcCagCtXbXACiiywqUGtcqktVyYygE sCjUGPsImthQqMCrT5bqj4SvDyV6/3W5uYnedTl0+cwWeEhiFCuRPBMF055gNl8+n/yRF24P7By 7fclXF43Ie+oOOvzDIlij9/O4qXaD5b+6352eMiSG+CQrlWOMuFBzXpBzjEwBWmxJ+nldcz+nYN j9O+dw54SaKjElVzoLHGLGORisFavjo2/6XMvCeDNVvsXbDNbBqjz5bm2Zjrz0KUoRrnNQMSUa/ 6ZxjtwMZIEGB5+9uNeA+eTNWxGfstC5eKR65LmKQL/UwzDf1mlIIDgmjOpotfKJBKDfr17rdTP9 BbMSip5r6MsHzFnMIBFjLtdmvF+3y2y2qj32whqt23YofzDiOOii9uZN53zb5pW4SiJBkle+4CQ QRbyA/vlW29aeYFQVC X-Google-Smtp-Source: AGHT+IFGETmBAn2a7+y85c+vAvK8Uw2E/Z+IXGCCYI+StYUHb18thUJIZL9h+pQs700HfcB2Zj7Geg== X-Received: by 2002:a05:600c:4684:b0:477:9c73:2680 with SMTP id 5b1f17b1804b1-477c01bf658mr268758615e9.23.1764330264639; Fri, 28 Nov 2025 03:44:24 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:f3c6:aa54:79d2:8979]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47906cb1f60sm89888445e9.1.2025.11.28.03.44.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:44:23 -0800 (PST) From: Bartosz Golaszewski Date: Fri, 28 Nov 2025 12:44:06 +0100 Subject: [PATCH v9 08/11] crypto: qce - Map crypto memory for DMA Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-qcom-qce-cmd-descr-v9-8-9a5f72b89722@linaro.org> References: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> In-Reply-To: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam , Dmitry Baryshkov Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3084; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=Y7Zq3m7ZDk1j81mFJRjZnJPSUKI9CxqNE4sy8coRQ28=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpKYsJ9Hr9P0P/w6D7i6D7Q5ICQn3DGaJjvkNV5 Jlv6XQErV2JAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaSmLCQAKCRAFnS7L/zaE w+wYD/98jkhzq4pvermrohP+/8Osr2vJf2aNYrttJVI6X5gKtxQB8Qp0iS9e3HRGKBNUx7j4EdM 9gmBANZFdZ1tV4t/gN/gWV5jwLsbwiEz/oEs4bLNawlPZoHLk6CKcEa6jXxfOQd4wrc8dIkTf6e xu9xRozw1A3za4JaO771zSuZx6se/RMmMkqnTj0NmhFRbOOFahxD9dQLPNb8g55A/tnIaOLBs3W trGwgIbZdyV7C6nIh1hc2WM9unq0dnGKhkWSH9Hv9gGx5zkfRsxVVq7rysCDyNJZtOyNG3hYH1g GYfi0Tucn2n30UMk8fjdx8RFXylsB4FnT9b7+JadJlgEgxe5uHbERZ68n1Bz1UW0LrpGovDUTeZ eJ1ekLpG+JdKkcqrya4c93/7w5vL2yeuNeN94RYXLaZ+rTWEayc0rIifDWQe4JwwMJ/Yv1tHUSl x2Qbg2m009Xw++F6DcNn4fVj1k1C08c5QsSPn7cAV+41qusFfLF0FEe07ifqiQpnIao12C1sFT3 RsfXuT5GVCt7T65xutcQakbHaFwXFQDm3ChGe5NKnaAW7ca2Dr9eusA9WHDyPbIx+uG6aGZtUqY tg8RZrpPlczJLrD9cdkF4/Md4X55/0YRffmZlvmm2yYlB6DaSVAH6p1wNo3bkeG4bV/p8aMsssJ FGGzypi5XRKumfw== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski As the first step in converting the driver to using DMA for register I/O, let's map the crypto memory range. Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/core.c | 25 +++++++++++++++++++++++-- drivers/crypto/qce/core.h | 6 ++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/qce/core.c b/drivers/crypto/qce/core.c index 8b7bcd0c420c45caf8b29e5455e0f384fd5c5616..2667fcd67fee826a44080da8f88= a3e2abbb9b2cf 100644 --- a/drivers/crypto/qce/core.c +++ b/drivers/crypto/qce/core.c @@ -185,10 +185,19 @@ static int qce_check_version(struct qce_device *qce) return 0; } =20 +static void qce_crypto_unmap_dma(void *data) +{ + struct qce_device *qce =3D data; + + dma_unmap_resource(qce->dev, qce->base_dma, qce->dma_size, + DMA_BIDIRECTIONAL, 0); +} + static int qce_crypto_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; struct qce_device *qce; + struct resource *res; int ret; =20 qce =3D devm_kzalloc(dev, sizeof(*qce), GFP_KERNEL); @@ -198,7 +207,7 @@ static int qce_crypto_probe(struct platform_device *pde= v) qce->dev =3D dev; platform_set_drvdata(pdev, qce); =20 - qce->base =3D devm_platform_ioremap_resource(pdev, 0); + qce->base =3D devm_platform_get_and_ioremap_resource(pdev, 0, &res); if (IS_ERR(qce->base)) return PTR_ERR(qce->base); =20 @@ -244,7 +253,19 @@ static int qce_crypto_probe(struct platform_device *pd= ev) qce->async_req_enqueue =3D qce_async_request_enqueue; qce->async_req_done =3D qce_async_request_done; =20 - return devm_qce_register_algs(qce); + ret =3D devm_qce_register_algs(qce); + if (ret) + return ret; + + qce->dma_size =3D resource_size(res); + qce->base_dma =3D dma_map_resource(dev, res->start, qce->dma_size, + DMA_BIDIRECTIONAL, 0); + qce->base_phys =3D res->start; + ret =3D dma_mapping_error(dev, qce->base_dma); + if (ret) + return ret; + + return devm_add_action_or_reset(qce->dev, qce_crypto_unmap_dma, qce); } =20 static const struct of_device_id qce_crypto_of_match[] =3D { diff --git a/drivers/crypto/qce/core.h b/drivers/crypto/qce/core.h index f092ce2d3b04a936a37805c20ac5ba78d8fdd2df..a80e12eac6c87e5321cce16c56a= 4bf5003474ef0 100644 --- a/drivers/crypto/qce/core.h +++ b/drivers/crypto/qce/core.h @@ -27,6 +27,9 @@ * @dma: pointer to dma data * @burst_size: the crypto burst size * @pipe_pair_id: which pipe pair id the device using + * @base_dma: base DMA address + * @base_phys: base physical address + * @dma_size: size of memory mapped for DMA * @async_req_enqueue: invoked by every algorithm to enqueue a request * @async_req_done: invoked by every algorithm to finish its request */ @@ -43,6 +46,9 @@ struct qce_device { struct qce_dma_data dma; int burst_size; unsigned int pipe_pair_id; + dma_addr_t base_dma; + phys_addr_t base_phys; + size_t dma_size; int (*async_req_enqueue)(struct qce_device *qce, struct crypto_async_request *req); void (*async_req_done)(struct qce_device *qce, int ret); --=20 2.51.0 From nobody Mon Feb 9 04:27:32 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 64F4530F931 for ; Fri, 28 Nov 2025 11:44:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330272; cv=none; b=l19yUySkzjCK7IFWVnsmicga0zVsbI8LOZYdIJCTrx2A4qzLG86HKSEprvp6xsx9nVN25CzrBqJj9IIRfZw1iCDzFOCnAER+DXvrnfgP8nLbH3rMql9pq3wj0+Jw51rAFu2I16taiU5wQDI+cPGugrJ+pP3bdS3wq3/pgF2uNJI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330272; c=relaxed/simple; bh=J50ZfSZN5RZxI7OX8x2EkRHJY5BuIZYvS9InOlUCUjM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oP4ArYM/alXmeoMO83B/+H2bCq+fKyJiLKSITUYc3KxRJeG0BGWPxa7y4gEGbL8FsoReqJQHTGgJ3OOuVnHjEg0ki9JcPIWsuuvXkgGWjswXd0Iu4T9yfCSEKrj0gB12yM9Ty7FkB2HWVQLXjcL+ljPJvXKZK42AUaNEHZLq3jw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=mh/aCtKT; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="mh/aCtKT" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-47796a837c7so11553665e9.0 for ; Fri, 28 Nov 2025 03:44:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1764330266; x=1764935066; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=DpTOo9DeEr0HGOgc0cn1YI9FHxBZdtPmy+/9LzN6f8s=; b=mh/aCtKToakOcSeFj1KMAOkXWBTg9W67xK0opdf9nxdepOWs7uQkvGpncwZAiZ+mbV E0CficPi+Tgx7qHBbwffufCodGSE3Hitk/6mP8XXT3RB0UWg55H7eI9asgB7UV7+Maui lxkQxq8SJqfaopA8UtKM0K5OdCxdThhQuws9RwhsaUXoNTEF3Fxv9HcF91RTeUOw4m3T bv/BSekdLOmJGd3FKZEvqA66APXhnQ+bfQR5wsq4hFDJJp4Q66p/M1gC8yvMGPrUjFwS xFr6LqD8GdRwEdfxrjbRimX/9eIPWU6aJi4V3SJQg1vi6YsCF48tXWk68jmLl6+qyT8V 9n4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330266; x=1764935066; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=DpTOo9DeEr0HGOgc0cn1YI9FHxBZdtPmy+/9LzN6f8s=; b=dHhkGMZHkO6kzUcXZHrTbcwnaURT7cOee2DG0JAY/CCidhGI1l2gEswzmUV4iTxACq UJQ/E4oTR6cUdKyHf44OiR4qzPN9VLbnWD/QPTSdjYIGxi3lOO5Esw/leJ3WHCihDsVa 3UT7dsYTihVqQm5M9TL3f1BH6Z09jHY63SfmpvPw5/1RENjrrVXGqqilvvThZQmFegS/ jyhcXLRcbrLFRAZcivuWga3vgoLmuBLm4duNs1w0+YId2zoINElD9i3NZdiFZulyvOYq d8oMDzvMuf8hMsJA8ahvlv8qC5+H6pLURsyRpNifUgsIqcTEK+EVUKfYNOZ2PT0Fczct 7siQ== X-Forwarded-Encrypted: i=1; AJvYcCWn7qQnNw20jKvzNuhlVdnFXYNkilS0w+T48TUXlKNdju4EQQnfTvIlpgAA9ptUxAZOEZ80TK9wkI1Eh+M=@vger.kernel.org X-Gm-Message-State: AOJu0Yzc0bJFnSh7KT6kVLOSYUF9fAJ/uvrCgtn0eb0nVpGDfO0EYMaO mnGnCE7o+hTpIwEnVOMGr/qK4eSJzbM7Cl/UU9/jQjTE/ZxGOXJ9ktbfS6HtlHU7ctU= X-Gm-Gg: ASbGncuzxkQqPyG03WmQNAdh50iWPNHPA9tCTtpbAxdfA6EQuanckbMBgFNNjTJWAOK khYzXo7FdskbgaJdoM1100Nw6f/2Z9kLhck1EDanHA5MAFPiqhxEOzoHcVOqD1JmBBXOnebM3gy e9RBxKuPgQqhDqKStfrhZcG3nka8Vt3SRhGuX81lvoZrfZ5UwWp9pC8FvRJ85Q0bJXCPAX3rKgh c/nua4CF9fXqNzkHnQN4sQyR6qQ5LaVvBEoua0v4gUloMv8xheSIYVdnCsvPdC3ZbHGbSLqm7fB AJszsBjwzIoNAddaxIj8aKLx4OAizKWv3TyE9FFffE6w307deV+h8Vgr4/e1c0zgPc/j3TwqQWQ bRAHxaxE1FRBcObkQJrGz95SXbE6B6/Cy6jU7/8EsYNaqTGk7EATIhgSU1JqHY7l9jRhgrNOxWC eroGO1yg== X-Google-Smtp-Source: AGHT+IGRwFVBtIS14/uhiMzyl0/9sl9K9SBhSDR7J39DwWeob0GHl5nzlWhaJQObZRshnIkcBj57bA== X-Received: by 2002:a05:600c:198e:b0:477:7b9a:bb0a with SMTP id 5b1f17b1804b1-477c01b218dmr238721585e9.21.1764330266496; Fri, 28 Nov 2025 03:44:26 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:f3c6:aa54:79d2:8979]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47906cb1f60sm89888445e9.1.2025.11.28.03.44.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:44:25 -0800 (PST) From: Bartosz Golaszewski Date: Fri, 28 Nov 2025 12:44:07 +0100 Subject: [PATCH v9 09/11] crypto: qce - Add BAM DMA support for crypto register I/O Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-qcom-qce-cmd-descr-v9-9-9a5f72b89722@linaro.org> References: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> In-Reply-To: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam , Dmitry Baryshkov Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6220; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=I0c/8yqrP9v9os34aFasg0EJl+n/XM4dMemH0p2zOCo=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpKYsJQ680n0oXA8tQIqIrFHqibIFd+QWU1zyxx PFgPcW75zaJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaSmLCQAKCRAFnS7L/zaE w+viD/9dhAUXjSBZDjhyEZrpK1HAC0d5kFBZFwjFVzs1+OTlRaqU0GXZfNcXZMSszdgrBCbDOpz ArhFUoTxwHn2QsCEESdZBvDBZohahLcZbBWSf9seaTEZwbixtgc0YJhOq5C7SFtbFEGMqnFQa1b imjoXrmVmWALawn3PeXoq12fes8i1kzHrigps7k+RWyL7Rotr5fBfINp1XlmIykpQnEZKSdP1kl gdk4cHa4ZwLZllJfMlgG59HOlpB4mIf6u6rj6lr3IzkkbxUVrZBWk18g/+7g0LNA8tvlQuSklAJ V+EzG114w0T+SFH+6m14YbuKoYEUHnx5cLPyT7J3phz+0i3gndMCqUAf1Dv+GK4LE5oX6IoJWFx ZlFUMPXMpqh9+BxuIQFFvrhtc3L1kO9xZKVYIfDhlGTmtPdup/hYq8dYARqezKDmNWVMjxe4psA 1jxw4kDFomokiCZ7M3W3gO/tbabA0rwbI9DvErRIkODJqzhUr7GQQnMqt2QGSCmr0Fi5Ku9E1n+ uAMKXMGNvSSBfthRnh/XnH4psoIk710nSqECiVF7mueCznywISUO0c8s8MHGnwPPPHb5VFkQU14 Ym/uvZFBeLkg+gjHxz38UkbJTfbs9CzMn1Qds5c/i6qv/dC3qfX5VWqzwm6och9UNAljofXJZks jMRG2FhLVv9J1Dw== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Implement the infrastructure for performing register I/O over BAM DMA, not CPU. No functional change yet. Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/core.h | 4 ++ drivers/crypto/qce/dma.c | 109 ++++++++++++++++++++++++++++++++++++++++++= ++++ drivers/crypto/qce/dma.h | 5 +++ 3 files changed, 118 insertions(+) diff --git a/drivers/crypto/qce/core.h b/drivers/crypto/qce/core.h index a80e12eac6c87e5321cce16c56a4bf5003474ef0..d238097f834e4605f3825f23d03= 16d4196439116 100644 --- a/drivers/crypto/qce/core.h +++ b/drivers/crypto/qce/core.h @@ -30,6 +30,8 @@ * @base_dma: base DMA address * @base_phys: base physical address * @dma_size: size of memory mapped for DMA + * @read_buf: Buffer for DMA to write back to + * @read_buf_dma: Mapped address of the read buffer * @async_req_enqueue: invoked by every algorithm to enqueue a request * @async_req_done: invoked by every algorithm to finish its request */ @@ -49,6 +51,8 @@ struct qce_device { dma_addr_t base_dma; phys_addr_t base_phys; size_t dma_size; + __le32 *read_buf; + dma_addr_t read_buf_dma; int (*async_req_enqueue)(struct qce_device *qce, struct crypto_async_request *req); void (*async_req_done)(struct qce_device *qce, int ret); diff --git a/drivers/crypto/qce/dma.c b/drivers/crypto/qce/dma.c index a46264735bb895b6199969e83391383ccbbacc5f..ba7a52fd4c6349d59c075c346f7= 5741defeb6034 100644 --- a/drivers/crypto/qce/dma.c +++ b/drivers/crypto/qce/dma.c @@ -4,6 +4,8 @@ */ =20 #include +#include +#include #include #include =20 @@ -11,6 +13,98 @@ #include "dma.h" =20 #define QCE_IGNORE_BUF_SZ (2 * QCE_BAM_BURST_SIZE) +#define QCE_BAM_CMD_SGL_SIZE 128 +#define QCE_BAM_CMD_ELEMENT_SIZE 128 +#define QCE_MAX_REG_READ 8 + +struct qce_desc_info { + struct dma_async_tx_descriptor *dma_desc; + enum dma_data_direction dir; +}; + +struct qce_bam_transaction { + struct bam_cmd_element bam_ce[QCE_BAM_CMD_ELEMENT_SIZE]; + struct scatterlist wr_sgl[QCE_BAM_CMD_SGL_SIZE]; + struct qce_desc_info *desc; + u32 bam_ce_idx; + u32 pre_bam_ce_idx; + u32 wr_sgl_cnt; +}; + +void qce_clear_bam_transaction(struct qce_device *qce) +{ + struct qce_bam_transaction *bam_txn =3D qce->dma.bam_txn; + + bam_txn->bam_ce_idx =3D 0; + bam_txn->wr_sgl_cnt =3D 0; + bam_txn->bam_ce_idx =3D 0; + bam_txn->pre_bam_ce_idx =3D 0; +} + +int qce_submit_cmd_desc(struct qce_device *qce) +{ + struct qce_desc_info *qce_desc =3D qce->dma.bam_txn->desc; + struct qce_bam_transaction *bam_txn =3D qce->dma.bam_txn; + struct dma_async_tx_descriptor *dma_desc; + struct dma_chan *chan =3D qce->dma.rxchan; + unsigned long attrs =3D DMA_PREP_CMD; + dma_cookie_t cookie; + unsigned int mapped; + int ret; + + mapped =3D dma_map_sg_attrs(qce->dev, bam_txn->wr_sgl, bam_txn->wr_sgl_cn= t, + DMA_TO_DEVICE, attrs); + if (!mapped) + return -ENOMEM; + + dma_desc =3D dmaengine_prep_slave_sg(chan, bam_txn->wr_sgl, bam_txn->wr_s= gl_cnt, + DMA_MEM_TO_DEV, attrs); + if (!dma_desc) { + dma_unmap_sg(qce->dev, bam_txn->wr_sgl, bam_txn->wr_sgl_cnt, DMA_TO_DEVI= CE); + return -ENOMEM; + } + + qce_desc->dma_desc =3D dma_desc; + cookie =3D dmaengine_submit(qce_desc->dma_desc); + + ret =3D dma_submit_error(cookie); + if (ret) + return ret; + + qce_dma_issue_pending(&qce->dma); + + return 0; +} + +static void qce_prep_dma_cmd_desc(struct qce_device *qce, struct qce_dma_d= ata *dma, + unsigned int addr, void *buf) +{ + struct qce_bam_transaction *bam_txn =3D dma->bam_txn; + struct bam_cmd_element *bam_ce_buf; + int bam_ce_size, cnt, idx; + + idx =3D bam_txn->bam_ce_idx; + bam_ce_buf =3D &bam_txn->bam_ce[idx]; + bam_prep_ce_le32(bam_ce_buf, addr, BAM_WRITE_COMMAND, *((__le32 *)buf)); + + bam_ce_buf =3D &bam_txn->bam_ce[bam_txn->pre_bam_ce_idx]; + bam_txn->bam_ce_idx++; + bam_ce_size =3D (bam_txn->bam_ce_idx - bam_txn->pre_bam_ce_idx) * sizeof(= *bam_ce_buf); + + cnt =3D bam_txn->wr_sgl_cnt; + + sg_set_buf(&bam_txn->wr_sgl[cnt], bam_ce_buf, bam_ce_size); + + ++bam_txn->wr_sgl_cnt; + bam_txn->pre_bam_ce_idx =3D bam_txn->bam_ce_idx; +} + +void qce_write_dma(struct qce_device *qce, unsigned int offset, u32 val) +{ + unsigned int reg_addr =3D ((unsigned int)(qce->base_phys) + offset); + + qce_prep_dma_cmd_desc(qce, &qce->dma, reg_addr, &val); +} =20 int devm_qce_dma_request(struct qce_device *qce) { @@ -31,6 +125,21 @@ int devm_qce_dma_request(struct qce_device *qce) if (!dma->result_buf) return -ENOMEM; =20 + dma->bam_txn =3D devm_kzalloc(dev, sizeof(*dma->bam_txn), GFP_KERNEL); + if (!dma->bam_txn) + return -ENOMEM; + + dma->bam_txn->desc =3D devm_kzalloc(dev, sizeof(*dma->bam_txn->desc), GFP= _KERNEL); + if (!dma->bam_txn->desc) + return -ENOMEM; + + sg_init_table(dma->bam_txn->wr_sgl, QCE_BAM_CMD_SGL_SIZE); + + qce->read_buf =3D dmam_alloc_coherent(qce->dev, QCE_MAX_REG_READ * sizeof= (*qce->read_buf), + &qce->read_buf_dma, GFP_KERNEL); + if (!qce->read_buf) + return -ENOMEM; + return 0; } =20 diff --git a/drivers/crypto/qce/dma.h b/drivers/crypto/qce/dma.h index 483789d9fa98e79d1283de8297bf2fc2a773f3a7..f05dfa9e6b25bd60e32f45079a8= bc7e6a4cf81f9 100644 --- a/drivers/crypto/qce/dma.h +++ b/drivers/crypto/qce/dma.h @@ -8,6 +8,7 @@ =20 #include =20 +struct qce_bam_transaction; struct qce_device; =20 /* maximum data transfer block size between BAM and CE */ @@ -32,6 +33,7 @@ struct qce_dma_data { struct dma_chan *txchan; struct dma_chan *rxchan; struct qce_result_dump *result_buf; + struct qce_bam_transaction *bam_txn; }; =20 int devm_qce_dma_request(struct qce_device *qce); @@ -43,5 +45,8 @@ int qce_dma_terminate_all(struct qce_dma_data *dma); struct scatterlist * qce_sgtable_add(struct sg_table *sgt, struct scatterlist *sg_add, unsigned int max_len); +void qce_write_dma(struct qce_device *qce, unsigned int offset, u32 val); +int qce_submit_cmd_desc(struct qce_device *qce); +void qce_clear_bam_transaction(struct qce_device *qce); =20 #endif /* _DMA_H_ */ --=20 2.51.0 From nobody Mon Feb 9 04:27:32 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9F41331328E for ; Fri, 28 Nov 2025 11:44:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330273; cv=none; b=QclYdQzRMp0DtSKkbQ3FvYtVJS8ZkrRk6VIGAjwO8HToKi1oMOGAfGKxhgS+ncuuWqeN4sEaDe7rsQ/EGXSmCKMN5u5SOHsc/VPc3VXl+uQT8ew5McSvQLBZpDcllUawP/B4eX4YFu/zCZsqcRtCoXWH31oo9C0auxeI2uh5gkA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330273; c=relaxed/simple; bh=DCCMlvDGThFFIvgY86LqD197iJw6Jsoi16VgT7CHNFQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Np0DzJWhxenLvErkmCJtfXnYPNE+kj9JuUmkwFCZvlnLdrZZjrdCvn4CU3loqimuYPWAkkY2lqIGlHuGKb+elXATj7jn83wOmSK14HceIYOML1GlFu7uxv1phWd8dUm+vi6VrvcVo3+uLhNn4SOvqh2weVxk85tyPEiLki4gkcI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=AOlZ8DDQ; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="AOlZ8DDQ" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-477a219dbcaso14932155e9.3 for ; Fri, 28 Nov 2025 03:44:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1764330268; x=1764935068; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Tw3tkmAmu4OrMkcprgGA2oojzoMKM9441R1Qh3dnLxQ=; b=AOlZ8DDQxopy8SEaQLQG516GV7n2z9u5pbNvxuqJxmlyi0zOoqqRNKQE4WRvmo6NrD LrGBQbZjUyB+Jc+i2vGKOcN4M8gWb4GqBQyq9ZiGBG1INqy8vG5OspUKkDhfCufA/3dq VvVJE2VdJlm4+T3m1Ib0bwjMZdJYrO3evJ2vNu53YmZU6QUdrGFJyIGnkzjqlXkw+NfQ 7mSV5zwSRchQaPK5EkaDb5BwOqLAizpCWu3C9/j3FbRsBVisDX47MIlgeZ8v7nc1AenA kMe0gyMiOQSo1iZ+7O2+dE0K6RfXEXAoT3+RkUKPYNCSvJihOshJ9Ov+Dj6IyQlw4dq3 nsAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330268; x=1764935068; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Tw3tkmAmu4OrMkcprgGA2oojzoMKM9441R1Qh3dnLxQ=; b=Jm69XDjaYEK55aUnT8wiOIOlk7Dcs0XeStfYaqAk/1Bwa+FnUNE4NIf7FFupw5b0s1 9tBowifcyI36tCUmCmvutQUtZ4dO8D8ZqFbiaLTxXi3H8MxELthKQZG2+HZ3yOr8lx/s dl3I843IcnUoTyPcc9ibtZGFS6EwJY23+3IhWfiIrAu3y+kSlp7DKkFW49XqfRJUoDyG o9SkN0TEx0n1aoW08qjgkcQfa9XgtUOMy5N8Ru8WdrmSViAAytgCplnuRydh0Ut84wFl 8fiyDC/RTvUqBWZQyMgHZNe7x+a1pwa2+wu/Zlu60uyiUB15UbLSHCnGPGNr1N4NFOnY +OBg== X-Forwarded-Encrypted: i=1; AJvYcCW4cg72yVlFYNxwIFeTNIaW5UixRR/kNmdhu9x8auuDKRcVeeN0IKDyrjfa4Yt9JdmgTXAAATgbnQkIyjM=@vger.kernel.org X-Gm-Message-State: AOJu0YyQ6XtAycmjv+s8wAZppFbvBlI4zjJRrJqnfqyYPFsELx62Xwq9 jrnn1DhOvlI5hp4BL1WN/vgcpUlxueKAJNtIRFFjL0+eF12S5uEZR92FmvkTYCy3t70= X-Gm-Gg: ASbGnctX6fLXh0/nfHLvo3j6dMZummHY7rtP0F2VJjgsp6If/EoKdt8DFkGdbdFxPaH cx+SwAQztW546cPa06dsbnclkF/ZueQQzkiDtOdpdjx2Qwyyqc/xZUeaMhpxYFEtRQ253DX0ca5 2cPp/7NKP8nIWOJ8CKLe92GYa1chMZqsMviQ/Gc0V59j8QNPbAXauLA8GhZVFwwdlunbhYbd7hz gXnmqJLDQg2QjowJWGtF7FWL/KCIOZFDMfjuzbRCCfexO5nCUEJcNILu/ZotK12O5wGEheFAjOl XCGcyI6B1PfaD9oXeaJa6yG57THgMeYUkWZ8g9j8MBkv8dS/3/EP6Fww4QDZ2OgRSdskEbMyant k5bM4Gy5M4Ohecr3DN6glFjYJIzLmpqQ6K/AMFoEUrtOURCgdIhCFOPovUvYxK1Qo0AUWCzODju Ka/B9SFA== X-Google-Smtp-Source: AGHT+IFY+Z1hsVNocOJg3NO1dMXyuSIVF4z5Hq+Vdu8X38RpK9J7FuZL5nWRH5tcw+Lx885k5tTgfg== X-Received: by 2002:a05:600c:6d56:b0:479:1a09:1c4a with SMTP id 5b1f17b1804b1-4791a091c4emr4042835e9.31.1764330268163; Fri, 28 Nov 2025 03:44:28 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:f3c6:aa54:79d2:8979]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47906cb1f60sm89888445e9.1.2025.11.28.03.44.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:44:27 -0800 (PST) From: Bartosz Golaszewski Date: Fri, 28 Nov 2025 12:44:08 +0100 Subject: [PATCH v9 10/11] crypto: qce - Add support for BAM locking Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-qcom-qce-cmd-descr-v9-10-9a5f72b89722@linaro.org> References: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> In-Reply-To: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam , Dmitry Baryshkov Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4359; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=GYMvWd4G2OtMriFfOvACVEj/3rVgLKC4UYGoghgUhI0=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpKYsKPeo2cebRHz/smU6qyWPz+EA205XyjrMye TGvcJ4alE6JAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaSmLCgAKCRAFnS7L/zaE w78cEACGsGB8VrsYSRk7Htz+ngRasAWx7hSIWcx0SzmZX4Q/Ot0gNhZ0wxd6/HCKgDiZbKexEUI K+wir4BZdm0/TMOynQL10S47WqI42vcFqhst6dkQ7kJqLdmh9+cbCgO99RCT3MP6TUh8/b4hz9t ey5WqZkW1HXo682CydqukZ9DTzkV+Umzp/JnwPHDnjkOI9Bi9nFfED+1Mqcnf1K7ztlXNOlqoLL YrRtobLM5KqvGUFMEAoULNlubmv08Zt1GhsHT0TrY8aWVYJrvqSD1F0zSeySREivImmc9Qy3mKF USLEMI0TwWDm1Esj486MBOG+bVKKmH5xds+nMEoxaDiVtL9Kp95mPIbUk7rLMta1t2a7OXAGyP6 Cd+9JgU83Rj9enfAmR7encxpBwOgw4Ma0eN1eKCTpKvvR08uzQDhMgrmVYeX8IN2l2iY3wiseXb cYA+AekmsrClCitQIkP7zVSTQFXQvI2bmnb0kQuS5hHNAALI13TWYbt59K+doEMr6t4PLwnyUiu KETDzQNbN1dkIvhJ5rMhkQ+o/lrvy0KNDE/zwtusugIuyZR/iTIPJ8mizFuU2GZt3rBwuwMbxXy ZplfO9G1FRIcDRrVBv3DvbNfeXigSQvcjx1QF9pfXI+wvwhWCr2b44Hjh/OqezfcrLBBypdf64m 8vCsrZGFMr859wQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Implement the infrastructure for using the new DMA controller lock/unlock feature of the BAM driver. No functional change for now. Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/common.c | 18 ++++++++++++++++++ drivers/crypto/qce/dma.c | 39 ++++++++++++++++++++++++++++++++++----- drivers/crypto/qce/dma.h | 4 ++++ 3 files changed, 56 insertions(+), 5 deletions(-) diff --git a/drivers/crypto/qce/common.c b/drivers/crypto/qce/common.c index 04253a8d33409a2a51db527435d09ae85a7880af..74756c222fed6d0298eb6c957ed= 15b8b7083b72f 100644 --- a/drivers/crypto/qce/common.c +++ b/drivers/crypto/qce/common.c @@ -593,3 +593,21 @@ void qce_get_version(struct qce_device *qce, u32 *majo= r, u32 *minor, u32 *step) *minor =3D (val & CORE_MINOR_REV_MASK) >> CORE_MINOR_REV_SHIFT; *step =3D (val & CORE_STEP_REV_MASK) >> CORE_STEP_REV_SHIFT; } + +int qce_bam_lock(struct qce_device *qce) +{ + qce_clear_bam_transaction(qce); + /* Dummy write to acquire the lock on the BAM pipe. */ + qce_write(qce, REG_AUTH_SEG_CFG, 0); + + return qce_submit_cmd_desc_lock(qce); +} + +int qce_bam_unlock(struct qce_device *qce) +{ + qce_clear_bam_transaction(qce); + /* Dummy write to release the lock on the BAM pipe. */ + qce_write(qce, REG_AUTH_SEG_CFG, 0); + + return qce_submit_cmd_desc_unlock(qce); +} diff --git a/drivers/crypto/qce/dma.c b/drivers/crypto/qce/dma.c index ba7a52fd4c6349d59c075c346f75741defeb6034..885053955ac3dc95efefef54190= 7f57844b60a3d 100644 --- a/drivers/crypto/qce/dma.c +++ b/drivers/crypto/qce/dma.c @@ -41,7 +41,7 @@ void qce_clear_bam_transaction(struct qce_device *qce) bam_txn->pre_bam_ce_idx =3D 0; } =20 -int qce_submit_cmd_desc(struct qce_device *qce) +static int qce_do_submit_cmd_desc(struct qce_device *qce, struct bam_desc_= metadata *meta) { struct qce_desc_info *qce_desc =3D qce->dma.bam_txn->desc; struct qce_bam_transaction *bam_txn =3D qce->dma.bam_txn; @@ -50,7 +50,7 @@ int qce_submit_cmd_desc(struct qce_device *qce) unsigned long attrs =3D DMA_PREP_CMD; dma_cookie_t cookie; unsigned int mapped; - int ret; + int ret =3D -ENOMEM; =20 mapped =3D dma_map_sg_attrs(qce->dev, bam_txn->wr_sgl, bam_txn->wr_sgl_cn= t, DMA_TO_DEVICE, attrs); @@ -59,9 +59,15 @@ int qce_submit_cmd_desc(struct qce_device *qce) =20 dma_desc =3D dmaengine_prep_slave_sg(chan, bam_txn->wr_sgl, bam_txn->wr_s= gl_cnt, DMA_MEM_TO_DEV, attrs); - if (!dma_desc) { - dma_unmap_sg(qce->dev, bam_txn->wr_sgl, bam_txn->wr_sgl_cnt, DMA_TO_DEVI= CE); - return -ENOMEM; + if (!dma_desc) + goto err_out; + + if (meta) { + meta->chan =3D chan; + + ret =3D dmaengine_desc_attach_metadata(dma_desc, meta, 0); + if (ret) + goto err_out; } =20 qce_desc->dma_desc =3D dma_desc; @@ -74,6 +80,29 @@ int qce_submit_cmd_desc(struct qce_device *qce) qce_dma_issue_pending(&qce->dma); =20 return 0; + +err_out: + dma_unmap_sg(qce->dev, bam_txn->wr_sgl, bam_txn->wr_sgl_cnt, DMA_TO_DEVIC= E); + return ret; +} + +int qce_submit_cmd_desc(struct qce_device *qce) +{ + return qce_do_submit_cmd_desc(qce, NULL); +} + +int qce_submit_cmd_desc_lock(struct qce_device *qce) +{ + struct bam_desc_metadata meta =3D { .op =3D BAM_META_CMD_LOCK, }; + + return qce_do_submit_cmd_desc(qce, &meta); +} + +int qce_submit_cmd_desc_unlock(struct qce_device *qce) +{ + struct bam_desc_metadata meta =3D { .op =3D BAM_META_CMD_UNLOCK }; + + return qce_do_submit_cmd_desc(qce, &meta); } =20 static void qce_prep_dma_cmd_desc(struct qce_device *qce, struct qce_dma_d= ata *dma, diff --git a/drivers/crypto/qce/dma.h b/drivers/crypto/qce/dma.h index f05dfa9e6b25bd60e32f45079a8bc7e6a4cf81f9..4b3ee17db72e29b9f417994477a= d8a0ec2294db1 100644 --- a/drivers/crypto/qce/dma.h +++ b/drivers/crypto/qce/dma.h @@ -47,6 +47,10 @@ qce_sgtable_add(struct sg_table *sgt, struct scatterlist= *sg_add, unsigned int max_len); void qce_write_dma(struct qce_device *qce, unsigned int offset, u32 val); int qce_submit_cmd_desc(struct qce_device *qce); +int qce_submit_cmd_desc_lock(struct qce_device *qce); +int qce_submit_cmd_desc_unlock(struct qce_device *qce); void qce_clear_bam_transaction(struct qce_device *qce); +int qce_bam_lock(struct qce_device *qce); +int qce_bam_unlock(struct qce_device *qce); =20 #endif /* _DMA_H_ */ --=20 2.51.0 From nobody Mon Feb 9 04:27:32 2026 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3E80E3101C6 for ; Fri, 28 Nov 2025 11:44:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330277; cv=none; b=O1i3EngDcTsZ7jNfTuTPbE2yv8Ait/q3jrQGJChENjZpPL1wFmn+6R2zB07yPJelOdLpGjk7oiv409sQPckZxHnf+QXPgASWwI+rdRLYLHqR7PfzSBpDWjTOfj664UuUXvLyW1vJBIWY4FPKAyFb0+ppWyXycS+fDIJ3MxvNK48= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764330277; c=relaxed/simple; bh=s1TSeMY8TYeWUqJN+NLoCq/MH+IRv9s48jeTq7Gbbf8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QYnyczhsIgNBVmShAqD2MpTDTDvGfbps9ey1jY3agR2aUVWWgws1RLncrOdUmffTH/CIowGOxsCWOsTBlMMZURZDcI+ef7MjTj3gsPoGlQZ6sCJ+H50A6fCFB9M1w2Mnef/aO+9P/WhzIeR0HAZLqhuD8vI6jM8ZKB7orVSQrCI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=jX7Qveym; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="jX7Qveym" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-477aa218f20so11003315e9.0 for ; Fri, 28 Nov 2025 03:44:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1764330270; x=1764935070; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=0slMlJM7u9gD6l8dG4n25D1+B/Pqy3PuC+FWW1MvYSg=; b=jX7Qveyms/ZnLta+//hZiYGiYqUkBD6TTOZJFauYH4Q8LhapAYMXRYqtVnW9vxEtCe P4bnHYNHR7Sz0d6/eKr8JyMalElu3uQwcUuCOwROo7hb0NKCJF/U5DN+hYYdPmlfg8d5 cvWKrWP/ley4pWXPvcPffJwmgnqV1jervB+qvEZRJCcMxxrFyBCUu+HDC78i2P/1tRRo SGcdhNBMjn1gnQmx+75w667msxRoKEcUIjk6ngVBIrgYuN6iEE/hR2umi4ofJa2cwQ0z D/XnbNj5dpT0ehmGVeKhTmolQUdHoRNaBDeS2nEMep5oH5dwcXcThqlc9TPTpPvjE7fm 8+9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764330270; x=1764935070; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=0slMlJM7u9gD6l8dG4n25D1+B/Pqy3PuC+FWW1MvYSg=; b=OeHP4qfMWx8wcM1UN9drseSt2XKjdJ88nWxkjGh09M3yxB01Nw0xjie4IrLdnC+Tsj X/XB98G5KL9rzY4krqj0Om0wOI2kYIYsN48Vss1nEuCwFNEIMshYVRNuyca8IAVllOuA ikNBJdZ3cGxuf4doRWGM3yTz7AxKxCpXomTt9XzTYLq7D+BtqqIW7LDRAHfK72Tz2JBa bgFZfy9U8jlHJDVjXGIJ6W2MnDBgjuuMXVLpcnJ58P3M5t+NhDoFKASBgHG3QGL7Y3C7 tiR2ryj6ZlZKMXhbht+ZtgXNMh350tE7FMFAOtSVEI9LbyJPt7+XqZgyR+pCESjSjsIY idvA== X-Forwarded-Encrypted: i=1; AJvYcCUApmsT6lQMsseeP916rRQCG8FteIBKni5lMRTlROMYpskfXzLzSauitE+KWMjHsB/H4aAeea/9aA8vQtM=@vger.kernel.org X-Gm-Message-State: AOJu0YzoBVW9k3qIaq4aAhKoMy2YUuUGP5ASajLp33bcLh860C7c3gJp LftLI0JKLIxwSyxU4qg7mt18Eqhi2YcIXsnSbgXQWEK4BIVEU1yqqpN9X5wTfGcdU0A= X-Gm-Gg: ASbGncsa/UK4OMRXx6EI4so2MxNtxYmlI5ErTbzeOaTV4MUzki+XmNolUVOMVtTh9BW ro3t6TipZL3kbCF2PLfMugAWlswx0rbPK+M2AQqRHfacF7aKbOzN/dV3p+ygdpA+eKBFcT8evzn BxC9Izn+3HNGznXYUtPAoT6BDbCK6uFxnc7JdP+7OC+3Vw8EbLQrNU26C32VZQmp0QccZR/sGNs FnLuwzWj2pinJUsv7U6Fmro81WNI53+uAo2hXW0k/jxikbaPPtDJP4h5gJZ15a4LjhGTiqD29kn VxTPytqXatZjbrQ8kxFYtKqigHURrBFqWvuhWmALSujzDx9fSLNAbaj6v1c/sSRdb5pBsKANE80 BJXrJ7FdNPFehBqF1a55IIhsu5qWlcTyOxDbvvCPUbhZvl855YjJXyfc2SCVh2nvF8YWhcq1ERW coOe0WDA== X-Google-Smtp-Source: AGHT+IHiFNtIlO4LqrcMmbtEMJgmSuRKa9qY+AWUXUaUq2NMI8ljNEJbZyCu/w1cNhv/t0kz4/Obhw== X-Received: by 2002:a05:600c:474b:b0:477:9dc1:b706 with SMTP id 5b1f17b1804b1-477c01b494fmr272879555e9.19.1764330270423; Fri, 28 Nov 2025 03:44:30 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:f3c6:aa54:79d2:8979]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47906cb1f60sm89888445e9.1.2025.11.28.03.44.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Nov 2025 03:44:28 -0800 (PST) From: Bartosz Golaszewski Date: Fri, 28 Nov 2025 12:44:09 +0100 Subject: [PATCH v9 11/11] crypto: qce - Switch to using BAM DMA for crypto I/O Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251128-qcom-qce-cmd-descr-v9-11-9a5f72b89722@linaro.org> References: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> In-Reply-To: <20251128-qcom-qce-cmd-descr-v9-0-9a5f72b89722@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam , Dmitry Baryshkov Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6106; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=2zlVAHXO/DOwordNK3r9sCFLHH3vkgBdbL2WMJAKOzQ=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpKYsKp4tQm0GWnTQy01SxXB3xWR1iKk4rN4PSQ fUHd+ZfrRyJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaSmLCgAKCRAFnS7L/zaE w/k4D/9k60fNt06wowVTko9mwWQDpZ/lbTt/qRLhuMWJM+u344ZIGgGXAC2YwW2CuAsp4y2bCTS X970SrqB71sE+ZwXwzx9C9wSvvTtk1CppfVuIXlj+tUkwqGCm3Dv5xWiwv5Njok9vcX0ttv6GZk og+GTfv8gW/upb3+NveRPMKKefp7cGOiTAiU08t4CjvhEpfLKJPXc9lATLCWRLdKyjS6bEcACNp JFp4sNFaMBIpKcMmrL6lxV8xHqiJSI6L2FujyrSEtKhek7e2z3GVmLUf9vtW8cdp1y5jrRgY+5O Ge7kmNXzcYK/htsRVqFI5Ofa/RVUDDqmw3zNZKfCxu1hNshqqnHgc653oQjt57Uram9as+jm2FJ fqFNKlXznDzLdlPkd0i39XTEijuqJzAQsEJ6XHEk7XOq13wWxflv4ka3ftjTgut8JVTBytzvnIJ V67sBZ0rdDdR7qqXbHvW3zwnXnEzKOL9E/fBTznUVgmeNargKjwShGKqkEAlBEAXIvAw8ZlH0LX HmgCGPFznm9NuLeWkGlzSFyQgYZ4Tcy0+ue1NNxbrWEjqe6XDwCKYl2UC401gDUPhgwIn/T4/Gm 1clZUXSOXtYrR8fYv3vXUn6PEoNLEp0xOcnE3w17drpux23K671+6MlZZAd1Ie8VeNYMmGuStMZ RkCkM1Ht3pI52HQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski With everything else in place, we can now switch to actually using the BAM DMA for register I/O with DMA engine locking. Signed-off-by: Bartosz Golaszewski Reviewed-by: Dmitry Baryshkov --- drivers/crypto/qce/aead.c | 10 ++++++++++ drivers/crypto/qce/common.c | 21 ++++++++++----------- drivers/crypto/qce/sha.c | 8 ++++++++ drivers/crypto/qce/skcipher.c | 7 +++++++ 4 files changed, 35 insertions(+), 11 deletions(-) diff --git a/drivers/crypto/qce/aead.c b/drivers/crypto/qce/aead.c index 11cec08544c912e562bf4b33d9a409f0e69a0ada..0fc69b019929342e14d3af8e24d= 7629ab171bc60 100644 --- a/drivers/crypto/qce/aead.c +++ b/drivers/crypto/qce/aead.c @@ -63,6 +63,10 @@ static void qce_aead_done(void *data) sg_free_table(&rctx->dst_tbl); } =20 + error =3D qce_bam_unlock(qce); + if (error) + dev_err(qce->dev, "aead: failed to unlock the BAM\n"); + error =3D qce_check_status(qce, &status); if (error < 0 && (error !=3D -EBADMSG)) dev_err(qce->dev, "aead operation error (%x)\n", status); @@ -188,6 +192,8 @@ qce_aead_ccm_prepare_buf_assoclen(struct aead_request *= req) struct crypto_aead *tfm =3D crypto_aead_reqtfm(req); struct qce_aead_reqctx *rctx =3D aead_request_ctx_dma(req); struct qce_aead_ctx *ctx =3D crypto_aead_ctx(tfm); + struct qce_alg_template *tmpl =3D to_aead_tmpl(crypto_aead_reqtfm(req)); + struct qce_device *qce =3D tmpl->qce; unsigned int assoclen =3D rctx->assoclen; unsigned int adata_header_len, cryptlen, totallen; gfp_t gfp; @@ -200,6 +206,10 @@ qce_aead_ccm_prepare_buf_assoclen(struct aead_request = *req) cryptlen =3D rctx->cryptlen; totallen =3D cryptlen + req->assoclen; =20 + ret =3D qce_bam_lock(qce); + if (ret) + return ret; + /* Get the msg */ msg_sg =3D scatterwalk_ffwd(__sg, req->src, req->assoclen); =20 diff --git a/drivers/crypto/qce/common.c b/drivers/crypto/qce/common.c index 74756c222fed6d0298eb6c957ed15b8b7083b72f..930006aaba4accb51576ecfb84a= a9cf20849a72f 100644 --- a/drivers/crypto/qce/common.c +++ b/drivers/crypto/qce/common.c @@ -14,6 +14,7 @@ #include "cipher.h" #include "common.h" #include "core.h" +#include "dma.h" #include "regs-v5.h" #include "sha.h" #include "aead.h" @@ -25,7 +26,7 @@ static inline u32 qce_read(struct qce_device *qce, u32 of= fset) =20 static inline void qce_write(struct qce_device *qce, u32 offset, u32 val) { - writel(val, qce->base + offset); + qce_write_dma(qce, offset, val); } =20 static inline void qce_write_array(struct qce_device *qce, u32 offset, @@ -82,6 +83,8 @@ static void qce_setup_config(struct qce_device *qce) { u32 config; =20 + qce_clear_bam_transaction(qce); + /* get big endianness */ config =3D qce_config_reg(qce, 0); =20 @@ -90,12 +93,14 @@ static void qce_setup_config(struct qce_device *qce) qce_write(qce, REG_CONFIG, config); } =20 -static inline void qce_crypto_go(struct qce_device *qce, bool result_dump) +static int qce_crypto_go(struct qce_device *qce, bool result_dump) { if (result_dump) qce_write(qce, REG_GOPROC, BIT(GO_SHIFT) | BIT(RESULTS_DUMP_SHIFT)); else qce_write(qce, REG_GOPROC, BIT(GO_SHIFT)); + + return qce_submit_cmd_desc(qce); } =20 #if defined(CONFIG_CRYPTO_DEV_QCE_SHA) || defined(CONFIG_CRYPTO_DEV_QCE_AE= AD) @@ -223,9 +228,7 @@ static int qce_setup_regs_ahash(struct crypto_async_req= uest *async_req) config =3D qce_config_reg(qce, 1); qce_write(qce, REG_CONFIG, config); =20 - qce_crypto_go(qce, true); - - return 0; + return qce_crypto_go(qce, true); } #endif =20 @@ -386,9 +389,7 @@ static int qce_setup_regs_skcipher(struct crypto_async_= request *async_req) config =3D qce_config_reg(qce, 1); qce_write(qce, REG_CONFIG, config); =20 - qce_crypto_go(qce, true); - - return 0; + return qce_crypto_go(qce, true); } #endif =20 @@ -535,9 +536,7 @@ static int qce_setup_regs_aead(struct crypto_async_requ= est *async_req) qce_write(qce, REG_CONFIG, config); =20 /* Start the process */ - qce_crypto_go(qce, !IS_CCM(flags)); - - return 0; + return qce_crypto_go(qce, !IS_CCM(flags)); } #endif =20 diff --git a/drivers/crypto/qce/sha.c b/drivers/crypto/qce/sha.c index 0c7aab711b7b8434d5f89ab4565ef4123fc5322e..286477a3001248e745d79b209ae= bb6ed6bf11f62 100644 --- a/drivers/crypto/qce/sha.c +++ b/drivers/crypto/qce/sha.c @@ -60,6 +60,10 @@ static void qce_ahash_done(void *data) rctx->byte_count[0] =3D cpu_to_be32(result->auth_byte_count[0]); rctx->byte_count[1] =3D cpu_to_be32(result->auth_byte_count[1]); =20 + error =3D qce_bam_unlock(qce); + if (error) + dev_err(qce->dev, "ahash: failed to unlock the BAM\n"); + error =3D qce_check_status(qce, &status); if (error < 0) dev_dbg(qce->dev, "ahash operation error (%x)\n", status); @@ -90,6 +94,10 @@ static int qce_ahash_async_req_handle(struct crypto_asyn= c_request *async_req) rctx->authklen =3D AES_KEYSIZE_128; } =20 + ret =3D qce_bam_lock(qce); + if (ret) + return ret; + rctx->src_nents =3D sg_nents_for_len(req->src, req->nbytes); if (rctx->src_nents < 0) { dev_err(qce->dev, "Invalid numbers of src SG.\n"); diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c index cab796cd7e43c548a49df468b2dde84942c5bd87..8317c79fb9c2b209884187d6565= 5d04c580e9cde 100644 --- a/drivers/crypto/qce/skcipher.c +++ b/drivers/crypto/qce/skcipher.c @@ -51,6 +51,9 @@ static void qce_skcipher_done(void *data) dma_unmap_sg(qce->dev, rctx->dst_sg, rctx->dst_nents, dir_dst); =20 sg_free_table(&rctx->dst_tbl); + error =3D qce_bam_unlock(qce); + if (error) + dev_err(qce->dev, "skcipher: failed to unlock the BAM\n"); =20 error =3D qce_check_status(qce, &status); if (error < 0) @@ -78,6 +81,10 @@ qce_skcipher_async_req_handle(struct crypto_async_reques= t *async_req) rctx->ivsize =3D crypto_skcipher_ivsize(skcipher); rctx->cryptlen =3D req->cryptlen; =20 + ret =3D qce_bam_lock(qce); + if (ret) + return ret; + diff_dst =3D (req->src !=3D req->dst) ? true : false; dir_src =3D diff_dst ? DMA_TO_DEVICE : DMA_BIDIRECTIONAL; dir_dst =3D diff_dst ? DMA_FROM_DEVICE : DMA_BIDIRECTIONAL; --=20 2.51.0