From patchwork Mon Feb 10 06:19:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aatif Mushtaq X-Patchwork-Id: 13967258 Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 744CE1ADC6C for ; Mon, 10 Feb 2025 06:43:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739169800; cv=none; b=Tw1FeUZDgV8m4JU590hb0Eq2GAhDMiIxUCsnw2jpTm9BU3m7BvElgGWryuKeaJaUS+Bo0HSXFWTq9TVNxHgfNVnzsdnIdOdFPaE8dtFAFSqYY664OVg4DS3M5HFpZbIHYGaTR3xvTY4sajzuGAUi0Bb7ivSf/qNIStUZqG6e7cA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739169800; c=relaxed/simple; bh=5u7F+siDxk1smDwLaUSKmW7d8GLaEqp1WdRO58GibIs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:Content-Type: References; b=HbyWpRWHhyokyFoT04PamIMMfmBS1tgj5t+mJTAPcrLcasbrFkw0XUA9mKZC6xq818eadSB1Qe6dThriA8oD50H3KT1FYivI+3v8Dns8SSFQ5r5FThbtm+BELiosplP9YP1Kx0JcsVh+Qs8ICuiob6t0/AIRY/BlNSKwD3dFuzk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=J7jBVAqN; arc=none smtp.client-ip=203.254.224.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="J7jBVAqN" Received: from epcas5p3.samsung.com (unknown [182.195.41.41]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20250210064309epoutp03fe6024b31057aeeb34b338598528817a~ixbWIbHiR1778217782epoutp03E for ; Mon, 10 Feb 2025 06:43:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20250210064309epoutp03fe6024b31057aeeb34b338598528817a~ixbWIbHiR1778217782epoutp03E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1739169789; bh=3T7XYBocWY+Y/TDydYiw5WG4u/h9PVvQeHolIgWGmXo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=J7jBVAqNMbbt+2U6xFiaDz5iW4jdUL3j922R/DRobncV/vFICyAUZxNzgjE2r5Tqx 5BKkLRr3TiGtu92sBoS71UkGQm5Rv2R31ZN5U/VqjRgDC9N55jMPnHebuwDoBLJFkd eHUzteERAJDZyk31e/br1ba3IZs7X3e5PL3FFm9E= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas5p2.samsung.com (KnoxPortal) with ESMTP id 20250210064308epcas5p2039b65679c2c8ba704d46cf0ee1f27f5~ixbVi9X7o1042710427epcas5p2g; Mon, 10 Feb 2025 06:43:08 +0000 (GMT) Received: from epsmges5p1new.samsung.com (unknown [182.195.38.177]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4Yrw4q3bwxz4x9Q7; Mon, 10 Feb 2025 06:43:07 +0000 (GMT) Received: from epcas5p4.samsung.com ( [182.195.41.42]) by epsmges5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 98.CE.20052.BFF99A76; Mon, 10 Feb 2025 15:43:07 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas5p4.samsung.com (KnoxPortal) with ESMTPA id 20250210062247epcas5p4ce208ba2806454c48a68ef25d0a326cc~ixJkOPrPR1469314693epcas5p4i; Mon, 10 Feb 2025 06:22:47 +0000 (GMT) Received: from epsmgms1p2new.samsung.com (unknown [182.195.42.42]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20250210062247epsmtrp1d63fc403e886d68da5cfad2ac07a119a~ixJkNiStL0980809808epsmtrp1T; Mon, 10 Feb 2025 06:22:47 +0000 (GMT) X-AuditID: b6c32a49-3fffd70000004e54-9c-67a99ffbf583 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 24.FB.18949.73B99A76; Mon, 10 Feb 2025 15:22:47 +0900 (KST) Received: from cheetah.samsungds.net (unknown [107.109.115.53]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20250210062246epsmtip2fd17ed49e083b0a14f8a81cefa88e69b~ixJjLDmQc1523415234epsmtip2g; Mon, 10 Feb 2025 06:22:46 +0000 (GMT) From: Aatif Mushtaq To: vkoul@kernel.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Cc: pankaj.dubey@samsung.com, aswani.reddy@samsung.com, Aatif Mushtaq Subject: [PATCH 1/3] dmaengine: Add support for 2D DMA operation Date: Mon, 10 Feb 2025 11:49:13 +0530 Message-Id: <20250210061915.26218-2-aatif4.m@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250210061915.26218-1-aatif4.m@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrIKsWRmVeSWpSXmKPExsWy7bCmlu7v+SvTDdZMkbQ4NuMjo8WhzVvZ LVZP/ctqcXnXHDaLRVu/sFvsvHOC2YHNY9OqTjaPvi2rGD0+b5ILYI7KtslITUxJLVJIzUvO T8nMS7dV8g6Od443NTMw1DW0tDBXUshLzE21VXLxCdB1y8wB2qukUJaYUwoUCkgsLlbSt7Mp yi8tSVXIyC8usVVKLUjJKTAp0CtOzC0uzUvXy0stsTI0MDAyBSpMyM540rmdvaBPrGLe8ePM DYxzhboYOTkkBEwkbjy6xtjFyMUhJLCbUWLhuiY2COcTo8Sau/PZIZxvjBJnHu9hg2np/veT GSKxl1Fi6t4dTCAJIYEvjBIbl9qD2GwCWhI7z51jBLFFBPwl3k5eCNbMLBAncenycnYQW1jA QeL318tgNouAqsT9N3fBangFLCWmL7oJtUxeYvWGA8wgNqeAlcSaY2/BLpIQ2MQu8WLSfSaI IheJbRv2skLYwhKvjm9hh7ClJF72t0HZyRI33++DsnMkJixcDWXbSxy4Moeli5ED6DhNifW7 9CHCshJTT61jgriZT6L39xOoVbwSO+bB2EoSa973Qd0pIfHv4ElGCNtD4vCTv9Bg7GWUmPfj LvsERrlZCCsWMDKuYpRMLSjOTU8tNi0wzEsth8dacn7uJkZw2tLy3MF498EHvUOMTByMhxgl OJiVRHhNFq5IF+JNSaysSi3Kjy8qzUktPsRoCgzAicxSosn5wMSZVxJvaGJpYGJmZmZiaWxm qCTO27yzJV1IID2xJDU7NbUgtQimj4mDU6qBaf6mv2YFHeyvfsZLSlfwMr94MePl1d0tF+eq lmdc1YuzbY+5oH1nT/fyP20tB2u3hl6onlvJp5mVHCpw8OZU1X9iSZUq912CNorc/H98/l/j cJWF8W3PK+/avsiauD5rl0flg5I8N+GPr3lt6qojpla/rrl+7LlsnG3llZ7ezd0+sl7PoosN BZaznTU7uXWC8lSbPbfF/k6bslxQ8UNPUf4GG/FjFb9y5rhozPd8ovE5eXPl0isqnct3a918 q2ZQvbhM8auKX46FS/7/Ozvrps7hvb6qI2PH2o/7L33mmON78Yab8VadWapSNW0+uXJJ7p29 grOMfu6NKz7DMGvetHn9u1/oLCmJrRPaq3DrmRJLcUaioRZzUXEiAGUnFk7kAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgluLIzCtJLcpLzFFi42LZdlhJXtd89sp0g2kLNC2OzfjIaHFo81Z2 i9VT/7JaXN41h81i0dYv7BY775xgdmDz2LSqk82jb8sqRo/Pm+QCmKO4bFJSczLLUov07RK4 Mp50bmcv6BOrmHf8OHMD41yhLkZODgkBE4nufz+Zuxi5OIQEdjNKHNv0nBUiISHR3NnIBGEL S6z895wdougTo8Tqd6dZQBJsAloSO8+dYwSxRQQCJdY3fAaLMwskSGzYdpAdxBYWcJD4/fUy mM0ioCpx/81dNhCbV8BSYvqim2wQC+QlVm84wAxicwpYSaw59hasXgio5vWh3ewTGPkWMDKs YpRMLSjOTc8tNiwwykst1ytOzC0uzUvXS87P3cQIDiwtrR2Me1Z90DvEyMTBeIhRgoNZSYTX ZOGKdCHelMTKqtSi/Pii0pzU4kOM0hwsSuK83173pggJpCeWpGanphakFsFkmTg4pRqYsu73 Lj1gWhu0iXNSsBiH8XGGn+ah8mx/H1RYsd1I7Wn/YN7w3PncDalFlg27r1jXTYwXTH/528np w96NqvkbfvJ+uehn8adBcKveN0vBwlUV2RumJl2tvpq1i9vg4OTd8+5eYrQ+ffLqS6kPnw2C +yUNluu0BkjnLV1xdj1jjtyeCfl7r61q8bnXb6DB2D3hrcPOqsgl/1UvV5pZiYln3xBur1U1 P2kjU8olqJKal6dzfdXZcwbrH9cvVZHj+Nz1f/nLbZYPXvDkFSV5m1fv7Jn/j6fpvmOqyZm2 TW5O69Yvrb7+/JJ/3AJjebF9TbYlO202HPMre3Kl+cB+g49L162/Xx7VELh6rfbbKVtdlViK MxINtZiLihMBOvzkXpsCAAA= X-CMS-MailID: 20250210062247epcas5p4ce208ba2806454c48a68ef25d0a326cc X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20250210062247epcas5p4ce208ba2806454c48a68ef25d0a326cc References: <20250210061915.26218-1-aatif4.m@samsung.com> Precedence: bulk X-Mailing-List: dmaengine@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Add a new dma engine API to support 2D DMA operations. The API will be used to get the descriptor for 2D transfer based on the 16-bit immediate to define the stride length between consecuitive source address or destination address after every DMA load and store instruction is processed. Signed-off-by: Aatif Mushtaq --- include/linux/dmaengine.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index b137fdb56093..8a73b2147983 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -833,6 +833,7 @@ struct dma_filter { * be called after period_len bytes have been transferred. * @device_prep_interleaved_dma: Transfer expression in a generic way. * @device_prep_dma_imm_data: DMA's 8 byte immediate data to the dst address + * @device_prep_2d_dma_memcpy: prepares a 2D memcpy operation * @device_caps: May be used to override the generic DMA slave capabilities * with per-channel specific ones * @device_config: Pushes a new configuration to a channel, return 0 or an error @@ -938,6 +939,9 @@ struct dma_device { struct dma_async_tx_descriptor *(*device_prep_dma_imm_data)( struct dma_chan *chan, dma_addr_t dst, u64 data, unsigned long flags); + struct dma_async_tx_descriptor *(*device_prep_2d_dma_memcpy)( + struct dma_chan *chan, dma_addr_t dest, dma_addr_t src, + size_t len, u16 src_imm, u16 dest_imm, unsigned long flags); void (*device_caps)(struct dma_chan *chan, struct dma_slave_caps *caps); int (*device_config)(struct dma_chan *chan, struct dma_slave_config *config); @@ -1087,6 +1091,27 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_dma_memcpy( len, flags); } +/** + * device_prep_2d_dma_memcpy() - Prepare a DMA 2D memcpy descriptor. + * @chan: The channel to be used for this descriptor + * @dest: Address of the destination data for a DMA channel + * @src: Address of the source data for a DMA channel + * @len: The total size of data + * @src_imm: The immediate value to be added to the src address register + * @dest_imm: The immediate value to be added to the dst address register + * @flags: DMA engine flags + */ +static inline struct dma_async_tx_descriptor *device_prep_2d_dma_memcpy( + struct dma_chan *chan, dma_addr_t dest, dma_addr_t src, + size_t len, u16 src_imm, u16 dest_imm, unsigned long flags) +{ + if (!chan || !chan->device || !chan->device->device_prep_2d_dma_memcpy) + return NULL; + + return chan->device->device_prep_2d_dma_memcpy(chan, dest, src, len, + src_imm, dest_imm, flags); +} + static inline bool dmaengine_is_metadata_mode_supported(struct dma_chan *chan, enum dma_desc_metadata_mode mode) { From patchwork Mon Feb 10 06:19:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aatif Mushtaq X-Patchwork-Id: 13967259 Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 306381ADC86 for ; Mon, 10 Feb 2025 06:43:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739169801; cv=none; b=bZ4VCquqGj0wcVm1xa5VpDscV2vLox24JK8l0jxL/tDmcat+owToI3qNM89T304+6bJWFdqDGVQ3ihGOd5VFSPnWz/lN2ZJdjFUmamoCTy9wownOvlOxGT3+GkvEj6egv2iDxy5/91wqXGUWfZ6kYEXyDBu0indJfW7kcfbUpH8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739169801; c=relaxed/simple; bh=N7qcxjEKJMGvZ19C9JTGbapJx4lfcfUzpdhsTrWfklM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:Content-Type: References; b=Y8UePsV6035+3/a2n9IkTO9gKumzrjhVcxvXc2c10rcCHmSHWybng2AP5WaonmKey1nntDnJl8YzrNG5KdAtRhqLk2IFDljExCVvVUnew5dj/PEnCcGLS6U6U/j2VX/5il2SVlc0yZXmO9WhxG9LJSZQR1BonvGlntgFhaeT4nM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=o795g0Kn; arc=none smtp.client-ip=203.254.224.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="o795g0Kn" Received: from epcas5p4.samsung.com (unknown [182.195.41.42]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20250210064312epoutp03c861e7118f199aca45fa71f5636db2e8~ixbYicPML1775617756epoutp03H for ; Mon, 10 Feb 2025 06:43:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20250210064312epoutp03c861e7118f199aca45fa71f5636db2e8~ixbYicPML1775617756epoutp03H DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1739169792; bh=I6kXYvqWMdpi0+2JDXDckaXE3fUbCTy1ikxu5HxqnOc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o795g0KnQLdm7zMDEYeL/nMvF7Ce6zqle6WCkmro84gzIwPPxZOMD2oJH2xlNNMdi lxubbFkDGrfEev7SSiKRnNQ1i1RoWsf+zV/vVfa+65s+UhHMTBHfxV9d5KaBAqoyaJ vD6HCq2GiuSnFsCDWaKrvcAjzPD435e2BXcjaIZU= Received: from epsnrtp4.localdomain (unknown [182.195.42.165]) by epcas5p4.samsung.com (KnoxPortal) with ESMTP id 20250210064311epcas5p44c20a1506b35592ee2c0de6c1e1836aa~ixbYQy6r11998419984epcas5p4r; Mon, 10 Feb 2025 06:43:11 +0000 (GMT) Received: from epsmges5p2new.samsung.com (unknown [182.195.38.174]) by epsnrtp4.localdomain (Postfix) with ESMTP id 4Yrw4t480yz4x9Q8; Mon, 10 Feb 2025 06:43:10 +0000 (GMT) Received: from epcas5p3.samsung.com ( [182.195.41.41]) by epsmges5p2new.samsung.com (Symantec Messaging Gateway) with SMTP id F6.F6.19933.EFF99A76; Mon, 10 Feb 2025 15:43:10 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p1.samsung.com (KnoxPortal) with ESMTPA id 20250210062254epcas5p1d463b3ce009ea29f5291fc27954103e7~ixJqHa7p_1000110001epcas5p17; Mon, 10 Feb 2025 06:22:54 +0000 (GMT) Received: from epsmgmc1p1new.samsung.com (unknown [182.195.42.40]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20250210062254epsmtrp262edfa85b0030afe0adbd9eaf55a9157~ixJqGwC3p3016530165epsmtrp2i; Mon, 10 Feb 2025 06:22:54 +0000 (GMT) X-AuditID: b6c32a4a-c1fda70000004ddd-62-67a99ffe822b Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgmc1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 7C.B4.23488.D3B99A76; Mon, 10 Feb 2025 15:22:53 +0900 (KST) Received: from cheetah.samsungds.net (unknown [107.109.115.53]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20250210062253epsmtip2e307c7811742829e83a5389e598e2d72~ixJpG9w5P1428414284epsmtip2h; Mon, 10 Feb 2025 06:22:52 +0000 (GMT) From: Aatif Mushtaq To: vkoul@kernel.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Cc: pankaj.dubey@samsung.com, aswani.reddy@samsung.com, Aatif Mushtaq Subject: [PATCH 2/3] dmaengine: pl330: Add DMAADDH instruction Date: Mon, 10 Feb 2025 11:49:14 +0530 Message-Id: <20250210061915.26218-3-aatif4.m@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250210061915.26218-1-aatif4.m@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrIKsWRmVeSWpSXmKPExsWy7bCmpu6/+SvTDT5uk7U4NuMjo8WhzVvZ LVZP/ctqcXnXHDaLRVu/sFvsvHOC2YHNY9OqTjaPvi2rGD0+b5ILYI7KtslITUxJLVJIzUvO T8nMS7dV8g6Od443NTMw1DW0tDBXUshLzE21VXLxCdB1y8wB2qukUJaYUwoUCkgsLlbSt7Mp yi8tSVXIyC8usVVKLUjJKTAp0CtOzC0uzUvXy0stsTI0MDAyBSpMyM5o/3ieseCOQMWV709Z GhiX8nYxcnJICJhIzL6yn7mLkYtDSGA3o8SyxfdZIZxPjBIn7vezglQJCXxjlNjfqw7T8fnM CxaIor2MEtfOvWCHcL4wSnQtW8wCUsUmoCWx89w5RhBbRMBf4u3khWwgNrNAnMSly8vZQWxh ATuJj9MXg9ksAqoSCxa/BLN5BSwlVn48xAyxTV5i9YYDYDangJXEmmNvwZZJCGxil5hz6Scr RJGLxJIfEMskBIQlXh3fwg5hS0l8freXDcJOlrj5fh9UPEdiwsLVULa9xIErc4CO5gA6TlNi /S59iLCsxNRT65ggbuaT6P39hAkiziuxYx6MrSSx5n0f1HgJiX8HT0Kd4CFx4cwMRkig9DJK /P38nW0Co9wshBULGBlXMUqmFhTnpqcWmxYY5aWWw2MtOT93EyM4bWl57WB8+OCD3iFGJg7G Q4wSHMxKIrwmC1ekC/GmJFZWpRblxxeV5qQWH2I0BQbgRGYp0eR8YOLMK4k3NLE0MDEzMzOx NDYzVBLnbd7Zki4kkJ5YkpqdmlqQWgTTx8TBKdXAJO/jeO5T6bu0f/KeCscNi5ckdwk9Z2OZ IzKlqFuJr2GFwWTni9d+XXhYtmWp4Ouw3cLyDAc2tu14dMi0n/VFlmVLdsqxrGdb7M/2FvQz 893/cHFbJ+da7aTaHSULp/wqy9m7vMJKJC8+JurJVF+P9ee/Rd9XcnzefWmv0MvDvx+ys998 tqvnddlRtyR/63elPAlzGtOK73vsfdQivULwZ0bCq4eTMpIX/ctg9k95PrvFxHvq54/qLUzy J3e+ueTb3TrPxu3+QUevOd/05y7bWJ0j88fRal7Mv/vrdeZbbPvZaM3w4dPRdiOn9eszH4pV cZxYrGARzNmgvvFg0m7VmKT8NvVOoxLFWe82zd0TqMRSnJFoqMVcVJwIAGPK98PkAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgluLIzCtJLcpLzFFi42LZdlhJXtd29sp0g2/HbSyOzfjIaHFo81Z2 i9VT/7JaXN41h81i0dYv7BY775xgdmDz2LSqk82jb8sqRo/Pm+QCmKO4bFJSczLLUov07RK4 Mto/nmcsuCNQceX7U5YGxqW8XYycHBICJhKfz7xg6WLk4hAS2M0ocf/HNVaIhIREc2cjE4Qt LLHy33N2iKJPjBIrZ21jBkmwCWhJ7Dx3jhHEFhEIlFjf8JkFxGYWSJDYsO0gO4gtLGAn8XH6 YjCbRUBVYsHil2A2r4ClxMqPh5ghFshLrN5wAMzmFLCSWHPsLViNEFDN60O72Scw8i1gZFjF KJlaUJybnptsWGCYl1quV5yYW1yal66XnJ+7iREcWFoaOxjffWvSP8TIxMF4iFGCg1lJhNdk 4Yp0Id6UxMqq1KL8+KLSnNTiQ4zSHCxK4rwrDSPShQTSE0tSs1NTC1KLYLJMHJxSDUzR75LW 2vfNq+E45rVtkt0HG7+9h+c5Pby9uJit6u/HPyYT76/9xOvNsnrFnDkXf06cVNxsIma2JiXg /O9NOUe/pClmPVFl7JZcbtYaU5mZK7b6avP96av/Z2y3F/Qs8Og/v3x20jVFr/dht66UmUe5 W5XFxJx0Wn38Y+Myl9XrVogIvPaNSU8VvH1i93/mE4//W3avW9Hw7s+t4o8eQfbv49o8hToS 7omsS//qVGDLm+QbPZctZ/YuP6a2bZ+VJ0S1Led0jdy11cbhkqfgZtaJgdlbn0ZYiPUwuB8U 2CNwnv1uRZ5V8tbP6gulBcqzRV//D2nJ3XWifcbb536zPi26bS1TdPLu1RVtcXM4j11SYinO SDTUYi4qTgQAQykP9JsCAAA= X-CMS-MailID: 20250210062254epcas5p1d463b3ce009ea29f5291fc27954103e7 X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20250210062254epcas5p1d463b3ce009ea29f5291fc27954103e7 References: <20250210061915.26218-1-aatif4.m@samsung.com> Precedence: bulk X-Mailing-List: dmaengine@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Add support for emitting DMAADDH instruction. Add halfword instruction adds an immediate 16-bit value to the source address register or destination address register for the DMA channel thread. This enables the DMAC to support 2D DMA operations. Signed-off-by: Aatif Mushtaq Reviewed-by: Pankaj Dubey --- drivers/dma/pl330.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 60c4de8dac1d..546ea442044e 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -323,6 +323,8 @@ struct pl330_xfer { u32 dst_addr; /* Size to xfer */ u32 bytes; + u16 src_imm; + u16 dst_imm; }; /* The xfer callbacks are made with one of these arguments. */ @@ -623,6 +625,22 @@ static inline u32 _emit_LD(unsigned dry_run, u8 buf[], enum pl330_cond cond) return SZ_DMALD; } +static inline u32 _emit_DMAADDH(unsigned dry_run, u8 buf[], enum pl330_dst ra, u16 imm) +{ + if (dry_run) + return SZ_DMAADDH; + + buf[0] = CMD_DMAADDH; + buf[0] |= (ra << 1); + buf[1] = imm; + buf[2] = imm >> 8; + + PL330_DBGCMD_DUMP(SZ_DMAADDH, "\tDMAADDH %s %u\n", + ra == 0 ? "SA" : "DA", imm); + + return SZ_DMAADDH; +} + static inline u32 _emit_LDP(unsigned dry_run, u8 buf[], enum pl330_cond cond, u8 peri) { @@ -1097,6 +1115,7 @@ static inline int _ldst_memtomem(unsigned dry_run, u8 buf[], { int off = 0; struct pl330_config *pcfg = pxs->desc->rqcfg.pcfg; + struct pl330_xfer *x = &pxs->desc->px; /* check lock-up free version */ if (get_revision(pcfg->periph_id) >= PERIPH_REV_R1P0) { @@ -1113,6 +1132,11 @@ static inline int _ldst_memtomem(unsigned dry_run, u8 buf[], } } + if (x->src_imm) + off += _emit_DMAADDH(dry_run, &buf[off], SRC, x->src_imm); + if (x->dst_imm) + off += _emit_DMAADDH(dry_run, &buf[off], DST, x->dst_imm); + return off; } @@ -2633,6 +2657,8 @@ static inline void fill_px(struct pl330_xfer *px, px->bytes = len; px->dst_addr = dst; px->src_addr = src; + px->src_imm = 0; + px->dst_imm = 0; } static struct dma_pl330_desc * From patchwork Mon Feb 10 06:19:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aatif Mushtaq X-Patchwork-Id: 13967260 Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F1CB1ADC86 for ; Mon, 10 Feb 2025 06:43:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.25 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739169803; cv=none; b=kT2mE3dlvSuNTMgR6FwHcQ+IeBepiO1527iiquKR9DvQj56Q1yAnKOpgt4LCJ0R8dXZPY7O8zk7HwG9fDrWDEPNnvNnGbYnMTqe1QHLGFxCjpG30poO12eM2Y0DZU7lhucUyraIYyqJVUd6/ULYVr87LwfzuIEFZ8s31fbS3To4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739169803; c=relaxed/simple; bh=9mDFLvucuaDifFxb+HT9HMKh7P6pf7kmEhDjJvF9a6Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:Content-Type: References; b=qTC33e3XgNT9BWAcAVIO3sskZeFAOJLpF72LdLnVeLJ7bsjocQfm4tz6pHKIqRCsGq/MM+o7Af3SCKHfC1M60DID+HiXIROFAgZx3qGIxfeNlLJPP8AXBwyKOLo4FL16u5Ce7GY8+085ADIdlTs4XTTSH4YU4WzafxMFR5CHBw0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=W6IU2rPj; arc=none smtp.client-ip=203.254.224.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="W6IU2rPj" Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20250210064319epoutp0263aa919c89e36574a1c0e9e158918bcc~ixbfUzceA2975429754epoutp02J for ; Mon, 10 Feb 2025 06:43:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20250210064319epoutp0263aa919c89e36574a1c0e9e158918bcc~ixbfUzceA2975429754epoutp02J DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1739169799; bh=Ua+YeT0LSOY7afcADYsqXqftnGnbvD+rsIeK21OzCIU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W6IU2rPjJjL76v3/aIvbea2J+t1c3ixzkd/hmhZvwfPQC406y66IgBR3NNiUDDwa4 AsJRIJLoAt6AzzyWILH7NueEjibzg/ceFiE5sEIqgR6aCHBNx0dd6ywgpNnFiH1Itz 6CKQxnChJNM2shu3ht9ZNthB5Pcir72Vf6KT9iEw= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20250210064316epcas5p363a8a015ac24f57517436022657d9549~ixbcTXa7z2234622346epcas5p3l; Mon, 10 Feb 2025 06:43:16 +0000 (GMT) Received: from epsmges5p3new.samsung.com (unknown [182.195.38.182]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4Yrw4y4GB1z4x9Q3; Mon, 10 Feb 2025 06:43:14 +0000 (GMT) Received: from epcas5p3.samsung.com ( [182.195.41.41]) by epsmges5p3new.samsung.com (Symantec Messaging Gateway) with SMTP id 5A.99.19956.200A9A76; Mon, 10 Feb 2025 15:43:14 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p1.samsung.com (KnoxPortal) with ESMTPA id 20250210062258epcas5p195b96f374fa9ce1802ec4d1c1e73f69c~ixJuZ_bSJ3185031850epcas5p1B; Mon, 10 Feb 2025 06:22:58 +0000 (GMT) Received: from epsmgmc1p1new.samsung.com (unknown [182.195.42.40]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20250210062258epsmtrp2b1ea8e324c732f2c8c4d8c0324be61c7~ixJuTSrqw3016530165epsmtrp2v; Mon, 10 Feb 2025 06:22:58 +0000 (GMT) X-AuditID: b6c32a4b-fd1f170000004df4-74-67a9a00263d4 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgmc1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 9D.B4.23488.24B99A76; Mon, 10 Feb 2025 15:22:58 +0900 (KST) Received: from cheetah.samsungds.net (unknown [107.109.115.53]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20250210062257epsmtip26da7f5dc4c1b6694295a3c564c9b2e08~ixJtTD4Gf1439214392epsmtip2h; Mon, 10 Feb 2025 06:22:57 +0000 (GMT) From: Aatif Mushtaq To: vkoul@kernel.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Cc: pankaj.dubey@samsung.com, aswani.reddy@samsung.com, Aatif Mushtaq Subject: [PATCH 3/3] dmaengine: pl330: Add DMA_2D capability Date: Mon, 10 Feb 2025 11:49:15 +0530 Message-Id: <20250210061915.26218-4-aatif4.m@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250210061915.26218-1-aatif4.m@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrEKsWRmVeSWpSXmKPExsWy7bCmpi7TgpXpBtMXclkcm/GR0eLQ5q3s Fqun/mW1uLxrDpvFoq1f2C123jnB7MDmsWlVJ5tH35ZVjB6fN8kFMEdl22SkJqakFimk5iXn p2TmpdsqeQfHO8ebmhkY6hpaWpgrKeQl5qbaKrn4BOi6ZeYA7VVSKEvMKQUKBSQWFyvp29kU 5ZeWpCpk5BeX2CqlFqTkFJgU6BUn5haX5qXr5aWWWBkaGBiZAhUmZGf8O3WHvWA6T8X13f+Y GxiXcnUxcnJICJhILDi0ir2LkYtDSGA3o8SeswuhnE+MEluXvmSDcL4xSiyatogdpmXVgmNM EIm9jBJPG09COV8YJe43vgerYhPQkth57hwjiC0i4C/xdvJCNhCbWSBO4tLl5WA1wgI2Es+P rAOzWQRUJTbeXwZm8wpYSsx9cIsZYpu8xOoNB8BsTgEriTXH3oLdJyGwjl3ifOttqCIXiWkv 2qDOE5Z4dXwLlC0l8fndXjYIO1ni5vt9UPEciQkLV0PZ9hIHrsxh6WLkADpOU2L9Ln2IsKzE 1FPrmCBu5pPo/f2ECSLOK7FjHoytJLHmfR/UeAmJfwdPMkLYHhLtKxZDw7GXUWJ15y+2CYxy sxBWLGBkXMUomVpQnJueWmxaYJyXWg6PtuT83E2M4MSl5b2D8dGDD3qHGJk4GA8xSnAwK4nw mixckS7Em5JYWZValB9fVJqTWnyI0RQYgBOZpUST84GpM68k3tDE0sDEzMzMxNLYzFBJnLd5 Z0u6kEB6YklqdmpqQWoRTB8TB6dUAxPX64aN/ZHrGqMmnl0awFN+K2tp7bIQg9U3jSR9Js0I NP+j2yO5mO/i22NH57FVnTJljt6Uf+vsf0ZPpujLJhGS3rM3vC/Y8EpTynp5ZVV9mmms1tZn XjpKc0RPvXzH3r6mP2znXee+dtlIztNPhc2z/1//57RuzSVhYfs3UjukZCckrGzICN84JWHi c9era7+dC5m0t+GtvGNvnVXoROPLBe+ZpfvS7nFs+9ssIDL9cJNOUX6W5J5Dtf3Mn5/YZuyI nShlesRY/pJjTHRMYpXILN0pHDrMZ+ueGvWfrl+5aJ8Y3532v9V/rnOln537QlTC6Pzz9e9j j3jsX5r8+qvVpDWcz/h3eIuvS7ET3aTEUpyRaKjFXFScCABvbzZV5QMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgluLIzCtJLcpLzFFi42LZdlhJXtdp9sp0g9VTZCyOzfjIaHFo81Z2 i9VT/7JaXN41h81i0dYv7BY775xgdmDz2LSqk82jb8sqRo/Pm+QCmKO4bFJSczLLUov07RK4 Mv6dusNeMJ2n4vruf8wNjEu5uhg5OSQETCRWLTjG1MXIxSEksJtRYtPtKcwQCQmJ5s5GJghb WGLlv+fsEEWfGCXefljKDpJgE9CS2HnuHCOILSIQKLG+4TMLiM0skCCxYdtBsBphARuJ50fW gdksAqoSG+8vA7N5BSwl5j64BbVMXmL1hgNgNqeAlcSaY2/BaoSAal4f2s0+gZFvASPDKkbJ 1ILi3PTcZMMCw7zUcr3ixNzi0rx0veT83E2M4MDS0tjB+O5bk/4hRiYOxkOMEhzMSiK8JgtX pAvxpiRWVqUW5ccXleakFh9ilOZgURLnXWkYkS4kkJ5YkpqdmlqQWgSTZeLglGpgsmWYUD3r l7Z9xZz5Of+5W11q4zd7/djb+mJmQMazxdLsra67jq37d2VNikP6vf8Ty3ntWFlDY8UTDH5f fdNw57b7EaYjUn+qHDq3rO/0vh7skJ3ztba1XqD9+o5ERZ3n9dwmwRVt6yJnHtmRMK01mUlA YLK1g4Y+1zf1+CD/TYUzT62LtqiZqHppOsv0iydXPs54Vvb7j7r2/qz9b+dp/phpzLHYd9PV x8+eFPvG9iSEv2B6X7dcy7n9Z/VMH29pobxF8ziEZn/IZnoa5C1Sntz9+kOx0x0N5lA240me NyQCF82PZJ1TpP/KSVzNq93nWrBI9Y9wbwV1BU5ruz8rr/n/rr8loCLVd8jrFrMSS3FGoqEW c1FxIgCCIPuFmwIAAA== X-CMS-MailID: 20250210062258epcas5p195b96f374fa9ce1802ec4d1c1e73f69c X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20250210062258epcas5p195b96f374fa9ce1802ec4d1c1e73f69c References: <20250210061915.26218-1-aatif4.m@samsung.com> Precedence: bulk X-Mailing-List: dmaengine@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Add a capability to prepare DMA for 2D transfer and create a hook between the DMA engine and the pl330 driver Signed-off-by: Aatif Mushtaq Reviewed-by: Pankaj Dubey --- drivers/dma/pl330.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 546ea442044e..ac17657413b5 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -2847,6 +2847,23 @@ pl330_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dst, return &desc->txd; } +static struct dma_async_tx_descriptor * +pl330_prep_2d_dma_memcpy(struct dma_chan *chan, dma_addr_t dst, + dma_addr_t src, size_t len, u16 src_imm, + u16 dst_imm, unsigned long flags) +{ + struct dma_pl330_desc *desc; + struct dma_async_tx_descriptor *tx; + + tx = pl330_prep_dma_memcpy(chan, dst, src, len, flags); + desc = to_desc(tx); + + desc->px.src_imm = src_imm; + desc->px.dst_imm = dst_imm; + + return tx; +} + static void __pl330_giveback_desc(struct pl330_dmac *pl330, struct dma_pl330_desc *first) { @@ -3157,6 +3174,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id) pd->device_alloc_chan_resources = pl330_alloc_chan_resources; pd->device_free_chan_resources = pl330_free_chan_resources; pd->device_prep_dma_memcpy = pl330_prep_dma_memcpy; + pd->device_prep_2d_dma_memcpy = pl330_prep_2d_dma_memcpy; pd->device_prep_dma_cyclic = pl330_prep_dma_cyclic; pd->device_tx_status = pl330_tx_status; pd->device_prep_slave_sg = pl330_prep_slave_sg;