From nobody Fri Dec 19 16:00:43 2025 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (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 F310130FC1A for ; Thu, 6 Nov 2025 11:34:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428869; cv=none; b=EWqM6Ea5upDuu/nAGAFurPVInf8/F3CSJeuYwTslMzwt8r9Q1C/AM0U6WRrJyvK9wu4APEjTlYs+MSAEX0Q7X8XtUecHwJVFVvD7lA4KijevhHU8gHublCTRCIckpppJsDeTlLvvVMx/eFrpIjSkptr3Ev7rLzKVpRt8DUYFrsI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428869; c=relaxed/simple; bh=PIBWvcOGx3E+xP/X3olfKFhREo5MtRxZEreOwnQfuac=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=F2h2RFGbHB+XJM16vT233s9rzIJZyaWqTd8ZXDvf1oMntVCpXQhJnDwPa2eASF7axesxzfOrxxfxgNI2KP20s63s+Clrf/Fy3RQMxfKpsoWlvYLuGSwyImZlCWMwVLJS4BZ7w9CH9AtPulQxfH/6VLAkUIJ+JM1/DyY1ytlVbJs= 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=NcFWqOl9; arc=none smtp.client-ip=209.85.221.49 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="NcFWqOl9" Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-3ee15b5435bso524991f8f.0 for ; Thu, 06 Nov 2025 03:34:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762428865; x=1763033665; 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=E35Mfd2KNqwL4ub0lUAB0tH3ZBUXTYukyrKrNsqdkLg=; b=NcFWqOl9r333Pqok/ihYQny+rLcGkFG+15+RjfZK4k5jL2LOod9I0U3oenG/2IxDH6 /WzC3btXr+PBscIMNTlXCb7n2MzH3pHOTwZPLMjTaomVXGksROd3U6i6dU+6StMJ0ki9 tPcKcVYC9IvnvG7UcYg14s83VV2SLuiCYsXqj71EF30KU9rmNHieoT724naJOb7kadcR fWudniu9W0Ga11Di/W4Z5oeIiO9fgZwi1nXaK+aH1KbkoeGYTEBZ+nNbYVEwwDCe28Sj qY7Ew6maSzb0UCWgzeGCffr6Mq4+bcvIBtxa53h6WbtTXvEEp1jdoetdBvZ5/1fViMel ZC4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762428865; x=1763033665; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=E35Mfd2KNqwL4ub0lUAB0tH3ZBUXTYukyrKrNsqdkLg=; b=Q1fyFZoKYPSX+cCE4BbLYjV+ZJDgJ1Gn2k4Pwq3kXTJkK7VdgZC4/W+t9Vg33OTp6S ma5DnBrh4PEhznEvh0gfti5BO7/Wr89J8l6a+6GWypT50bUVZdolIn75Yq7fLcjvdcJf STteavbjqwBaa0+kKinNHcVAqRwaykwDNQUVAHodGwTU/fQCZ2cVkAnXj/TFEDZECYjT j/ELe2ZtQVDx4/hlUliAiVK7ChP/FxxemAaq7802V7A0PVH6w4ZdveYRVWZf2k6wg7QY 1ma/YzrY3WiGi67KuyOyHaPRGQlIrXY7/Cn5zU/JSAURufhWtA4V1IUEYtqx+UTy4kEe xYmA== X-Forwarded-Encrypted: i=1; AJvYcCXFNRYrkIxOPUxCWazbKgZJqcTjLmPs8WxSI9jbKbEVq/53poGOMg+cC5gUxG5YJ7uEaiAPxX4C4f6c4mM=@vger.kernel.org X-Gm-Message-State: AOJu0Yy+za4Nj50ypjfmlol2DgQE5bgYCmpnTo3L4q3wWOlHpO16RJWw bzeybJPOkU9TkOi/Y16Of1vc7XIrvshOsbQl/zHkXMDswffans1GlkhNYKFdeiWevrw= X-Gm-Gg: ASbGncv/PxEWhaIX8vgNtcg36/HQB7K/JFY3xj7eaOH54AYzbsUkhmv2JqM3zhapvNH EZQsI06S9Uwy/MCgSzpV9jjU07b5CLnuCx3DfNHoWjZiVKgAdbBGJkHTmW6ihGG2xytpbAwuGkP VXyW40cpMl8gkrDgBb/ITJ7Fsg23d0SSqYKGxXoHsbbESMZNVBI4SC/OJtG2/Tus4OVCjWtNv8w zJmjjH9c84RGNNZe9p6jwbhw0lpfkjymjtUhXdsZK9+dT8NjAPYwuKJAVShwAmLAhf00s35+E6K OmrwaTeBXsYMwZd1h+mWGxp8zGD0dOyvHpEMbOR/cwYUPiawBNB8n92ZefAp+rZsh2Ga8NMHFVD V8FDrs/c2ttMw7jQ9IK9PP1Cxb/lhkEyIUy0WxQ1WGGA9GOug+EsYUf3tUbPdI15Ny6kaU/giFI N3etc= X-Google-Smtp-Source: AGHT+IHDM5uqH1lTlgiy0gZ816Y7mB6+jLC07Q9PnHKX8SPeCtEMPy3MUZ3C1t+b7c9r5af7/R+E2w== X-Received: by 2002:a05:6000:26c2:b0:429:ca7f:8d5a with SMTP id ffacd0b85a97d-429e33063d6mr5764505f8f.37.1762428865104; Thu, 06 Nov 2025 03:34:25 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:d9de:4038:a78:acab]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-429eb40379esm4389459f8f.9.2025.11.06.03.34.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 03:34:23 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 06 Nov 2025 12:33:57 +0100 Subject: [PATCH v8 01/11] dmaengine: Add DMA_PREP_LOCK/DMA_PREP_UNLOCK flags 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: <20251106-qcom-qce-cmd-descr-v8-1-ecddca23ca26@linaro.org> References: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> In-Reply-To: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam 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=2231; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=volqknp+tx0DItKfWFGksTYs/5XlskO5EOEiP7Isvj8=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpDIe7fM+c6JThss78x6vFh67ENkGcKNWIMXNcj X7Rggt+weCJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQyHuwAKCRARpy6gFHHX ciCfD/9ei8LcK1XMguZ2IjfIqPhTMMGAbmKjNvxM7eObMolTj7QBpBl4m6HwxEv/0HdXNH2HeK8 MYrXkvyal1PtKeLK8MfXp0ZzAYAgvLBP+zhuPgEPaModgpiBR/kF9Zp/s6Hf0WVNcBHSlnwVMYo vwC6m8NamT36XqYB0maSjgR7GBFnJzI5YJZgpsglM4ap2k8fnojDPXcsao/pZ9BnSbWHlnVVk5Y DaMK0Qm7Grwv8674u9WPnL61uym5JCOR2DfurBF2idRACYh8F1eyGsLw+5nIUzlJ3hqVyLzTOzH AIAUh/el6TYZ0fTiHWafoisPCH9aujx6UqN/izHt8CA4mOJOd01HGV6Dfh6g+xFRXzfvHCpEqEn CoIS7QJyP5kpmufuu/IB6oNjAjPUIo6MSf+dKBm6vZFS3KL2Xkng0+qAcvCVdRxTR+WGi1sfIvX pIyuCw3QvcBXusr+zfOJ+jCcJ3FttwLtpMuqWrHKAhd8M+YH0EvT4xHG680afaW1MvCc+ZpiihM ZFooTzcqWsxm1t5lgzYcTts3Z7gWgkATCC/a8FzUoJJY8F2wIGeMExtMxBBdbsfryXJki5u328Z Ugf1XiQoKrAhc6iVXtlYWXJkvmJyRyOJ7OlXgKm8kAqVHyxNBiBGzROpL2zfAMWPdOGiB6e6/8j iFTOi+F1sdmtt9g== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Some DMA engines may be accessed from linux and the TrustZone simultaneously. In order to allow synchronization, add lock and unlock flags for the command descriptor that allow the caller to request the controller to be locked for the duration of the transaction in an implementation-dependent way. Signed-off-by: Bartosz Golaszewski --- Documentation/driver-api/dmaengine/provider.rst | 9 +++++++++ include/linux/dmaengine.h | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/Documentation/driver-api/dmaengine/provider.rst b/Documentatio= n/driver-api/dmaengine/provider.rst index 1594598b331782e4dddcf992159c724111db9cf3..6428211405472dd1147e363f578= 6acc91d95ed43 100644 --- a/Documentation/driver-api/dmaengine/provider.rst +++ b/Documentation/driver-api/dmaengine/provider.rst @@ -630,6 +630,15 @@ DMA_CTRL_REUSE - This flag is only supported if the channel reports the DMA_LOAD_EOT capability. =20 +- DMA_PREP_LOCK + + - If set, the DMA controller will be locked for the duration of the curr= ent + transaction. + +- DMA_PREP_UNLOCK + + - If set, DMA will release he controller lock. + General Design Notes =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 99efe2b9b4ea9844ca6161208362ef18ef111d96..c02be4bc8ac4c3db47c7c11751b= 949e3479e7cb8 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -200,6 +200,10 @@ struct dma_vec { * transaction is marked with DMA_PREP_REPEAT will cause the new transact= ion * to never be processed and stay in the issued queue forever. The flag is * ignored if the previous transaction is not a repeated transaction. + * @DMA_PREP_LOCK: tell the driver that there is a lock bit set on command + * descriptor. + * @DMA_PREP_UNLOCK: tell the driver that there is a un-lock bit set on c= ommand + * descriptor. */ enum dma_ctrl_flags { DMA_PREP_INTERRUPT =3D (1 << 0), @@ -212,6 +216,8 @@ enum dma_ctrl_flags { DMA_PREP_CMD =3D (1 << 7), DMA_PREP_REPEAT =3D (1 << 8), DMA_PREP_LOAD_EOT =3D (1 << 9), + DMA_PREP_LOCK =3D (1 << 10), + DMA_PREP_UNLOCK =3D (1 << 11), }; =20 /** --=20 2.51.0 From nobody Fri Dec 19 16:00:43 2025 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 846DD30FF28 for ; Thu, 6 Nov 2025 11:34:28 +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=1762428870; cv=none; b=U5NovB6u4/k2QURwpkio7zXXv8yayNHUPieE3yy/ABk0kNnGZ8gt5hPJQwT8RceIjGWNcni8etKZqnELEr9iCz2NdER5D74gUnxw9/WgfLfVQcwOBsHE8rV71XAgrMgLq67glMEcGc04wrQmuVbkyYekTM6Xj9aEOGRSSZZ1R7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428870; c=relaxed/simple; bh=TUyr94Jtc33qfF1dHLVyC6XEZjaXwlAM1r5rnAPwmwY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UzwPgrRbu14jHit0PdGx8Fn8Xx1Be98GaOfpDW5GMlMREnJb8aifJJbfEQCIdBjmhAL8EbsRZB9Xh5dHDVuObEDyFaXhNgO6tWQGEaSFrVLMRfk+aZ6nmf+BXKxz7pN+V6cutU/dYOqhO5NI/EOEx93Er0U8TCH0MttMyOlNVHk= 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=NylK+gZ5; 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="NylK+gZ5" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-4775e891b5eso4079135e9.2 for ; Thu, 06 Nov 2025 03:34:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762428867; x=1763033667; 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=NylK+gZ5OfoTdc4Golj7tBLUjjhe7YSkgrSsQ6d4MrYCvlaiu+zc8/nH0bAxRrZgeJ thI7MjsB30wmQiC5m+YJtrUz/N/1AmZwQDUdfnucBvCiDVX/pMBUqsLm6xE2v5xO3yaE RihRtBpOM0qHQ3zh48xjWJCA5ZVYrR731D3FYtU3WLLi1DkqbCkCnCJWDhewnIHLIpua bMUng+ZtM58e4fSf0nUYutJa6dFLnoA8OR6FZdEYbLMz/74V7q+N5QskJ8noTyzJLbYf J2AU7AebOJYL89DFpHvwVCoyvAYBXJFM2QSs5B7+gPchDbTvdRdguYW5vj5yuBjDoFwf HM0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762428867; x=1763033667; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wsLkHPSXKJgPwvxtY/gmIzQjj9kLAJgCqTwY9k7v6bM=; b=ZteGzcAgnPtV5xoRAzIwboFDcnyuddDlhE8LIuA0O4CCSPZggsLAywl+09otK0731E luhact91lH6w4YxISa8W87rQOlFrC/UQHKmbZaATGhHxVZCd/+Tu2tEVM3LNwe2RK18f /efDLojxmNNJxAl7RPrgCtNTHEX75DUp8VBnyYwFrRqJVUWjqLzuVkXqF4jNHAIg4j27 N2yxoS5jdhTJUg+vm3rQPozwlId8wBRBqDLtVqWmnyjuraB5jsU6aAu9BbOxd3tu7POz jQ0bk+ZVeSkQNJfjYD9LxptC3jvv8dT74GigFqI8hTRItr8AijtTKtmP4wiyjDyvSA1M G3TQ== X-Forwarded-Encrypted: i=1; AJvYcCW4vhslq85BnrF8akFW/mtqqjWI4hPEsShKTLmyc3wsn/zYjUnZLFKnWS3EEbdLueFMYYkTYZ9JZp/if/M=@vger.kernel.org X-Gm-Message-State: AOJu0Yx3oKN15UKiUj18IUyt7KUOoy0fMWrY6UUIlLWJ7iCR0JqAsfrR ThP4vGw4qXtU7vFAnnsxSP7M5FvFMRby0ogfLi5zBnCgypXiMnnK1w9moR2fytineUA= X-Gm-Gg: ASbGncucyUincTzSg/n2qOPNz1MKYTPnZuKs8NZsPdcZmmgVcOgLzkSFWi1FLIqws3M JsTiZ2sYYCGWe6IJ5CvTaqd/5TNkwiNuBegYj6/fwL6lGsAY8+gO3X08TaT8OU52njOYrEgSd6e /ytlLr1lF71TvhB/sq4X2XAA2SHvmriY7HKlr3Xjk2+MS0qguV8vuHMpETn1H5aFkgJpHOkq6F6 vIteIEFRABygARnyDw3Bv0R8RRpkVSyz33xuTuSPcV01bo7lhD21FFjd27h69FqPtc0C1BbzPOB M7yf88weqhpY6nQPjdSOYOJwy13IClXkl0vmpAyHBNaNfEXV6VpjgiDY+BEvpYFntgDWRtEXmEI Bz6oJ5TH+2HBIdQjA+q47t10Oz97IjJjXT/KNbKmti2o2mI005kNTDOADYpDWzX4YIbVE/pSby9 Tv3CrKTRy6hF58tQ== X-Google-Smtp-Source: AGHT+IFahXEr4ZGh92ZHnLmQal/Sg2eEH1GM9R5Bh/LzSwcu5yEaVd9pf6gSidqfdBNhpyxEGtBX9A== X-Received: by 2002:a05:600c:a12:b0:475:ddf7:995e with SMTP id 5b1f17b1804b1-4775cda52a6mr46190695e9.12.1762428866806; Thu, 06 Nov 2025 03:34:26 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:d9de:4038:a78:acab]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-429eb40379esm4389459f8f.9.2025.11.06.03.34.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 03:34:25 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 06 Nov 2025 12:33:58 +0100 Subject: [PATCH v8 02/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: <20251106-qcom-qce-cmd-descr-v8-2-ecddca23ca26@linaro.org> References: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> In-Reply-To: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam 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 , Dmitry Baryshkov 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/ZANAwAKARGnLqAUcddyAcsmYgBpDIe7TuUba5IpirBE/7QlEvE19WL7MjL46Cfxj Ixyu8bcGUeJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQyHuwAKCRARpy6gFHHX cv2ED/9umX73SuQ6RQy//ZjGO8kD59B23ICQgxE5eBgJesW6Dh9L/4P8P0qe1a39NKehoRwIAAC WC17JrjrYo7jS7lOJNwM/WYFuHqy8sc8RFi8xKOg05Jcm1HSjLcs2a7PjwGG6LGl16tReWBoWDj DLtps725G6Ok4kJBOS3oJZCj9CpOpoUjYZWuXlKMDXr6odDSBscU29LWb8H64LXw+sPBACbA+gv 2Nkif4nM3MXiiak/RQTJHBiI2pQe+/hm/Isi6+i2WGlZd1qgfVmlPNOyjb6FCgF06g8kMlSwVbd rHIB3J+U5+3YUzLprmCzNu5b6kB/LtkevfGf6XnOgNdA7yYdi3+byfthWmFZbHC3ZVjqKP7zicg Q6qPXpM/y0766XEm3AQTH93s4+s5u0cOqkuvYu8nRw5qr5hrD8Q6C5GPP5eERLkZizR3+LHxXwD Eqm8tcg/VfbXRbSUw/iQlkAfq1J/RZBOxNasnA77rLnIAViW4WaLt6UQp11o+7jWWb0Rrgiv8Xo 82Bc8Afx9520hSMlGTTEbRYc7VUOgpYQvy1cHzO2sUcBvjcUN8Wl9V4l+kiRmQ9xkRwNpANUJgY QvA793gTzRHkE3r5rlRr9iscIJT1rOr3IojA6XUfpXrI65zswuI4kAx10y2Q7Dlbs+bFUn1sIwZ pdBEsCfyvRy7lXA== 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 Fri Dec 19 16:00:43 2025 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.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 728F030FC3A for ; Thu, 6 Nov 2025 11:34:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428872; cv=none; b=pdhQMzcFcUQSMRu0FLWLSysPqqwJ6iro4D7KMLcpmmH/Qqa/rcyRkV6w6azvfbbtZqplIXll2gmR+7c4jeBw0Orhyu2/n2CSoEAtWYwzWADCGbTL2lbojbOL5TJzvDhFQJBei79GRYCgrIqqwS3lvhquWaQCfA/G4Vn7Rsinagw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428872; c=relaxed/simple; bh=a7wQEf6egR4mPuv5cdjgCNZ6WeJSo3nSIgoNmPEuE3E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Gec8JjSKtd0d4X1s6DNjfGWKFus4JQYfmvUhpF4jeqFTWTr0Zujy5ajC5GtEeMHl/pvVcZJdkX4b0VOOMyxMPN9AjVcyO1iFKLyF66+CYrEdgP2eHyL7dTbQ9eF+UrWdz6aO8+vv4xtM02E6fdj7OomFEY7rZNBhGdCuAbmAcqk= 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=Ma5hXJlN; arc=none smtp.client-ip=209.85.221.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="Ma5hXJlN" Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-3ecde0be34eso1110084f8f.1 for ; Thu, 06 Nov 2025 03:34:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762428869; x=1763033669; 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=PD+rs5pOYQ8OCsF4o4tgFNdDCvK3XuPAT18E201qmow=; b=Ma5hXJlNfP9rAldaxbjYNN+Y6dJsEchEFnZMhMp/wzb74Nx8BUGeR4eonGeYeLDRzn s9Ar62qlMUQzWN47RiKnvvoIBhDSIrH3MPFiav7i/J2AMnv36NL0f5e0ETQElhVvbg8y NUeHGBnq7mXMpEST+vVzfvefTLif0DD99K25LOcGSzs1TdbsLlL6GkTXVKq7vCCQsIGF cfPHKCLf28sOXyGLFaIxsRgt3YolEE1HdKiSRCdOOwFaMHBo7yX6D8RCOxNpQuBnrmrV u737ornnnETJWfddlzyjIo5DimeOrzWgCjGJiwUH7wi+WSCRcFx6dv3+hM0qqX2TWOBH B6Jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762428869; x=1763033669; 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=PD+rs5pOYQ8OCsF4o4tgFNdDCvK3XuPAT18E201qmow=; b=vUGGtoC5uHf+ceamKSDx3oFgIYdildGMfmZ++78luWAJQ4Dqv3yc6LTlx22VoUxPPD 9vPWO0TxC1ygVQ1Pyv9FgI9op1FEZo9bbzKOygYXK9BVbhaiBq07CQnUMq30leHR1s0Y w4rB5DE8ye1BcsYztJKkiBUZruBd/M75eumI+bVPCGyd60ut9zHPR78Ttm+onSZ6F5GA gKSbYiJXwqjY62Rb8f7puonDb9XqxFPIRMNa7IAJpbSjXsUuK/gVTALt+G/06qJScLmF 2KHcsi9fb4/OQPR7GYvw+0oMAmvnFqZhw+r9Wig1uEawtqsIouHrgImrFvvDPD4Gi2cD CWwA== X-Forwarded-Encrypted: i=1; AJvYcCWFL/lUYZluA5TZLDDtlStXDoP1RTx6UqJc9v3+pDZj8muIFF/6djTja2SUqjR5LcwHi7T0WtIftlzq5vg=@vger.kernel.org X-Gm-Message-State: AOJu0YwjYolCf2wDVtpowvUpOaz0QS0SnhF7TjU/KznHejjrAE+X6iFZ b2wEHh+EUOJCTjZkxp8Ji04N3C+dMPEnnWTmRKGJH356RDWGXSDqs65QaEbjWRrqa6w= X-Gm-Gg: ASbGncs+L0iY3YiPZPybILZ5gNA0KhHCQ/e83hw5Sj/OrNEQ8NbDw3N/pjKlUSpspfX 3p6MDhVuJrqa5FeKXuHCrGTp0BCatywECXqi0tEKXcN/k8iSSQ66NES/GEGYXBK0bu89IoscmFf 0OadU/LL8eLl2af1HRVFD4NZ7SWJ6RHd3TOBWHdZipSgXKQIlRnFc2yiUDF4E80nTGetzfJYBEn lCHwfiAxHHLk6ag+qvXUPj+lf2u5WS05GIB9iLVJplQCimLCN9YXZpSsMr7uVaXLo6uz3XQLoIs HOT2wFd1S6Yif+rIm1T92OBCHn+EQ/1XZqfS9QD0edtTooiTk2veLxMvJWTVA+hAfEQwT0uLCwD JnCkLHvqN2+UQ9ocStJtGM0tzFdntP00CjBW1S+R9EJ2vhWB+BnMLQ4fkZ5/kks77QffAbD9hNe +xOZz2UKS6qOFWhQ== X-Google-Smtp-Source: AGHT+IFgtVKctrlOuzKQectqSEwKB2ayhahJJEey2N61I2W/lfSJB2I/53UnlfLzRQMvbCarVAJhsg== X-Received: by 2002:a5d:64c4:0:b0:429:bc68:6ca0 with SMTP id ffacd0b85a97d-429eb12fb84mr2538324f8f.4.1762428868641; Thu, 06 Nov 2025 03:34:28 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:d9de:4038:a78:acab]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-429eb40379esm4389459f8f.9.2025.11.06.03.34.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 03:34:27 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 06 Nov 2025 12:33:59 +0100 Subject: [PATCH v8 03/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: <20251106-qcom-qce-cmd-descr-v8-3-ecddca23ca26@linaro.org> References: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> In-Reply-To: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam 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=3204; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=qu1xfYVQtzlM9Gqzgkm1BqB5ZitfYYPCUMV4Og+CRDo=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpDIe89GdN/Ar44t5r8WnhaHrBfOPqYa8CKf7cs 8exTYFLr9qJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQyHvAAKCRARpy6gFHHX cqW2EADe+TsFJg+T/SYNyFg8jW7yGLupg/8qCkMSkRipiwwmuO5kMlhyTmSTWIb4cBBjjcXnyqI 9iqwPS5Rl6+ZCdzHSJlhhGJTCbeMcraPicuujhsUjSFle5cb8M38heAJ2B2buD/2TCw/+oD8TZ6 IeujESttv94uaR5D+8wYDT0SkrFxWnO2oJdEqoZ42w+I2CnIUoNkxEbAErInw/GbClt7CUjP+ys wrlzkgXZmx3+u3XZHftUWg3CkqC/IbQofwY6n/naqiIAWCsQ+QJqu/1w4sQBO/xQyEHoes5HZmV oCDJ3BJa+XGw9FYKD6NgxySFr6pE837fWhTCDOqnJ3JSvCWFxJtN+rs5f3rg9dqIiQBMWcburH7 /vEWzjWcFS7RUVQH7D8RSypiAqUnZu4yyWvVtBq9wnwVjC3Uy/RNE4sqpgkQKdbvMsDETxrQAOW ahSW8FjL8H81NS3eqfIhxN5Vj+cFNMeo+VUdIyDky2XDzYG9t88agarsN6/mifiRT4CyDPrsqo3 DV8Mg0qcZkAutoOkdgLS0ZGIjcVq/s8kzudJl09WOD4BgmJbdvFyg2vFAbbbHSDy6rHnrLiXAzV xvkdg2Ka9dm0mI+ZHmNJBzMrarkWX+GdTQLbbUSSRZ5WolvZJrP9hwl4udloyjQ44BDbSphivy3 xxHtuqNAmDmKe6g== 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 --- drivers/dma/qcom/bam_dma.c | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index 8861245314b1d13c1abb78f474fd0749fea52f06..68921d22ad7abfef7059b1db780= 52ff48e842952 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 */ @@ -386,6 +391,9 @@ struct bam_chan { struct list_head desc_list; =20 struct list_head node; + + /* Is the BAM currently locked? */ + bool locked; }; =20 static inline struct bam_chan *to_bam_chan(struct dma_chan *common) @@ -667,6 +675,7 @@ static struct dma_async_tx_descriptor *bam_prep_slave_s= g(struct dma_chan *chan, { struct bam_chan *bchan =3D to_bam_chan(chan); struct bam_device *bdev =3D bchan->bdev; + const struct bam_device_data *bdata =3D bdev->dev_data; struct bam_async_desc *async_desc; struct scatterlist *sg; u32 i; @@ -707,9 +716,34 @@ static struct dma_async_tx_descriptor *bam_prep_slave_= sg(struct dma_chan *chan, unsigned int curr_offset =3D 0; =20 do { - if (flags & DMA_PREP_CMD) + if (flags & DMA_PREP_CMD) { + if (!bdata->bam_pipe_lock && + (flags & (DMA_PREP_LOCK | DMA_PREP_UNLOCK))) { + dev_err(bdev->dev, "Device doesn't support BAM locking\n"); + return NULL; + } + desc->flags |=3D cpu_to_le16(DESC_FLAG_CMD); =20 + if (bdata->bam_pipe_lock && (flags & DMA_PREP_LOCK)) { + if (bchan->locked) { + dev_err(bdev->dev, "BAM already locked\n"); + return NULL; + } + + desc->flags |=3D cpu_to_le16(DESC_FLAG_LOCK); + bchan->locked =3D true; + } else if (bdata->bam_pipe_lock && (flags & DMA_PREP_UNLOCK)) { + if (!bchan->locked) { + dev_err(bdev->dev, "BAM is not locked\n"); + return NULL; + } + + desc->flags |=3D cpu_to_le16(DESC_FLAG_UNLOCK); + bchan->locked =3D false; + } + } + desc->addr =3D cpu_to_le32(sg_dma_address(sg) + curr_offset); =20 --=20 2.51.0 From nobody Fri Dec 19 16:00:43 2025 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 6524330F805 for ; Thu, 6 Nov 2025 11:34:32 +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=1762428874; cv=none; b=X+8/HT4/Hk+zdY/VE8RMYQPRm5DePOrDe1mU+LwI8JpOTyan0qDDpMkVFdf7cnZBGDz9hIr65mgCqI7mfTwViL4+Eu0DKN2UiBJFBqCnI2KDTzBfebQDxCkGUY7Cpq5n/s+zRuLj67MdaH7nwscharF4iuyGnJDbAl45FVNmNaM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428874; c=relaxed/simple; bh=Gtyj9mEcu6V4pcGmC+SaB8NL97WnrKFGqIgBzP4NOeY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nOUAdti9Huu+gNhxCazqpGKm9V7LbRBcQpqy2Um9L63/I4Zy1m88C8cx0heC8y8uO336hsNPEc8oXlMjKgE0SKNyF4BQCzyl2LvkHHK71TSU0qsJTXsSMlHHnIFLaDnC980HmSJ9y/OIftim5PmWqQ50dNzTH54XI6OtTJosM1s= 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=TcoZBupi; 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="TcoZBupi" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-47112a73785so5363025e9.3 for ; Thu, 06 Nov 2025 03:34:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762428871; x=1763033671; 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=9ps1dtuocIgHWNi4XIFGNgY4rWCwPTvVS8YGMM8z4E8=; b=TcoZBupiGTHOlhzOH33JG2PhzSY51RD/jkQInI2w6hUgcR21h9S+ROa9s17oSfbUfg 8sWwDe6HiJ3qNswIIzt6AOHg2G81D3uTgYpCHU68IwvUrhz5d+latMv/RJrgHZRn2yWo Bu8FPydRToEIfv/QDEZxm1qYl1U54MnrXBJXBWoaU9yEFPxazJ4WqvE+Mvocw4ga2VSo 35NQqzPeqt98aRpOZZAX7Jv3xTgpNFuGN+tbTlkr76XAITNVORfIuLrkNsHdOLfrs5yt oFkEex2lUQfdzli+zgtvB/IapqaI2nWnwit7Cpc9WhcgGeglsenxfTZ9gIYk6/eT3wgW /L+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762428871; x=1763033671; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9ps1dtuocIgHWNi4XIFGNgY4rWCwPTvVS8YGMM8z4E8=; b=uU2shxAm+Hi15s3LuRnypMGuTIQIPHUDEcTa+Y29eRSHpXwKU4qMN15xH+A5RmlSrJ CNLdwPJ659UNbrlhu009YOVK2qQODkz1QtOfgHpWuk0dzoFRZ6mr2Xaa/LI7LT8KlVbf xorrSU2TlhrJ59u388epe+u7oy4sicj5AXtE4n+JZPfEbRN7VqaDf6lE0YPbYG2cTTt7 A9YsFtylvACBijvVH+qCvTqM2p3kf5gTyTiMGFHE4yJG7lGByE+jL1d7RWsLNE/BSOqd g5FHv7gARZ4RFd+b2r6lJVFExTXRGs7vE7gQua8EleqZGl/aKQnhEOsUIsorhjdAETv/ UNsg== X-Forwarded-Encrypted: i=1; AJvYcCVYJG3A8mEx9MDTK0zY4m2l16set6Je6d5LZuPJ9nPsqh6QcV2gCIiWqzw8yitQDuS6t7MJAidn4wNgNLY=@vger.kernel.org X-Gm-Message-State: AOJu0YyGcyXmtnoNN05pqs/3FaJeXwMfgLcNMByZ0BfvoFWVGdHGQyqw HMA+bEOgrGxBvzCPxc7iOPlhnLGKFpljjjp5SQaqJrIWKpghRjgBSiTkNQoz9jgwg/A= X-Gm-Gg: ASbGncvahRyzUKuurvtlXc0fcF7EYNaicfmTv30CDJwPkyyJw4So+4RKEVOnhBJeHsl TX1T0PCDJzamMRSFrpZ96yr2pDbD8nVEpz+3XSwumtSSqf1hLchfI/7KV+lF/diHXMtORdm2XjN j3aV6k/wO60CNXAjkaAAafAarIhIbMgNElYSgMZwE2NnyEdwrMk9tgBgYtYvvvTuPwWtK4haCsL 16rIYoyeDX1PCP3fBo8wztGnJAlP/mHKWboNNBB6ZHKtElU8R/+JC7Ga/4bNBsB6gn5I+4jNRQO Rzoh2DVBY7rpoerLbGsrW4CcCKg9ZjyxX1EX2EiHhHA9SPYTRPMO0pvaaPRr+jXJNDuqo0rUh8O EFug7B/lsvx2QGsZVd+ccewJhlqFRvr9TNIy4RfPsXddEnPjwGjw671qRSpBMFufIo9cj X-Google-Smtp-Source: AGHT+IEd5LLOqacXKfenHhj7E4pku5yvYiQZ/LXG7Z5ut7z2Sn6vJh9v6vSGwpj/odFCat1KlpmtFw== X-Received: by 2002:a05:600c:4f0b:b0:475:de14:db1e with SMTP id 5b1f17b1804b1-47769d50255mr6509055e9.24.1762428870670; Thu, 06 Nov 2025 03:34:30 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:d9de:4038:a78:acab]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-429eb40379esm4389459f8f.9.2025.11.06.03.34.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 03:34:29 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 06 Nov 2025 12:34:00 +0100 Subject: [PATCH v8 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: <20251106-qcom-qce-cmd-descr-v8-4-ecddca23ca26@linaro.org> References: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> In-Reply-To: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam 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=ho7Q/QFIJOMH0B7qxH+AazIfS2TlD8ZgO1niuibbOks=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpDIe8xnsPR9iMo6Jt4SggMvqEQxmfALJYg0MEY ImjhNTu+HKJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQyHvAAKCRARpy6gFHHX cvO1EACyxVnNV7Un2A3ha+eMjxYTSDaQ2uctC4w6/Ev+VBpYvLdlTnvDPo/sB+hLmRXuqXbZGtU C5bn03Gj5c2w83a6qONL0f+hfuYlXVMbgfNNorlw7CCwBlrRoS5cc8l5Ehv5cf9JbPh97Epy8FC PzxRdrwMerl1doQ+OmSHB+EIiFI6HRHf16aI9812MlvE6UYb3jRG/xqdVLB3Cj+t+JeuDk6E/EX GAoFcK0zlvZ0dtbbrfYvShzUWEjc6fL3sgPu/7EmtI2iFVS8U/htge9AGLndQk288dLTKR49Faz MBXbfyvzvNi+nee295FJZ1e72m1aLVkeRoTfIgKSIhkGtm2gkYRd6GFouYXRLX/N4GFBLsyO0ED KEfMslFAdJqBzjsojG9gkRD//1LSFWQMaYGpawINGnGbgZBGlQ9jysUJS8BlQ6RM+Af82GNN81q LTCc4vfCHzwcrXE7zrJF5B7z19cC4ImgYkCNvk6lcW6Xn596ekZZsUR4JuxfsvjwmdmdGi2BeTb 2P73eawDofP3rPh261amr2K7PbvN8RnAuMkczrjXkMQiebPwk1fuVOwXXgDBo3EvtLRe/Jq1xdk xa1PLHeYj0aXy0clKX3kSRqMxgFOVOk9sQzlb9XQH3BaCIYC231iu5QZAYut9oiC/jxMbme3HAp bieH1BdGh2InEuQ== 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 e95e84486d9aefe4b9af09a27631f0f9e7ad231f..3114b7f458de0c1cd8527e602b4= 08958f224a7d0 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 Fri Dec 19 16:00:43 2025 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.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 EEF40313526 for ; Thu, 6 Nov 2025 11:34:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428877; cv=none; b=W9AMUC9N9VSOKZgSX0rOQGPp8YyuHyYnQET9CedvHKulrqFj1HbVfB3CcFB64+5q5zw/EH8/mEiQNIPEsbOuIEG0BhjaxbJR4e70Sq1RJmx5D5GHaYh3n+G6EZ7FLDa28GuZ6gKLv79pYj3pH2q+6tlSY0MIRI4wn/qIQ0IeE+0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428877; c=relaxed/simple; bh=UrblnyBIttzcib0/BvvP1++FwPrIsvbI5P5xtRb6gow=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=G/BNs5s4Mk9Fed6xQ8S7L1/gbXPOSJ5gN0Hq7k4kAUiBZ+5HAfS2ZJ3K7LZMA43yq7sO/dGwCHpyKIaIpS/79GlVvZXE/iGsmbq5APHrvQz+EQn2HrVwTFY6MUFc3J/tQ6wQvhrAYxFSNE/xDTrGClvV6HtEHdpoBKks1DbvYfs= 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=QVIcyOzG; arc=none smtp.client-ip=209.85.221.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="QVIcyOzG" Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-429c7869704so743268f8f.2 for ; Thu, 06 Nov 2025 03:34:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762428873; x=1763033673; 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=lyKbKE6HNdqQ1WAeibtxjl163+kRLNcqsxLc6zP9YwA=; b=QVIcyOzGnl0dP3C7N93mZIA2Hr1Xa63PsxwR2+kY+sD/3kpKVmoiXBLWxNrLbaxJXT 7V0VKpy2ZlXBX5DbiUvpjRsXbQwuhYmxmnKFJKtP2sDoNbmZOUTVWteslE/v1Bjn4waX XLvS3O62mhTHeTgjxrWClatLSdYmp+BfAw9JzA2OD8wsCULHeB20HpAt+N3hRTzirvTx MFMf4FXAkwrCrosSzTjsIDLQOo5Kc9Z0H9FtC5vKTj8t+WBoG64rM6JW6gbe9kU7YPmi TFtc/pXftaiF4r+NtKGApao0bFU2UUg2FeL6q04YivYxf7XmxAV43OAws5iRUz/AUTFn Qj/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762428873; x=1763033673; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lyKbKE6HNdqQ1WAeibtxjl163+kRLNcqsxLc6zP9YwA=; b=cIhRtwy3l0m8OfN3ij6cHyYGu0mUs2biCNq06+FyKvFhdz4pEkAKSh8wUYI4qPJuov aPcxPWiqTQBkNskleMPyLxXMNgfJ2se0N/1MuX2PGl7xmc+Pk5z/L3MUCxsabWbrhuuw ++icpbnieDYNDJQND2NXzChngk32EdS+fWD2JlOnmJ8I3VI4qyGaKfC6VkeeL+S9sXbc We4ZfLXLhyukNdp/kEbIxy8DSzuwmM/5Euj/y5B0Rxr2bxKEbczQMmYBZJKWKKeAzAcY kt3ZZ0WYBulxI7/KTIaJlC/uZ1bLI2Gi9Q5qNVBHmh57xOxsAj4jIeRplhlq70hvaguG i1Wg== X-Forwarded-Encrypted: i=1; AJvYcCUOvHp63itIgXBAdCEhwdItwrcJt/WSP6Ue6kYPR+cPRBsV3mfrhnfhTsC+gVVj0ncQWGX9p1pOrR+VUWc=@vger.kernel.org X-Gm-Message-State: AOJu0YyXUq8xa9n3lk9rkY5477mMhagzMZO0sORF2QIRGOBpUVAuig2/ KhLknJzoxDg5+yA1XJY6bIJUBJyG71XIxhiTAi+qfOoAT0d8/g1Z5Kgxyu/6FQpSoro= X-Gm-Gg: ASbGncv8/KdGX3w5I+dezoWPqC6VTEL/LVtDTFRzzEWnExWz5O0UoS/fnLHzFPApsa1 D8zqGKcT8pV4ay1M0ffdug6I3X2KXvuLIskdak1ZhhuYdvFSpdWTiDEt7bZWpJWkohlCWTsRmyA os7RNt0KYf07jT6MLGtM9uQSibN1RzJ45PVo2ifF9IyWL8EqyPFy3j6ydp/B9Nct7l9S740cGxm ekhy8DGDYImilf/MgN1ruWkayliwYZMv4ecF7SJV1OL1pKNl9RIzRUWTCg5HbZwCVDw7cNIDqeh srtbS9m6Llar+8THQSYkhK9L5on39i1beQJeRMG9b1N+wF8GPyjHlMlFg01J6EBBISwNZKErMH4 Vjn+2ltyF0f1CgwN/ios/QRlHnSZLGDpBcFsivwPuv/fEAxcXgqrNRPRemu9lVxb0I+yBduT09u mjBiE= X-Google-Smtp-Source: AGHT+IHFVmIJFpr/sCySD9e21eB/F2TWUEf2qqi3YYHg+Euddx38s/hI+PHYSUd6bW1lUl2F0o/yRw== X-Received: by 2002:a05:6000:40ca:b0:429:d48d:acb3 with SMTP id ffacd0b85a97d-429e32c9555mr5921176f8f.5.1762428873307; Thu, 06 Nov 2025 03:34:33 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:d9de:4038:a78:acab]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-429eb40379esm4389459f8f.9.2025.11.06.03.34.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 03:34:31 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 06 Nov 2025 12:34:01 +0100 Subject: [PATCH v8 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: <20251106-qcom-qce-cmd-descr-v8-5-ecddca23ca26@linaro.org> References: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> In-Reply-To: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam 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=i+tVIr2T2657xahpuTvRyQWsZa+C/XB6HLztempFcdg=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpDIe8uihwYybKFVHj+4YJOXsIw86m0EaVVFa5e XDJFWHf0gmJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQyHvAAKCRARpy6gFHHX cnMvEADTLleUP6JoUy0i1pQeWoZvPwWRB1cdePDuITBS+1QQecce2vcar1o3uvGtcptKfAwrZqD cHgghMMID0hTz4zOUGfGM0ipSUEDKZYpT/k6w7UXust5mHdtiWLvGEYUZQxR44Yb8H3QfUv7I9r tXKdvIK7hiEiELHsV2U3USQq7TbVdMjHSPFJss1l3kDHZJaaS5puYWb5ghL7DbZqxjth3YXqK55 AljUAGw534t5Ae84F9RsdycGgRt7rmA1UXDXGtPpzx0ZarpTANT0HYdbeqAAQJ31dvXjp5EwJGV u8Q4IoemghyGZKzvZJ3IcKZTCIxreN+amXiJ4E6Hw+QjkNsGvP+pyvD5Xdrw7L8Cktq7yDrAgI2 HjJeSLsV/TqiC84Z3eC4bNPTlDMTpCOKyY2O1GBnqwFG/ytkbdXTnTQXBgeThuSXT1p3/pQLR5s JqstRLfrinJ7K2JaN3B7/NNxf4FuxxZ5rjefBLcm4xY/eTD8//8SyiQp48MJtKE+h7lshC6MdzQ H5icwAnkVvLzvVfxKO7lNmDhFcqQIGjC2am4a/EBcJEF572yvHb81n02a46hvSn/rDsOgLLuEyy yoVtFpduADecCj1X4MSj1PxBvO8YoWPDi3UyqLdR9gKWWbcj7p54m9bgoGTlrsIqBzhsrrVfWub gl6ZOwHpdH9JoMA== 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 1dec7aea852dd91e4b2406f5418c0f533731b8fc..f9581d53fe4033aa1982964d103= 8097fff0e8250 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; @@ -39,8 +41,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 Fri Dec 19 16:00:43 2025 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (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 AC36F3148A6 for ; Thu, 6 Nov 2025 11:34:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428878; cv=none; b=PiLA/29iHe8aTG9SVw5eU0ku/D96RiTkyrIDpQFJ5oiZE+wCaTAKg/bAhppVE6fiHggiIv0NFh0QT8LLVurnaQXKnMMJaRyHD6oUnPa9wMgU0H+6VRXmQnjgYG+7nW1cIA1EOhp4RaMwaGXkyzraWZ6s/nXC+HFcKE/hFZPEaAY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428878; c=relaxed/simple; bh=D9uhShmSvaScrB4GZnuqnNJP9xg1MzacdZg5nrPGQA8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=amHILDQPl0mGvMlPJxDhUznCBKPYTfmjUicfGuA9N8wAUZwlkkNRWmkFuVz5tmPJbYXS0NIWJ5boa+SOeN0WoCe829C9yiSc3gwXmUIWEnMh9U6LtDSrP/KsFCkS5KqCkKiO/DuSalOKE0JTaqpkRrcSDaCyGcSElaE7pxWoGQ0= 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=nQZyM8O6; arc=none smtp.client-ip=209.85.221.49 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="nQZyM8O6" Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-429c19b5de4so762086f8f.3 for ; Thu, 06 Nov 2025 03:34:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762428875; x=1763033675; 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=l2o6e8yKaUyRVohH0rydhHaeWDHZmkPZViVKmV/j0dw=; b=nQZyM8O6V5e/yUHJp43IWavW+jZbNbJkUihtXtDlYbjFHF580NCnriDoKSITggAq4g mlfAUHr/kVFr8lkir3R2dsyJ37e2e1D4At4Je2TTwpvkpHJGCO9X1VXkGmrG5vWo23NH +OABCQ9ThElRmhTBNGtRVZTSSTwUghi9psOemnvUB8kAyTALE/Smlf4vKfAvQG+rA5OS 5TXa4R7toUC3lJJ98oPMblBqerheM6Z2i+3ij/2xZ1Y2+DmbtWrfgj++TXoU7UmLIHaa fpRWXjfd54r5QRdHiyL3uAPcd3GQELgTgJuI8FwVOhjsMBoGjOwxuoLrcSDPTxw1D89O s56A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762428875; x=1763033675; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=l2o6e8yKaUyRVohH0rydhHaeWDHZmkPZViVKmV/j0dw=; b=ghPunxGaIld+DLYUgahPYzUd7e/TiblcR8KTjTjjBLICPqtY55EwYBxZZb7xKo73AA KukwOnHjJ1nBeNvv/CT79eOr5oXjdi/QEU7/18mrvqFcYg1qwoDM1GlPWvuDlOvt76wi cLb+JRpRPrgLcRZdoFbWZ++Slj501qgdAbP2JdF1BvkD4mFItgPOGbvNpSBeSu5aC+Wc qeR9hgKUP2wlR9KbjR5n6N+oI+WyMDDIo9fKKKsVtekU40qIIeuwCTv0JXGekh3346Kr ZefQbGJUczpXeeBLy5dDXu8A+vUAVWsPa/VGIcDhpL7yDqfhyrY31TU9j86mvJUgXg+/ TOBA== X-Forwarded-Encrypted: i=1; AJvYcCUY37jdj/ztyX4Qo/8Jv7GS3kxp4B2NQNVzHQXrIbeXUscW4aVhQZNjtTSSU79T+ehOCs63bzfSgFAZaXA=@vger.kernel.org X-Gm-Message-State: AOJu0YwfMUQUERztYKZQWhf8iQzkLIAoF2VVal+/9pZ8J4FCBNGK78IR rPOE4X3Tj1Yh0K4iwlOi+TkcSKY3ZHCmNysM6OAHo5zOuXp3dMkjuZSIsKpdAezeMeA= X-Gm-Gg: ASbGncuFento7jJa4PRxS6pT+y7O6M2NxGkydLza8mlaCjXF9gZ2Q58jiET60QBsu7c NELlvxwiKySS3nq3/p39jFoaMp5aNu2WlWmKQr2NhPl8eByMoLHD/tBJfyey+uEhUToKazOqHkJ jexTmG+0mxNP/BtlQ2S56OvT3GUzecuPC+Fa64lce1n0gSPEhRJc8TxLifcjNUeC8qbvIggmE7x IcyszIyrnx3iWJhPxxspCCqfOyK5extZ/yzd7XXX/h49C7rmJpc2aj2UC24oXtdBNqHXsO+UugY 8E9B4zXQp+t3Rb+SZlfr4ssjKEbPMgjJX5zDGlnSrkY9p89XkLWuVzwHK7hGnCH9OPuFkyTOuU6 XmX5q7Nw7Jyu65q34JLL+ISbI8JF8rKVPW5bb0G2qROSEMFGoaUOQvNHZY8A9T9oz4jKUHSOsEK J5PYM= X-Google-Smtp-Source: AGHT+IERQUCsT9/K+EK42FlU5rD13+DKKUBZoGLOBrpfWCcavhFwwhcjhsMGRsrk3LgLdPK4Pnr4FA== X-Received: by 2002:a05:6000:646:b0:425:7406:d298 with SMTP id ffacd0b85a97d-429e32dd8a7mr5384377f8f.5.1762428875011; Thu, 06 Nov 2025 03:34:35 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:d9de:4038:a78:acab]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-429eb40379esm4389459f8f.9.2025.11.06.03.34.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 03:34:33 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 06 Nov 2025 12:34:02 +0100 Subject: [PATCH v8 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: <20251106-qcom-qce-cmd-descr-v8-6-ecddca23ca26@linaro.org> References: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> In-Reply-To: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam 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=JYgzjck2CuPcYXJ6P1UUpTPVBg5UfKOlRAlVywM/5yo=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpDIe8Zb/QqUX5hqxfcaPffhFDw7Q9GIm8ZMQcH ee/tj8DmuaJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQyHvAAKCRARpy6gFHHX cvRMEACllNsILUmgwRfS8eXNCjFlp0V4MCPnLNPyzoQmLgPJMUCbVZAirZknewnsH5bxee4LVCp /INqNHdquHKRRGb6puJjNDJYY+0wAb45UhHrzJ8eWIwr5rRSwM6UczevsULrota4TrtupoIaFQe Ft59PyLP4nZZv9F+SNhUcNU4RU+0RyPmw1nTfA2P7KBE5XEMdzr1amIdJMVvORQPFqWWr4XblIx 7HI6ojLH/tXB1Q1KgOFTjkwJKmVAjAOIG0SJHmUR7vvOGP/8h9nBI1bCRZUndZutTX4EWzW1Jwi U6BPk71QkrFfLumwCbcZZwE/OJddFP9YI0eAn+qMT0A+0eMsZlkQL26tCYq7pURtSG0A3jSjMmj 5N/rj32tHn6wmRSeGMEM1sDugwuA6319QsnWe0Dbcn3L4g1UXrUSevYccteN+JOkcrM/8at8D4M pOJDMHxL2KdBJ1jbJ5jT58Az2Z3dn4WZt1RfED6vNlDSdmwidIXnnzJX1RhsRal7kyJPMxjqgrG LyeiAsv2E5b9XKEzqXEShZa+tKC96pvfGH12OCsmUV1Pokd8oFBMjY3CgcU9Q83JHfmrxMbeK4G dHmsxZ+frN26A54Ckkywd7N10R4q04r3gp7KJfKAT1JqM/o3cCKxYejIQRNhYuuHtLac775b/lp 6RdCsyVYicjKjEw== 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 3114b7f458de0c1cd8527e602b408958f224a7d0..aac65041f585221b800f4d7756e= 4bf9d9f21d0a0 100644 --- a/drivers/crypto/qce/core.c +++ b/drivers/crypto/qce/core.c @@ -227,7 +227,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 f9581d53fe4033aa1982964d1038097fff0e8250..4c15dd8bbeb85f6ac0e463d7b9e= ab70faeb2be94 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 Fri Dec 19 16:00:43 2025 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 526A5314A9D for ; Thu, 6 Nov 2025 11:34:38 +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=1762428880; cv=none; b=KHNnku3lBSieNOGRruOEk4EmWuqT+0rPb7bpx/Zgg7i4ZWfkczRSoauBYdFfEQmvKjQZvV6R+pNDyQqPyqzqEgwIZysYZptxXb3+wJcZU2BiUh2kiwEm7DWpkYXB8MmHlhVZtU0RAfz90rErswtA8kLmZOlk0z5kkhmik5AYAuI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428880; c=relaxed/simple; bh=/4QBhPILX+5X6ezhag3LzaL8aK4X9XYd5TN1S9llZuQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Q/+9ar1rRTCulKb0ymies2/Ifi1wr5FMx0FS+LyY2m66G9mmZxOmvCe2gIscsB1V2fkaX2scBcMVRqsh3pTticWJA0m5EQJdfStxn2ZEDChFVB5OVwa+GMBqlonyDVXUZLDQw/ZSEgU7Hdzgdou27GbiMSdVRjLcIH1w6fo1P+Y= 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=cozPM+gq; 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="cozPM+gq" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-4775ae5684fso4511535e9.1 for ; Thu, 06 Nov 2025 03:34:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762428877; x=1763033677; 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=CZCZoXJ9tyVK56ZhBsaXTFl9gWPV9NIZVv0TaZjVvdM=; b=cozPM+gqPF257/AAvUHF4OUxs9MiaUza0s09GA/T2VQF+ZDJfF+s4G4mFRla2dnico 2hGpS6k+8aqcy3L2Ye8kxwNnh6/n97WFndnKlZQfXhUyPejsFPKCBKXjJKcke85/zH1H YvbaO5vw8S+0FO9zHLCgjK/EVp8wuO8aNKAiOWM/bMX6DOnjHs//ulByqcTOPbWMdrvk TUiV74CdJCUU6oYc8hf1ZXHsSR8ISskjKSmSgfhPJS0Fqhj+HrGKVC2QXB0jeTCWFjAc R16U528dhCp3nKEEySIzWXmVZp+zPCS4gqWphggPx2hl5yZ/BS9U2DoIBgKUPopZVeAC DRpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762428877; x=1763033677; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CZCZoXJ9tyVK56ZhBsaXTFl9gWPV9NIZVv0TaZjVvdM=; b=G484qKTB1fZQ4uzCblFpMMKteJts48T2RmirCEDWcM0ye5DrE+9whoT8LkRa+n8X1r 5CESXGkoRsl1pukNytQBuuykE4dQYF47PgkLUFyrkZFfgocKAFEfQgCUyCDO0pIfcU8a r24iNnebTeqDT4X+j3UDFUW/DQaA5fPMQHdtSK1f72zq6C/tH5WrIj1EqCE+yAWthquJ JEXctG6NDNGczkBIhF7KVQu+9Rl+9oE68d7fV1FQhyTQruiLRwqGlbuIhqtU7EXUYvHz KQOMrRdsVe5A8Gsp1socb5/syjgBRyDfp70sA1RFGojKVbDuqgyi7WgEpzi4AYExkT95 +49g== X-Forwarded-Encrypted: i=1; AJvYcCXtNCdJsP1UWLaMR9VqYN4aJR+vN6y9NUctp27for6m/d0XJrdKI6YYpFm6jsFc2By8hfA+Ea8lsmdIFM0=@vger.kernel.org X-Gm-Message-State: AOJu0YwjIftVqHJ5o510X8350DdkItjy2zsJVNa3mySYvBiLJnUouNsA h0FCmq7P+5TbSBAK/a7PshPh0QdNwVgqvFChSuTzAIYNhNtsEScUIsJKS7F26Jb0ch4= X-Gm-Gg: ASbGncsPOcZXT3ySUcQF9wDg7rw7xcVl9lEPLpH+kwUeuI5xe9VGl7XUKp9Hyjo98C5 qELewCw4vkPsqR7zFyJxFFmpvbH6h6DWp1EBHlreOaGcrSSc5fDPpE7PNRKxcQzRicPEeiLnTkc /rKQpUPzq33H1zOOGet2oause/eJtqCo9kgaRVbtLsMYIK2PUL+EDJUx9jPnwzX+oIORLeU8q1L Ewcx713f/10eMPP8uiyHeJhEiD8DsNev/QRE7cR5+1b4TM8pnSU1u4Aevc7MU1JH94Vl1kSz5RB TDB0vR138sz5gtRaHPO+AB/Nholh6me03na/BY3u88CgbGhUSbc4XJ7vLArLITdI5gtGqCU4gKF txu0+3CqnG4jsbRqxhO/Mjr0yklBbBKnfspbx5HGj77zdZqzPfxuSdDukdd4pMnu0Yvw3nbSvxc KVIkA= X-Google-Smtp-Source: AGHT+IEoXAUh9y67MgtZ/T4+RHHzxUkHerOKyg5NFcea653MMAitTHLap8TN4SHlWCmAxqH1lFJlTA== X-Received: by 2002:a05:600c:528d:b0:477:582e:7a81 with SMTP id 5b1f17b1804b1-4775cdbe164mr62433665e9.4.1762428876702; Thu, 06 Nov 2025 03:34:36 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:d9de:4038:a78:acab]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-429eb40379esm4389459f8f.9.2025.11.06.03.34.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 03:34:35 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 06 Nov 2025 12:34:03 +0100 Subject: [PATCH v8 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: <20251106-qcom-qce-cmd-descr-v8-7-ecddca23ca26@linaro.org> References: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> In-Reply-To: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam 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=1934; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=KihkhkXsgDZVFVp7bMRhRGSm4F/l7kYDlH9NjlkYozI=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpDIe8Ry42D3ryUjeP0c/0Pmqoo9z4r8wyiSqXR SFSlEAdOBSJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQyHvAAKCRARpy6gFHHX cqF4EADO++008kQ6Q9EDWBZgxlmhMZczuLDY93SmZLHXETOPEMuKPH2bcqkP4XJ0tjidhHLsrJu SZLvk/98dkqELZlj9RE6wdE4r+BmgqFlt7l/LxhhCkDLxoC47Ngi+XsQqxG68SP+RnJOjxdQc/f wYpSlMwh+YH2oJ4jI87elMTWEWlH/4t817TWLTp4fUnDFmpKSiv+LZ17fAsJUzOxlK68/NUovbZ s3MH/9Z5JIXVD/npEUUTrehWYIBybRRTeZ+svv4RHQ4xZr7DyoszfO7E+XGoPopxta3Q54x60Jr QgpV+SNqpf6VKViBoxMg+9hzh/uRfu+K0PcesR2QblmkuB64DTjxb+kB/CaVY7LOsZ7k+YPDkmB LTD5WVP9wvlCZ5uWwqcMSQK6IIC1chxJjdne5bzVwyuK8BP8s0pl3lQS8uiRcEraD6/O64w1Vky aKrkQRx7J4UrZUV7vwUz6NOGMC/2jE6fBGvieEpk9N8zHbqiHGm6fJNy014mxwQhTnFJoM4anmC o2SZh7XqPHrXLlN8Tk6PJnqo8gjojBGIY7aF1QuBWEaKudcfKkMJyceOHIhOTMXBFiX7MujpA4M /hhQ9G4+TZDJijq0LnhvBPNCjAA/FfmwjVy5T8DOcpi5lm0+hFLvEvXZdd68hslsmL3XgqkFFx4 dDGrrcS1dexY/5g== 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 --- drivers/crypto/qce/dma.c | 37 ++++++++----------------------------- 1 file changed, 8 insertions(+), 29 deletions(-) diff --git a/drivers/crypto/qce/dma.c b/drivers/crypto/qce/dma.c index 4c15dd8bbeb85f6ac0e463d7b9eab70faeb2be94..bfa54d3401ca095a089656e81a3= 7474d6f788acf 100644 --- a/drivers/crypto/qce/dma.c +++ b/drivers/crypto/qce/dma.c @@ -12,45 +12,24 @@ =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 PTR_ERR(dma->txchan); =20 - dma->rxchan =3D dma_request_chan(dev, "rx"); - if (IS_ERR(dma->rxchan)) { - ret =3D PTR_ERR(dma->rxchan); - goto error_rx; - } + dma->rxchan =3D devm_dma_request_chan(dev, "rx"); + if (IS_ERR(dma->rxchan)) + return PTR_ERR(dma->rxchan); =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 Fri Dec 19 16:00:43 2025 Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) (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 DCAD0314D06 for ; Thu, 6 Nov 2025 11:34:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428882; cv=none; b=h7uFWLnVCaMh5/bPiuQZuOy4w55fW1U3iFxsN9y1g7F7bu0dQJQo1fgsoFZKmy+o9BHTEqj0VAfkFqWxPXeVZ7ofSV4kF2PlRPj8omASGV0osLWL/CU4LV6sfcHYbqaCtAGSmrKXFwDqsnf3SzOZdTuUuiX8Li6dFHZD7jq3cLU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428882; c=relaxed/simple; bh=HmUXLW2y1rVjaif1QbzcfjuElUDdKXykWdLm9c4LpXI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RHYY10CnlGle2YKoGjKkDcggJHB+rbP7SbPJ8AKEKoVKCTe9J2kebXJnxiMQMX09mYHXCzKoGprbkmEuEP5lWpr3AinGuE+AS9IN7hAXRqCk6wpsSFjUNz3QVt/JUANAe1H14wgLj595NxJNtDBlQ4Z1OF3ItD727O2c4rk6O+w= 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=VHcONQdh; arc=none smtp.client-ip=209.85.221.54 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="VHcONQdh" Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-429c4c65485so682664f8f.0 for ; Thu, 06 Nov 2025 03:34:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762428878; x=1763033678; 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=t7aHWUrzlgxNBbKWCNeGhQi8iWZi43My+Fzs3phWPnY=; b=VHcONQdhjwWlt7k4S0daRAlmy3l2i8S88cmTgbJbowhe3knjB2JAE2sVULWNh78ecO hn2M+xbyph+FJiyO9jq4GOWBkLYN7xRDmYRJsCP3AzxnMF0WQL3Oqt5mQVTeoPi/ocg+ VSW9Rcke1uVSR2dHoLdYvuotAEzE29AA+tLMeElp/Tf8lDXahjUCmKAD0k51riARVOBq 4jDEhZZ/ysGLA1UEh/MzenzZLvJoQO9aSlO2QBtRksWidF+gCllO29pN9vS6Sa1zgChX p0jWoEX2iJQdFWwZPSaaH6BN9wS2mFv0bdhHhK3UVKHFivpUrmXBbzBoAVRUXzI/s0gb Tz1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762428878; x=1763033678; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=t7aHWUrzlgxNBbKWCNeGhQi8iWZi43My+Fzs3phWPnY=; b=Yndgpu6zfcKKtcMlP1AoD+KgFtaXzZFAsQdxmnVDtMozhGewX8QUI1uvvQbi2YeZ+m UuhOTkrM5jWLEs38HXqbcLVOxQvotTo1+qxHgaKNm55coC4SOVnuGnM+lNdDLoZtg0jj L+dF+CSDp+ifdFQ7ORYJlbA5YtqzOvEInlb1B/PdsAcaXHu9q1Ixe0vys4f3II6KF/io tXtqLlG5Zz4MgdxI/BWgL68D5G8cD/kKl3DZmen37ISyBrMKDjd4rik5EbSQbgaJdk1o xqjjHWILgE0dWGnXsfhFEnEMTPWQGooQMA8vK1mMvIMpboFHX+Trhrnlb/JkqR4/+LJF fmHA== X-Forwarded-Encrypted: i=1; AJvYcCVwYfjvBmO5EO/zylg3OlKU6xcE/PpLeeVYYrqoJI7+eYTo/IT69MoZVm7GP7oIxK1A01H+osxldmojA0U=@vger.kernel.org X-Gm-Message-State: AOJu0YxclF1axPPPM7Dy++cTENKlTeP4BHKVhKLSQBmMFfv9USHLtlXB nranmAgPX+ZgLoyYiMFRuS8yUPmcSKcPav+ph3wpzetNOR1UhT9OU1peslDZNNsNQJQ= X-Gm-Gg: ASbGncvo0nRKqg1KfwQ/jqxPWdxFF892khPxOyntTp4bIIe+awtCSotFHJnPpUTc0Hh GLvcmMIAPFJE4+gDPk5CLhyiC+0a0sG+YbqGoFHlLCth7FwLwgy29DNbAC6VS2BOn8Unfr7pmQy ECoQh9PZOmE8wRwlGiZE0vjVgKZObD3xVtWN9hwUIgPkHj1j1GJT3Oy7suWpmf5YKz/rb+RxqV5 pYTnVfdwZdhcXXMyaf3AyiMKejZZY4PubDg9RsvJ/FrPCRQmj1+7yRlBz8HfT7MW6Kpeit4F2As V6o9OWpAEWVKR7UTKFJvwYhnZpVySS8tmmrvy9c/iZcL8zFozr1ZRpli54JHm2fHawuvnGf3WTs lhSALOUnnJdL6OwcWYbSwQGjyOr6KAUl93KIPcMj5y17cVS7iR5K64FBHtLQpIiWPg8iO X-Google-Smtp-Source: AGHT+IHoK1O/+JDQW0JFse0/zrHgzULYmUJO8yjsG0GrRdQ5S3RvCjLR1rPwRSyZQozg3pEN49UEFQ== X-Received: by 2002:a05:6000:2585:b0:429:cacf:1075 with SMTP id ffacd0b85a97d-429e32e4649mr6174613f8f.17.1762428878188; Thu, 06 Nov 2025 03:34:38 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:d9de:4038:a78:acab]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-429eb40379esm4389459f8f.9.2025.11.06.03.34.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 03:34:37 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 06 Nov 2025 12:34:04 +0100 Subject: [PATCH v8 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: <20251106-qcom-qce-cmd-descr-v8-8-ecddca23ca26@linaro.org> References: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> In-Reply-To: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam 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=YrlK+FCBMpnN0mtgQnv4x5y020oK7SmjbrJXDNXzn5g=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpDIe9PAKKUyb4afZt0r5bIvZ+oWZJdtCAEcub9 pOHJZBRI7qJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQyHvQAKCRARpy6gFHHX chpXD/9NByZYb24rxG/Ghz2t9YYbHOU4a7LXMIg07ieVmtBqJwlhLP7h0sKuRaxHxREFUKO2Cac XvK0LjqloxZ6+ORHjrLB9zCDOAYud6CAbxZASMdM7nlv4LdWV8xPTxtHpM5KkGRPDSOkSW5WCch eBBrjBHTUQSdNUi+Z3/KrrBzuIIlk+LQzgQ4wPLqDf9mJ0YMemD2clgtLdILmqyYzWX8Wzt5iBp Clru+Ab+RQ8AD4rZP8+UMMUcQ1QMCZZ8C54WNeJPUgDsRlGJ/oGhZBiMuFOZrFIHB3UqdrrnRR5 e8Zl4xh90DX51C9Ga5vCx6lgB37BT+dMpUTzW4vI6MnO6VRDLHRN2oudv2jv0MI/5HtC3rzFdMD sSR4wRIz+hVgpOj3t1jjdn2l5wmf7Ri/UzhbnfZKIY+PVFqBlcV4HnNG1eHKo+2x4imE5UGYd/J FWP/rUBnoI7G9ld+50zwCE2kNXsFcRB0ug5fDM0VCvja8L4UxhvbYY0MqL40j3BiwdKJapuRBY2 iYbjGh9rI6R5NFLgeCEeYKNk2jrCi8sRZTlzpXP0rERk2yPNHSbaBi1T+52NzxOry3uZ6BGN/Yg hEpEM2VJXEIiH/UBD+o1L3l0Cln4piKV9RagSk83wK3BgvIfskBCmMikKWvtFqJqU2oFMeGd2yw WsgEqAgozobeU4A== 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 aac65041f585221b800f4d7756e4bf9d9f21d0a0..e486d366c0d63aa0e1f545da926= 5e8ce689b50e0 100644 --- a/drivers/crypto/qce/core.c +++ b/drivers/crypto/qce/core.c @@ -186,10 +186,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); @@ -199,7 +208,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 @@ -245,7 +254,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 Fri Dec 19 16:00:43 2025 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) (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 E1635316188 for ; Thu, 6 Nov 2025 11:34:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428885; cv=none; b=tZH5y66Op6mohYsMQkQkklpGVbWZkPqvtxXFs1cqHnqOFjdv89RLUWnwU2ncEGnJcS0slzcWwS2o15K1Bqm1u+NECS5EcIyKF40k/1V5H8AhYjjCt8zazOGTuIzWT6jjy3B2s2fLpPi/kzh/GNpit7X8VJpF1rtgZ9GlkfQKcEc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428885; c=relaxed/simple; bh=zl255ALAQZaKEsmkiwDZiuDGm964w4gYAhEZIIzCFA4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mHxysI8FepYPjZaIsiDZB5MKa3dAEBH7QgeZPWw5Szq9YRccf950++mmYbzZozbafNGog3UZvWwN3XSK2ZrzACjg6lrqeCs9zNg/+s3lwZxjwxIAQ3wil1PU/msx2uK8iLYmKio3TQAz9NR2Qsodf/0FTfp5EgnDufFUPPhBnFM= 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=ANcSafSn; arc=none smtp.client-ip=209.85.221.48 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="ANcSafSn" Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-429c7869704so743394f8f.2 for ; Thu, 06 Nov 2025 03:34:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762428880; x=1763033680; 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=u1AelrTrZ5vi1Hql7yAT/NtmBB7MkGXnoGFEtYAxb6s=; b=ANcSafSnKUYBXZJBT404r8HUcWU5EAXmoWGSiT8EV+n2+NjH3u6m2NVZZfdAomhRy7 WMDx+KlBThnHPy69CN4RWutIws7eAOV/gGVz6wQt/HPlr7QFaueKNti+iZNj2I2j2PS0 uFbAge1+BtYfETcyvJr/11iSNd+YTnblkm5hle6l2CLKbygFbLecJUE8oyFS/iGUgUQN +1c0FUpoPdZY/wpWxhwxH3npYIuweGBQ8dJgHWJ1ZcdiT8kTOUVWTpMfnjjdhG55Feh8 PqYWiZYnfio1PFTFQmZCGDo76hpsNrrb1p0kHOgW11JSVYgRXGcVxfwEvZifl5/oMr2i O4BA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762428880; x=1763033680; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u1AelrTrZ5vi1Hql7yAT/NtmBB7MkGXnoGFEtYAxb6s=; b=qQHygRDI78OINaZmiBEijANBg/eHxUy3xd0dOImsCiRDhIG/1/2B25XA5rl1fae1q4 hf7Hx68CIgnw32rxmaIFnattl0FeFkFDyxz9s4SD8rjZVJGqlyJojzp5LZc4bqFxJDUw 4gnyOXAG02MxPAAN/UMpgrjpODSr1HRvcRmhB5KMTY6n9ffRFNMXsIjsRlzgvuqbeHDe g6HYqFytKmkb+VSdOB6I9ojV5Q/Ege0K4nBZ6onHniQqeBtC9TAdjNUIL1lUDzVRGSRV gdP1ehZg5xNqcY0tXCLeZC/cwodCGaSgQyVDg2rVSQxt45wdPHJ8fnH9RYkCnKacaYOF AEaA== X-Forwarded-Encrypted: i=1; AJvYcCVKwS7fcF2LBQQegUWlskhDyeVbh4STyQFUCRY/WSqFo9pEb2D4Yrihb+LxwXdSXyybAgZXrX98usnQ4ZY=@vger.kernel.org X-Gm-Message-State: AOJu0YyqaX2++sNMdOttDzFclL9w1LZGAs3uDGG4Xml8NW+9VdSPfhQ5 1OnwU1jEKqkZi5GcmvIi5t3yI9x/jYifBWLOX9FqdQA3/gxGjcfkmOWyJtMdqDi9NNw= X-Gm-Gg: ASbGncuoz7pZ5jSuwj0y+W3jhO6dxV4xwpo6QvIRUyjFsQmdj/iKr1jzT9fibPS3iIb 1wtWPfpRzu3+AqZTmScXecbZxOm+k3ehlRzq8CVcvnmWBkJqeg+4qZfaZ3Z0WWH+38L3n6PvHCT 0BHom+QzWq/xec32fDAsu8k4szLA0AHUVkLNmc1em0TXUap/ag0yyHYT/pPixf0Ls9pcQM/ey68 jOj5l1o5k6dvXOsoIJGDyM/Eh6dzK84N73FlmaconqaDE1vG49t/352CW1LXZj5MlBzNMivU/Y0 Qd8LI/djy2l2LyRUBCfWPcTO6eTmUA2Cfl9eShyCWWaYlQXQmaHW9fYB+GjrQuC1GTkdBHycD+v 1TwK2ue3kR6AHw46GqpPMM83NMf8AHF/mb90PqLYdXKgM88JjcsifFVJwqTdQUSR+hJhpDLbvBd ciSM8= X-Google-Smtp-Source: AGHT+IFj1cZgTujF+up66uGuYayospRqE039BqOL/vh201PFxdzzhjBpqpQn48ZfPe8i7w7L93Qd+g== X-Received: by 2002:a05:6000:220e:b0:429:b1e4:1f8f with SMTP id ffacd0b85a97d-429e32e5070mr6497326f8f.26.1762428880275; Thu, 06 Nov 2025 03:34:40 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:d9de:4038:a78:acab]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-429eb40379esm4389459f8f.9.2025.11.06.03.34.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 03:34:38 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 06 Nov 2025 12:34:05 +0100 Subject: [PATCH v8 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: <20251106-qcom-qce-cmd-descr-v8-9-ecddca23ca26@linaro.org> References: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> In-Reply-To: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam 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=M4HnnFvam5oHPkSCa/uXNClDyduly5DTAPL1JsMNmgQ=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpDIe9uaFsYlEGaYn2NGGdVlGgTHNmB4zrBOISN JQXO9aEbQmJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQyHvQAKCRARpy6gFHHX cloMD/9OF3fFH2ocL8Z7nOwKg8hP3vnD3EG40rjc7S45XAgFiuaaVtEYGt47J1hn5auhZhE2IAK kljR1tQxdyDJW1iqFp7nDuO/6cR87scNn07feUv4MqrP/yjCnDSRBaY8DfzMzyeioKtW0c4E0cO u4IM29wIE7jBKe7FvbkNWyEqyNTA9yE/4pKY26qtWErFlFGfGis6PogGVvL34xh0vrPOTclL5b/ I61MlHHlV/T5frrjCBD+E6okzpEbUhXzDWewFOeWArXuPtzbtu4PkrIuG81lVG9nFBmjEDpP67w akLLNOZ0l7MfRCa61ndHr1qc5Dk9mmL2ch8OKfzHr0KuCfngaNyNaCxKv69yLKsvd89UdhYVgxB uF0y5bbl3nX9j0zu+UqZjNhJcaSenCGyAZIHrw5wOZp+IXQ6UP4JWJqaIdLEqSWBcp88s8sdQYD +a3Tk2pfDYFS+iE76C7u8daHc0E27rpHcvFF4KQJnC0WQEFWrCkM7ORDJf8ZuqREmTewbUCVDmC fbxCzT4h0rlJIZmqVX4W7zUMhiGoOjVUgHGBeHPodk0P4qfOcGEfvmlKmktTJvJdFoie8341Nxu VJ8ghg8DGUAysH97WgUNNEdnQ3twkr0TPoMUzlF5u+5kcn7n7kCsGA+P8DKBcvFDV0HwPL22Nz7 HlMl68BdRVIuL1w== 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 bfa54d3401ca095a089656e81a37474d6f788acf..9bb9a8246cb054dd16b9ab6cf5c= fabef51b1ef83 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) { @@ -29,6 +123,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 Fri Dec 19 16:00:43 2025 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.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 16E17316903 for ; Thu, 6 Nov 2025 11:34:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428887; cv=none; b=oqFwbuThmVB6lWw3fm8Hk5PTtyheuNUR5Hw/IsYS4wzLeuBN1C6yYDAiKbm5Pz3FpCirIOfukR/I4E/tNTohy7QTfBBZBOs6jTHOmf8jtqzosX6M6T2JPmcvbfXQ68fKVxB7h6lsLJcZ7gP1xrgdINCUl0sIFBNn4oAMsIqo+SE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428887; c=relaxed/simple; bh=cFe80n6CGnkSaahIAQCZtzz0wK5evAcVBMMvz34diKM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WpzhqoBLZZy7n4XTCVD9bo5x2hgkv0w4X4eOCwQ5cRbbuvFJytIICZ9LtuJL5Y2MuwG0jzDqF8uTT2p0lveVF+UGM0bjjCGgx2cj+9agEHXBoXuInwVA0OEte5YcCVhc4sc4ZjaII3mIyxVC+wKswp3hxAHrH7VJ2R03hQkYSYE= 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=vP0HWqXQ; arc=none smtp.client-ip=209.85.221.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="vP0HWqXQ" Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-3ee15b5435bso525218f8f.0 for ; Thu, 06 Nov 2025 03:34:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762428882; x=1763033682; 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=UyOH8JFl1NlVe0Zhitp2GeDVnmO0GnspPDmH0347JrY=; b=vP0HWqXQ5zcPL2SjYe+qXdpa94KbXFAWMIRTrP1N2KMldr83X6t6PBwTuPpQF99hup taRsw2hnvUY9ZfzvFwpKnvg2sEDqHN7V953EEsEOf9C76QMySGSNxmVYO81EwPGH4ngq fctpl71nMS/CRSBAx5iJ1Tn+SHZ5d4Ii1G/TM+XHxgTJEHEt857X/2qQ5yAG8DIQ57+Q 4W6J/8CdN6Oy0hyi8Q5+mXbnDI/7NtmoQWaCaa6pj4dXXs4zv0i40wktYbIZweSKXEMg Oi5fZp8KRq1v94bGOLE2ZZIrT/kvJlTgNJIWLkEevE4e2cbxkSJl9OQXlAlxMQftsl1w ep0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762428882; x=1763033682; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UyOH8JFl1NlVe0Zhitp2GeDVnmO0GnspPDmH0347JrY=; b=Gm20gdI/bdPQUSzBsKVULzvXyvljM8g/QSQ4rsgVGUd7wlb5lV0XfwSoOk3BpPwzzM gGzPLTMzLWAnJT0rj4NgjOBfoXrUzmyxlRJcVgQt3RoPbALnrjhqbri5Pib4/VeuBoqU g48Jp4gga5fGg/SL9GQuaxq41KbPvLjq9/yDj8a70cgMfO2AFGwpWjqHHSkgtm29FuyI 5ZkCJwOIEvOmOuJe0NtLHkCkT/oVAKDp1co1z0nz+P/XvxUjslKHMQFHdYqB7WqDrXf3 bMEv+LEpJMDSuICodcK5F9ZgoMYLQDSo889Yvm2+uXoHkkiu552R5BNGXvEvAUnn6m7a z0Jg== X-Forwarded-Encrypted: i=1; AJvYcCW696MTicEV9reQ/WIjUTB9yc4w1BHedNVLxDziekWX9Hru+PvJgOhe3OBHvz7T9C/d/vCM7n7Zi9Apy6Y=@vger.kernel.org X-Gm-Message-State: AOJu0Yy493YKSws8NIIA5W6j4M8E3NGxMp28INu0ohXz+X1bR5kEdGbR KCD1B8VJyahiKs+O2oYF1AO+YCYWp68G4TTexnzmkJlNTqw3EbZobdNwBML15OkFX/I= X-Gm-Gg: ASbGncsaBJ6eyd6BF4K3DwZRkjHj2jJmuPS2fJEfGASMcFGHAcI9kJBquaUACZbnF/D UMej8go2Pft7ijPKkr4eDlVQP2ra9CMAgVWu95qRSq/KdNPsCU3eakI68QfwRJtvrjME57ua/qU ecPhCN9Xy2FfHPMzOYSJHaOy99j4LXKKU+dzZ1KVuMA4wj3zPdGj2LfaIgFltRnAz1Fms7v5ix2 xtQRbM+4ItE5d9Yo4trsKqY49UWCGPyNQ/lxNhFlDYFf1wiCdqN/b+4TwtvAaDepo9Pu6EXeOpa mCnzDB9cxoQIlFgfcBIHPAgMT7Ccxnp9zi3ZKy+NpTJpB4WgP/2moDVj7mA+PsTen9v9vPNqBza 7gaMfXvmdqcs9f0FhZRZbNiOo4vESW0CK+jIbLe6mcEdpYBsbHvGqV3QCLienBmzv6wzjtwKyUR g7AuA= X-Google-Smtp-Source: AGHT+IHfX3KK6j5bE3g7uL3YXaXuBoL2INuO9k5/m/Rcjcvro5/QwHeSw9lwF4/ngua5Nhl9Ifs+vA== X-Received: by 2002:a05:6000:400f:b0:403:8cc:db66 with SMTP id ffacd0b85a97d-429e330622dmr5552118f8f.32.1762428882401; Thu, 06 Nov 2025 03:34:42 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:d9de:4038:a78:acab]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-429eb40379esm4389459f8f.9.2025.11.06.03.34.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 03:34:40 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 06 Nov 2025 12:34:06 +0100 Subject: [PATCH v8 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: <20251106-qcom-qce-cmd-descr-v8-10-ecddca23ca26@linaro.org> References: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> In-Reply-To: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam 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=3514; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=0GwW+SMcBXkCtr2mAoPq27FNGWc61s6sW/IzW4L4/uU=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBpDIe9jxDA/CEFJAoo8UbcYKvaZaTUhBnB1quRD FjDe4FqVeqJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQyHvQAKCRARpy6gFHHX cgaWEACUGoEPNZS7SMnPFhtoZhThZ9zEq5xOPsFo8MfrPG2r/vmc7Hw+By35x9lVneRd9IiXm7I U1DiVTeo5hM8FaoFVEaBp2lK+SetYXhuKxCrakz7/9RQ75UBR2pA6luqPdp14Y4vWm+Gw8P7oZ8 sBvMPOSVifRN/GHqeCFSUIs77WnETvrzTaqNRJlfvIeC35eTfZqi2if1mgFHYcLiOmtPnKef92p GMugw4gfWP1AvgRT1aKo/nEWMnGmyAM0mNP/VgnC68qPkYuvlTjCX1KnjVSaS1a/ypaMIzf0GkT zRyApiBYc8Cwz/1M50PWvJ1FUamhUU88idKAE9kih0/Ufg7us9nfxfp3CNlOA4JqL2U1BUUaktZ zPMSaXLx4kRlusW/+5Mi/e6WmKseKH1YFzIo8wU72u2vADBisM9IxumkYQ7nhfxZPG+l4SpnzIW Rkmdzek/Zqt0CWrg6wiX8xuyEgEA13KlMi27fPLujHOnOFIpLlUzTOQmDavM/Te0ByR0NGz8gol Z+gPmFpUpVdNoF5GxkntlEVVpPC+gDkmB7hvzTqF5kj8Tn6Ab/HScZmZjHnmkxnAuxfip7FFZpK wxJILCw2LvKBefsrrUZmQvoEsICBl9Qqxg7lwGgJeE/Q6tK1OPi+q36faTuh0zxP5/cH9Mq4Xbr s/ZqmXoMy9Of+fQ== 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 | 19 +++++++++++++++++-- drivers/crypto/qce/dma.h | 4 ++++ 3 files changed, 39 insertions(+), 2 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 9bb9a8246cb054dd16b9ab6cf5cfabef51b1ef83..bfdc1397a289b66af1ef482f0dd= a7aa057a9103d 100644 --- a/drivers/crypto/qce/dma.c +++ b/drivers/crypto/qce/dma.c @@ -41,13 +41,13 @@ 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, unsigned long fl= ags) { 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; + unsigned long attrs =3D DMA_PREP_CMD | flags; dma_cookie_t cookie; unsigned int mapped; int ret; @@ -76,6 +76,21 @@ int qce_submit_cmd_desc(struct qce_device *qce) return 0; } =20 +int qce_submit_cmd_desc(struct qce_device *qce) +{ + return qce_do_submit_cmd_desc(qce, 0); +} + +int qce_submit_cmd_desc_lock(struct qce_device *qce) +{ + return qce_do_submit_cmd_desc(qce, DMA_PREP_LOCK); +} + +int qce_submit_cmd_desc_unlock(struct qce_device *qce) +{ + return qce_do_submit_cmd_desc(qce, DMA_PREP_UNLOCK); +} + static void qce_prep_dma_cmd_desc(struct qce_device *qce, struct qce_dma_d= ata *dma, unsigned int addr, void *buf) { 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 Fri Dec 19 16:00:43 2025 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.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 C743B31771E for ; Thu, 6 Nov 2025 11:34:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428887; cv=none; b=dH71ae5qWWC37WHJN3e5wrVejeqm+ksM4Nu8ZzRreCJy/lX6uaH6+Z5grDgbz8gU8JlaFXXrTo05mgCOWh1s13DpS6Y75fusKYw7Aq5ZqwdV2kgDQonWgsKI8l5zv/I4T6SbBgqbfyEHYyLWYsfsC1AnToNWdAV5Qat21A0F9gE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762428887; 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=lnEon79h/FPIOMIs1RnbMOjOG1qvfLFWa42aCk+FUXo9hx8vuOdYSj12LHPstwK4txWQnz/uS6SJEltzjMn4jrP4tWOp0nZWp8TWMhJAuDIwIOyANIgsKVWWlft1lfXFB3Tdpw/kONdM8J16J8soVZob23tGzBO8ndV4d65QT0Y= 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=V3xpKhRn; arc=none smtp.client-ip=209.85.221.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="V3xpKhRn" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-429c2f6a580so805224f8f.1 for ; Thu, 06 Nov 2025 03:34:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1762428884; x=1763033684; 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=V3xpKhRnHptAwvY//bqP7zQI0CW+Rddd3JmUhM2nf2vOH3X+X87cvp9cVIYPpdAf54 IR6HnGTRgSPQeRsLggkEhsA9zxeSFfgHedP9lHvHlf1555uQVtAKA392BRYlJAZZzWdv pzDulkXn4cFYpjGjIfLkCGZcxVuQ0OXeY6GuTDwdks6YTStW0wxFwWSEOZfR17bUfHpv EUkLSIbAcmUwX15zt0rw9SLgAR4cTqv6oE8LlhZ5hKOc+i2IhOfGjnDpWFJXBwNagcz4 rxClXu7xOjevORQh5rump8Om0hKMAN7QqAe4V2SqZJt0vMnw7XbMqddp62N2RhYDVLBO neWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762428884; x=1763033684; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0slMlJM7u9gD6l8dG4n25D1+B/Pqy3PuC+FWW1MvYSg=; b=IytmRtq0gpCRviWhrl74+FbkS8zsNPuR+jPx/fxkJwlQg5z+/0jgBZjRJyFMYrn+3/ hLt1KSFV/5dy1oTh36iUll2zcfI7YN32ijEPyTT1to7zqIIRwV8OpUBNqKb6226Xg9IK iZKKbA8eJIp82d0eYjVgmTRkoD2+VcGZbUk73nCvGAF7Z0ftaLT4lM8RzcVEIQZCtAL3 s1sc5A/MpW7Lls3EvpcqhdxvP9tOT+YcWU8msgfUTD3ADuMobwZOapwPGMmQr54VAe42 AAnsyWkTmIKaojm4pV7we2954Z/TnKWLt07wwzzos51rmpC4gTnSuEmigjtothPzaSzE OkCQ== X-Forwarded-Encrypted: i=1; AJvYcCVPDYps/sWZYy9nC6KE0hDSv/mBZctsek1typGmAxUjQ2chmZk8NwRlB2iCQnTVCXtHqcl/fYSTFkro5IM=@vger.kernel.org X-Gm-Message-State: AOJu0Yy53UCZ09aDtC+2Bg7eVvJMmAACs1bewTLHknOigQY5V+RWNra8 ZG0201LF296obTu/k+N/2/bXTET9onrMDPVnsHvJ2u2fpksDuC5DnlZwHExEkyT07Io= X-Gm-Gg: ASbGncuw6PjOIcCLD368LBjoRB/hT+ZBhSv+Wq3g76e+2u8NZVDSbsaHbPS5IR9cC7X 2MdT6RT5+OIgkXCQ1yEzTD0oGYTJDSliX1KuMj29+n6Ze5xZC5ZhJnjyCh2uDjpW5KDjY46wdcg tXucjjTjwNHb6AHBUgtXO5OnvQJ0B8jUeTzQJqBtStgPSTbROWvlV+/pzspvMo8pc0JObfvfI8X S/b4lr3q6vSKxCTgWk3xRWnHFsEmbjs1/ssfbwnG92Cov3OiWEJaarjSm39YXUNNB/54kLZILig sTH2zyCa/4J5RsOU97X3i+HDjGYa5LH8NQgjXiVPYHh1HafcTNTg+irYF+8+Vpqwo0bnekrAzWe P3V5jOL/jEP5CocO/rfMRRmgx3D7FGxg9TDBS5nrvQCn0UKK5X1wnXHf604v29Ct/J5Hs X-Google-Smtp-Source: AGHT+IH/fiOSpX8Bd1PNfxDUNCCGWk+vEcb6nEZ3+jlgwUCbejOylW0/BOX0SYiK7oI9XmgnVzY0Qg== X-Received: by 2002:a05:6000:1869:b0:3f2:b077:94bc with SMTP id ffacd0b85a97d-429e32dd886mr5841798f8f.4.1762428884172; Thu, 06 Nov 2025 03:34:44 -0800 (PST) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:d9de:4038:a78:acab]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-429eb40379esm4389459f8f.9.2025.11.06.03.34.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 03:34:42 -0800 (PST) From: Bartosz Golaszewski Date: Thu, 06 Nov 2025 12:34:07 +0100 Subject: [PATCH v8 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: <20251106-qcom-qce-cmd-descr-v8-11-ecddca23ca26@linaro.org> References: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> In-Reply-To: <20251106-qcom-qce-cmd-descr-v8-0-ecddca23ca26@linaro.org> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Daniel Perez-Zoghbi , Md Sadre Alam 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/ZANAwAKARGnLqAUcddyAcsmYgBpDIe9+1fIkMp/fEXn98fhQgw9tFW/4REfExT+H vU/2dMogemJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaQyHvQAKCRARpy6gFHHX crcnEADK/TmYg5xmjUrAjllFl8IKDa0f455O8YfKfKz4A4LxicVDLIxSp8O5LTaP6UvBKGtCTxV r4hadowYw+W2k/Xdt8Kw/27fBjoy4CnByQhWvNIsIWb6HbePWFP+0lpdCRd3hiurvyXEnYexLN2 P+bO7meTR3UwUrCAPOYv/GHerTQgDBV+HZKHwI70CRqLwA2CadFjVWkYKTu07/pvICd5gCTv6EP eXmIuISa1Nb2sxnSJjzcIhzX7QtSzxZUZB+NhhBB1W3lyHAvin0ZjhV9GGzScUhKKQA+GsYWsIT XlOGfGNk+nlJm0lK8/3xFWu5n57z6iewexnhZvXhOo7LF+VZxyI1e4OOhI5D0hvhA7uPHxbj8Os oNAXqKAi+pOTivBdtMQZs8lVzpHi7TTTUH6MeZpTOTglj5zLtBVJ1jhSaOY+gLz992XLBcv2+D+ ryDD89nYOoB7p8EVyBGc3biZlxhsTNCHXdWriVCAmt698iupYt44Ba2X1KUotJV1DndTdHjmzAV 8laH52cTwVV/JKDoiWbA+l92liEZz0YT36YyfOsIH9wKF896gdVLbG2qTjW05wKZhfiFq7oWUnG V+1OvqIdw/WIYOMGomtxserWMNTz/64RcLxz7LQZpF5xYE451IcSOZcROwHayijUE+d2xTSpwx4 2nmFiD4tTZ11bdw== 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 --- 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