From nobody Sat Sep 26 18:55:09 2026 Received: from mx0b-00128a01.pphosted.com (mx0b-00128a01.pphosted.com [148.163.139.77]) (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 0B9AB3E022B; Mon, 31 Aug 2026 11:46:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.139.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176780; cv=fail; b=T58VRoUaTf/TeQ/mTIqY/2gXB1MKsZzOoFq1UFwmqnhwl5Jhk803vVSLV9lD8Y2ekxRP20qEYOxplYPFYvVkb2Ga4FS0RNDdJlkwSjHYPl7W/O+TMxxZzIOqStBmZJr6pt01HmQr0WM2ULo7UndoR0Bivdtgv7YMfTdsIFk43eA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176780; c=relaxed/simple; bh=KaBHTDWTzlX+KIte0tBVjpY9cl1keME0NcWoIem83mY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=UtuX4cRLkZ+1HlqXjsk5OpEqysFYlx4MVy3m4yiTn5Vd/VNNI0QXIkQzTtKPQSEzJoV5ueKcJf6o0QM85omEWY0EorlUGvXL/J1dNlD45TbOMfDmyOI/QEIVtvV/Q9EC40TgIM+HRURpVEvji3COBiFyiJgIyTmm3dfTYMXcJX8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=JUC7ad/F; arc=fail smtp.client-ip=148.163.139.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="JUC7ad/F" Received: from pps.filterd (m0516786.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VB9nKg793175; Mon, 31 Aug 2026 07:45:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=ROaa3 XEIwL5gJT7Nochken3J++WLwwYl38EDgsIiEAg=; b=JUC7ad/FIVl6EXa8zsI2i aOj3Ixo4oSLtJxYGTWswwIamFPfdpn3c7CVitoITS7cQBFV2LU8An+Pg6PdepGHv FICA5Qq6HbJDs5Jps/qiMCzcU7PmID9x9eM1SO/U0Whz6Kj4LthG09OcaahV0J3e YXBYFVn5K5TNkW5UPLE9F6wV7t+eTRwwHoPfoCfUTlvwXa8CZgH8udyUIzwyC3Od 0Pr8tgDLwmB9L6UGpAKoW4NhIvUjhCEn3l4MHFzU/g5ibzeSuBboAEjgDtHHeUtG YOulWnqjRUVkuvxrgB3upoCDadwaLo8GPESAZxt6Vo99avuMxJ7hlGcTSlE8urkN g== Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012059.outbound.protection.outlook.com [40.107.209.59]) by mx0b-00128a01.pphosted.com (PPS) with ESMTPS id 4gcg1hu8pt-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 31 Aug 2026 07:45:32 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bu1/iaQdMMI7qEiUkPil0mtDujY9nZI5MpQ3YMl4CFJwFXAM7qblOVFzyoZZ+8AM5DK2368jmC7x7QtmzQm+pMMA/bSDcaMnQ+fGcLcc9JuIrD23YQoHzgforw1z/e6DER4W0vxcSosmHuRqlgOM+nAxxazpyuvt8rINRHrQOZfVBwpFbbAb9xbb5wYtlRmB19HehHJ2oBLZHP4p/Vm2YhktlQg8vmT03L21exDPmzpuZhLrfHA7s9IXVk4SmmnVfkGCwdmLgm+Xog6DmqffwcuXDZ+4xi8x1uPrKCe3RiCI9CXBevep7OFe/T5kkSAV6sC9xHWP5xAA+zZRpYQDiQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ROaa3XEIwL5gJT7Nochken3J++WLwwYl38EDgsIiEAg=; b=EI66LRJeQVZ8BitTtPGEtYUUJhxgOCkz2dJmbpZGVXBzAr3wwykC6AdSl82GAOwDwL+7BaFuwmEDOQxCWMZh3Qn40DQiSo7Qqn1pNcPhv2Ab7OFmuQm54K90V08eGLm0KuBB9jsWiRD5V/JXFu7HL5vn2erCjSvaPHsiTrYAIVlQoiTPLd+O0IDdnqp7EJ1zQy9uZyfES9N3z28FM8Duu5q0bu24rF+91758fPlelBFI69laJduxzhliI1cNOunZ+h/Tkwj07oo+4sq1dAEKPhzhSY0sysJAxt6+8FlirbS78B7UR9ghDlWBtMtY2EqlBbG82wzAW0+f9wukdQrOEw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none Received: from SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) by EA8PPFB3C90C3D5.namprd03.prod.outlook.com (2603:10b6:30f:fff5::855) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Mon, 31 Aug 2026 11:45:30 +0000 Received: from SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a]) by SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a%6]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 11:45:30 +0000 From: =?utf-8?q?Nuno_S=C3=A1?= Date: Mon, 31 Aug 2026 12:46:38 +0100 Subject: [PATCH v3 1/9] dmaengine: Support bus widths of 32 bytes and above Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-dmaengine-support-wider-dma-masks-v3-1-507d97496f2d@analog.com> References: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> In-Reply-To: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> To: linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-iio@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org Cc: Vinod Koul , Frank Li , Lars-Peter Clausen , Eugeniy Paltsev , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Jonathan Cameron , David Lechner , Andy Shevchenko , Jaroslav Kysela , Takashi Iwai , Mark Brown , Andy Shevchenko X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788176799; l=16418; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=KaBHTDWTzlX+KIte0tBVjpY9cl1keME0NcWoIem83mY=; b=Kzz9zh53DpY5a8ihazOSU5SRcOqGt9JnXQXUtYKu6Br6yjP/0tXBIVY1YTUVja8siQM+gWw7R ltkcjbIdWx2D7q/cZoDp7H3j8uWzms37SxDuzld2M0JvdbhnaFpXSqZ X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-ClientProxiedBy: MA3P292CA0067.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:49::8) To SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5469:EE_|EA8PPFB3C90C3D5:EE_ X-MS-Office365-Filtering-Correlation-Id: 48e457bb-1611-4ee7-4b2f-08df07555b81 X-LD-Processed: eaa689b4-8f87-40e0-9c6f-7228de4d754a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|1800799024|376014|7416014|10067099003|6133799003|3023799007|22082099003|18002099003|11063799006|56012099006|5023799004; X-Microsoft-Antispam-Message-Info: sBn2rG2YYgDsvKC5v35V7RGbw+gUXTZ1wTG9vSUUcHxSz3sLEviFkA7mkgt9HCZjyQSB85DBCggFHR24yMBv7X0Cby/SaDOwOa/YAuBGOWBc6X1S0Tzp+BxbIBQ6Vpd3PvjKjJZS2wF8LMyLD9sHZawGJb92syfNUPPpRtRNRojMfDmr0wWve06slWkrePE0xLufXw93bqZV1v6QHcOchv165hptX/T5gsNO2L3BhYIEJUe6sm1xbBMyPF2CYQUvg9K7SdWFM153n5N1S8VKOjzHxg2VKDJUGNxvAyw2Uep6MO9tzRQzmOWPpVCe00prmsFqwFe2LMjctWS7EMYSWCCRQ5mCs4oMpKoOoz5Z/RonBi5FxXDUSe1wnbGuCltJ7YYfKYks4vs3pxBdpkemMW+asqc1A+LhyBEHi95FJIvo7UwORH/oECgY393PsaRcH4PBdh+//a8ovsOz8vIlt9os49NNqAPcHxVMlWarP7fv5zkAIrOoib+eTZ/lQ7YNBdWC+T4DHLvOI9zT3BMpyv4eOXFYuNfZF4QJ4rQOLDEyl7i9mrrJB2pWMQUs3tLOGUBWU1jjV0HG/dQofsuBGhlOGcWIdCMiKGJ9HqglAw+989Y1hSdw/L1d1KZUL3JhOJWNY2XgYkFBadET+P9Jl9xhxCPPzu3eN6j456WHQro= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5469.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(1800799024)(376014)(7416014)(10067099003)(6133799003)(3023799007)(22082099003)(18002099003)(11063799006)(56012099006)(5023799004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WkR2SXdtTWlEWG5NVnVLcmh4RE5iRDhQWC9haGZ0NXI0MEhIM3pmbG5WTEtO?= =?utf-8?B?M0pFZUZaSDFCWHBXVFh0ZU5zd2ZUaU5qMjZDblRIbmlGaHF3MEEvcVVaMFBw?= =?utf-8?B?YmdhSzMwb1FWOUxDV0tuN3lqL2NsVlJmaXBHRFBZMWhuMUJuYU5UZUVtdUFZ?= =?utf-8?B?NE84VUtTQ01lUVBVczJPckRzZGhsUmNPbDhFVEJ3SjlJV01RSjYxSUJlVlFR?= =?utf-8?B?OWN5eXFxKy9scVpwMEhCaGh6UG5HN1VvYStNMFhYR3JKeGMvS3FwMEY1dzQ1?= =?utf-8?B?S0MxNFZFR1p2YUtXSG9va3BKeFBqVFNMbktobDNWUWJ5bXhncFRiMjVlelRj?= =?utf-8?B?bjhjNkJRVTh4MU1NQy9wZ0V4eWpPUW1PdmNEUjFjWVV0ME1KQStYbjgzZmRo?= =?utf-8?B?YzNHNHg1bVgwRmthNmFBN0xvQVJTbnE5NUxnTjVTT3dlYThhenVDaEl3Wi9o?= =?utf-8?B?aHVRQVQ0aEw4MDBMWm9kaHF2VW42VUY2RG12Ymp0ait0UWRKeFpKeXJhcUth?= =?utf-8?B?enc0R2VxeFNvSE91a1BDRGxKY2ZrUDg3am1aa1BaUzA3Yy9kMzlUZDU4TTVZ?= =?utf-8?B?elBHUlVxeUJSTDVRYTg0RHhqTjZyQTlISmVNb2lEK2RkSnpTb2dHUWNEV1Jw?= =?utf-8?B?WGE3NEZrT052UFRCU0xLcEhIYTNQKzhTQkVVL1VvRmZXV29IQ1M3cFZjTlU1?= =?utf-8?B?M1l3SkMwR1QyRXZocExBK0RnNzVyZWE0OGQ5K0ZoZnFVcGtkNjFhRGlLbUZ4?= =?utf-8?B?d0VNVm4zNUFFc1ZuVWJvSE9rUHhXY3dWV1oycmNEeENLTVJ2UTJjVVkyZVpo?= =?utf-8?B?em9KOFpQTEdwdSt0czU5c2N6eHpJZXEraVUvbXVySWc5czlMdzF2T2FxQjFT?= =?utf-8?B?eXpFVUUyMEVLQ1ZUWExKaWc3UWt4M21GU1dxbGJxL1hTQTJNSWFTL1JtRk15?= =?utf-8?B?OTdidjhTUDJMNTNRT0RLYjZyTWplT01xTFY2bFUvaXFRb2JyY21jcU9EbFhQ?= =?utf-8?B?TisxK0p1L3FtdSs3Q3dGZWQwdlA1VGNUdTRkZU5pQXViSXNaN3cranp4SnVp?= =?utf-8?B?aC9WcVlWd0FmWndhSkF1d2V4Vzc2NUp4UDVjRUxLSnoxQUxjalVTYXQ4dHdu?= =?utf-8?B?WHFELzhCN0phbDYra1FRZ1NXMXVQYnFCVWVUbTRzc3pwdUF5ZDNTMDNSRUd6?= =?utf-8?B?VUs0Z20yNlhxdXVuYTZ2aUVqNzJqL25WUkhtcjYyZStLODhPdm83N0dITkhL?= =?utf-8?B?amptdlJGT2xxa2lsdCsxMnpKY21ONlMzK3FUK0pHV1ZDN2crM2F4djJVNGh4?= =?utf-8?B?RjdKN3FCdVBrdmxPYStTU3k4V0h1UUUrZkNEenZCcHB0dnNNYVZ3Y1lLMkpl?= =?utf-8?B?ZXNoTi9Jazdya1lLNm5ISEhOQUh2dXZlV0lLVEV4VnYzd3lMZ1grTElkS1pt?= =?utf-8?B?aU9FeTZ6MlJoZU1uTnJIR294Y2c1Y3VYQ282amJYWHpKZ0lCbVgyRXpPWUhi?= =?utf-8?B?R2oxc0RmVE44dHQwMkU3ZkFQNk9vRHlnQjJuL0d1ZnM3K2dTc1oxRzR3UFBv?= =?utf-8?B?Vnhpd0txZ2ZxR3FTTHNacldqa1JZRXdHOVNWZGhVKzVCbHd0NEhmM29lYXhx?= =?utf-8?B?R3pDaFh3RVBOVlJSQlBtZVJubEJlK0RNUy9MeGJCZ1FTVTNFb1o3OGtoZTU2?= =?utf-8?B?VkFzeHJRdlk1WnprMlo5aWpneWdQT1F6WXhTMEZMV0wxMDZVY2pkNXgvZDRB?= =?utf-8?B?ckp1N2o4dGJEMHpadHFhejF2YkhuZHczZWRrREkzbW1jVXNxR2xLM0NHenZ3?= =?utf-8?B?cHhMa2p4d0ZFeG1WMTZ4VXhwd01yazdnREMwaFhtL3FtNjhRNG56QS81RkJz?= =?utf-8?B?NzdMMk5telRYelRyU1ByOHQrdVRiUGc4R2VYbGJFeXdzTEJneDBONnFYOFpt?= =?utf-8?B?RnNkV2ZpYW9HVlMyVXRueVloODh0UzBVOUtqZUJxYzYvbWo2a0kxalV0SGQx?= =?utf-8?B?bDJnVDUvNTZOQU9HQjN1dDBkRkYxMU9BdHRZUjRnbUxINFhLODVvRzNnQ0hW?= =?utf-8?B?SkFhUXhoWHI5blhQVlpsVUR5VlZrTmMvbXkvY0tCSHY4WWRJTXlBQlM3RFdB?= =?utf-8?B?a2ZPNXBIN1ZTNWtITkhPWThWaTVhZlpUMkFNNDZJUVY4eG5teXBXNGFsMzFV?= =?utf-8?B?Z1VuKzJlSkkycVhCTTlrQUlsM2ZHWFFYTVEzZ0tvZWpSdWtua0daOFNmVkVa?= =?utf-8?B?bDI4YWZGY1BVU3YwQTVycU1lNHFEdDVrOEFUVWtxOFdSU1RmTWVPOXBKNEVn?= =?utf-8?B?aDB4SlgzajlXZUxFTkttdVBSV09vUW83eitNZkQ5ZGpwNFpiZ2dxUT09?= X-Exchange-RoutingPolicyChecked: Z/o23GM1VFMtSEJm8fdsZ1TIjtdrUS/7fLxpaEcim1bNTpOxNjBTzSe7I7uXJgzrwPxcukKggRaShcSwdYlDKj7HUxBo7Ub8XPg7D6ZO8zUjktM6KiUnt8BGpYTE9U3xSwR4lcH20WuDjgWxwGgegQ5uUWPsyOdK1smgJvae7mbQ9N1E5hkeQkmY31bP9LTsNqu/HNYFJMN0NfSIFU1Jwktea2IItaHLE477AQNJuMDzbRUtfeWvydrnNkwb0S+LE+TX5hnD+TQ+5AVs1/XgwbPoGSybdBwhC3i2lcxEH6x/xaIhOg509fFPBwMdZ+f+ACy3UhTysuP2VsSXMQzVKw== X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: 48e457bb-1611-4ee7-4b2f-08df07555b81 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5469.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 11:45:30.0985 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4BiuU+hj50JSF5dHbTsnEqbxXcQri29VI+sqHfqxTiZgTmrxoCjHFr7kCwmMDZ5Lg1nA0ixWEZsZXKcWcv2Zmg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: EA8PPFB3C90C3D5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfX9W5uqukdhAaA D8e2sgZ5w/L2p2QSG9UhlKeLpjPJ3DdoI6kDQ7N5md8n/XWUkX3qYKFI7b0NdcOvi5w2CJVNAlk uxcJhMtPIAhWmGhL6qnWUlUvnyqcOndGkWAcIh4Ia0Lc0Nw+J5Tu1fRo0pRWm+vZH7Yy/miOeOD +HHyKfWn/ACC0nEmxR8vsNrShasR6UMIu3+RaIe7kK4CxwthRwrv78qOQ3v8u57cdbKACt8a6/y PK+AeocAi8E0VO8pzzPTDdnA+LMZ52TBDBnCCrY4ArwfYozpya96AHdSS40oAfjCdQLh+xpSL1+ UK3rx+uGPjVxx9BvehEVnjbsyuXmLAOv76CgYnzGcrIDo+GKhp3WsqVHU96BMgvsZHxDzyGz027 HHSgSU+/RenJLosleRmcLW3dr7MWsiXxM9ZXWtnzr1cdBfcrWWT0VDivJU/0vK2Ifz+KkRd2lp3 eFYfd9Wsh9CWPLX9ysQ== X-Proofpoint-ORIG-GUID: Jn9ye9FxGN6I7TcMYQnM-kvglrcoM0Z7 X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfX6tUy0MELE8Gx dmzRG99DO/Q9N9jzISuH1egk0D66aQTqxWz89gzeZPX5Z5KRSxhJcn3KDITXRp5iKgqVDbpKsbH JL4ky6rRi+EYaRjmTA+89PJ9eyOn+/WX5rEeZXXXANND0vlnp9ez X-Proofpoint-GUID: Jn9ye9FxGN6I7TcMYQnM-kvglrcoM0Z7 X-Authority-Analysis: v=2.4 cv=fLkJG5ae c=1 sm=1 tr=0 ts=6a95695c cx=c_pps a=e24IK3jsPB00aLvKg+wNHQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=0sLvza09kfJOxVLZPwjg:22 a=ZQxX5BWu6Z8IJBb2zLX7:22 a=QyXUC8HyAAAA:8 a=gAnH3GRIAAAA:8 a=154AB15e2GutjyN8M5kA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_04,2026-08-27_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 impostorscore=0 malwarescore=0 phishscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608310101 The src_addr_widths and dst_addr_widths capability masks encode each supported width as a bit whose position equals the corresponding enum dma_slave_buswidth value (e.g. DMA_SLAVE_BUSWIDTH_4_BYTES sets bit 4). As these masks are plain u32, widths of 32 bytes and above (DMA_SLAVE_BUSWIDTH_32/64/128_BYTES map to bits 32, 64 and 128) cannot be represented at all. Introduce bitmap-based bus width capabilities that span the full enum range, through a new dma_buswidth_mask_t type modeled after dma_cap_mask_t. To allow DMA controller drivers to be converted incrementally, the legacy dma_device u32 fields are kept alongside the new masks and the core folds a legacy-only driver's u32 into the mask when the device is registered, so consumers only ever have to look at the mask. The new interface lives in two new headers under a new include/linux/dma/engine/ directory instead of growing linux/dmaengine.h, which is included nearly everywhere: - dma/engine/types.h holds enum dma_slave_buswidth and the new dma_buswidth_mask_t type. Like dma_cap_mask_t, the type only needs DECLARE_BITMAP(); - dma/engine/widthmask.h holds the accessors which are based on the new dma_buswidth_mask_t type. This gives us freedom to change the core without affecting consumers as they only see (and should only use) the new type. Note the fold only has to happen in one direction on the producer side: nothing outside a controller driver reads the legacy dma_device fields, so a converted driver's mask is not mirrored back into them. The legacy dma_slave_caps fields are different, as consumers not converted yet still read them: dma_get_slave_caps() derives them from the mask when a device_caps() callback adjusted it. Both go away with the legacy fields. Suggested-by: Andy Shevchenko Signed-off-by: Nuno S=C3=A1 --- Frank, I dropped your tag because there's lot's of changes on this one! --- MAINTAINERS | 1 + drivers/dma/dmaengine.c | 49 ++++++++++- include/linux/dma/engine/types.h | 41 +++++++++ include/linux/dma/engine/widthmask.h | 164 +++++++++++++++++++++++++++++++= ++++ include/linux/dmaengine.h | 56 ++++++------ 5 files changed, 281 insertions(+), 30 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 4d294df29a0d..f6b6b3ca503c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -7649,6 +7649,7 @@ F: Documentation/driver-api/dmaengine/ F: drivers/dma/ F: include/dt-bindings/dma/ F: include/linux/dma/ +F: include/linux/dma/engine/ F: include/linux/dmaengine.h F: include/linux/of_dma.h =20 diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index 6ffd8bd82154..ae85d26b4803 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c @@ -33,7 +33,9 @@ =20 #include #include +#include #include +#include #include #include #include @@ -592,8 +594,11 @@ int dma_get_slave_caps(struct dma_chan *chan, struct d= ma_slave_caps *caps) if (!device->directions) return -ENXIO; =20 + dma_bus_width_copy(caps->src_bus_widths, device->src_bus_widths); + dma_bus_width_copy(caps->dst_bus_widths, device->dst_bus_widths); caps->src_addr_widths =3D device->src_addr_widths; caps->dst_addr_widths =3D device->dst_addr_widths; + caps->directions =3D device->directions; caps->min_burst =3D device->min_burst; caps->max_burst =3D device->max_burst; @@ -611,9 +616,31 @@ int dma_get_slave_caps(struct dma_chan *chan, struct d= ma_slave_caps *caps) * callback to override the generic capabilities with * channel-specific ones. */ - if (device->device_caps) + if (device->device_caps) { device->device_caps(chan, caps); =20 + /* + * A driver already converted to the bus width interface + * adjusts the masks, so derive the legacy capabilities from + * them for the consumers not converted yet. Drivers not + * converted adjust the legacy capabilities directly, in which + * case there is nothing to do. + * + * Goes away with the legacy dma_slave_caps fields. + */ + if (!bitmap_equal(caps->src_bus_widths.bits, + device->src_bus_widths.bits, + DMA_SLAVE_BUSWIDTH_MAX)) + caps->src_addr_widths =3D bitmap_read(caps->src_bus_widths.bits, + 0, 32); + + if (!bitmap_equal(caps->dst_bus_widths.bits, + device->dst_bus_widths.bits, + DMA_SLAVE_BUSWIDTH_MAX)) + caps->dst_addr_widths =3D bitmap_read(caps->dst_bus_widths.bits, + 0, 32); + } + return 0; } EXPORT_SYMBOL_GPL(dma_get_slave_caps); @@ -1170,6 +1197,24 @@ void dma_async_device_channel_unregister(struct dma_= device *device, } EXPORT_SYMBOL_GPL(dma_async_device_channel_unregister); =20 +/* + * DMA controller drivers not converted to the bus width helpers only fill= in + * the legacy u32 masks, which cannot hold widths of 32 bytes and above. F= old + * them into the mask so that consumers only ever have to look at the mask. + * + * Goes away with the legacy dma_device fields. + */ +static void dma_device_fold_legacy_bus_widths(struct dma_device *device) +{ + if (bitmap_empty(device->src_bus_widths.bits, DMA_SLAVE_BUSWIDTH_MAX)) + bitmap_from_arr32(device->src_bus_widths.bits, + &device->src_addr_widths, 32); + + if (bitmap_empty(device->dst_bus_widths.bits, DMA_SLAVE_BUSWIDTH_MAX)) + bitmap_from_arr32(device->dst_bus_widths.bits, + &device->dst_addr_widths, 32); +} + /** * dma_async_device_register - registers DMA devices found * @device: pointer to &struct dma_device @@ -1231,6 +1276,8 @@ int dma_async_device_register(struct dma_device *devi= ce) dev_dbg(device->dev, "WARN: Device release is not defined so it is not safe to unbind this = driver while in use\n"); =20 + dma_device_fold_legacy_bus_widths(device); + kref_init(&device->ref); =20 /* note: this only matters in the diff --git a/include/linux/dma/engine/types.h b/include/linux/dma/engine/ty= pes.h new file mode 100644 index 000000000000..92f3dec18bc5 --- /dev/null +++ b/include/linux/dma/engine/types.h @@ -0,0 +1,41 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Basic types shared by the DMA engine interfaces. + */ +#ifndef LINUX_DMA_ENGINE_TYPES_H +#define LINUX_DMA_ENGINE_TYPES_H + +#include +#include + +/** + * enum dma_slave_buswidth - defines bus width of the DMA slave + * device, source or target buses + */ +enum dma_slave_buswidth { + DMA_SLAVE_BUSWIDTH_UNDEFINED =3D 0, + DMA_SLAVE_BUSWIDTH_1_BYTE =3D 1, + DMA_SLAVE_BUSWIDTH_2_BYTES =3D 2, + DMA_SLAVE_BUSWIDTH_3_BYTES =3D 3, + DMA_SLAVE_BUSWIDTH_4_BYTES =3D 4, + DMA_SLAVE_BUSWIDTH_8_BYTES =3D 8, + DMA_SLAVE_BUSWIDTH_16_BYTES =3D 16, + DMA_SLAVE_BUSWIDTH_32_BYTES =3D 32, + DMA_SLAVE_BUSWIDTH_64_BYTES =3D 64, + DMA_SLAVE_BUSWIDTH_128_BYTES =3D 128, + DMA_SLAVE_BUSWIDTH_MAX +}; + +/** + * typedef dma_buswidth_mask_t - bus width capabilities bitmap modeled aft= er + * dma_cap_mask_t. + * + * Each supported bus width is represented by the bit whose position equal= s the + * corresponding enum dma_slave_buswidth value, e.g. a device supporting a= bus + * width of 4 bytes has bit 4 set. + */ +typedef struct { + DECLARE_BITMAP(bits, DMA_SLAVE_BUSWIDTH_MAX); +} dma_buswidth_mask_t; + +#endif /* LINUX_DMA_ENGINE_TYPES_H */ diff --git a/include/linux/dma/engine/widthmask.h b/include/linux/dma/engin= e/widthmask.h new file mode 100644 index 000000000000..211c29712bea --- /dev/null +++ b/include/linux/dma/engine/widthmask.h @@ -0,0 +1,164 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Bus width capabilities of DMA engine devices and channels. + */ +#ifndef LINUX_DMA_ENGINE_WIDTHMASK_H +#define LINUX_DMA_ENGINE_WIDTHMASK_H + +#include +#include +#include + +/** + * dma_bus_width_valid - test if a bus width is a valid one + * @width: bus width to validate + * + * Return: true if @width is a valid &enum dma_slave_buswidth, false other= wise. + */ +static inline bool dma_bus_width_valid(enum dma_slave_buswidth width) +{ + switch (width) { + case DMA_SLAVE_BUSWIDTH_UNDEFINED: + case DMA_SLAVE_BUSWIDTH_1_BYTE: + case DMA_SLAVE_BUSWIDTH_2_BYTES: + case DMA_SLAVE_BUSWIDTH_3_BYTES: + case DMA_SLAVE_BUSWIDTH_4_BYTES: + case DMA_SLAVE_BUSWIDTH_8_BYTES: + case DMA_SLAVE_BUSWIDTH_16_BYTES: + case DMA_SLAVE_BUSWIDTH_32_BYTES: + case DMA_SLAVE_BUSWIDTH_64_BYTES: + case DMA_SLAVE_BUSWIDTH_128_BYTES: + return true; + default: + return false; + } +} + +static inline int __dma_bus_width_set_many(dma_buswidth_mask_t *mask, + const enum dma_slave_buswidth *widths, + unsigned int n_widths) +{ + for (unsigned int i =3D 0; i < n_widths; i++) { + if (!dma_bus_width_valid(widths[i])) + return -EINVAL; + + __set_bit(widths[i], mask->bits); + } + + return 0; +} + +/** + * dma_bus_width_set_many - set the supported bus widths + * @mask: bus width mask + * @widths: array of supported bus widths + * @n_widths: number of entries in @widths + * + * Return: 0 on success, -EINVAL if @widths contains an invalid bus width.= Note + * that the bus widths validated before the failing one are still set. + */ +#define dma_bus_width_set_many(mask, widths, n_widths) \ + __dma_bus_width_set_many(&(mask), (widths), (n_widths)) + +/** + * dma_bus_width_set - set a single supported bus width + * @mask: bus width mask + * @width: supported bus width + * + * Return: 0 on success, -EINVAL if @width is invalid. + */ +#define dma_bus_width_set(mask, width) \ + __dma_bus_width_set_many(&(mask), (const enum dma_slave_buswidth[]){ (wid= th) }, 1) + +static inline int __dma_bus_width_clear(dma_buswidth_mask_t *mask, + enum dma_slave_buswidth width) +{ + if (!dma_bus_width_valid(width)) + return -EINVAL; + + __clear_bit(width, mask->bits); + + return 0; +} + +/** + * dma_bus_width_clear - remove a bus width from a bus width mask + * @mask: bus width mask + * @width: bus width to clear + * + * Return: 0 on success, -EINVAL if @width is invalid. + */ +#define dma_bus_width_clear(mask, width) __dma_bus_width_clear(&(mask), (w= idth)) + +static inline bool __dma_bus_width_test(const dma_buswidth_mask_t *mask, + enum dma_slave_buswidth width) +{ + if (!dma_bus_width_valid(width)) + return false; + + return test_bit(width, mask->bits); +} + +/** + * dma_bus_width_test - test if a bus width is part of a bus width mask + * @mask: bus width mask + * @width: bus width to test + * + * Return: true if @width is set in @mask, false otherwise. + */ +#define dma_bus_width_test(mask, width) __dma_bus_width_test(&(mask), (wid= th)) + +static inline enum dma_slave_buswidth +__dma_bus_width_min(const dma_buswidth_mask_t *mask) +{ + enum dma_slave_buswidth width =3D find_first_bit(mask->bits, + DMA_SLAVE_BUSWIDTH_MAX); + + if (width =3D=3D DMA_SLAVE_BUSWIDTH_MAX) + return DMA_SLAVE_BUSWIDTH_UNDEFINED; + + return width; +} + +/** + * dma_bus_width_min - get the smallest bus width of a bus width mask + * @mask: bus width mask + * + * Return: the smallest bus width set in @mask, or + * %DMA_SLAVE_BUSWIDTH_UNDEFINED if @mask is empty. + */ +#define dma_bus_width_min(mask) __dma_bus_width_min(&(mask)) + +static inline void __dma_bus_width_copy(dma_buswidth_mask_t *dst, + const dma_buswidth_mask_t *src) +{ + bitmap_copy(dst->bits, src->bits, DMA_SLAVE_BUSWIDTH_MAX); +} + +/** + * dma_bus_width_copy - copy a bus width mask + * @dst: bus width mask to copy to + * @src: bus width mask to copy from + */ +#define dma_bus_width_copy(dst, src) __dma_bus_width_copy(&(dst), &(src)) + +static inline bool __dma_bus_width_and(dma_buswidth_mask_t *dst, + const dma_buswidth_mask_t *src1, + const dma_buswidth_mask_t *src2) +{ + return bitmap_and(dst->bits, src1->bits, src2->bits, + DMA_SLAVE_BUSWIDTH_MAX); +} + +/** + * dma_bus_width_and - intersect two bus width masks + * @dst: bus width mask to store the result in + * @src1: first bus width mask + * @src2: second bus width mask + * + * Return: true if @dst has at least one bus width set, false otherwise. + */ +#define dma_bus_width_and(dst, src1, src2) \ + __dma_bus_width_and(&(dst), &(src1), &(src2)) + +#endif /* LINUX_DMA_ENGINE_WIDTHMASK_H */ diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index fe33a20abc61..31c57d3dcb53 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -5,7 +5,9 @@ #ifndef LINUX_DMAENGINE_H #define LINUX_DMAENGINE_H =20 +#include #include +#include #include #include #include @@ -384,23 +386,6 @@ struct dma_chan_dev { bool chan_dma_dev; }; =20 -/** - * enum dma_slave_buswidth - defines bus width of the DMA slave - * device, source or target buses - */ -enum dma_slave_buswidth { - DMA_SLAVE_BUSWIDTH_UNDEFINED =3D 0, - DMA_SLAVE_BUSWIDTH_1_BYTE =3D 1, - DMA_SLAVE_BUSWIDTH_2_BYTES =3D 2, - DMA_SLAVE_BUSWIDTH_3_BYTES =3D 3, - DMA_SLAVE_BUSWIDTH_4_BYTES =3D 4, - DMA_SLAVE_BUSWIDTH_8_BYTES =3D 8, - DMA_SLAVE_BUSWIDTH_16_BYTES =3D 16, - DMA_SLAVE_BUSWIDTH_32_BYTES =3D 32, - DMA_SLAVE_BUSWIDTH_64_BYTES =3D 64, - DMA_SLAVE_BUSWIDTH_128_BYTES =3D 128, -}; - /** * struct dma_slave_config - dma slave channel runtime config * @direction: whether the data shall go in or out on this slave @@ -495,10 +480,11 @@ enum dma_residue_granularity { =20 /** * struct dma_slave_caps - expose capabilities of a slave channel only - * @src_addr_widths: bit mask of src addr widths the channel supports. - * Width is specified in bytes, e.g. for a channel supporting - * a width of 4 the mask should have BIT(4) set. - * @dst_addr_widths: bit mask of dst addr widths the channel supports + * @src_bus_widths: mask of source bus widths the channel supports. + * @src_addr_widths: legacy bit mask of source bus widths the channel supp= orts. + * @dst_bus_widths: mask of destination bus widths the channel supports. + * @dst_addr_widths: legacy bit mask of destination bus widths the channel + * supports. * @directions: bit mask of slave directions the channel supports. * Since the enum dma_transfer_direction is not defined as bit flag for * each type, the dma controller should set BIT() and same @@ -517,8 +503,14 @@ enum dma_residue_granularity { * resubmitted multiple times */ struct dma_slave_caps { - u32 src_addr_widths; - u32 dst_addr_widths; + struct { + dma_buswidth_mask_t src_bus_widths; + u32 src_addr_widths; + }; + struct { + dma_buswidth_mask_t dst_bus_widths; + u32 dst_addr_widths; + }; u32 directions; u32 min_burst; u32 max_burst; @@ -811,10 +803,10 @@ struct dma_filter { * @dev: struct device reference for dma mapping api * @owner: owner module (automatically set based on the provided dev) * @chan_ida: unique channel ID - * @src_addr_widths: bit mask of src addr widths the device supports - * Width is specified in bytes, e.g. for a device supporting - * a width of 4 the mask should have BIT(4) set. - * @dst_addr_widths: bit mask of dst addr widths the device supports + * @src_bus_widths: mask of source bus widths the device supports. + * @src_addr_widths: legacy bit mask of source bus widths the device suppo= rts. + * @dst_bus_widths: mask of destination bus widths the device supports. + * @dst_addr_widths: legacy bit mask of destination bus widths the device = supports. * @directions: bit mask of slave directions the device supports. * Since the enum dma_transfer_direction is not defined as bit flag for * each type, the dma controller should set BIT() and same @@ -896,8 +888,14 @@ struct dma_device { struct module *owner; struct ida chan_ida; =20 - u32 src_addr_widths; - u32 dst_addr_widths; + struct { + dma_buswidth_mask_t src_bus_widths; + u32 src_addr_widths; + }; + struct { + dma_buswidth_mask_t dst_bus_widths; + u32 dst_addr_widths; + }; u32 directions; u32 min_burst; u32 max_burst; --=20 2.55.0 From nobody Sat Sep 26 18:55:09 2026 Received: from mx0b-00128a01.pphosted.com (mx0b-00128a01.pphosted.com [148.163.139.77]) (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 E039B3E0C5F; Mon, 31 Aug 2026 11:46:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.139.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176780; cv=fail; b=KyDfXqorhwPfbGpVObvgsqHrS6TaRI1gUUtsQZYkQTgWsi4oEH6/Slsd8ilSLxLAvIStcuPHyPgb151pl2Fv2RJOjFNr1hFwKwlydLUEW7Cdbv7Nqf/4PpA5gfYR7nuz3skKLxnMasF3cuKu9nMzNH6yWuj2YrngrxHEd5NTChE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176780; c=relaxed/simple; bh=q3CJUNsBSo1n6GXoGzOFCX9rWXYm3swN7H03Yuiu14s=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=btVno7pWLpnvSKDnZnAZyvT3PbEstCrqjgDkbvKqtAiRcF54zMwJ7pUReLlASR6GFeQiO1R4EzmjZScN53gXlQY+bivnB6nfDlq3SPSkjf3QWSMZPiQKx11cu9cCLNAybfuOTF0w6VQ1L6eVZRMS1yZwzbcOXTpSnswsCdVXyTw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=VaCr5EIm; arc=fail smtp.client-ip=148.163.139.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="VaCr5EIm" Received: from pps.filterd (m0167091.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VB9o7B238483; Mon, 31 Aug 2026 07:45:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=DcZ2P m1dxPNF2LY62jR5/LCb34okoVFBcjgApNN4onE=; b=VaCr5EImH0jfZCCZ/3+F8 0wYBOePKG2TmMH/fnQx30eF0I/GIvMnBsBP4lhWeTmWavu0P07c7moVf2o/3/Dcb JuiqKF/7k7EzBTtM44h0Z1Yge2Yp+91+FPOZ6mGEihBtmz7JrKiRr5mIxhcx0hmK pcIOmtsbrKqNcke9VNzoVcRDx1zlPKlQ4PWmDugig3qPTP/xFQP1uzLA98gC1gB0 AkwOukZlkJLRXGh6eVtq1A2bF8g8u/wnrr3FAtpM/hPSR+AUX8taARP8X5vNPtQG 5FH8LmRQssJfWM7uT0CrM9AIT8HgV3F2rdtNc0dgv2VbSjoX6OBI6S2DRxH0sxeQ g== Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012033.outbound.protection.outlook.com [40.107.209.33]) by mx0b-00128a01.pphosted.com (PPS) with ESMTPS id 4gbs68e0cv-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 31 Aug 2026 07:45:35 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a7LJ7xcVpvrrGbh+iy5o1ugpmrRWGwyuXriT4xIJYR5yBdcMD2R3jnJCUHN3bkc28mEBKHALSu1UiUOAF0L+U6fmJT4JkJhJ1rKsjpmIFVRCp3IeHmm2QH1CbjOBQKun6xIMxnyWZJB2dL2cggkpWEA7iEZ4gB7UD2X98FXz3o18EjEdIqm7jMXmnQD6UMbOplMMOKBjS2EmbmyHMcMhIJTOCZLtTHUA9RBJ7lUoxbW4VA9IdHQNcKXbhL+/sg0Cb3YpXGD2VVJfaBB5eDzi392GtHEmNG9Qv5wgV23sA7ZPkGA4vFvZ7Y5pJ/Om/7kmpjWAE5tijulR9GA/nW4V3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DcZ2Pm1dxPNF2LY62jR5/LCb34okoVFBcjgApNN4onE=; b=Ysu46K2oTpwdb60re/MhSw7wOVprDzvUNTIItq6Fi8Wt8156G12j0cNR+wP2Ux4iEpVgItlHfF3X2E7bx7rnDeSPe8frVxnxuHtYcSHVvv6UcQlCv3zUwyXV9MrP42C33R7R+Zinw1vFlCm8qtaVurD4eMLORicstvHw3gtGVf/KB0s3np5a+KqMyFGZAjzpwqn0/PEc/5rfdsdAoG9mn8EWlOFg33Jw0D/HPX8VS/WFw2MEonWk4GVXoxAhpBc5fhDXbJlxEfz8jkKhRLRsWtMs+HZJP3t4y52p6GotOZtiNrA4BhxCCG0fOzvWU56pmlYK/XpUJtlvv5VrweyzkQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none Received: from SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) by EA8PPFB3C90C3D5.namprd03.prod.outlook.com (2603:10b6:30f:fff5::855) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Mon, 31 Aug 2026 11:45:33 +0000 Received: from SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a]) by SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a%6]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 11:45:33 +0000 From: =?utf-8?q?Nuno_S=C3=A1?= Date: Mon, 31 Aug 2026 12:46:39 +0100 Subject: [PATCH v3 2/9] dmaengine: dma-axi-dmac: Use bus width capability helpers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-dmaengine-support-wider-dma-masks-v3-2-507d97496f2d@analog.com> References: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> In-Reply-To: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> To: linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-iio@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org Cc: Vinod Koul , Frank Li , Lars-Peter Clausen , Eugeniy Paltsev , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Jonathan Cameron , David Lechner , Andy Shevchenko , Jaroslav Kysela , Takashi Iwai , Mark Brown , Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788176799; l=2075; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=q3CJUNsBSo1n6GXoGzOFCX9rWXYm3swN7H03Yuiu14s=; b=YLuRhZtRXulIBh8pk7+Dv5OolIinTrAr5YOIDlnGCTFvg6GmHpqzIk6AMrC/lPlEJXn5YQ5B4 K5ryOw5ah/JBuidmygD3CwmJwpqMKmtsbuqqCG4vY+aO3oTvVF7Cz5w X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-ClientProxiedBy: MA3P292CA0036.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:46::15) To SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5469:EE_|EA8PPFB3C90C3D5:EE_ X-MS-Office365-Filtering-Correlation-Id: bed635d5-4090-452a-95c3-08df07555d8c X-LD-Processed: eaa689b4-8f87-40e0-9c6f-7228de4d754a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|1800799024|376014|7416014|10067099003|22082099003|18002099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: d2J4ER5AEbwNnYoD+TNezvLUTPipALoQYId/k+SzytTSU5UAmCOznoWFP2bbiT9fGfBoifHXYW3V9T+mjYkP0FOMUz9dvJ8EVAs+0UnBQdxGKI9sg8cDMF1fkftmRla4SHbIMEnd5OvDp1mgdnJTFs3eifW0x7cs5jnNhXKHlU/c7awQxhhFgICoC3FPnkgdbHj5MnkjQvbTmG6xJg4cQmK+asIPK4OsVjVsfZrpogU6teBGvMRXlYymA+/idhf3SnmghbzU1RuG8kmNwuWkJoot29XS45b5Ht3kgMQrsJDbeQAb7sELKqemGAPJHDoKQFSdAIQIAzlLjqwVNSCqH1TuTOfyGnoG9V6NbJ3R2bTVVf9IXJldF/1iMJrEZfz318cslUtp+BhK50eVBsGH72gcUYqM4HAMA/c6OghJx9Z0PZApQfQkOx9ijTJpfujKYSovmZbOX5F4+O/XNGzh9QVsMH5OLX7ZNwhRuHiY20UYtFopZZWYZbSs0zyJqIzTquk7jWEl3MV+PA2l6hLihTemlh8hM7SX3d58sE9fVbTjANlaKMhtTf71sa5XEWlLyL0ZCtREUKGQLwO4fc2JZNl7sRYsmtmtalGwJ8Y0eYJvw7BWPsmQsUGpasDR6WwFom8An1R+h+xkox/ys/6IeJdvLl886CitFtha6vFfXps= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5469.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(1800799024)(376014)(7416014)(10067099003)(22082099003)(18002099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?alAwL1lISjRrR0ZRSW41ZHFyQVlFSmJ5RUJQRzJVYWdmNUZHSk1GamJEUGMw?= =?utf-8?B?Zk11Um9QOE9lM21ReDZ5cmxDOUFSYkl2T3ArYjBBeXI2a0ZGSUY5VG50OHFr?= =?utf-8?B?TzlYZnBwWlhkc25qSm8wUStGcDBOK1A4MC8vSlJON055Y1pocTdkSm5FSDNL?= =?utf-8?B?NjdQTXkyVEdKVFp3TVdIMTh5cEhnM3VCOVlkTDN3bURmZWNPdngrTjVLYzg0?= =?utf-8?B?TW5PK2k2Z0Y1WlVsSmtqMmZjNnozL3M0MzJOT0Z3NGx1NXFRQ1h5R3BDNWF5?= =?utf-8?B?QWNqeE50R21TalpxeEsyNWE5UDlQcW5DcktCNTVLK0Q0dDk1eitzaUdKK3Rz?= =?utf-8?B?RlZIYWtJenZvK21vWG5JTjJKZ3FBU1VldWlTaWk5ZnlGR2psbCt1M3lqSWlB?= =?utf-8?B?elF5N1FDK0dZclpQT0FOYXNKdkpvYnY1SDBGL3g3NEwxNG5ZS2NXZjFnc3FS?= =?utf-8?B?cTJwZmFOSzZldXdMVmRBVTR6NTU0R3hBcGIxZ2E3RG1WSzVuTmF2TEdKdjk0?= =?utf-8?B?UkFqMkpHVWkzZEo3c0c2NnRvR0dqSjBkNHlmN00rYnZiY29PcTdsNkI5TlVq?= =?utf-8?B?OE9kdmlweHJvdFY3Qmp2b0tpUmdRVWF6TFk5cjFhcjViWjN5MDBHRmI2M1dh?= =?utf-8?B?VmpiZ0ZUekNLR1VnbWJPTHE2dEZEdHBQb3k3WEYzN1B6TE5mdmlVd2ZvZVla?= =?utf-8?B?SGZYdFNiSkRocEpiWWJaM3BJVmo3MWJRSUpreUJneDFmMkkrSnVPOFoyekc2?= =?utf-8?B?RkN3cG1YazJZVTBQc244UjV2cU9xdG03V2xYdnlWYjMwbEdkYXV0MTJjR2Vq?= =?utf-8?B?S2tCVnhlTTJURGU4WmMwanZFRnRjY2cxOWYrSUpKalIrY0RvNi81VUcyb1Bp?= =?utf-8?B?ckI0WGpuUlRhdzJXd3dtQzBDYnFzaFFadjBvR0I0bFRINElPY0ZvZDV1QVZR?= =?utf-8?B?d2dyNmM5ZUtnUW1Fck5zQlU5MGkzWkpXY3BvSHlXeC9KMlowMUtRdi8rb2tk?= =?utf-8?B?VCtHeStHR1hPTVhhMENHajFSekVDT1hyQVIrZHRHaTdGNnE4eGFoY3U2SEti?= =?utf-8?B?NGtOOEROeXFvRXFYc3llbTRGRzZIYi9aaGh0VWlpRWxrSXJRVlJXSFBBMjJm?= =?utf-8?B?eGVOMkNyV2RKYVZtUHF4TnZZZ1BHWm9mUnVCUjI2YmV3RytMR01DOWlkZWxP?= =?utf-8?B?ZlFHamFYSmNnaStieUYxSUdMSmRDVXBQV2krVGJSZnlIN3E1TXRnSjJUSy8z?= =?utf-8?B?eW9lWVZWZFdTcUpuWS9NWGE5SXQvN2l4MnZ4KzRCS2UrcjJqdXFzWFd6Sm1G?= =?utf-8?B?SWdLZy9tYmtsTWp5OGRSejVYNVp4bjNWYm9XRm9RWHhVSHUyQ0Q4TzcwTjhG?= =?utf-8?B?WHdwaC9WUzVYTGRLbHRSeVhYcitzMm13L0h3dzdNWWU3dnVnUUJsNVlGanVM?= =?utf-8?B?Qi9MTVhEejRDd1ZILzZxNmE3aG1kM0tzaHAwNFBDNWRCRVdXdzRZbEZVcDd4?= =?utf-8?B?dzVZNEY4NSszMUxMVkVVRUxsQkNxSEJYK04xYm8xTkkzek5YWDh3NHNIR1JV?= =?utf-8?B?eDk3U3F5bVdKMENtMDNpY1lrWGorcnBkZVRwcTZpVDBNSFFkSzlIQ2Yxcm44?= =?utf-8?B?WHhsdjFjTUNucmQ0bEk0K0pvSXo2dHFOdHVsZXBwbTZscGNnbnd3QXhzdXVF?= =?utf-8?B?QWFaMmhGSjM4LzBOcUxUMEkzWTQ3dk15akxTZGErTHkyZ2JtcjNVOUVVaHBD?= =?utf-8?B?Y0NlUjlVVnlXMytvM1NtTHdveUswK3FSMXUzUlB5SllJRDBqbzVVRGoyNlZO?= =?utf-8?B?VndYZENMN1FocEVzNm9LSVpQQUVaWU9aTEw5SU5VT2p0VXE3eTVCNkNQY1Vv?= =?utf-8?B?UzdqSHlJc21jZFNRaG4wdVZRd240UkYrSE5GTC80NWhjVFN0WXpvb0hEbENu?= =?utf-8?B?ZnhMYW9EVGhRcDVmM1BKNzZkUDc1SmhleFQ4QkcyWHdqbXlJcDJRRVBraVVj?= =?utf-8?B?NjFnS3FUdDd4V1dDRXlub0pyRUNGV1NXa3pOaWQ1WVRMb1NtYnR6T0N4MHMw?= =?utf-8?B?MGZXNXdydDl6NkM0QWMrcmZWaTVyMHFkOHBEU1Z4SXVGQmJvMVNMdTJDWDVD?= =?utf-8?B?d2lGNFV4VFp6b3MzUjdGRTRHdGg5TWlQVFFBaHY2UzNDTVNkY25CTCtWcXdY?= =?utf-8?B?WFliTEp6Y3l3ZWF1V29QSG1Mdkk3azNlZklLY3N5aDZLeWxRZHNkRGhoS1lo?= =?utf-8?B?Yzd2SEF4enJiNE54b2t1NVE4MXlaUWhwYnlGN2oyUnphd3c1WGxaVFVQTmJK?= =?utf-8?B?NzRMSXBNYWlzazdvYkEveEw2NVM4OHhtakRJbWFCY3R6c0htVEx0QT09?= X-Exchange-RoutingPolicyChecked: MNUqz5SDZEaAJfvvGXMOinP/jD5KNSQCa+wwWwgx7tWsrrKTD7RRQ8qHYW8PGY8otywEfwm6JistFBE/QYYQRYwHytt1gM3SY7/nEdtHsrDT5TmVg4pPMTiJQmeevZepZASXLkJdoWbE6lpFIq3DAC+gQT8prE+wKEZJwhLaByoGuWZiRI21xvIPt43R/lAqqyaJNnhXQPWegKOjq26jdINlo46IoKOPdw7E5udu/y1n+SejFLkNv3qy/VhYQRvbmETwuBQVeOmS+V2sJUMEPaCHxD27mX+PmPS5/T6sEZU+0Qpw7iQjF00AW0ZeVrfoxQXnlf6pWnMIwtrrEntohg== X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: bed635d5-4090-452a-95c3-08df07555d8c X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5469.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 11:45:33.3786 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nMVGQLxvD7xUXhs0+sxwoB5DrwRKh9MjIN4ArXTHViEvpFsuDI1NzyMVvbFVXNHRGuMTvgf97X3pTt5vRSH62w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: EA8PPFB3C90C3D5 X-Proofpoint-ORIG-GUID: g_Y0uqRNAJgWmz4AodCYEibnVdeM7PWo X-Proofpoint-GUID: g_Y0uqRNAJgWmz4AodCYEibnVdeM7PWo X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfX2GdDjcpAilQu Xe+xDgbbnHtU+qU4aG8BVAvmpwA6w6mOzTJIV4wmM7PfD6dl3mP4JqjCvJ/KTqCnX66Ai1QmbSx 7VBD4pbNUwZ89poGl/Dwf+SkL1mEHclOiaX8dVuxNMoCCW5eyLGqvbgipjKy52LVyRCCNk2eMH2 7KBa2jROKOoRb/4jRfVL4/31Ngv+/n/1WIXJUOSGk78B07nbRMxbF3X4dJoEI1LKqnIJJv0VUxl uI4UM+rKkK21teivc5OgAHUjlXYy4k9HkOGELJrYOwoOXlof50BOjwvqL9bX5DieKvPjgnTvtnC Niic7s9RI/lzAHB62xCH9fgYlHWpejQb1WrVSmKzjEIBp5Xbp81/mt8/cyvkZRe+nXy9j4wzYFx nA4oygnGSUyBPjqmHCmkLlbsbUTikZ48vBG89Uoir+b9pQP574v8BiwNOCrU+wZ7PfZr8imL/QY jO9B3HDIvTMA1cVd2HQ== X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfX1tCM+UUJ7ydt bKnpkaelW65u5KUsu4RMA5CebiSmgyLIByGBUF48Kyv9ctB9+sdPc7GMeNC+IKaOMUrLAQsJ/JA uFx8pdP5Io+Yi7sItORVgIKUMZjcqxKpal2exmyDKf5yiPNw32V7 X-Authority-Analysis: v=2.4 cv=Xcq5Co55 c=1 sm=1 tr=0 ts=6a95695f cx=c_pps a=TIoD7Y9874wd1wHQAFcRHg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=0sLvza09kfJOxVLZPwjg:22 a=ugNRTJOwpmtT476g4l8T:22 a=8AirrxEcAAAA:8 a=gAnH3GRIAAAA:8 a=Qd3EMPMlLGY8qSusABcA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_04,2026-08-27_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608310101 Advertise the source and destination bus widths through the new dma_set_{src,dst}_bus_width() helpers instead of open-coding the legacy BIT() mask. This moves the driver onto the representation that can express widths of 32 bytes and above while keeping the legacy u32 fields populated during the transition. While at it, give the channel width members their proper enum dma_slave_buswidth type. Reviewed-by: Frank Li Signed-off-by: Nuno S=C3=A1 --- drivers/dma/dma-axi-dmac.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi-dmac.c index d47ff27e1408..dc56178cafe0 100644 --- a/drivers/dma/dma-axi-dmac.c +++ b/drivers/dma/dma-axi-dmac.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -152,8 +153,8 @@ struct axi_dmac_chan { struct list_head active_descs; enum dma_transfer_direction direction; =20 - unsigned int src_width; - unsigned int dest_width; + enum dma_slave_buswidth src_width; + enum dma_slave_buswidth dest_width; unsigned int src_type; unsigned int dest_type; =20 @@ -1262,8 +1263,13 @@ static int axi_dmac_probe(struct platform_device *pd= ev) dma_dev->device_terminate_all =3D axi_dmac_terminate_all; dma_dev->device_synchronize =3D axi_dmac_synchronize; dma_dev->dev =3D &pdev->dev; - dma_dev->src_addr_widths =3D BIT(dmac->chan.src_width); - dma_dev->dst_addr_widths =3D BIT(dmac->chan.dest_width); + ret =3D dma_bus_width_set(dma_dev->src_bus_widths, dmac->chan.src_width); + if (ret) + return ret; + + ret =3D dma_bus_width_set(dma_dev->dst_bus_widths, dmac->chan.dest_width); + if (ret) + return ret; dma_dev->directions =3D BIT(dmac->chan.direction); dma_dev->residue_granularity =3D DMA_RESIDUE_GRANULARITY_DESCRIPTOR; dma_dev->max_sg_burst =3D 31; /* 31 SGs maximum in one burst */ --=20 2.55.0 From nobody Sat Sep 26 18:55:09 2026 Received: from mx0b-00128a01.pphosted.com (mx0b-00128a01.pphosted.com [148.163.139.77]) (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 048143DB645; Mon, 31 Aug 2026 11:46:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.139.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176781; cv=fail; b=XMkI0a9y0j0ZmWftr/FQLTEqrq+dN2OM1SY2Ww9D7Nm9eUB4ZGy9Q4YTCPU1ocOQkMz43j32EakJywVkSApeqTlunOekMFV5f3vsxtB6eHJrgxKiqzeNEL2km4nBmp5WOweSGjYvPYQuu/Sg9mTFsQr6ce3NSKk5+SUqEccsZHg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176781; c=relaxed/simple; bh=eVij2aryRxM7Iz/SXGQ1Bo/WIVJo9FcnI+r9ssDc4Qs=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=SZ5+IPe0wlfBHIk5/Ft1jqiWuy/0rpxfnk7cTwz4o9gJyff2/y61/O5lVaUj2S2IbkO7/JS1Y05u5ZFSzkZu1OAfN2ZG5zmCxIaes2Lamo8qtZVfGs5zJ5nqrXbNObjNsdJpXROkRuM/13OPd27vPEVCV0BRi0nvsAqJMnGr17c= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=kFrePB4O; arc=fail smtp.client-ip=148.163.139.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="kFrePB4O" Received: from pps.filterd (m0167090.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VB9oVv305798; Mon, 31 Aug 2026 07:45:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=6PZQL Asc0Bov5dshJTOYP+YiAtZRg8wxfWcQ7P3m9Mg=; b=kFrePB4OvE2KZHYpiLPza Jk9HXUK7I2Dz/o1GbOdXM03cK7AldHICs2WhBgiLVr7UeG7yRuucEZyoyGzjbpL4 Ly13lXH2WW9V/FKznt5DHcfgCxDx53hRRjfRGjrThjhayc1QFies07bDThstv+nF zyE/+6GcipRIa0aGeruYM6b3MB7qT++gkngdK+HaOf4w7mliUAYgXc1MvXs8DTw6 /YEAuXth/4PjTUCufVosHLpFfSz1xUf9cxRPluCdze/ksjvFFn3AI0pVtNyb1pKH akvegi8CIQvbLN4HqSy6rE/VxNeTHxViXYe2EnhsxnKaPlPQL49J/FNB2FPQ0DHf Q== Received: from ph7pr06cu001.outbound.protection.outlook.com (mail-westus3azon11010023.outbound.protection.outlook.com [52.101.201.23]) by mx0b-00128a01.pphosted.com (PPS) with ESMTPS id 4gbv24wmav-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 31 Aug 2026 07:45:39 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vL7mE8H1SdrPfi5/D+ux9RTHJDUvNDg/5uvEjiMGl94mR1de62q8zLqeSetmAU54TU1CsF2XhmoWJxNhx2W0gjJJtHF4K94tcT19VtYSqZG39C3D1Y0/muce4uQ0j5ZrFwsYsVqgeSeNXNVHgVsNzF/g6vJ2wyrGO+/969DqEap4lZd5bx4jMPUeF62xqeTsASQnuHJ9J3ois2BvmlH0E0fmou4yOgZvyOeRBaQtV/sFnluDgheL7DZcv31f3M5rJirCFOsgcmeqOzOwprx41yHT8PuNnYZcfBW1/K5OqDkQLRIEn+enaKqvfIvWbJ+mOXUs+1xgqhy3Hl5pFMkW3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6PZQLAsc0Bov5dshJTOYP+YiAtZRg8wxfWcQ7P3m9Mg=; b=EJ9jlGlzJohcbIPtiZMlaknsvRtwYrbXWwrGXOdVIwDfDAfk60vxnJR4TFP0eGvRmwPA7bdxhifEhdT/iQKMvJ8E0i9SyGxdA19fC6z7MWeEkiDU9gXWJ6w0FpZZLpvNmM9OVstvoECQWGUYhQdipUY9mk4itL446XNoagbtrDhQkh0y6UJmeWDyxOcHcBijrfVMHB4yqiBbLRF0eubyfVyrS7i77d6SnTNBuJUW32TFXfIIQj3Tk8wHBU1LEYv664WYJ1l0BA5W8115KkQ6PCQnmQ0P3fYoEsLQAMysv74Bt6+ylFf2rTxaWHQ3yf5X/EIz6VsIek7dy+u9BNGCQQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none Received: from SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) by BY5PR03MB5077.namprd03.prod.outlook.com (2603:10b6:a03:1e2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Mon, 31 Aug 2026 11:45:37 +0000 Received: from SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a]) by SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a%6]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 11:45:37 +0000 From: =?utf-8?q?Nuno_S=C3=A1?= Date: Mon, 31 Aug 2026 12:46:40 +0100 Subject: [PATCH v3 3/9] dmaengine: dw-axi-dmac: Use bus width capability helpers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-dmaengine-support-wider-dma-masks-v3-3-507d97496f2d@analog.com> References: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> In-Reply-To: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> To: linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-iio@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org Cc: Vinod Koul , Frank Li , Lars-Peter Clausen , Eugeniy Paltsev , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Jonathan Cameron , David Lechner , Andy Shevchenko , Jaroslav Kysela , Takashi Iwai , Mark Brown , Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788176799; l=3057; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=eVij2aryRxM7Iz/SXGQ1Bo/WIVJo9FcnI+r9ssDc4Qs=; b=JqY6SHm3eOHGJulbftV+Dw/m1ZGn6BnoqpIRCcDaHTLB2FfY0tA3uJ/D6jQl/La5mIJ8JKo8b rbA3pY1iSiUCYaEH9ufkdkQLQbO3KoyiAyaQLt/QD0rMFV9Ng9l4xoB X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-ClientProxiedBy: MA3P292CA0051.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:48::19) To SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5469:EE_|BY5PR03MB5077:EE_ X-MS-Office365-Filtering-Correlation-Id: 1c6364ec-7f3f-45b5-6768-08df07555fab X-LD-Processed: eaa689b4-8f87-40e0-9c6f-7228de4d754a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|23010399003|366016|1800799024|6133799003|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: yiUe/ZTg6eTBqy3/G/I6aOZds75uGe5nOcUlsbFYkT0E8xUHfH7eM13Jfh57DGSi28FLSIYWlNJfhsJmbRxcqE8gsR4F//GvDMBR4VSYAdj083+C78EtNQ1MNrQ17DNdSHkIBZnyrEYs/X5Egq8WhecN/w/8Ct+UqmH2UEJKECblyGcZD1zOkztqlDxQRFpsdBf8YY8UeUXaaI7nWLpgp4IEa8FXgTEtZSqvZTHOKt/aXSV8taMSOIK+t4Cit+wH+e8/WNsgRP7HT7/RcpFLCC6HF6E+Trdemqig5I/OZRvRDRjzn9hM5opq1seDKIQ0aruYJa0yxZ5jEkt6p58O8AojVQdafoPReu9Mf2hPCDTg1MeSdirwW6Ymo//O3710Nv/U2DcF6P6ELKIGzl+6dY2OFcbMF4noHy5mzWF1yz0qFNc0a8+5EGbJhw3rqg2h13VSiOwGcHeAkoAf+GGITHK1ygeNgmRhxQ2pIcBOUQ5D1SM8ZwalIyd+hRjDYOy4MUySzm0TaRu9n6DlzdbU8f/jIpDBF0p27X+/+AhWcSwWpMyytQjoGZQUYev0l/d9A4lGeINoTCxuB8VS5xgjPc6nr1+3KQ57avFKFqd9WJcJtap6X6J1RVWi+OFaOaEjJXq1a1rkQkarTydZAtw9KqFtcntO208rroYiOt+wC6Y= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5469.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(23010399003)(366016)(1800799024)(6133799003)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WEVPQk41M2x2b00yVWcva3FlWVJLQ2tGTnA5REswclBTU2pNTDMrQWRTR0k1?= =?utf-8?B?U1dGZGRDQzlNdzI5NzhVTm04a0pRQ1Y2SEVITnU0N1JWL0JhWHNCOU1qR21P?= =?utf-8?B?Mkx1WFNWQlRnY0V6ODdveVFIY1h3Y2Z0dWs4MlpNcEV3NzNnM255bU9rb1Nr?= =?utf-8?B?RmkrWFYvNW83OTlyZEkvL2pSbURQVnQxYXRTcEEvRHRhbFBhWDNabno5NmxN?= =?utf-8?B?aXFUMDdsV3hNMlozRlVRUHc3b3JvOVVjTytQdVkxS1FjWnJUUkNhLzFFVlBN?= =?utf-8?B?NTNSZ0pBQVU0eVRCWGxxcEx0QU04b3hjYlNaMGZiSzAxVHdCNlQ2Nm1uWG9w?= =?utf-8?B?SWxsS2RPbktta01uTTg3OHltekZpSVJhTFJoVWU0V29oMU01REtZcVJRTmcv?= =?utf-8?B?R0xTNGhBRmxBRDVFenlDdjNrY2JnTGhGN0VFZWRSbGxSL05ucktzdkMrbC9t?= =?utf-8?B?THFYYU1iRnpZcjBUT0dQN015elNLR2NKVW10eUVpZlBJZFI2b0xRQWpSTHlr?= =?utf-8?B?N21lSXFMT1F3M3ZiV1NTQ3VRbjU5NWVHV3N1RzR5a0M0RFNpQnlydE1JWVhX?= =?utf-8?B?WnlscENCeWtRT3dNTnc2TTY1Yk8yZXJZREtEWndlOXdaTmFJUWx1NnB1aHZC?= =?utf-8?B?R0J4MUhNKzVXeW50K3ZEdklUZEU0OXcvSlNHalMwdlN3S3RBMTNOcWZBanFP?= =?utf-8?B?dUc5RFBRTTJIa2xVckRTdHlFeHBRME9jOGo3Z0gxNjBDYnAyNUZYTjR2UTYx?= =?utf-8?B?L2I0UE44YzAxQ2pEZTBCaE8xK09WNTREME1GdlB5V0dkMWJyYS94VFhlUDNY?= =?utf-8?B?YnUrZ0d5ZUFETk5zNWhxZzZyWjY0MTFMY05tZmpjWUVCVEZzUy9TaElTTEo3?= =?utf-8?B?aWJtZWsrS09nTFVIL2oyRGU3Y25nUDRRaU0vWnFqWk92YUUvTHlMLzZDVkMy?= =?utf-8?B?cjB1bUVTZzRLOVRORkg1c0Vtd3hSRGRoczMxZXh4MEZrT0hDVnRDK2RYbGF5?= =?utf-8?B?eHYwTndJc29ySkhHZWR5QjBUdkdaTU5pNDBJMUdyeUZRYTJWUWRuR1piZTBt?= =?utf-8?B?VGlDYyt1czd4VVFMekM4U2NMK3JzRUl4amZvTWN2SDdSQnMvNkJ5dXZnYXRk?= =?utf-8?B?YVV2Y04vOEYwNUJ6c21nVnIvTWpaSk9NUld1NW5PZFBockhsbDI2blh2dWxj?= =?utf-8?B?Rm83SXROb25OZms0K2lobHdNU1pkY2NKblZkU28yckg5WHo3bHhNeHdZcElZ?= =?utf-8?B?OXlCaDJmQ0VWU0N0d2Z3UUdRS0hnb2JQUHZmNitiRFZpNW1KYjgrc3dJUXQv?= =?utf-8?B?em9sSmNvcXFjcVUzdTJtbEc0OTAwcTFMNVFXM2tJSVduR2VmNC9FbXZkcGw4?= =?utf-8?B?RHVXMEppbGZKYlBDT1kyRHhkYllGbXRxcmFTa2FrcVVCOFNWVFhaTWx6TXZH?= =?utf-8?B?MHNHbFQ5YUc1VkQ1TTJ0eUFJdlBPRmp3bDkvSjg1aDBYYUw2UUFNVEMyWXc0?= =?utf-8?B?V2ZUZmt4eVVMc05lNGJ4YW1jL21FYXlLV25HR2ptR2lSZkdsVERVSnFvbDJM?= =?utf-8?B?MGZWK05xM1BqaTcvWVZIRXRXZ0czTzhENjdkTWpscGtZSHQ1SkxTUFFjNWgr?= =?utf-8?B?UG8zaWpFbkxUVnhLbWo1Yk5hbzB3VEQwUkdoUy9UWlhzVDNGSjRFQURZdW9u?= =?utf-8?B?WVpwSTh0T2gwL2Jld0gzNEJRZEsvaUthVnR4dTdMekpob0xzZzlvU084bnBS?= =?utf-8?B?RU5CdlBWN1NyeU9qZDNVc1VDSEQ5bnRXTEp5cit3VlRaZGxQZDE4VzcwMG0x?= =?utf-8?B?RVZjdEtqd05WUU1JODJBY3RqcWxJVEdLaktsT0F1Nm9mcE5kREx3ZktUQi9M?= =?utf-8?B?aGk4RzdzNUozeTVTMlBuKzRUT0x4ZHVKZTNSRmtjcnpWUlA3TWRheUpvZWln?= =?utf-8?B?UVBPbTBudXAyWlk5QjBpcmluWlJaZkFoa3ZROTdSTFpuQnViempURHJNOWpo?= =?utf-8?B?OVlzeWMzNGEyYTdXcVlXcnpWeUQvWEIrTjl5ajM0TG5mdzJjQ0x3K0JqaGQ5?= =?utf-8?B?VjlOV0NXZW1McjQrYXFKc3dXNktZV0JKVS9mVm5JRHJnVDJ6OHVQOE9YK1NN?= =?utf-8?B?Nk1SeURrMks3aFFxTFV5QXR3SjVSSWFBTk54OVNyclE1QnozdHQzWmVJMUEv?= =?utf-8?B?b25HTTZJZ3RHclROZ2J1VHgvNnY3RU5PMW00TXc4M0pkdWxwY2l1VnhOTE9h?= =?utf-8?B?MjVVL0pNdVRUQlFDVEduK2F2RE42Um94aGNlWWQ4dTY1LzQwbTZlemYwUEhl?= =?utf-8?B?UGpnN2g0M1R4YUNzdHp5TUQ3dzduVmdoV0RIZGpPbTZSQXJJWFk4QT09?= X-Exchange-RoutingPolicyChecked: ivS4cMXLvY8JdiNmDS86RSB0NbIzXPJ8SRilWK9CdylDthHRj8gy8C5q8Yd4pYFtqe9tNn1V4AkjZESTPK/cq/MnwlNg3lOlqeD9wUwkBF7FrCPKiJu9+t1EuI+VfFrN51lsy5YcXmCBgv+/096+WwEiO3PqewF2OXxDMrP52A+XeaxqGc7FyC98nK12nnG6/UQTLrzpp9LcyLyta7anx3Yn2d7FDXMToNEXMDHswMMCjJmUSY2fLAkmYj9ilqEIxv400Xuna3X8oxEruqdlV1pR0wrz7Am3kzOQJvUcVr8VXQrm5yrK0EAi31Ee9Pu8BKSdvHTkGaaOH9xgqK5axw== X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1c6364ec-7f3f-45b5-6768-08df07555fab X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5469.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 11:45:36.9492 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: r558MUTcCzjYajk6CWQd5NbbyG2s/gPZkpzRrdBqJZCEj/4xDR71WS8utMBwIXn37Vd63fyB/3YIBZ/ru41o8w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5077 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfXyVosF4EnD1JP uBInUqHTT3Fw51J4C1O+Zj52jh9cdd+JcsuerGQYI7+qQDBmnUNV60IpjbQ+75KxpjN+U/tncKL 9FvlmN3xsCS5MwZIMKcoTmTSN9olW1VSG0/xdLgVzRclcmvqC/MTAO8Prl/vjhiJlKLe/cdWbDY s9kmISrRy31T0O50RJYm7Z9DOOHtghXp1PYhaaUQB4jL1csM/sBb4ZAEFI+wr3HNxblgVbSHwfh PEJ4F2qwCbvQSxRtNZ2fikFyBSotADS9f7JNKu8kzfIS8cEhCLZ+LqwY+k5hvHWcpX74hiIr+ab mX6zr+lG9a4pJCIAaGFvmIsfksGMyXge0Wb2RtAqkmRsWlYqGC8BPdVtdIz+CY+3BwfeHo47fmp mFCiajfxNa/6G0IqfBDED0lDr29HMpozAZwXxfq6sL7bc5PdPwtLNYW9458JZ9vd7Gm7euvnYwd vTpxMmGUJqvdb3pBMKQ== X-Proofpoint-GUID: YL6pFWWl3EiRep9hLVmrkV9b1Ee7awGC X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfX0sUbJ8Rn6sud 7yq2WWVkRhU9B38Hp7uor3RfBUB/PJIP1IzuhmEHtqmGYeC2dgL6o+HZTsXtquQa/IJOmLvb3IV PLFl+z9EJogTMyqqdrLE889lke5XO3R+3SwCotU6ZENmQS7NBdYn X-Authority-Analysis: v=2.4 cv=etTvCIpX c=1 sm=1 tr=0 ts=6a956963 cx=c_pps a=xBU3AFOX62plvdJ7VrUh9g==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=0sLvza09kfJOxVLZPwjg:22 a=_jAD5XSDOtq9-5Nde2OG:22 a=8AirrxEcAAAA:8 a=gAnH3GRIAAAA:8 a=y_OmukUNvUlgtTeSwsgA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-ORIG-GUID: YL6pFWWl3EiRep9hLVmrkV9b1Ee7awGC X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_04,2026-08-27_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 spamscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 clxscore=1015 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608310101 Advertise the supported bus widths through dma_set_src_bus_widths() and dma_set_dst_bus_widths() instead of assigning the legacy u32 masks directly. This keeps the driver using the new bitmap representation while preserving legacy fields during the transition. Reviewed-by: Frank Li Signed-off-by: Nuno S=C3=A1 --- drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 38 +++++++++++++++-------= ---- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/d= w-axi-dmac/dw-axi-dmac-platform.c index eebed2474210..ca0ab8dc5f59 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -33,20 +34,6 @@ #include "../dmaengine.h" #include "../virt-dma.h" =20 -/* - * The set of bus widths supported by the DMA controller. DW AXI DMAC supp= orts - * master data bus width up to 512 bits (for both AXI master interfaces), = but - * it depends on IP block configuration. - */ -#define AXI_DMA_BUSWIDTHS \ - (DMA_SLAVE_BUSWIDTH_1_BYTE | \ - DMA_SLAVE_BUSWIDTH_2_BYTES | \ - DMA_SLAVE_BUSWIDTH_4_BYTES | \ - DMA_SLAVE_BUSWIDTH_8_BYTES | \ - DMA_SLAVE_BUSWIDTH_16_BYTES | \ - DMA_SLAVE_BUSWIDTH_32_BYTES | \ - DMA_SLAVE_BUSWIDTH_64_BYTES) - #define AXI_DMA_FLAG_HAS_APB_REGS BIT(0) #define AXI_DMA_FLAG_HAS_RESETS BIT(1) #define AXI_DMA_FLAG_USE_CFG2 BIT(2) @@ -1482,6 +1469,20 @@ static int dw_probe(struct platform_device *pdev) unsigned int flags; u32 i; int ret; + /* + * The set of bus widths supported by the DMA controller. DW AXI DMAC + * supports master data bus width up to 512 bits (for both AXI master + * interfaces), but it depends on IP block configuration. + */ + enum dma_slave_buswidth buswidths[] =3D { + DMA_SLAVE_BUSWIDTH_1_BYTE, + DMA_SLAVE_BUSWIDTH_2_BYTES, + DMA_SLAVE_BUSWIDTH_4_BYTES, + DMA_SLAVE_BUSWIDTH_8_BYTES, + DMA_SLAVE_BUSWIDTH_16_BYTES, + DMA_SLAVE_BUSWIDTH_32_BYTES, + DMA_SLAVE_BUSWIDTH_64_BYTES, + }; =20 chip =3D devm_kzalloc(&pdev->dev, sizeof(*chip), GFP_KERNEL); if (!chip) @@ -1565,8 +1566,13 @@ static int dw_probe(struct platform_device *pdev) =20 /* DMA capabilities */ dw->dma.max_burst =3D hdata->axi_rw_burst_len; - dw->dma.src_addr_widths =3D AXI_DMA_BUSWIDTHS; - dw->dma.dst_addr_widths =3D AXI_DMA_BUSWIDTHS; + ret =3D dma_bus_width_set_many(dw->dma.src_bus_widths, buswidths, ARRAY_S= IZE(buswidths)); + if (ret) + return ret; + + ret =3D dma_bus_width_set_many(dw->dma.dst_bus_widths, buswidths, ARRAY_S= IZE(buswidths)); + if (ret) + return ret; dw->dma.directions =3D BIT(DMA_MEM_TO_MEM); dw->dma.directions |=3D BIT(DMA_MEM_TO_DEV) | BIT(DMA_DEV_TO_MEM); dw->dma.residue_granularity =3D DMA_RESIDUE_GRANULARITY_BURST; --=20 2.55.0 From nobody Sat Sep 26 18:55:09 2026 Received: from mx0b-00128a01.pphosted.com (mx0b-00128a01.pphosted.com [148.163.139.77]) (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 E046E3E0C66; Mon, 31 Aug 2026 11:46:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.139.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176780; cv=fail; b=GsQiiE7JY8hTEF93zj9TcheiiB2i5jbUUTdr9G3Cuzb6cHgfkexgol/bTr5slMX0xK6ymwxyfTyYVb+iGrpd8ur0zLBr4rPTXDq1ZnHacu008jB+M2yG0JZdRdjOzmC7krNvmnGwgJrnRMN0pAw6G4EfeTNM80qt42slHT48TrA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176780; c=relaxed/simple; bh=QV8NPkSt0MaDa6bdo2hwTwFsaHgT77kUEHyw2byobpk=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=efhRZ8QasV97nQ6rcKYBbRhoAiOm8P6aD894lSpuTVKNI6xcDI8XEpmytwreasCjHBIMwPLbeREHezcqOud3RbqccXfT0HJzc8LL9PlZd4+U+/RlYCXivwqh+NLiYwVucxw6lu6csqjJ89Z2zFRrYn2Yi/1ymi/9VTKSM4u/nes= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=p2GukVHH; arc=fail smtp.client-ip=148.163.139.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="p2GukVHH" Received: from pps.filterd (m0516786.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VB9nXl793172; Mon, 31 Aug 2026 07:45:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=6KM0J xmWa38tVa7en1BEc+QdxeysuSy9Yw8mT5ndHdo=; b=p2GukVHHVRzC0xt27ET9/ nQePeZTBlZq+iL87yU2XVJNfnV0eKlqKVzbtNkj9riXpjawTnkUtxbgfSFcjUhEv yxYEgu5+nqH99L8hz+sQTrSSA8eewtD7/UWVwKglvSLcNKPgULmcBRDzPLDDaQOR J3/xQmGndAGR7LsDnO6Kc3ra5C5eOuVjhGomgwyrEWaywU7etcXmg9EU1qBa60fI PpJexKCk7YywSZSItyvqjY0wkHAFrNLp+AOWAjcgq2eG5/VIkCq1N36ZNbkXFacn EvfbbgC7yWgOYbRBatxws2+XFUUtrR68LRhvmW77XLiBdvRMb/GYAcO2PA0WNhmQ w== Received: from ph7pr06cu001.outbound.protection.outlook.com (mail-westus3azon11010017.outbound.protection.outlook.com [52.101.201.17]) by mx0b-00128a01.pphosted.com (PPS) with ESMTPS id 4gcg1hu8q4-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 31 Aug 2026 07:45:43 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TXMRRo2TKLzzIg/F6p8jL8kE8CP01eH2F3RbXv6zZJ9sNssi9Ec5DChoABsjI3MvwoSo3R+C7GCZPY7shV4raeRyg/hyEUoXF5Ufos9L13vx/HoF3tF5ylnXR956syxoQt+pa5xQCDFhuchMnivGcL3TcSaMg5G/jvHscMY7obRvlh3KHd8MopM6mC5i/Qc46OhvN1V1vVArdjlqmS3xdJ0ok0hB3pJPua9ZSidsGBXpxTOB+VC0OcVmmNzvJ73z3X27EoVPYzGeDmKGeNcalJvJ7gQkGgSxxnegYQapsFP+ANQUPgjarswF27Ka4dDXgRkfV7t/yXubUpNkctYYxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6KM0JxmWa38tVa7en1BEc+QdxeysuSy9Yw8mT5ndHdo=; b=oSU5AsYzBS2jWH21d+3t8M/DoBWKsVJBQJTMdoYeA+BYnRlc6Syl2bSj+IZmsE5kkDGsZY85rHljN2Rpo/CS03uLBTCjp07JFpVrrJpOyYaPGtAquUl5/R1SqHUUhE0lMjXiR9rfwlbhnE/kZJ6I78lXuNaW4pizut4UPNyYSFc++rpGxyDajtV7FzbdH26TPlYJv6swTyAgFZtjBh8JfBIWRX1wA25WddFVVvmTqj+RrA8NltU5R6m3Mzpr520w6IAMMElbY78222f786AAxDPaHhn9ktLedDPyqnnmFWiva9FzOV0yWq8FEoh8Mr7nJ/euHsrFSmpW4By8G3fkEg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none Received: from SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) by BY5PR03MB5077.namprd03.prod.outlook.com (2603:10b6:a03:1e2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Mon, 31 Aug 2026 11:45:40 +0000 Received: from SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a]) by SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a%6]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 11:45:40 +0000 From: =?utf-8?q?Nuno_S=C3=A1?= Date: Mon, 31 Aug 2026 12:46:41 +0100 Subject: [PATCH v3 4/9] dmaengine: qcom: gpi: Use bus width capability helpers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-dmaengine-support-wider-dma-masks-v3-4-507d97496f2d@analog.com> References: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> In-Reply-To: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> To: linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-iio@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org Cc: Vinod Koul , Frank Li , Lars-Peter Clausen , Eugeniy Paltsev , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Jonathan Cameron , David Lechner , Andy Shevchenko , Jaroslav Kysela , Takashi Iwai , Mark Brown , Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788176799; l=1693; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=QV8NPkSt0MaDa6bdo2hwTwFsaHgT77kUEHyw2byobpk=; b=+Scs8BRjxgYPRb681gBlmF4eIG1X8/0vXZK9FIDzKxmX4lI6bDRAO5c+n0+cIn9Snji3yvNKI yXyaTy8ow89Cmtd/a9rJ4YBNxFaZLzgsvC2ECNxLWsBmxjvGwC1yZXq X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-ClientProxiedBy: MA4P292CA0002.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:2d::19) To SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5469:EE_|BY5PR03MB5077:EE_ X-MS-Office365-Filtering-Correlation-Id: bc08db37-32c1-40e3-602b-08df075561de X-LD-Processed: eaa689b4-8f87-40e0-9c6f-7228de4d754a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|23010399003|366016|1800799024|6133799003|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: cxjL9HMsfu6rMk2h2Iazjk+H/BxaFiJ9nUL4koIpZpRcbVwBbU7g0mrIdvGmHlxESluGjQoX8LWVCbUjlQxwu8NH7L5vRXgmp1laEXSwGZXYPCsxI+pEBecpvTp8PJ4pthU/tptf5BWD+mPkeRdNlT8XcDh78D1d6aSIj7Kp5YsxX1dsZbiXAv65K10mul+JR1RfgPiCJHFze2L7rH2qn8Q0rjDG4KIA+5oQ98jOReVTID7mdNR5GYMHJloIT48B8qPwZphiAH3XMdcBkD65bDIVbAIdOyohlkLHlAF6mcMwGN4d0qL89tSZbbFPlAGycnzx+eXHxjXDGXxVuMxuGTIzY9sIeBU+D5EpWEI6tKgdB1my0gWzZly5/yy9c72M8AGazZ2WO+h0ppEKAD+OF5AynrqFJyJ4SYhBpukXvGtITXR51PW1i5Pd/WyOq2LnNGEru7cMgU7aN07Tgi4RL6J2eVPKZZ2ZEVhLf3MMwZAvwTPOcPxlJyW3MjVXsyoz+p2OhhF2MfFOrJR8iaeuY6NLxkpBJt+YYmG7QM5dCsGAaCTaAyGnmv7++UmKVygc4xqbADNVsAsEHT03GABTperxPtzoZe6EQwgeMytlU/qV4waO7X1w15hLHwDcGZozGj/wDKCMTzUWsgm2ILo4mBBhXe7pVpD6dWcRDkZZoSA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5469.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(23010399003)(366016)(1800799024)(6133799003)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Z3REL3lHTXJtSVBnWXZVbnUyVVZIQmpZQ0RSK2VnZ2xNVDlHdGsycWVGZkRj?= =?utf-8?B?cXU3QmR6UFM1Z1dUdEtZODVQeDRzTlpBbEgvU0tJY1pXZWFkT0hTQnVqWjl4?= =?utf-8?B?QmxMSTJyTkcxcnFMR0JqVW9FUTFSaVZmbm9jczZvdWxnd2MrU2FzM2I3QUR2?= =?utf-8?B?ZlhVcDBVbGZRekdCR1ZtMXYvUVZ1a3VScEw3ZDd4TzlyZEhiVEM2VTZVcjZ6?= =?utf-8?B?YlNkSmtCU1lyaUZRTmJYTmhvVkpSdTczZFFvaEp6ZXNSM1pLdlkzVWRacTFD?= =?utf-8?B?SGNsZmlzQkNhQUlHSkRJcFdjSk9NcnhLZTcrQXo4VkcweVZjSXpjSEROR1hs?= =?utf-8?B?ZEVuWlI0bjVQTTdqcUJ5NmRUS2N2TlZoVytSaG5FejQ4SzNmVzVXa3NmZWhh?= =?utf-8?B?R3FmMElpMGRPL082K2p6d0pZVlZ4R2tDdEppTkRQdkJIZFJQTTBkK3FUM1J2?= =?utf-8?B?Q2FvdG9EODZtZlBQVFRLcmlRMGVod2JjU3YvUzdaK2V1bUd4SGVaL3hta2NC?= =?utf-8?B?Q09mV28wWldmUE85NTNTL1BhcEJhUm1qTjMvNzhLV1psTVVyR1daZ3I0THVy?= =?utf-8?B?a3o5dWZHZ2tsK2dKZWFlcFRqSXorcXJxYU1WMUs2dFZsK2FzWWlPdVRjeWt0?= =?utf-8?B?ZnhyWDJTY05JdzFnZ0R1SjQ5QkZRL1RjZmhocElzbkJjY1VVbVdiUU41R2ZN?= =?utf-8?B?ZURjK2cxNXZGSjRGb1lhYWRrTXlUV2J0dFZSbEFrUjVPMHg4WnFmdTVlb1FS?= =?utf-8?B?TVdibWRaWDlaVkVWL2lQamZ1U2xWaXAvelI2cThtSFo4dW8ycUFhZXI2VUVF?= =?utf-8?B?ZVhCZ2k0OFI0NTQ4eTQwbWZvYmpwa3lnbzRDa1ZLaDlqTXVHaTZ3RG50VzRa?= =?utf-8?B?VFlSekxsYzRiOW5IL21IVmtoT1VFM1BrOXZSQy9pbHcxWFpSd2tMRFNPMDR5?= =?utf-8?B?L1hpV1ZEL0tLOVRTSDdxSC9WNG40cWQ2N0wyM3hCTjFjQ1R0VTBDUDcyQVJh?= =?utf-8?B?ZnFLaUdmSVNZTW5QYVhFS29ZTDkrYTZ2UUNEalF1S3dnNDNKYVFVMUZ3MXo3?= =?utf-8?B?SG9OWWlrcmtHVkJPV0c3dEkxdXdINEEzYlB1V1BmUHA2S1BuOGtVOGVmZGNl?= =?utf-8?B?WVg3Rmt5bVUzajV1QUJMdjZYdS91NlR4bkZBTmlSdUF5VXNlVkR3d3RFZXY2?= =?utf-8?B?UHhuMlZnMkFaRVN3ZnFoVjJoWUN0aCtoRWk1Y2o4aEZNYWxUaTVSZTN4SW91?= =?utf-8?B?Q2o4czBFUHhGdWhiUlc0bitRUGVMNjdCSXQwT0lIeWwwMk9DbTBUQm5sTjJz?= =?utf-8?B?amtpellrQllzWG5oRVZyeVpFWVRzd2wxbVI4UGR5eGk0VEJsbHl3SkN3SkNH?= =?utf-8?B?OGVHWjVMZW1wTExCUDkyV25odGtjaEZvK3RTYklUTUNhdjBJeDhDcGo3aVBP?= =?utf-8?B?bU55cGJCWjJMakRqRXM0VWpxcHBFOXVKb3NTa2JXL1ZHY3oyZHNRb1I4UUNi?= =?utf-8?B?SzVkNm96cDQxTGUzZC9XZElsYUdQOE5NVjV5dEJJVnBDQzBGWkNZWklkT3Nn?= =?utf-8?B?S0dOR3NzcmNsUmRRZXlZaU1RZVpTWHR5Y0tUNmIxMmlaenF4VVdVbTdtZG1I?= =?utf-8?B?eHNuUUd6dlBEUUQzazB4YVZoaHJBUFREL1krMzhWR21ZTTVBNDVmOHgzN3BE?= =?utf-8?B?ZXM4eEFjMVVCSCtjcUxNUG53d085U0I1RVNHUDdvekF3S2YwcTJGaG1hTUJn?= =?utf-8?B?dG5xQWIvWWRQTVlhY1BGY1V3YWUxblpreVZ5V0dWZW9jY1RWWitIWDQwdUtS?= =?utf-8?B?NFlzbjZOeU5nZFQ5M1BsZXZ3TGlCRHNldzRUczJ4UjJEZnJId01OSXNscDQ5?= =?utf-8?B?RzBoZGdJTmZReHoxeXpidXUvOVpsdzMxdCtoeERnNTVEZnBnYW5PTmIzOVlE?= =?utf-8?B?eWt2QzBJQ1RScWJqcEIxSzJuMVBoancvM0hJYzZmb2Q1RFhiZjRnV1ZXWCty?= =?utf-8?B?S1N6bER2dVdTbUNGSy9jckxrMWJzQXFvZFlYL3AxK051SUJLV1VrS0JDRTZH?= =?utf-8?B?MzBrN2R2cDRGVkZQUEY1djZmSDNINGV3RG1FN2JLYU9LQm1SQzZpSUxhMVkr?= =?utf-8?B?c1N3SkE1V3FMQlZub2lJcjFIbzFnSGQ2djFENzg2SHRVampQRTZpZ3ZoYTc2?= =?utf-8?B?cDYxejdXM1dOTnA5emRpeEwwMFJkcU9qcE15M3MyMXV1Ulh0Sm02VGduTHJJ?= =?utf-8?B?ZjduajQvT1VHeUtueTE4ODBxRXlvVm9sMXpKSkRlNGJpc1RMRG1LVi9tMTB2?= =?utf-8?B?ZWlHODYxN3lHL2ZBSGI4Um5nc1hQdHFQV2xvSWwwbkY3SkZFdCtoUT09?= X-Exchange-RoutingPolicyChecked: lzqZ0vk4lHOg+nL3xpFhZkSoUEGGG5/bC+wshtLPg/wEy8+Zi67FZ+fT9dt/0Pm/GS111qV5eTQ+CvziovFaDx3N27HbKBrTkC8qYyRi5ExjhngYc+pWJ8cHpJh+5stsPN/kJktTb+DaRgK7wKGRyj+6t3NR+dTBcXgdVdGhvNrgSKfUmTq7ci/RuXyN41b1/SLUM3fO9bDATqDVXvXVbM5NBNNBR9qvMKNXH6dGyKX1sDwCE8JpLWXNaBGbWO1ol3ZVbeFAJwvO25EV5LIWOIpCvJ8OgsDDT3L3pp/mbmCXdlvOgLZnFFN/SQiH/ZmMNTlg3BMuduIm4ffbXLaieQ== X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: bc08db37-32c1-40e3-602b-08df075561de X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5469.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 11:45:40.6564 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: eINACEL27PnZg/EUE5AqUt5FVBfQNZIoUugTLyExJiuapPpz+BUs6BSds5jD1uNFC4DvhtqfoPO1AjfJqExoHA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5077 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfXwWaOI3WBy3kA ULi5L/23c6zDzmgc4PbDC6j3ikA0MpPtgjpDY3Cnf8ZUc6fQmwKtMX8BN1f9BfKA5wXZhLeiWu9 cQkg6XGZM6vNnmwow0SU+HoeLjX0HP+a2RgZLEAJcxijKF2fP0wvCrfJDhB/9R+M9lQ342Ww7zH EP0aYcd3NbE5xmlnjOnU92/bcaxvjv/gjaiefgk+NSUNaabra7L3bG7uyiB3xAhJuQtE7bRnipq Zy/w4bw9TnHVN+TJIcjb9L1pnQbskBL460k40PQEqglAFRmHjVrFzxtFpSba0H0J1xCH+/Aev8L h9mfuHIrkCD9dzz8IZChLYEn+dGQjwSTIysjSEulYq1zmIMaizIfAiZ/BSOvReu3ESxVullYusS NTIBc+YkWr3REEq0touxEFO/FGRA7KPaVsnLEw7ioDI08RcKtYbj/Q6irGVBitzXAJAJd4XA14/ L587K3hlketIoIwygMA== X-Proofpoint-ORIG-GUID: aL8FTYWitqFhYtNcCKfiRk0Bt3hXBOpy X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfX2bJmFpLltMSQ AQUb5u4A1DqwDhjUPce9UlRYjvsY38MXeWu51flFhlRgwy3UxSrCmQUX0EjSiLmCo5saj9HOosC /ORU6sYIczd+Qtf+9Nvwv8fJVf8pAs9ZppVWsGlLBARHZDf9ksDN X-Proofpoint-GUID: aL8FTYWitqFhYtNcCKfiRk0Bt3hXBOpy X-Authority-Analysis: v=2.4 cv=fLkJG5ae c=1 sm=1 tr=0 ts=6a956967 cx=c_pps a=EaWthEyNNaJ7GkMLLYePaw==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=0sLvza09kfJOxVLZPwjg:22 a=ZQxX5BWu6Z8IJBb2zLX7:22 a=8AirrxEcAAAA:8 a=gAnH3GRIAAAA:8 a=11eJKpf74FRv4loUduQA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_04,2026-08-27_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 impostorscore=0 malwarescore=0 phishscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608310101 Advertise the single supported source and destination bus width through the new dma_set_src_bus_width() and dma_set_dst_bus_width() helpers instead of assigning the legacy u32 fields directly. Reviewed-by: Frank Li Signed-off-by: Nuno S=C3=A1 --- drivers/dma/qcom/gpi.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/dma/qcom/gpi.c b/drivers/dma/qcom/gpi.c index a5055a6273af..3a35bf4c3397 100644 --- a/drivers/dma/qcom/gpi.c +++ b/drivers/dma/qcom/gpi.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -2265,8 +2266,15 @@ static int gpi_probe(struct platform_device *pdev) /* configure dmaengine apis */ gpi_dev->dma_device.directions =3D BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_D= EV); gpi_dev->dma_device.residue_granularity =3D DMA_RESIDUE_GRANULARITY_DESCR= IPTOR; - gpi_dev->dma_device.src_addr_widths =3D DMA_SLAVE_BUSWIDTH_8_BYTES; - gpi_dev->dma_device.dst_addr_widths =3D DMA_SLAVE_BUSWIDTH_8_BYTES; + ret =3D dma_bus_width_set(gpi_dev->dma_device.src_bus_widths, + DMA_SLAVE_BUSWIDTH_8_BYTES); + if (ret) + return ret; + + ret =3D dma_bus_width_set(gpi_dev->dma_device.dst_bus_widths, + DMA_SLAVE_BUSWIDTH_8_BYTES); + if (ret) + return ret; gpi_dev->dma_device.device_alloc_chan_resources =3D gpi_alloc_chan_resour= ces; gpi_dev->dma_device.device_free_chan_resources =3D gpi_free_chan_resource= s; gpi_dev->dma_device.device_tx_status =3D dma_cookie_status; --=20 2.55.0 From nobody Sat Sep 26 18:55:09 2026 Received: from mx0a-00128a01.pphosted.com (mx0a-00128a01.pphosted.com [148.163.135.77]) (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 3E2793E7173; Mon, 31 Aug 2026 11:46:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.135.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176789; cv=fail; b=IHEsZFI6HjgEpZrqiaolfqenT8arzEmofe/C/UCF56goH05T82jeYpLCJ0rO0qWNn6n3B0/hwfb7W5Z2W+x/YrAwaUC2AH3678Zl8MhGw8R6azmMhdTMBFVmWrEFUyfNghjTeGPcC0pTHlQfzOOAObxFDUYCkdska1qnt0wOyDU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176789; c=relaxed/simple; bh=B4qIspk7szggfviYfr2lyKwbei+EPFBQu6X/mXFf4Pw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=mgpCieMfrNQaH/kZGq4wqo5Xqs3g8mA0/bbPLdDW+jDROJXXlsl1xThUi5HrZWk82bcE8jlqhXG8SWNk8lBn2A+B5CEAGA2an5rSe8bkeVHdUIug71zbAn+fKW+2im07RsMAB3octfgAdLhb04l/1eaF1DNJIKhfIQdHqizvZRE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=c/lp5YHL; arc=fail smtp.client-ip=148.163.135.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="c/lp5YHL" Received: from pps.filterd (m0167088.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VBAAxL1650004; Mon, 31 Aug 2026 07:45:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=dodhk XB32steEVXJ3q8Ho56drSv56nxGGINiCvOt6YM=; b=c/lp5YHL0XepGBZuV/h5b 5JEBe9zlwpD0ypJeGjXqh8IYSPcDiee2GxpdetsyP71FNfeVejbTYfhMf5ZdTUR0 9MT/N8NcwLP6edA7aq6zCqF7Wz9gZfl1rRRetJanLfeHqmMytisahcsEkeqS35h+ lnAVeD988zxpu9rqjzutjwnCcrryOIuZ7ltL1218UAkl0dUcRBPCBpTT66Sx04Bu 7ZkYUuz2H/4ahjr+nAddL9MOLh5eREX+GmtKDjK12T8t43xlx25jhkxHZ+UcrLDD N+Z9K5SjkFWXeEjMA3qHjpFxC49DQslrsAKP8M2zo/ZzDHovW+CrSxQQSs4ZpVQD Q== Received: from ph7pr06cu001.outbound.protection.outlook.com (mail-westus3azon11010058.outbound.protection.outlook.com [52.101.201.58]) by mx0a-00128a01.pphosted.com (PPS) with ESMTPS id 4gbs90yqh4-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 31 Aug 2026 07:45:47 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YHzPk5ear4IVwlycrZwZ1kyebwGe4HGHLpnmqJ05uv+0LqOjazhABGO4wMzfcATEU/5zwcWuRSKTRaIEPIm98oYxAP0eGRw5GmAyPzcIhuBcqysobJXgecF854Ww2AtAmO14jsGMnQD24EOW52178W8oN01v0Otd1ScwSh63GZHmmQJfvsqoyRZCUZeCGYL1s5LOo7tJyE6c3YKbjLsNQ4UPucYAigsxJkdgyEnkMKOxAnYDHJPho9OZv87rXARw2iVLbOspiG/cOJFWAqepNVoDqui8PcEtjd+ArI997toP7vyvwPniRDgVBNhfkqoWny74D5ah8fvzr6C7l9bNlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dodhkXB32steEVXJ3q8Ho56drSv56nxGGINiCvOt6YM=; b=f9+E3JznsNrjxmQ4snPA7oQdZ6Qp5Nw/RNHXAyLu5cpv1fNqszDH7aG5hYzjD6x0mo2KNM7rGWH893wqTBQWXBEr+V040HLS/yOCIyVYfjwjZDPyu2wDQXDtT8o33LxhVu8eYSZtUhKx3PaQuoiv2idliiaxTpGU0+H0rQpTz6Y2frBFWGGKa6n5MB5I/CuyfVYd179Ud3IOYU1Y56dSM193XFCU+/PWYtw77HRGJt+UiUG87cxORBUjAd+KnTN8zaZagLjrJQdDoUWZTmmQX0TD7YuOxiyUbUhvu9Jx4GrnSePsHw77oDPraW+zLx6vkh7iYlAjxEq0ZxveX+IpPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none Received: from SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) by BY5PR03MB5077.namprd03.prod.outlook.com (2603:10b6:a03:1e2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Mon, 31 Aug 2026 11:45:44 +0000 Received: from SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a]) by SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a%6]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 11:45:44 +0000 From: =?utf-8?q?Nuno_S=C3=A1?= Date: Mon, 31 Aug 2026 12:46:42 +0100 Subject: [PATCH v3 5/9] dmaengine: stm32-dma3: Use bus width capability helpers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-dmaengine-support-wider-dma-masks-v3-5-507d97496f2d@analog.com> References: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> In-Reply-To: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> To: linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-iio@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org Cc: Vinod Koul , Frank Li , Lars-Peter Clausen , Eugeniy Paltsev , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Jonathan Cameron , David Lechner , Andy Shevchenko , Jaroslav Kysela , Takashi Iwai , Mark Brown , Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788176799; l=4011; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=B4qIspk7szggfviYfr2lyKwbei+EPFBQu6X/mXFf4Pw=; b=eBgr4UuECbj77OmQtOX7zLDG3Wn8CMUfP8bvUZhJ6Cmfg0TiQV9tt8kVCyduibkGMnOD7zDjg 4W+5GfMVZeWB8FhZQzZmm/c1VdMwQD6EKOw7Rmfpy39wOzNr6UNaFEu X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-ClientProxiedBy: MR1P264CA0026.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:2f::13) To SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5469:EE_|BY5PR03MB5077:EE_ X-MS-Office365-Filtering-Correlation-Id: 4872bd94-2435-4165-e672-08df07556455 X-LD-Processed: eaa689b4-8f87-40e0-9c6f-7228de4d754a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|23010399003|366016|1800799024|6133799003|10067099003|56012099006|11063799006|5023799004|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 2uvhs/RDcYuQIYVuG0n6N9PJo2UTbFvZxTYUi897ZSOlPVxaF91r9/uHaeRn3/16dMcR3p8rhCu/ovsEadbcQUh6Yc8g2wOF5mIUNKcCsmdURx5dakp3kMdWb/j2DduFMV09z9RUyu2HTnaBm7nYBHydGhlNAKrOPwdhkQIS8A8VXb/wmFXNy9MiC8fjPn9pBKsK8tpWAknRa4mM/pgg8EC9yxVez+Q9A6iW6CHx2yLkb7vbxFUx2vqJ117Zf0SBZ9zK/jivW7OUF+d3RgPsGowr/bpFGaxQ/beOYfDmP1459gtX2LnnP7ngo5+IEDQ9cOnDAaHF/hUJmltdjorubLfwE+0Hlv8lQbqm5791slRZPZvv2EW8Fr+IzdKsdwDBoH+f/RH1xPYithHtUdwpItXc5JOsP+F8IBz+Na00NRQURkPYHUB6tzPDl/NONLJfPLMm7K3q461Xa8iHjLw5DEvC4xYwjJ/KUo4kmTdpVY3tKdIfx+c0YFvtZY6cB7Jok4YyOGbBo29MzENU1b/JfThncEs4JfZ6Eu7wAfJFNZeFP1ZV+2+52CRySLxhHnQCpQ6WTV65Cv5s6a9mOEU3lvzqqa2yOOiGTZYyAttxMJyUwhQCJwPxktF1u9k9ggOCWW9cDIUyyoNG3xUNrpIqU9SsuE1FlCvNrCpcPDldN3w= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5469.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(23010399003)(366016)(1800799024)(6133799003)(10067099003)(56012099006)(11063799006)(5023799004)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MzY1ZGxHSmxTcTlkTitsSDZRMVNUR2E0MnUrbHdJbkZuNUwyNStpNzZUcTFT?= =?utf-8?B?T2d0MHhnRWhLdTlTQllwVkpoeFZCTkZlcFlNR003MkpnVlFjektXdVpobjY2?= =?utf-8?B?eWVxdi9ZSC9XTUQ0ekJiSHVrZHE0UUdxODJkWEJjQy83TGQ0TXB6QWV3NjQ4?= =?utf-8?B?ckRlSXloWXFqdFMvUkRyK0txc3BINXN5M3B6dDI1cFVwaURidDBla2gwOS9q?= =?utf-8?B?U2JsZDlrZHBnWEdCTGZwaDd1VG1FeS91cGkyV2VnUUpOdVZZU2tvNmxtQk9k?= =?utf-8?B?eVZGOWl0bWR4K1lKR2IrV2RYeFZOaXVkbDEydXJvTW9vTGhhZFJHWDI4cHlI?= =?utf-8?B?Rjk0dE1vSXFjYzFCT3JZSU55bzVRUlRGNHdJbHJJNlRhdFFGL3YzYlB5Si9N?= =?utf-8?B?Q1hrRXpuU0tsRjN3OXZhLzB1ZUxPQ05RYjgrT3lWSWNnR2R6NkFOQ2RVVk9B?= =?utf-8?B?NjJta2ZqbCtwWlZHU0lPcFExQ3hWZ3JJZlYxS2RBbytKVlI3TXJLR3cydUlr?= =?utf-8?B?aGNvc1c2VUNNS2drUW15aXZaN3FqQUhaRzJsKzBJeWcxQ0pDQnUwZTBaUFJs?= =?utf-8?B?bHZTbW1Gbmc2dmFUNUN2M3dwUzNvU1BpUTM2QVJLaEVldFRPa2RObUpVSytp?= =?utf-8?B?SFJkZmlDNjQyYkNmNzUvNFY4dDVQUTVkdG8vdk00aU1TVklINUZzcURIaENr?= =?utf-8?B?OGNMMUZ2SG8yS3lRQjJ3N25YUVkrUHZ5Z2xVTWRMNWgwRUN5Nm1Bd3daeS94?= =?utf-8?B?WGtUNDVNaTZqT1ZoYzV1bGR1VFJRc1RXbXl4NU15UkpTWGY5ZnRScllGUXJo?= =?utf-8?B?SCsyUFI0NWM2T0dSc0k0eFpMNHBmT2p1SWVNbkdtQnRkRjQrYkJVYmlhS2g0?= =?utf-8?B?RldIMzNQclFsS3ptbzJnc3lxMGR2cFl2Mkg3ZDdMaW50akkzaGJ4Qzd3bFQr?= =?utf-8?B?U3BOclVudTlyVC82cHMvMVZ4QlNVMUl6SHQ4UllVbzRHNGE1YnpRNFgxM0ZZ?= =?utf-8?B?a2xvczVqTWpFN1V0UmtUTWQydzgvQ0d4UURmb1lJdW1vTy9lcEdXdU9YaWFE?= =?utf-8?B?dzcyMW9RZEkxQ1lxcnc2RzJvSUNUcEd6R2pYMkNLL0ZjMG5TL0JoSnBvcTBu?= =?utf-8?B?SERGWUJ6OU5vb2V0czYzZkg3K0dXUzkwQWZJQnZkdjl2WTgzaGRiZkRCRWFn?= =?utf-8?B?c2NpRGoycVhOVS91bGN1aDZmQW1VTjYrcjc3UVlFa3ZwdlJGMGM4Zm1nQU1q?= =?utf-8?B?and4V3hvMVRCN3FRUUkzbmhTSHpNSzBkaG0xTzNjL0hUS2hmMlp6R2VBQUxx?= =?utf-8?B?eHRMcjZrRCt1OHBRNGFhWW1hV3N2TVNENGNTdmVjYkdKWGx2Uy9uMkRVZ040?= =?utf-8?B?S3BONXp3WjBsakVxbXRMTjRLYkhmOWxTS1ZWamZIMjJSQWlaSzhPSys4YUFj?= =?utf-8?B?K21FWjlXUTZWRUNSZ3p5Z2tMMmp5M0VGaCt4OERvSit4RUdYTURJWHdBclp0?= =?utf-8?B?V2RpNnVHdytwVHdRa2pPUVhaVFN3UEZsTFpnamlNeUtGQkJzVzcxRmk0VG5l?= =?utf-8?B?UmhxWlJvWXJ2TkNYSUJ5WmUwK3lzeHl5enlndXAveTZMS24vb0N3cmU1dmp6?= =?utf-8?B?ODlTa3ozbEwzaUJBMWJWNzVJdzdNTktMRWRNYnhqZHE1eTRwRG82VytDVnhh?= =?utf-8?B?WFJqMC9FdlN3c1ZlMmZQZWFEeEpnalFZeUlxeGZGeWJ0RnY4NkpjR2hPL1FM?= =?utf-8?B?RUlESWx3eHc0cGxvQ3FFVG5EYTZvdk5LL0o5QmNjTmhzUkNNRC9VbkRuamZN?= =?utf-8?B?WEhvWWhJVDZEMkhMclpkcHREb3d6cWN1dGZ3aUNSVWgvZW5lY21yRkhDM0xm?= =?utf-8?B?STF3YTA0ZHNZMEljZk14MVg1T3BFeUliMEJWSDJHOUNDdnlzZkR4MVRHbmRK?= =?utf-8?B?amJJWEhWZGVNWnhEWFpwZzRZNldUTUN2d3cvT2NOSjI3VEIwOFdUVVlCTk0x?= =?utf-8?B?SkhZZnNWVURmWG9USXQzY3ExV1QvOCtOY0QxTk50MjFtMi9YMUh0YUdvd3JG?= =?utf-8?B?SVZSOE01RmxtL0RPcmtZdTBuZnJNWVNhem0yS1lvazJmWG5mY1lFbTliajli?= =?utf-8?B?amVrVkdCY2Y3djhYN2tGRm1hRlRDWDVKUmtFTkF2cjF2c3g3TlZvMGtaako0?= =?utf-8?B?ZnVlc291aUFpaFRsRUFoLzNsN24vYkp4UU02K0ROczYyc0Z2emlBSGxLOXE1?= =?utf-8?B?UHFwdmhhN2kzdUo0UW5MT3JWZVo2VFFPaTRySWJ2YVpWeStTWDhYWUU4N09l?= =?utf-8?B?T0F1em1BZzNaWkZKS1lkdmx4U1dmL3hHVzR3bXFhNnBmNFJ6R3NCQT09?= X-Exchange-RoutingPolicyChecked: 2N+MzRGVDnipIj8MIJJ6gsTVL2HTeFSz5Nkd0G+eZ2edDrJkmyEnjShTJlYoEfT+By80y/bpAcBySBpEmI2DOSqMuTF+zxqoMYrylFFWt1fnHdRMyCDZ5P5o0DbPv80c0f2B2oAVo+FzCW/ZuLeJuF1idPoC3VCZ0QPZlG5IaNSx2UhlZhkZ0BuSsJcktSP5K+tihVLOr37WueezxmgAUfP/XypBs4XgiS/2C/BlN8eE5s9HaCwxfYFPPEsR5QQ8E1ZlnWfQk/BikJT1FqdSThT/jKed3knfQs1u58AoSi560/soPa5xjO/DSGFS7n4iVHudo/MmpgUYKoJZZEYiBQ== X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4872bd94-2435-4165-e672-08df07556455 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5469.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 11:45:44.8385 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NWrydvjlwJtxEnLLgqtCfA4fJAHH4BdnKRJCx9LeIBUOAo4B30m5FohqQb/cUl8gK6WhuZkz0JV1fe5z6C77Jw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5077 X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfX/LQhl8zSq1kb C9A3+0vNgljXdp0yE6KYrJBPY5EvgH5S3aB1IblgV2L5zxdhK26DuhHBZLiVQoDfaNVA7/rIEuv ic5kvuXQqEnON0wSlaVVRV87+0kvSdKoNDnuE+PzdqsfK31HJ1Op X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfX671plQOCxUGt 8MgP3sK76p6q57LzFmD5WV6RHRrf4alLNF+uevqHOFxWM9hakQEy/MojSOEnM+I6wk/4z4CEQZV D368KCjpslbaGwXIJm+ZgD6BZsoRRzUK2msOf0A+MTIEf/QZLv6B44qRu8QR5zypaxbMHs2y1Xg K3jDm/IbcbPnkss3hF6lJdq6Sei4eJYUEzHT8+GlEjXqWVFGorNwSFc4ycmU0qlngHXU8g6EmXL JNJnRRXhs6gwSw0UzwE+9Fd4sLRutPTjh+8J6T4OUEsCWiRkT4wnfiwjbWrb6Q+RRlmOfDCRWY/ +aiWMM64uL0yOG8fmB0l9pfboxDcdEajRVMTXdX84wsHYxLTxQvwMhQ5PKv4vIHbuuWSWB4TKxB 1BvPvksFSA1NtICg4q3IOhNzZmm1F7I8lwKgeLdvgC1kEABlQ1sgrjlYYSdHBSro8Oyj38NKwZJ VqksgUrNAPNIu82/FuA== X-Proofpoint-GUID: _5iAB-eGafAszVl8CWrpVHHxOQOQgj8- X-Proofpoint-ORIG-GUID: _5iAB-eGafAszVl8CWrpVHHxOQOQgj8- X-Authority-Analysis: v=2.4 cv=c9Cbhx9l c=1 sm=1 tr=0 ts=6a95696b cx=c_pps a=jKN40M1qUjEArv1iOeQWeA==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=0sLvza09kfJOxVLZPwjg:22 a=uXIjobp8t2wMuQ0fPvqm:22 a=8AirrxEcAAAA:8 a=gAnH3GRIAAAA:8 a=E3Qj7MYm3CVYKzQ9U5cA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_04,2026-08-27_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608310101 Advertise the controller-wide bus width capabilities through the new dma_bus_width_set_many() helper and clear the per-channel unsupported widths through dma_bus_width_clear(). While at it, validate the requested transfer bus widths against the new capability mask instead of the legacy u32 one. Besides not depending on the legacy field anymore, this also stops BIT() from being fed a bus width coming from the device tree without any bound check. Reviewed-by: Frank Li Signed-off-by: Nuno S=C3=A1 Reviewed-by: Amelie Delaunay --- drivers/dma/stm32/stm32-dma3.c | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/drivers/dma/stm32/stm32-dma3.c b/drivers/dma/stm32/stm32-dma3.c index 4724e7fa0008..0689aeb7cff5 100644 --- a/drivers/dma/stm32/stm32-dma3.c +++ b/drivers/dma/stm32/stm32-dma3.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -588,7 +589,8 @@ static int stm32_dma3_chan_prep_hw(struct stm32_dma3_ch= an *chan, enum dma_transf dbl_max =3D chan->dma_config.dst_maxburst ? : 1; =20 /* Following conditions would raise User Setting Error interrupt */ - if (!(dma_device.src_addr_widths & BIT(sdw)) || !(dma_device.dst_addr_wid= ths & BIT(ddw))) { + if (!dma_bus_width_test(dma_device.src_bus_widths, sdw) || + !dma_bus_width_test(dma_device.dst_bus_widths, ddw)) { dev_err(chan2dev(chan), "Bus width (src=3D%u, dst=3D%u) not supported\n"= , sdw, ddw); return -EINVAL; } @@ -1469,14 +1471,14 @@ static void stm32_dma3_caps(struct dma_chan *c, str= uct dma_slave_caps *caps) =20 if (!chan->fifo_size) { caps->max_burst =3D 0; - caps->src_addr_widths &=3D ~BIT(DMA_SLAVE_BUSWIDTH_8_BYTES); - caps->dst_addr_widths &=3D ~BIT(DMA_SLAVE_BUSWIDTH_8_BYTES); + dma_bus_width_clear(caps->src_bus_widths, DMA_SLAVE_BUSWIDTH_8_BYTES); + dma_bus_width_clear(caps->dst_bus_widths, DMA_SLAVE_BUSWIDTH_8_BYTES); } else { /* Burst transfer should not exceed half of the fifo size */ caps->max_burst =3D chan->max_burst; if (caps->max_burst < DMA_SLAVE_BUSWIDTH_8_BYTES) { - caps->src_addr_widths &=3D ~BIT(DMA_SLAVE_BUSWIDTH_8_BYTES); - caps->dst_addr_widths &=3D ~BIT(DMA_SLAVE_BUSWIDTH_8_BYTES); + dma_bus_width_clear(caps->src_bus_widths, DMA_SLAVE_BUSWIDTH_8_BYTES); + dma_bus_width_clear(caps->dst_bus_widths, DMA_SLAVE_BUSWIDTH_8_BYTES); } } } @@ -1734,6 +1736,12 @@ static int stm32_dma3_probe(struct platform_device *= pdev) struct reset_control *reset; struct stm32_dma3_chan *chan; struct dma_device *dma_dev; + enum dma_slave_buswidth buswidths[] =3D { + DMA_SLAVE_BUSWIDTH_1_BYTE, + DMA_SLAVE_BUSWIDTH_2_BYTES, + DMA_SLAVE_BUSWIDTH_4_BYTES, + DMA_SLAVE_BUSWIDTH_8_BYTES, + }; u32 master_ports, chan_reserved, i, verr; u64 hwcfgr; int ret; @@ -1775,14 +1783,14 @@ static int stm32_dma3_probe(struct platform_device = *pdev) * channel, and can only access address at even boundaries, multiple of t= he buswidth. */ dma_dev->copy_align =3D DMAENGINE_ALIGN_8_BYTES; - dma_dev->src_addr_widths =3D BIT(DMA_SLAVE_BUSWIDTH_1_BYTE) | - BIT(DMA_SLAVE_BUSWIDTH_2_BYTES) | - BIT(DMA_SLAVE_BUSWIDTH_4_BYTES) | - BIT(DMA_SLAVE_BUSWIDTH_8_BYTES); - dma_dev->dst_addr_widths =3D BIT(DMA_SLAVE_BUSWIDTH_1_BYTE) | - BIT(DMA_SLAVE_BUSWIDTH_2_BYTES) | - BIT(DMA_SLAVE_BUSWIDTH_4_BYTES) | - BIT(DMA_SLAVE_BUSWIDTH_8_BYTES); + ret =3D dma_bus_width_set_many(dma_dev->src_bus_widths, buswidths, ARRAY_= SIZE(buswidths)); + if (ret) + goto err_clk_disable; + + ret =3D dma_bus_width_set_many(dma_dev->dst_bus_widths, buswidths, ARRAY_= SIZE(buswidths)); + if (ret) + goto err_clk_disable; + dma_dev->directions =3D BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV) | BIT(D= MA_MEM_TO_MEM); =20 dma_dev->descriptor_reuse =3D true; --=20 2.55.0 From nobody Sat Sep 26 18:55:09 2026 Received: from mx0a-00128a01.pphosted.com (mx0a-00128a01.pphosted.com [148.163.135.77]) (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 87C2C3E0C5F; Mon, 31 Aug 2026 11:46:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.135.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176798; cv=fail; b=l0NyhF/D+Un7ckDs8EXMYW765Wa/HODkA9r+ZW6DFxFtomehQpSLaMmKcW68HsxAeV2x8ESUnrDN/sVuCGNXQlrvjM7cDPwzPmP8y0b+xM8hOd4Qg3gY0HX3cW4XRNbmQ9ke2QhuI6xGSeeiY5G4l3L36A/sQb73EsGaROHomWo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176798; c=relaxed/simple; bh=2cpqhKL01CQQel22sErJzFhAnW+nHPJNhSgCItnG3ic=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=t+7S3gMMR7RdKPW8L+I6ds4jtvSzf6MVjjtvFFg7MSGwh65WZEo0ZCPbvTHTBBJkpxuY15F11HxcgJO8QFPM0CQstwiCbJWOiTFgzy4k0+5zCQa+wOEJOFf/nmI/azAYMikGGsFoPDWdnVtKTfPb421hgG0IkGEJ/wAdrIxw7RE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=zduDFOCW; arc=fail smtp.client-ip=148.163.135.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="zduDFOCW" Received: from pps.filterd (m0167088.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VBA6w11649890; Mon, 31 Aug 2026 07:45:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=mrkRu nM0ha1bnzTQQKa/UPs/Ym/Zet1CWjMTr2h1l0U=; b=zduDFOCWZVnkXfMEEoYk7 3Z4EFi211nlrj9kmnHPCEkF9XX7MVzPc9UNJTjulbqPRqSgD6lMBTMUHAgPHluTK GmcsOmevYWJWs6KmcBoyuo4ZQXY6/uuZxRYPIfe6iI6pXJU6dlTZb9DFN8zhVvD/ IjA+N6pD7qP0+XcTdY9vzakAQM3EkfmDI26Tc6LltjQw47oyaXCsTiS/pweKJg1Z laTBe7vfMzbHeB6Xvjw/b/aYkPIvlqfVN1zNhBIPK7ZeNjGfwygWBlOJtjHFM1bO Mg795pj765vdsc76cjhDzXphH6PXXmrYDv3KtAQe4zfPqC7Ar5C86fB3qWPoBGXt Q== Received: from ph7pr06cu001.outbound.protection.outlook.com (mail-westus3azon11010020.outbound.protection.outlook.com [52.101.201.20]) by mx0a-00128a01.pphosted.com (PPS) with ESMTPS id 4gbs90yqhf-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 31 Aug 2026 07:45:51 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KG+PicJ/32x1iwWqYzdieeXuPPpjB7F/QLd3JMvl10vBYcGPcrGreKB8maP1DbT5TMAur8LHZynudZ3EYwQnQmTyRyknhppzTj5OA6whwRkb2+OjEJbZ8+eZCXV6YX8oTj0LGUTyJXzPJohMMF4Q0GJte9abky2eiq5T6Lf9ecOC2Jt0dJnZHKnXLQ2mPcwUkCDtxNUVbyS8NQt/7cfeh+76KUqBvklNNVE22YWbcnac4Apm1PWZWsBxPfEfDn8AgtD5BhOSStx0S0qVabTbbNwIc/is0Ny74FzdkdJBxq+hOGI4IDRefvjfi5RpX6jN9GPvR3pshTw2RcZEnFPetQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=mrkRunM0ha1bnzTQQKa/UPs/Ym/Zet1CWjMTr2h1l0U=; b=oIAvE+us91afsxNXFToa1hn7QwoZHOANSMyqjTUj49rFreOULFLwMo2ndGZZP4M2Mc1tYowXtHNd57Bwyz2E2637RNWtXixTSWPeRcfsb8I3Rcm5m80N6DiN6EPaAnXWOnWAU4JNBtkRehiKRciGJSINJAquL/1IIxsHF4xwgUSvOisELAWCbwxlh9+YDJBAcz0cTh97u3Iknp0QvoQj4wmI0FXZiTLvKLgQuSxn125zMSHio+C8iEcu6VHpRwHh5C+Igne4aytDyWMVecDP4ZuzA5j6872iIKzQFYhHGEQLGtyNHci8b+3TUoQI/aOanRnRBDP8ZlB8T1D94QXUbQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none Received: from SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) by BY5PR03MB5077.namprd03.prod.outlook.com (2603:10b6:a03:1e2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Mon, 31 Aug 2026 11:45:49 +0000 Received: from SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a]) by SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a%6]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 11:45:49 +0000 From: =?utf-8?q?Nuno_S=C3=A1?= Date: Mon, 31 Aug 2026 12:46:43 +0100 Subject: [PATCH v3 6/9] iio: buffer-dmaengine: Use dma_slave_caps bus width accessors Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-dmaengine-support-wider-dma-masks-v3-6-507d97496f2d@analog.com> References: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> In-Reply-To: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> To: linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-iio@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org Cc: Vinod Koul , Frank Li , Lars-Peter Clausen , Eugeniy Paltsev , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Jonathan Cameron , David Lechner , Andy Shevchenko , Jaroslav Kysela , Takashi Iwai , Mark Brown , Frank Li , Jonathan Cameron X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788176799; l=1894; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=2cpqhKL01CQQel22sErJzFhAnW+nHPJNhSgCItnG3ic=; b=jbMBmCEm5uJfiwa1ZDqEeE772oi9cLlh3ZPuxEDOYg3tBTnObcysXO1s1AVFpIZtC5l9IWhIu orENfP+6V9HAslyNDzokOwx1i5ScdGHerItMw1K73481e8opHwUWBz2 X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-ClientProxiedBy: MR1P264CA0132.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:51::7) To SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5469:EE_|BY5PR03MB5077:EE_ X-MS-Office365-Filtering-Correlation-Id: bc220e03-5106-4fd9-afcd-08df075566f2 X-LD-Processed: eaa689b4-8f87-40e0-9c6f-7228de4d754a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|23010399003|366016|1800799024|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: va+1bNNjPhETQNCcgvAnFqAwjf7MsTRJ5FUmcMC3jGumj1yMYaNuWvgNMV9SBH8YbedjtzbvPs6bWFaQgD5X6heO14UNAg8uVE/k6Qfj/nqafIbNUBMMoNAazbfE2ZHoK+YIOPiFyN5Lr913XBnBa6zwih+4QTL/bNW/0ry1SteuL9i3/lh/9pjquxralYbjJvHwj4HhwTr9mcpsXtyb6WWWNX6HObI+02jCMhqKIZgoDgaJvKFq2wXTE+mgFmWBfAPQ5aHjJJKF9i6fuS9WRtvaYpYGCkGrGwqvqqacwe7wMnOiD5WMRDzYBemxil2XSBkhms/9DdPQpAWckM4dQV45ffuAESWYiMlFERndwGoed6Gnj9HUrJDZUiYcNhYWq65TK1ore42FG85mYHX2AnzHPP6lD6xXCS2OAXl9YH9YaIf9+AAV45DeElsW6b73xnRHvUU0wr1cKtdGHxXZYeBl0oNsEwbkJSaWe6UssSAvwqrOfwXm8ouWuA32UMUmVs+zixFe+7HkQwQAqbh2Sfk1lHnjpwxGIs+BJCdAX+PPxdr+rcp3vfZFVx1GnWXlY1T4YJEYhDPhsuj8Bzc7RNXmOx+pKN4nUoxQJA6bqtCoKuJ+ZvQRSaV/Eu2+O6lMpN7m8Z5EGum/u7K/syZy/+j2WFw1vWIq3Qx0qWssuwM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5469.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(23010399003)(366016)(1800799024)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Snh1V2ZIdlgzNjd4OTVXTjhSMnFSQy9EY1paYlRoaERMOG9qU0p2WGY3Y21l?= =?utf-8?B?b1gzNFhaV1YwTVAwYzRzSVV3RG5pSUZHSFZNWmVPZWkwVEZjNEg4NnpldXdU?= =?utf-8?B?L0ZjdTJXQWI3UWRhZGRKaUdnU0MwUm5HOUFmQnlTVU0zMjFPbTNBbzZnYjBp?= =?utf-8?B?aTYvM3UwK25SYXNEK1R5WFdnOFVQSGo0TS9Bb2ZSMVRPU093d21jZ2p0TmdZ?= =?utf-8?B?SDdacUZGYmhWRlIxczVrcWU1dVpNb0NRbkw0RGxPQmFHOVhTb2FhUTN3YnFF?= =?utf-8?B?Z1JDbmhnbmY3clp1ZTRSSU8yNzFxdE44Qm94am1pd3RWSkF5ZkJ4Ymh2aFpX?= =?utf-8?B?TGh1cENUVGRUYUJjV0lXTDVHT2dtSURsWnZJUUFEZUFmSU9MT1pZSXROUy9T?= =?utf-8?B?M2tpaWd2U1JKbGZnOWNmSGFZQjJhRXFZckpEeWZnc21pa0JLWlFlcnRpNVZk?= =?utf-8?B?YmlwRmV0QWNSRTBremVDSlN1bStwaHAwKzA0ZUVxRTM3T1dFNHBya3RVdklh?= =?utf-8?B?NGlZZlFML093dFBUOThteGNVYVRSSWFkNmtrTStaQzBHei9VR2RkYWprdlkw?= =?utf-8?B?MFMrV1hHQ08wRGJXYkVDZ0tZeWhFcU1ZWGU0Z0dZOXZ1ck9mcWRLK0FuWkh6?= =?utf-8?B?WkdOQkYvZy8vT2cwM2d1S3BJcFpzdzhvZFhwNjA0SHA5SGRaUWFod1hZSnFw?= =?utf-8?B?L0plcGwrR3ZIdVlwVHN1S2pmaHlPVEk5U3BzUjRJK2pRTnAwWk1rMzRpanFY?= =?utf-8?B?dXZpdWtLZ3dEQnphd05ueFl4NFJrMjZoUXIrTkxCUk02MDFrN1o5eU5OWC9X?= =?utf-8?B?RHp6UG5JTExmYXhlblpyZFo0cTl3dUZyczNSUGJDaVY4cW1kaE92QSs3eXZQ?= =?utf-8?B?NUZnQjRXVDQ4WGRCRjhUS2JFM21iUWU5VjNVMnBlWFJWK3cxdDFUQlBGV3Z3?= =?utf-8?B?UHZTaVluZEhkK081cTN3dnF2d3pMK2tFSGY5a2gxT0ozYS9IYVY1TGJ6M2V2?= =?utf-8?B?cERWNnd0VC9OK2pJQ001dXVKR0d6N0hJTStZaC9kZk5IeVR0TXdrdjArLzdF?= =?utf-8?B?Sm95NjhxNVpQUE5QR2o5YTlMWXV1MmV2ZzFBOEk3MDZvZENwNmdYM0RhT21m?= =?utf-8?B?MGJyWFRmZ3AwU1dpR1ZDS05GYU5NY0NIZnRXNjlPYjBGaTVKSy81cTVqeVFB?= =?utf-8?B?UTNVdjVYZTNhdGhqMFRROGFLWDVWdVJTM0l3Tnd0TnhNYTNjK1VnQnQ4VFg3?= =?utf-8?B?aTJHTEc4Zm1qb2wwejB4YmpYVzFwV0ZOY0RMSTJvelZLdG8xakIyQ3FYMm1Q?= =?utf-8?B?UnA3SzNRMnNtUG5iZEhGRUVaTElpVXQzbnAxbWVCNU5IN01lZ0w0WEJoR2ZP?= =?utf-8?B?VnJxbmt4WGx6dVQ3Y2ZKWEtSaEZNOGhtMFoxUHdRRm1XL0tCR0xhSkhqV3hj?= =?utf-8?B?QXBjY2NWbG05dnRRMHcrbktEYWpvakpNclA0QTVTQ0ltdDhDV2NaWVJVK0xW?= =?utf-8?B?OTBxYWlVdk9ob2Y1c1N6a3Jad05yeC9UdVRMQkRwUWJVSlJGaEw0dXdTV3JN?= =?utf-8?B?bG5hYnNyYnpIWjZZMGlpMThqTVRtRFlIbFVEdDFRamNTOFMxakxweWpEaE5B?= =?utf-8?B?N2c5QUdLOXFGaGJlZjVNLzZXOWk3Y1ZOVDVldHh5SVJHZDUyZkc0RmFDRWpu?= =?utf-8?B?d01tc3lFUFFDQnAxZ3EwNUdqZ2hzWEExdis2dkRIdzFPVWRCUHZ1MThtQ2Zn?= =?utf-8?B?ZUoyTE1ZcHJPVXhkK09QbWhza003eTVoUk9pVDNuQVMvL1g5TlJkeFB5aGp4?= =?utf-8?B?VTRtS3ZxRFpPTG1KSnFxQkJGYTNhSjhna3N0c21yVDFaYjFCT3ZRanRvM0NL?= =?utf-8?B?UXpuQVpPcnBxNFVRSmZLMkV5T1NTYmc4WTRqdkorbWgvbkwxVE9BY0VJdVdH?= =?utf-8?B?cGxJSWlVNG94YnhEV25EY2I0WEI4cGI0emlEZVZJQ3BKUHF4WDBDTnJZMzlY?= =?utf-8?B?MTRleEV0MlRWdGZnQVVQbXNxSHZVaWpQYi9Yay9neU42c3Irbk5mKzZIWXZu?= =?utf-8?B?S2d4THJjZXFiblk5ck92SU41Uzg1RytPLzFyV1dCMDNvaDJFNFFXa2NtcDM3?= =?utf-8?B?d3VEQVovbU1yYTlGM2Uvcnd1blQvQmNRN2hJNXAvMHkxc050RE5rMXYzQUVi?= =?utf-8?B?UEd0ajZ5N2ZFd3RsNStXeWZKSEcwM0xSRUh3M2JxTzdmTkY5SXpRanFIMmxY?= =?utf-8?B?YUQrOHRITDBkL1NZOGZsSEpGK01NclRBRjJmMHZqaW9nN0NLMk9MZExTdito?= =?utf-8?B?bVVFNVVVU3RLenQwdWl6RmxWNExGMFRzVVJHaTRZRTVtbktldFlOQT09?= X-Exchange-RoutingPolicyChecked: tD6LSVJykgi98WmpxQwtKPR08fe+09lMi7D5B89scqpl7LEfD5nbGcoPrRpsUkOBusi2VHauqoGBn7HL6TlZve70aZvdHwFd2yMJEqExN7rHloIzZi7xhvxo6yuHNEfA4JsQto3fCNcahfl2RzTubCHupZARitOC/0G9jNboHPNWDL/dlXn1XdK+rRTmtv9o1568BbuU5xHT9EZCL+ywyNSBBtnP8I/Ffjren+HhxMuFMoBUdCPgB2PikDRfEnSWGQiXNrZ9+EwQg1cT/ytMFR153AYmSPX2XHequ98hmkEgFBF1W1rDUKGT+eVsjhi/kMUwwr+oAJ51iF/SLoqm5Q== X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: bc220e03-5106-4fd9-afcd-08df075566f2 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5469.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 11:45:49.1765 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: uWxC5SWWDiuRuvj08xUYszjoueQKfulyMrvKgHR5pVcvoAFGAHYBMwFdHgGCn0yGtdANC1uE5MEC12v0mRyWqQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5077 X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfX8jwzvutL72A0 m3brL2/SBaBslNet5WXv3YlwCysLDJ+7PDdxAw60iwEmhNqwUu+aOKyB99/+bF6ZY8kR9KV2heh BXka7IxCJ57BRN8S+nJUxnrb0D7aIT5MVTk/rlptQal/e7VBJvGr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfXzIdvogJ9gI6Q BPzq1E2AIB2fwRRwhcIRYOEIq9dbHk6hIwVbv7yGxBaXBiryYEuxx9iFsOa4qP85DoYDvadr5qx z7jA2l7BIi90r60g+1O6pyJSnHxpnT6ntQZ423c9Vo9JuwOlHwnKpWxF2W6mYNJ/PU5elErRXQq ocXc3tDo2kus1uccnrpbpEXlL+f9xaZ/wPtvIEYwTGtR3c5V9WbPzxPU0wiTGdazed9w19NcFXS WQFVAaItdvqZwr3ctFrzFdgppqXPd9f5PoCiANGfa/belJoUDzNH7apTCxPjcwTV/lmPxIWd9y2 Y2Va/agoe0seK35uDaY+foBHJAv0hE8sT6Pr/D99N52s3GfIqStzPXOgqcxXPfi33NdXBe71liS YWZFxit3cfJkuMuhnSDVpScqn2FdcVwYy8V6mKrkmMIINfZbo2FcqJnCIywGkCzx4q6nRfs/wmx ZUW1xkVR5j0MZphlNug== X-Proofpoint-GUID: xgwqJ_K1ES-A3tWz3dHuD2xNyNS6lKoL X-Proofpoint-ORIG-GUID: xgwqJ_K1ES-A3tWz3dHuD2xNyNS6lKoL X-Authority-Analysis: v=2.4 cv=c9Cbhx9l c=1 sm=1 tr=0 ts=6a95696f cx=c_pps a=RzNzSA3Xhmsnv5027CV2rw==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=0sLvza09kfJOxVLZPwjg:22 a=uXIjobp8t2wMuQ0fPvqm:22 a=8AirrxEcAAAA:8 a=EUspDBNiAAAA:8 a=gAnH3GRIAAAA:8 a=PlQVE8PmvpCE9iZECF8A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_04,2026-08-27_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608310101 Query the minimum supported source and destination bus widths through the new dma_slave_caps_get_{src,dst}_width_min() helpers rather than decoding the raw legacy u32 width masks. This keeps the buffer working with DMA controllers that advertise bus widths via the new bitmap representation. Reviewed-by: Frank Li Acked-by: Jonathan Cameron Signed-off-by: Nuno S=C3=A1 --- drivers/iio/buffer/industrialio-buffer-dmaengine.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/iio/buffer/industrialio-buffer-dmaengine.c b/drivers/i= io/buffer/industrialio-buffer-dmaengine.c index 98acce909854..e1aea691b732 100644 --- a/drivers/iio/buffer/industrialio-buffer-dmaengine.c +++ b/drivers/iio/buffer/industrialio-buffer-dmaengine.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -229,14 +230,13 @@ static struct iio_buffer *iio_dmaengine_buffer_alloc(= struct dma_chan *chan) return ERR_PTR(-ENOMEM); =20 /* Needs to be aligned to the maximum of the minimums */ - if (caps.src_addr_widths) - src_width =3D __ffs(caps.src_addr_widths); - else - src_width =3D 1; - if (caps.dst_addr_widths) - dest_width =3D __ffs(caps.dst_addr_widths); - else - dest_width =3D 1; + src_width =3D dma_bus_width_min(caps.src_bus_widths); + if (src_width =3D=3D DMA_SLAVE_BUSWIDTH_UNDEFINED) + src_width =3D DMA_SLAVE_BUSWIDTH_1_BYTE; + dest_width =3D dma_bus_width_min(caps.dst_bus_widths); + if (dest_width =3D=3D DMA_SLAVE_BUSWIDTH_UNDEFINED) + dest_width =3D DMA_SLAVE_BUSWIDTH_1_BYTE; + width =3D max(src_width, dest_width); =20 INIT_LIST_HEAD(&dmaengine_buffer->active); --=20 2.55.0 From nobody Sat Sep 26 18:55:09 2026 Received: from mx0b-00128a01.pphosted.com (mx0b-00128a01.pphosted.com [148.163.139.77]) (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 C612F1C5D72; Mon, 31 Aug 2026 11:46:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.139.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176791; cv=fail; b=EqP1t3NgzRbq02G5Rlvru+ej/2mXg6NlbYNzh1Ix0GwWPTU41FbvltCadmlVwli9fDtiu9MxzsU5aovY304/MRWClFr9wj3zJF1R0kVCfew7YL9SmAyyUb0oQ8nU+s16T73NjpXRBu3HY/rgGCY9ylIOUH6auKKVfMQeaG4iwv0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176791; c=relaxed/simple; bh=L3zTWoXqw5a5O5elg45zji72d5Z+MGFOr1XPYeUs5sQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=YOlyeAdPa2Ief4pn5iLwURkallUXcroIMC+UOHoyZ5fdeQlV2D653ZeZh1L/Zu+2E0jjHfcN0EW1bCnXAj2q0qiI2lU9T0pq428jtzKF8jH85MOgDp3pziC30qa/8htLNXwpHStcF5Oz08LZGYUdZ9rvyiMm1YB5+/yZlrUvbPo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=VQ/2WL0X; arc=fail smtp.client-ip=148.163.139.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="VQ/2WL0X" Received: from pps.filterd (m0516786.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VB9pTR793236; Mon, 31 Aug 2026 07:45:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=KDDlD NpLMuKV4XAh2Dp6JCydXIqCfjFMue8NJHS97H0=; b=VQ/2WL0X3XByy2RPMm0Wc 5SaJ6PD8fMJAx+0wzvVwi56r40hagWY6KVKA0oU835FBddmQTPVw/R3sVPLLWXoA g+c4UM5NN8xPEPrqnU5F4px3A18tRTzm963PRJY09UNC5DuD3OvAly2Om5ydDt6X WHJ3/VslXP2rlQEZN1B733eGYV6lUQmZpb7QLIStjEtBJEUBjoxOwpaEtUDIFnO7 iwSFKHMe/LpgXP7ekExOJgoEtxPMtvBl0uzV0UB8vCx0KR7TZAHSNskbgEW5JLuv xhSru0sEIRZmdVa4jk++4xalvmAIGcP3xCn3xgg7YkNd1v3nIKSRubnl1opuYv0q A== Received: from sn4pr2101cu001.outbound.protection.outlook.com (mail-southcentralusazon11012063.outbound.protection.outlook.com [40.93.195.63]) by mx0b-00128a01.pphosted.com (PPS) with ESMTPS id 4gcg1hu8qf-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 31 Aug 2026 07:45:56 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cAr4H+KR/DkLOlFEf6JkN4tWIEFz9MRW/VmKGk8IO7IotKUMebEc3O4Rv5rS9lWQU7kb/4DGMe52oxCIv45ifOWASJnoqHuJVjPxEVfbSTaYYFK/oAxZa1lyk7u8kAojMh4mJXCsxDi0AeLrGujt7adu/o+GtR5Q4jUcY0bJjAryJ9h5T85t0/x21pF8dJrWCqELNYLdtlX+EFU1VXE1fzE5/CEVymKKaEdizmdyGK9hM80InJolIZk7PSroA5KiTr7GKjLpVo8I1ynRrF/k9AucWWEpZQmuGbnVefxzzio/tY1y4AbGXfs+oeNHyKGySmzci1/B7491IXPANA5uBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KDDlDNpLMuKV4XAh2Dp6JCydXIqCfjFMue8NJHS97H0=; b=ADVu1fBrY0oUKx0TBL6Al5DjR9sAV6T8jSNCmBbhkI5DrxYHLr4x0uBbi5PDNTJU11kH2cN70lj2cNkNxro1r4Qq9eZeswuGW++AKpDcs9sYyWWPphDNHzrZ6FtWl48a6H6ho9JO/xlq3odnGXqJqTvqCnao9heikk27B0qdPGHo0u+bWj4WH1BhsPeCMM081Ctle/yBpalw0eCyhfTVUw6q7RDBcxBj+xUIK7Ig3K5AOo4aULEV+nfYilGm5jgTAtYfYW6oWpoEeh4P7psOpsZdQCRvZ8Bgi/oGwQe9c/qABN3KE5vcBCa6fJUcPda/pB/NHVdXjzPhxk2Xt50EJg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none Received: from SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) by BY5PR03MB5077.namprd03.prod.outlook.com (2603:10b6:a03:1e2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Mon, 31 Aug 2026 11:45:54 +0000 Received: from SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a]) by SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a%6]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 11:45:53 +0000 From: =?utf-8?q?Nuno_S=C3=A1?= Date: Mon, 31 Aug 2026 12:46:44 +0100 Subject: [PATCH v3 7/9] ALSA: pcm_dmaengine: Use dma_slave_caps bus width helpers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-dmaengine-support-wider-dma-masks-v3-7-507d97496f2d@analog.com> References: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> In-Reply-To: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> To: linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-iio@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org Cc: Vinod Koul , Frank Li , Lars-Peter Clausen , Eugeniy Paltsev , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Jonathan Cameron , David Lechner , Andy Shevchenko , Jaroslav Kysela , Takashi Iwai , Mark Brown , Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788176799; l=2367; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=L3zTWoXqw5a5O5elg45zji72d5Z+MGFOr1XPYeUs5sQ=; b=LhTSRo6RG4gjkpN0Yt6rXtoyMnbvaGHeuioXLqevn6Oap1MKYKrcjI2nHI0nBI0xgeCbOoaN0 gi2jyTGPWClA+nVBliELT8SKye788wUX9zo8FsD09RtFkBbA1VjMlHC X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-ClientProxiedBy: MR1P264CA0194.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:57::9) To SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5469:EE_|BY5PR03MB5077:EE_ X-MS-Office365-Filtering-Correlation-Id: 2c8aae51-8ce5-4dc9-f89d-08df07556993 X-LD-Processed: eaa689b4-8f87-40e0-9c6f-7228de4d754a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|23010399003|366016|1800799024|6133799003|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: F72vkqEm1tsWbDgFSzai9/SR7GbL5SkQQDLmQA3QSb2GwEQhA5OTi/LAidgoXnHOZC+Ilo4BIZUB14tNjIvBU6lS/0toaPhZo1i/syHTMN35e8fL1v/bYj8n4TMymZq/Fdsc9ZjD8HaclG8K7XvIA5oyGVcXd+uxIUbfQIS79GyqS2iMWYRq5FL4ylWbo9y8vbSLr0Ur3t4WpaNHA296Yim9jOe4T5RuXOGor5w0+Uga3CPkozXa17CD6lZEpqgT5TyQTGdHBwHfkBNWO3xQUYX20AbhjTGmAClPe6+WfMfMufFLeeAEF1NBt1XTW1qD+UTEU01TekCwK2SxCgchxzGNJooCIXpzmWfCteVnWCzjrQol4SadM3LvkwCndsPSghxml2+rMWpjSG5WW0jKozN0xbLmg3vHQGAtRPLeslSp4XEGEiJYswsKj4hrh3F7Jrx6BGWWEJJmzoVHoX2iIQOZD+F2v2oqVLOc0gsCwI8TpzvU5qUsOBI0mC8AyYSWM7XEb/VHOS/n3B1x9MTWIPO/ykLDKvEF1l+8gbzZbANRURrEzvwaiyUI/yABap5k3Wrzo5WtbpmkMTQFTDFiaSq/kvCgajWKu4Zh9Eie43gTyeeP7vHHfABPxDfIDlbDwDhmmGkWE2OwK5LXJq9eCzJnnnGFVtrGSIynHhicqaY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5469.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(23010399003)(366016)(1800799024)(6133799003)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VktnUUx2OEV6MTBuc0ZCVm5lMDlNSGJnRFowL3NTdEFPTlI2cmE5Q1htclVS?= =?utf-8?B?QnBtRDRKUEhtVnlIRXpXZjNQdURaTWt1dStmNHQvUnl3QkJIMU5uVXVVSGFD?= =?utf-8?B?Z3ZsTFU5UmM4NTJpK2dkLzYwZzd0b2JLVXErWDk0WkhlQ0dlVVNCVGJPd0w5?= =?utf-8?B?cUo2cHJoS1RCazczV2k2aVJySzNRWUYrNExhaW1EZWRHdzJncjZ4SFZsbWM4?= =?utf-8?B?VlN5d2RYejV5SS9qbXRSRmh4SnNFemlWTFZBeVhzZWlyTXBLeEptbWZQblZj?= =?utf-8?B?VnkwaEZoUktyKzFsT2k1M01EWVdPWVVkLytya0FNU09jSmk3eUE5b0hBWVFt?= =?utf-8?B?U0Y1alBsOTFVQ21lNVhUOXJ4WWoxZUZHOTE2Vm1rbDhqQWdtZTBpZmY4QnRy?= =?utf-8?B?MlhOb29odEI4Q2tPdUZyNEFRTURad1hxWjVvSmNjMmpGdlpzWmhKcFRKUzRW?= =?utf-8?B?clc3RUtSRC9CMU5CN0tvWEFoTUFmSng2MzdXbEpPeThjVFkvM3Z1Zkt4a2N6?= =?utf-8?B?L09DeFFDQWFkbjdoMnJjaUpQMEs5SkV0bElicHBVVDdHMzFXcUFjSFgwM0R0?= =?utf-8?B?eDlhNmpQUzh1NFhiUUk5am91SVZoL2lVNkxHZWFkOTc3QzVMNHBONExMOVB3?= =?utf-8?B?Zm00UjJSeHJlbzFyMVlidS96RzA1VnJlbWUvUjJYL2dNbENUZGV4MTFjTCsw?= =?utf-8?B?RzdJeWZWdGtpVDRFQmJnYW9mTlNmVVdIQkxLOHduQXRvaFhBNG5rYkRyWTB5?= =?utf-8?B?VExQU1BQNzR6M0JUVmpLR2MzVUZtZWx4SlcrdEN4K0ZWRUh2VzhEOWI3TVBq?= =?utf-8?B?clN0bnVxU01wMm55N1MzK3p0OVhydXFSOTZpVFFrdk1iSGxDWDM4ZzN1czNB?= =?utf-8?B?K1V6VmNSRllxVHE3VVo0QWF2YzZqY1RPNk5jYVJRRTVCQU9NZEw4WEYxYXBy?= =?utf-8?B?R3NOclByMGFTY0pzUThnb29wMmNmUzBaY3hPOE1sUDBZQ3cwT3RCaDZpWnM5?= =?utf-8?B?RzBMVEl2S3JlbEdMaXFMb2pMUWlIL3RCaExqK3Z5RmxWOSt6SCtDOGs3cktP?= =?utf-8?B?MzEwYTQzMUpTazFsSHYxUjdidkJJNHZ6U3libDM1V2xWUWpVbEV6dzhpclIw?= =?utf-8?B?dFhOK0NjN3VZN2FHbEVlWjlDRnluYll1a1RmZkNrNW9JbUpBT2pjSDllaEZM?= =?utf-8?B?RUVtVjFKWk40b2tQV09qUXZXNWkxSW5zeHp0Uit4S29rSWZhV2d4bTJQZFNl?= =?utf-8?B?Z2lkeTR3bUlvTTV1c3ZOWlZWcXNlNTFoYzc1OFdOTlhkNmY2VTFIam0xaTlx?= =?utf-8?B?Q3Zwd1Z5bTNYQ2dGZmNlSHdiVytvZTVsNkFITUErdldYZlRieFpROU9MVFJj?= =?utf-8?B?OEFMcUhiV1o1aDUrOXBRZWlSOVlzOHFWcHRabnpEYUFNVVF3a2RoaEZuMlll?= =?utf-8?B?cWU3WW5mKy9jM2hLRzBTM3I3OUM3OWsyQy8vNnlzbHdlRDNBSURGZWRudGJO?= =?utf-8?B?Y3NzR2EwaWhzanN1ZVB5Z3I1K1JsTmcvajVQSUFIQ25MN05LVmxLU0RrZjFF?= =?utf-8?B?M0tUS21lSWpNQ0lza2dYV0I1UnZwdVc4M0V3OWhKQ3U2UTY2VE15ZWUxcDhj?= =?utf-8?B?Rm1EWW9mM1JkMG1obkcwb1ppaHhhalJhUlFnU0lhMFo4cE5HVXFUOW96eEVG?= =?utf-8?B?Nk9oeUo1dmI3ckpadU1Zd0NkWnRSaDNpZG9YM0lha2g4ck5rdFc3aGVkbWEw?= =?utf-8?B?V01pSEY0UTcxTE9OSUp1U3RReVBvRFBRSGN5dzY2bzRNckgyL2lhdUg2U1k3?= =?utf-8?B?M2lYQVpWTXVOazFnZVhydGNTNDFFbDdtWVNUMjExYkNZVUIvb09GM25LWlJK?= =?utf-8?B?VzY3d1dOSjRIR2RpOFR2WWRWUmdTdUFXOU1PM3FOTzltQ3lPNEVrTlZ1TTRz?= =?utf-8?B?YnBpSDJPMHRLQVNPeGM5b3JiVFVudVlkSWhmVkZIS1JqWXBya0l6UURaNDN1?= =?utf-8?B?NVB5ZXE4c1RMcXUyQ0pxdGRJMktpcWR2U1c4UDZwL0ZpeUFsUlRra2t4VmE3?= =?utf-8?B?RXJoWUdyN3BEdUo1N0ZYcTlKb21TaENGQlNFSnFLNFpVb24vRUdEWDVhcVll?= =?utf-8?B?NEtKU0s4VytlZ1VYWDkvMkw0TldBTTZjNkRhQ3RmeFV2Nk52c3NlMEc2NWpH?= =?utf-8?B?WXRMTWVuUXZuUkJ0YkFuZzNnaHcxOGVqMk9KSTR5V0pYS2JWbkpXczI0ZXBx?= =?utf-8?B?Wml4MFBqaDA5SWhrZENGS2tsVHFSV2hPNjkwdnoxRzdOd1VWdGdiTDFXcnNJ?= =?utf-8?B?OEo4K09GcjNqeXppTVhpQXFyYnBnVWhTc0drOXpIWUxxakV0cVZrZz09?= X-Exchange-RoutingPolicyChecked: UcZ0sTFdgJkio2BDJQF3mBOMd0qX13A9Iz9ivt5jVw2fQXi4/FszBPgyAb4ncuGDyQSfZeoeximz1WpHr1RnS0eoD7Ts84qXqWHBNzD03Unp6ggQrrfdz2P/SnEnazXjfEFZcD8PubhiUvxWWT97P33B/Vyq3xOYJJC6aUS+48K8q7qEskwInInGjWD/RsSYhLFsnOJs2VghFgJ00O+trvL8DQdhpDMggMbKUWYKmVM2wVKaGUAS3UekOObhqZvnbXHwHtvG/z9xa+0ZU8FdSuA+QDkU+odn+ZW9vaYloHJcc7kvHL298Sluafwb6v1F69ozjNi8ph/ZEMZOcnIotA== X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2c8aae51-8ce5-4dc9-f89d-08df07556993 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5469.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 11:45:53.6080 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: s3dV9nO1OYd3VfmGn5dFcd6l/5TnSmj4Sjn7Uw2zrRW47URavqhaPu45kx0gGvvBrJQIX/Z7RqVJFiE2SsnjQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5077 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfX6ZxDzlHIa+K3 JaIN0UGVmVExLEQoEc05mmwu55J28HoUl6dx7bNWVamtrWJsABMvOiIGTIxW7etclT1lm4BUCQl nwzUmxyKp8yb3FYyUUa2kYOqS2/2+fewaGqc17um1LApV+8tNpy8fOB4A01hQlX0Yyd9dPJX25p Dc7LmscLMIaje4DWwfeO0rqFNOJu3r5oDfsQucI24qj+E6fGpUukxdDGQlhC0ShpLS/yKtCdrnt UMTkI8XTmsBqc3/kXAFITV3+4IBKoZxyCTKqM0cKt4pTQ1L/mH+jwE169l4U503/s4yV35TKHGe jbEhGaTAk01tx3n7iR1BL69F3kqtxIV0rNxWn0uaXa9hJGYd5i8ZPEklfM6HSiPEFSCwvAwQJvq zIHpIwI+qEBKA29hURPjzDk8bVOIpSdcA/V+XxpMoTalFIQ6L52yqbyv0Q6VFbMIufpqnzxjoq6 vSSpQ/AafxlxatDrSPQ== X-Proofpoint-ORIG-GUID: eoysnMgqMN60DCUAxeNZJPKF3u5FkPaC X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfXyeiyb9vx01Ky KftMwCmw/Oln/smJVsbQBF5W53v0SojjFegutMvP4ZDfj9stj/nnDvd7VJ8SyYG8w7PGLbZykUT 6yShjgnEQ1tkRQyYIC59moesJxGZUZkOfHrPyn5ATi3t1WK7GVB7 X-Proofpoint-GUID: eoysnMgqMN60DCUAxeNZJPKF3u5FkPaC X-Authority-Analysis: v=2.4 cv=fLkJG5ae c=1 sm=1 tr=0 ts=6a956974 cx=c_pps a=LrO9QPEl2oM1zDNvT4V0vg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=0sLvza09kfJOxVLZPwjg:22 a=ZQxX5BWu6Z8IJBb2zLX7:22 a=8AirrxEcAAAA:8 a=gAnH3GRIAAAA:8 a=RbNyKOt0vjK77hBBhwsA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_04,2026-08-27_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 impostorscore=0 malwarescore=0 phishscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608310101 Use the dma_slave_caps bus width helpers instead of reading the legacy src_addr_widths and dst_addr_widths masks directly. Keep the existing default assumption of 1, 2 and 4 byte widths when the DMA channel does not report slave capabilities. Reviewed-by: Frank Li Signed-off-by: Nuno S=C3=A1 --- sound/core/pcm_dmaengine.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/sound/core/pcm_dmaengine.c b/sound/core/pcm_dmaengine.c index 1306b04be171..2dbbdeae6c4c 100644 --- a/sound/core/pcm_dmaengine.c +++ b/sound/core/pcm_dmaengine.c @@ -11,6 +11,7 @@ */ #include #include +#include #include #include #include @@ -408,16 +409,24 @@ int snd_dmaengine_pcm_refine_runtime_hwparams( struct snd_pcm_hardware *hw, struct dma_chan *chan) { + enum dma_slave_buswidth default_widths[] =3D { + DMA_SLAVE_BUSWIDTH_1_BYTE, + DMA_SLAVE_BUSWIDTH_2_BYTES, + DMA_SLAVE_BUSWIDTH_4_BYTES, + }; struct dma_slave_caps dma_caps; - u32 addr_widths =3D BIT(DMA_SLAVE_BUSWIDTH_1_BYTE) | - BIT(DMA_SLAVE_BUSWIDTH_2_BYTES) | - BIT(DMA_SLAVE_BUSWIDTH_4_BYTES); + dma_buswidth_mask_t bus_widths =3D {}; snd_pcm_format_t i; int ret =3D 0; =20 if (!hw || !chan || !dma_data) return -EINVAL; =20 + ret =3D dma_bus_width_set_many(bus_widths, default_widths, + ARRAY_SIZE(default_widths)); + if (ret) + return ret; + ret =3D dma_get_slave_caps(chan, &dma_caps); if (ret =3D=3D 0) { if (dma_caps.cmd_pause && dma_caps.cmd_resume) @@ -426,9 +435,9 @@ int snd_dmaengine_pcm_refine_runtime_hwparams( hw->info |=3D SNDRV_PCM_INFO_BATCH; =20 if (substream->stream =3D=3D SNDRV_PCM_STREAM_PLAYBACK) - addr_widths =3D dma_caps.dst_addr_widths; + dma_bus_width_copy(bus_widths, dma_caps.dst_bus_widths); else - addr_widths =3D dma_caps.src_addr_widths; + dma_bus_width_copy(bus_widths, dma_caps.src_bus_widths); } =20 /* @@ -460,7 +469,7 @@ int snd_dmaengine_pcm_refine_runtime_hwparams( case 24: case 32: case 64: - if (addr_widths & (1 << (bits / 8))) + if (dma_bus_width_test(bus_widths, bits / 8)) hw->formats |=3D pcm_format_to_bits(i); break; default: --=20 2.55.0 From nobody Sat Sep 26 18:55:09 2026 Received: from mx0b-00128a01.pphosted.com (mx0b-00128a01.pphosted.com [148.163.139.77]) (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 E57113E49C7; Mon, 31 Aug 2026 11:46:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.139.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176794; cv=fail; b=H4UKws0OVBdr4QkLYMjsswV0N2C1IBqwAQTRcjQSxgmPcL6hcGAfx8DzWp56pj8EkIntef9GA20/qGgCK7jBWzKpWf0jn45NZXQe5hDoztdiB2I1oA15SX8eAAlsUyk+fxJ1XGqUrf3PWcNHNiM2prPQnxomw/8ZZo06Bdj2x6s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176794; c=relaxed/simple; bh=Qv1h81LwxUb4E89EpKl8EZQiIokN67bc+tKaQJ+fVM4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=PHwRNdYSpPyfcR1VfnCInwbJ6D1fPVk+ZY0UWJk1XnI4yxWAxz6shOv3Tq8yCowaYoDnYpuO2Qlqmr9J7iTZ753ce1w32dpCipWCrqkEiwx9++fdL5dwUGufXnYm5lvFrgADVsJjqsb6fYC0uH7omSRR+jIqWAnUQZ36TwjlzFE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=z/GgyMzn; arc=fail smtp.client-ip=148.163.139.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="z/GgyMzn" Received: from pps.filterd (m0375854.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VB9sQm3721621; Mon, 31 Aug 2026 07:46:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=gQXH4 55Fu1IDDh0kbcu9hnXNVWYyIkVfq5UHEcbvfGQ=; b=z/GgyMzn9+eOxZW2mXc8s VFqyNT9WALtHGCdXMnPuKMK2HsfJcqRKsKFsTT2qP6eUrYRNHRHZyJEXsGWYN0FI 4wXXO0ft5EkmR0ZegQ2TR1CFJI0TBTwwyH5xljXOlhnwUs5kSXMJKPamWZpzpacJ hbjlMfOiD43Ycac8hBGm1QGLjxSWJzuF6JwuBeohoRa2Y2eXUnpknWIY9f+/UZzc tTix1bwOvSbsebNfOOoIIv+LRqZKiGZWTGtMNgcAlM1im3Bhw6xMmZdSOp6wJsOJ 2kpbL6bj8fbHPbMnffCTs3g3wfbQgKQy4RyIxyxJSZtq4GUz2LkVbFe+It8zy+q1 g== Received: from sn4pr2101cu001.outbound.protection.outlook.com (mail-southcentralusazon11012058.outbound.protection.outlook.com [40.93.195.58]) by mx0b-00128a01.pphosted.com (PPS) with ESMTPS id 4gchfdb3jy-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 31 Aug 2026 07:46:01 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZB0IOdP97b3itQxxjqJtOj9WFEoEjPPDYt+uLsrRo4ji50nC2bquNaxgrDf8olHp8ivVGfdr5jRpBOoOxV5sc3HHvGxVWHHH0U1AWHJ9vfjy8/GEbwKjDmi/mtw8TEb9FBKGMJrYasig5yOvog9cFemw2zMn651YZs9yVvrrNPZSrm7f+DSy88lGGRbFMdfuN2k7vhg8O8Y06NUSSzRLRnmrWE8682SCF3jJemLTULpWSvaFVYlB2nBmMgbODb5aIY7iUzvIQzR1tpuaIAiteCMQRCsT9YyhGr7TFmjbZricxGpogKyXZDShGP+2fia+MYLXaj/v5eGRkywG0F6Vyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gQXH455Fu1IDDh0kbcu9hnXNVWYyIkVfq5UHEcbvfGQ=; b=pevdxJZdmJUr6qk2WT4ToYbaR4ARbrBOvO0LkDJ9MNshOj1LKW/yw5AfA3DA5of7ETs6lweJABv8YL0x89I1fHRDhXIiBJeqXiB+9q8ysjdctXPHnkAs6769IjsiLzf6cWJP6/q31+74Bn6QHEaqAm8CJOztFboIaJmg3q2GMv9g8JMmi0AkfplbRr3+IMoTPxtNPyPv+fpIJ4LHfTPH+XxWL1zlyWZjrXdOvk5UgEy/8IXFrZ++fLFv7F1qd6lMcvaSLK5HtqdKH4zZrzE4BlafVdjPNXKLSsii6EzKXvREzoKHnrQt11QYr7DVSgSUGR7F2e8xMRCyjkM3u3ynjw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none Received: from SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) by BY5PR03MB5077.namprd03.prod.outlook.com (2603:10b6:a03:1e2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Mon, 31 Aug 2026 11:45:58 +0000 Received: from SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a]) by SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a%6]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 11:45:58 +0000 From: =?utf-8?q?Nuno_S=C3=A1?= Date: Mon, 31 Aug 2026 12:46:45 +0100 Subject: [PATCH v3 8/9] spi: dw: Use dma_slave_caps bus width helpers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-dmaengine-support-wider-dma-masks-v3-8-507d97496f2d@analog.com> References: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> In-Reply-To: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> To: linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-iio@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org Cc: Vinod Koul , Frank Li , Lars-Peter Clausen , Eugeniy Paltsev , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Jonathan Cameron , David Lechner , Andy Shevchenko , Jaroslav Kysela , Takashi Iwai , Mark Brown , Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788176799; l=2420; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=Qv1h81LwxUb4E89EpKl8EZQiIokN67bc+tKaQJ+fVM4=; b=fGDTgLq7VSS3J0fKugx41TYPYIdmwYAnm482JdnZ0FgjKG8KCTJjG4xW2Vxuc2tM5dyFu++FW bkViAWdbdc6ALpxKmlVkfSC3mhz57K78Hksb7S/wXqLQQc3hBhaWmEt X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-ClientProxiedBy: MR1P264CA0207.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:56::7) To SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5469:EE_|BY5PR03MB5077:EE_ X-MS-Office365-Filtering-Correlation-Id: 7eac14d2-2b1c-4f12-bd83-08df07556c32 X-LD-Processed: eaa689b4-8f87-40e0-9c6f-7228de4d754a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|23010399003|366016|1800799024|6133799003|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 13Yip199fk18tOMr7CW3XqWzFdULff04tsK+e95GSxEdgMjyIBufd4sNBqmYzjgLjXurvbQc92s9tdRW9vBj0Lxp/1enWTBaHI95HDzVXNl6ZJNhnHYvx+JlvrLi6H00OeQwlEgN4tqvBjQ7ZbrjE/QAw6C9UN8Jh8qhlpQJEuH4GkGyt4hrCfpJk+uyK5fkLkXkOj+6Vhc5mc4dlVQJkdeZzhgol+5OAXxpHYYt+qlARsJg8GI8GVxgTXYHXxCCRnA9Mmh8QfPJHouTULjcC/7DlS52Z+tTomSFRCu/PzEUmRpBaeQRZRRB9xXrFjpyB9bWZAnNkbNzopiVmy0D2WMunpffUMIFFPS6IS7v0k4zjw7b7RJ49Y/d7bKo4Q1XTY1NbN7r3NqehYz2FuffHah1tahEMif673uW+5909Vi0RLlHJwJdRuLfh7YvPLkiWoKs9lMOa0Xw9+WJe42iWWkkuHgfXf1ALtCG7vyNRJYNsSXbhDmzNM054Ln27+7m/dmEDmzbzi6yrg0TW8g3nxktBtd/fimH0VNheEOrfE+WeWtO4FrRPmJPsKT/OL6NUH8cRHFouBXW+6vDxm4xwMfJQzszWjjfy8N6vBBSNLP59oo1sksb4hqA8ED2DkLvHPWelBhXr0e5AeJ3nKTGj3DTqED++U9jtgGxnW0fJ8g= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5469.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(23010399003)(366016)(1800799024)(6133799003)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OU5CNkpMM3phSk0xa2NOUG44S3A1SjI3aDlWcitWN0pvczFWbG42T1JJTWNx?= =?utf-8?B?aFR0TUpSYkxXdDlnb3pUTFlKV1FwaUZNOUZTa29RS2ZoS2Zzb0ZFZmJZaW1N?= =?utf-8?B?K0xva3JMa1QvVVFMM1d4YkNuY3J4VHJ3MDZJU1ovL01KZzhSRWFsRjQzcVJn?= =?utf-8?B?dTRDY1o5d3ljTlR6aGYzTDJsbFQ3bVpFNmlEUDR6NE93emNhdUQxQkljekJI?= =?utf-8?B?UlJKK3JBUDd1WFgwdWRMN1ZjRUUwNzJNTW1QSHZlTDBySzlYdkRqaU54Smox?= =?utf-8?B?dXd6T0sycmlZZmNVVzZhTTZDdkY1YnlHSUJCVXVVanZRR1VrUnhZQmhDTVFU?= =?utf-8?B?VjVDQUVLcVQxdWdzTVQ0b2tqL3p5ckRpYlRCZWNncHRTOVlaVzZVSlc5S21N?= =?utf-8?B?T3dWZjRXekNUMTRPaG83WlEyM3FycGlkS0dtQ2JPeVlVYUV0Y0JyMERTVWRa?= =?utf-8?B?YmdPbTlnT0FjUi9neUx2U0I5YzZBRjdkVThvMWJHMWFSKzRTejUzOXdkYktR?= =?utf-8?B?VElySFhrYVBhNUl5VlU1cTlWWlg2S2MyM2xUTGkvUDF2THU0S3ZYem80eEU1?= =?utf-8?B?T1BXQzB0ZTNDVHo2RmNlcE40Q2F6MXI5NmlUT1dtWHNTN0xXOVlRT2wycVB4?= =?utf-8?B?KzlTOUVEUVU4QndOeGpKbmtlcy9lU3JMU0VqUlBqTXFXK0g5ZU12LzBQSmhB?= =?utf-8?B?alpabGZveFJDNWpmdXBWNjdsb0E2KzFjcFhRQmZEbzhaR3NRYTlGVEZaTHJa?= =?utf-8?B?K2UxdUlldzY0UVo2T1pVeWIwdDNVSExQMU1lTVFOUmV2bFNqYXAzNXFZN1M1?= =?utf-8?B?eHBmR2h5ZDZPUXdzd1Y3bERvR1hxeXFmb1lUOGwzemNjZ3k4V3VkajhkY3VY?= =?utf-8?B?b2RoZjYvdm50eE9FcERxSFFkbkJXRENQZW1TYlpoWnl4N0l6V3MwV3NxVytx?= =?utf-8?B?U3pPTEtiOEpsT3lwMkhHUm1IaWgvV29sU2xrdzZiTkNMRnNYS2hYTFJWKytU?= =?utf-8?B?THhGWEVNeGowQU5kaHR3TnhsaHk1bUJjcEVxNStNeXRUS0RZQVk1VU5IdGlD?= =?utf-8?B?RU5VZUtuRjRyaHNKQVZBUE4xbkxQQVN5akpudHpSNTgxTkNxODZhb1NENU9p?= =?utf-8?B?cDJYcUpheTlEOWFzclg5d0tmZUcrWlA5Y1ZmM0UwblRrYWlENG1ZdGRvUlVP?= =?utf-8?B?Vk1KMzN3WmtsYlJVdXppOUZVK0RoSE40Yi85QzFTVlhhcnRaOGErSzgreDhy?= =?utf-8?B?TkJodHNFSXpOd1ZMeFpyZkJlcysvZi8rN29CV1RlajYveWYwWHc4b3Bjc0o5?= =?utf-8?B?OHMwNjlTek9HQXJxVndIVXF6VjZvbjE3VnI2eG4zMVRGVC9CNjRqRkZWbFRQ?= =?utf-8?B?U3A4RFgrZXRNcHVkMVU1akRmbUdJekJLRG04aW9aWXJUSTZTdmoreS9pQTdC?= =?utf-8?B?b1hXSUFwRXVYSDR3cGpHK28rVnV6VzhCRGdkZzh6bFpLSlZzUU5YRGpMU3Fn?= =?utf-8?B?V1VkRWFuUzR0Wk0vczNBMUdkNUg4elFQdjlDUVFNOGY5bk9RVVUrZFRLQm4r?= =?utf-8?B?V0JZMmgvVVNMalNFUUQyS3dtUHFyUXZacXJUTmdYZzk2cDhSVFNwWVdrWXhJ?= =?utf-8?B?MGNSU0JyNW1oaVRraGlvekpLazZROWNJTE1aeXR4RVlGVlRGL0RXYmlESys4?= =?utf-8?B?SjJ4R0xzS2dYSUNDZXVQTTJOdUhOVXJDaGtVSEFCdVdNdFplZjFUQi9IaE5I?= =?utf-8?B?d0ZuWnVCRUg4eWVmaEVKdncrczY0TnUzODg5di9ZQWN5N3gvOEVEaGJLWHda?= =?utf-8?B?azdLUVNrM3hJaHZWMzlSSm1leHM3clVaeXBTVWVEZnJGSE45Vk96UHFmYXZs?= =?utf-8?B?dWtLT0VRcXMwYU5BVVg5VS9HbEdhcDAvdXZ5VTFxczQ5VWlUUlZMU1BDS1k5?= =?utf-8?B?Sk1iZ3ljZG5JOVZTL1hvem40T2RHVURSY0s4cTlLaTdYOE9OVXFJUkNKN2lX?= =?utf-8?B?WHk1S1VORlFnNkp1eGUrdmdjUnlPZTNXbjZoampoSEc3ZG1mT01SVWFVNjJ4?= =?utf-8?B?SVk2aURqc2RVUlFpcVFyRWJDTDltZmdFWUpuQnlodCtVdmpRTE4xRkhWZFow?= =?utf-8?B?VTVxWEpRbHZUZXl0MXorQmdOTGg1TzJVSEFGaWZ5NHBLQ1IzOC9TekRLK2c5?= =?utf-8?B?c00wS3I3M0dNaXBhVGpqbVVna1kzUnc3K3psQ1I2MDBvY2ZZZHowcnVidkY2?= =?utf-8?B?T1ArK1Z4bkJqbXNEYzFtR1JRN1pXUW5JM1JPYXptT21FekFEUVNUMmhWNEpw?= =?utf-8?B?Y0hpOGFwSHRJZXBiak5XcTNCMjZvWk1ZVERYalQ4M0hsZDRlZUJPdz09?= X-Exchange-RoutingPolicyChecked: qkTFdfSzOf+R+Tfec0UMEWeunsLK0VF7VwEHXrImnzo1JtcOHAOEwX0ibd1PdydyMaEn5Ff+KkY3wkF5P6AirEPkEd6xBeV85qiSl0oq6vV09+1gIB2csRD+sotPu3RVvcKVXl2fel6lJvMXEBo5BNSiSVJrfFufj2It1rWrXUgsbLtC8dQTgTTA4Oq7WcHcn91WCeGr9/IM6PfyWGfBmn5Idf22MoIBnr/qJIWa5dwM3F9Oy2djktTo8/darJlKNOkdIQ2fez33lth5XjrBLHFQyRNp6jU8sYFCEoYB9/SAZV7m8aUjDwOP2h54yNtQIL/H2lH1V9CzKLxWS0h7nw== X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7eac14d2-2b1c-4f12-bd83-08df07556c32 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5469.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 11:45:57.9785 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4Dem6AHoNuijFR5qG25lalUj9kgmQHmWPLjL2EI9Cmu0nMbsWJDgQyc3hNkudDaSEF6/hN8ZgOXu08YeXxZ1ow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5077 X-Proofpoint-ORIG-GUID: eOjUDKBhGWK4WV7feROGGOCmNdKCWyaM X-Proofpoint-GUID: eOjUDKBhGWK4WV7feROGGOCmNdKCWyaM X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfX/j148bPT9OhH qemy9F4D9zVXUk/aGqtii1+u6rOBomp505qMmuH50sDujjhnHAkOzCJFXgYhKTmQ47rDqEgHqFu 9vaxmMbl6hrn7bx0X8dmctI7ij92S+TSdhg+IpB97F/sHYDWAW6s X-Authority-Analysis: v=2.4 cv=D4x37PRj c=1 sm=1 tr=0 ts=6a956979 cx=c_pps a=3V5Erj4uy8rJXAE3nhxHpg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=0sLvza09kfJOxVLZPwjg:22 a=iZSIUCweCk2Oy3QsdGPA:22 a=8AirrxEcAAAA:8 a=gAnH3GRIAAAA:8 a=vrfzlmHFqV6-XNZspV0A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfX0tZ4XWmqoaI7 Y5zihFsnNlVQUqNpCOubRluU2st8ZQeoWmzx2s2MZELI845h/TP4PCO9UohNNEAfT8g+/LhL38f Zz4QrxU5VNtOGirbv7SGFuyQe96mgUVRtrG0vh0Fq7nTs3xABiNaQfUBQzPglWZ5/k0eakqCFRa VYU2ywgfTjayLsfBztPoW9dLeuyfm+FeCQRPJyTegPitKfOuDQ9AfReeoyTel9oH28SLvOxX+v3 9TzR7/V9X8qHamFxpkZ7KqEoY8WME+Kf5XIjwMw7ae+Dh1j/6x/5crHLH4IMiyFBAnnoeJDyvfQ +C/NScgqpvTZ70WiTj/Knp/82rhQqANBMfo3CZQyXMRvdBdABhTXitA5Hq9eNPqgzaRmL3wIVUV l3D5f9Pl5fpl2zvWGpTjOYAMkiTHjagF8lmSW6USPZuQkZZMlqKU2BCDr4eqBo0PG3RO1gsSaRz Pk6cZ0cpZyPrlS/i3Sw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_04,2026-08-27_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 priorityscore=1501 malwarescore=0 adultscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608310101 Store the common TX destination and RX source bus widths in a driver-owned DMA bus width bitmap and populate it through the dma_slave_caps helper. This avoids depending on the legacy src_addr_widths and dst_addr_widths masks returned by dma_get_slave_caps(). Reviewed-by: Frank Li Signed-off-by: Nuno S=C3=A1 Acked-by: Mark Brown Reviewed-by: Andy Shevchenko --- drivers/spi/spi-dw-dma.c | 8 +++++--- drivers/spi/spi-dw.h | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/spi/spi-dw-dma.c b/drivers/spi/spi-dw-dma.c index fe726b9b1780..bbd7ee884d0e 100644 --- a/drivers/spi/spi-dw-dma.c +++ b/drivers/spi/spi-dw-dma.c @@ -7,6 +7,7 @@ =20 #include #include +#include #include #include #include @@ -100,10 +101,11 @@ static int dw_spi_dma_caps_init(struct dw_spi *dws) =20 /* * Assuming both channels belong to the same DMA controller hence the - * peripheral side address width capabilities most likely would be + * peripheral side bus width capabilities most likely would be * the same. */ - dws->dma_addr_widths =3D tx.dst_addr_widths & rx.src_addr_widths; + dma_bus_width_and(dws->dma_bus_widths, tx.dst_bus_widths, + rx.src_bus_widths); =20 return 0; } @@ -253,7 +255,7 @@ static bool dw_spi_can_dma(struct spi_controller *ctlr, =20 dma_bus_width =3D dw_spi_dma_convert_width(dws->n_bytes); =20 - return dws->dma_addr_widths & BIT(dma_bus_width); + return dma_bus_width_test(dws->dma_bus_widths, dma_bus_width); } =20 static int dw_spi_dma_wait(struct dw_spi *dws, unsigned int len, u32 speed) diff --git a/drivers/spi/spi-dw.h b/drivers/spi/spi-dw.h index 2f2debc64e73..e33577c96afe 100644 --- a/drivers/spi/spi-dw.h +++ b/drivers/spi/spi-dw.h @@ -10,6 +10,7 @@ #include #include #include +#include =20 /* Synopsys DW SSI IP-core virtual IDs */ #define DW_PSSI_ID 0 @@ -190,7 +191,7 @@ struct dw_spi { struct dma_chan *rxchan; u32 rxburst; u32 dma_sg_burst; - u32 dma_addr_widths; + dma_buswidth_mask_t dma_bus_widths; unsigned long dma_chan_busy; dma_addr_t dma_addr; /* phy address of the Data register */ const struct dw_spi_dma_ops *dma_ops; --=20 2.55.0 From nobody Sat Sep 26 18:55:09 2026 Received: from mx0b-00128a01.pphosted.com (mx0a-00128a01.pphosted.com [148.163.135.77]) (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 C854B34104E; Mon, 31 Aug 2026 11:46:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.135.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176800; cv=fail; b=uYWU6JSZmovtEIgbDDJcXd0a0jhw8EQaEeGmYC5Cu28W1yB/O/oS/7RJQONt9w2cgTlQoJo55QorcAOky1HoLRpdrh5KOThNBlSU05lckoFZcRIsQUwF3dsDD/qQT7Q/Or4o7JUgGv1CbaZXfJIHtj9iv0HB0U+VLKS4ush3Zxo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788176800; c=relaxed/simple; bh=2YNL3isFKrEqgbZ6bvPFxV5E8m4nMRz/vW0qdWRwnzo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=D4tsrtrc50Q2pgcH2QDFasK8drp7E3ZcQtFul/6bE6YJhoB+vF7Z0p6xAnd0w7dSgLSK5eW3VuqrvavyIe4JYZMKA3rECj7VgKXZ5e1d7f7zzb02qF6h4RB2cNF3Hf0kGCG6vWGis6tgFSe72YQwxM5WTVAVdBdJp4PUElsS/iw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=TXlbhHGn; arc=fail smtp.client-ip=148.163.135.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="TXlbhHGn" Received: from pps.filterd (m0375855.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67VBDV38513617; Mon, 31 Aug 2026 07:46:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=7OmzR 8tZlIsVfcPhNYa0asN//4ZA6Wpxcc2KOZimLmM=; b=TXlbhHGnAYUe5WiMZOZPf 8NI8yEfyEiowx6kXldeusXP8JYnOEmGod4KuG3WZknxbLuvvFNgjC5fsO6lBfp+f XT160dPsrVWw8Uj6/+F16RbVYHlkznr5xtaYHUbWRvIp2djvlqNnjNJ5ZSTE1tvI TOzgi/m5oP3/juv8uAmURe/WFe0aK3U83OdkVDGtfGzp2Z4C1JicTRmDqah7jAkG fSP8xsCaYvvt0qwfz+ygZj/XqP4n2Nbnit8mbEuruPb5w9kR6f4Rxcnm0SrPCwV1 0LJQgj5E9HaWCh84FlpkMa/8pEszrrrn0vlxprP8bpXvHGGnQJBgiUm0zX7vsxFO Q== Received: from sn4pr2101cu001.outbound.protection.outlook.com (mail-southcentralusazon11012040.outbound.protection.outlook.com [40.93.195.40]) by mx0b-00128a01.pphosted.com (PPS) with ESMTPS id 4gcdrdmhdy-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 31 Aug 2026 07:46:04 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XLcUqCbiHbMD9nsLfdTojV7EYlBZIAOZkVn+V7t14AycMYLN/SsuFbEyQeSykMlFbrCF/LMnFu3nPsl9cgCzkqDQzID05ESTqWnnRmi65lypD/9AGe3boI4fTkO8qUZrv2IlYB2CjdfXLfx4LSp18eGVUsaVfQSY73asHCKQlgHNCpKk4LGBMCF3xeDcdNowmXY/+0fH/N3tG5S01bnaf20FCR+XpAA4SMobJHBZawWtfjgQ/4kvSOnszj3rie6Wj5EjN+uMvRm49EoNgn9JhyWol65R5thx+0b5jKveVpObYWF+6kBS5cg+JWA7C6gREaYdjSQgOl5KPjLtAIJzmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7OmzR8tZlIsVfcPhNYa0asN//4ZA6Wpxcc2KOZimLmM=; b=zQOs5Mwmc7Lm4F1ryLlAJNZFM9kYF1eVZcTTgJUfBDRd5h4C/JT9VXnuopYFli7uVUy+GJ9UI5FoQrgqBKblcwkjx5wq3w4Q1eFUdI46/BzYY8Va3Qs1EzEpt2By7C5cG/4n8bp4oRECEFXj951r00US5sJE/UeZ6R4Hru0Lr3A1lg8foD5QKmdJX3pk7+6WdI91+s7vaXxgH8TurIWY9Gr1Nf0eGoExRWLimW54h4UTAx8hKa6VkQZ02rIL60JHy0GHVRbAuVj2N0xfCOr0Yh1IJ5YyzuIRvIF1fdTqRaDaYF5kkYlZhBuR4AAX5LogKe18b+QWnjU44yvC4+Tt5g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none Received: from SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) by BY5PR03MB5077.namprd03.prod.outlook.com (2603:10b6:a03:1e2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Mon, 31 Aug 2026 11:46:01 +0000 Received: from SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a]) by SJ0PR03MB5469.namprd03.prod.outlook.com ([fe80::2a19:76b2:e731:8c5a%6]) with mapi id 15.21.0360.008; Mon, 31 Aug 2026 11:46:01 +0000 From: =?utf-8?q?Nuno_S=C3=A1?= Date: Mon, 31 Aug 2026 12:46:46 +0100 Subject: [PATCH v3 9/9] dmaengine: Drop legacy bus width fields from dma_slave_caps Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260831-dmaengine-support-wider-dma-masks-v3-9-507d97496f2d@analog.com> References: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> In-Reply-To: <20260831-dmaengine-support-wider-dma-masks-v3-0-507d97496f2d@analog.com> To: linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-iio@vger.kernel.org, linux-sound@vger.kernel.org, linux-spi@vger.kernel.org Cc: Vinod Koul , Frank Li , Lars-Peter Clausen , Eugeniy Paltsev , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Jonathan Cameron , David Lechner , Andy Shevchenko , Jaroslav Kysela , Takashi Iwai , Mark Brown , Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788176799; l=3848; i=nuno.sa@analog.com; s=20231116; h=from:subject:message-id; bh=2YNL3isFKrEqgbZ6bvPFxV5E8m4nMRz/vW0qdWRwnzo=; b=2N8Kz4P2QFBTOT2ybhIy/9sgD2F0nABo9j647T68X6qzzghLv62bb7ZW+tR0SmE/W68cHyzjL 18RveOtQiqxBpHTMEY7D/Cq3febK2hIe1d86ee3HKu3HJ+DJ3lBjTjA X-Developer-Key: i=nuno.sa@analog.com; a=ed25519; pk=3NQwYA013OUYZsmDFBf8rmyyr5iQlxV/9H4/Df83o1E= X-ClientProxiedBy: MA3P292CA0061.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:49::14) To SJ0PR03MB5469.namprd03.prod.outlook.com (2603:10b6:a03:28a::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5469:EE_|BY5PR03MB5077:EE_ X-MS-Office365-Filtering-Correlation-Id: 8450952d-b554-4552-d2fe-08df07556e36 X-LD-Processed: eaa689b4-8f87-40e0-9c6f-7228de4d754a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|23010399003|366016|1800799024|6133799003|3023799007|10067099003|56012099006|11063799006|5023799004|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: q+eedsc0eBCXauPYbQVK7iqIhnBMFFo3NIfdnQ/P3V5AgUWD1NdECmr3xwd9UPCZs7cMPOT9mJs/v7c9eurY/kmjcf2zgKuzv4kvgHQRrM7JT8HqytmoK9znZRI+SagBOqAH0O93loNZfYhUoAna1N5TOSeV4XGz9RvS4Dz8s5vjnRORcxeee0WKflmxHho+8PkpMKpPhEwYLJjoAnT7n7vP+/m9ACRAke9matnw01YrhOwcfBcOft1u8afg0UHmcJFlyGZZCj3uzIo2mACFkjES0xnBPN8QjqE9gV71f9tbsuInDVywX5vWaCWLzxOdMlj+fkKR+IyHfPJ4JfCLlWqAPNa+af18QEDASQHH028JXvlVl3mzkW8Xyr+LsqzFIKKuQtOZhrwmkQUECOWWdFuMUxdeZSRVqCHUhZcz9ghSZukyAy/z8m72/Gk3hrYv6KHY2tPeFgEJIdfAHrQiLvq+/yR0/O6fen4C7pV6OOjejSCBh/oOiZgZhBfwfDtY8HY14R9ZK2ce7adkAqX1igf5k5YQna2w9TDNSMQqeAeC1Qc2oNmpGi0mTox30TokNwDJ5o0NUDsMkSzHOxIEwVtgqBRQSbA74WBquk8W+SCLX3Kv1duC7StPfOATEwzvzQYfuiXVgkzYQnFW/uPOUvJOr1fcmjV5gSl5HmZx+ac= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5469.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(23010399003)(366016)(1800799024)(6133799003)(3023799007)(10067099003)(56012099006)(11063799006)(5023799004)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TUV2TFdGSGxlSWVmSzhiMUsrTGNOWmhrR1dneWFwQUhvZGcwUVdzVUZHNGdt?= =?utf-8?B?NFludnk5cDJxalR2V1NYbnFFVGVRenRXNktaUWJUTndqWUVCR2JHZGM3TTk0?= =?utf-8?B?RG8zcWgra0ZFRkoxTE55cUpnYWI0bDE3M21lcG9NMXBPaU81aTByVllOQVZa?= =?utf-8?B?Tnh2STRTb1o3ZFdSNVlNdjBNcTRzaXdkb0pTL1ZNV1d6NVVZckZScEtPTFow?= =?utf-8?B?Y1k2V1JpNXNTS3dmSUFBeW1NWHlIU25hWDkvMGYzTHFqdVRKR1h4ZGQyelIy?= =?utf-8?B?RnZGV0JEUFZoQ1M2dnlyeHlDRy9IVzJmT0pZQUFZK1BCZTdWaDdWSGJhdVNM?= =?utf-8?B?TWpiNEFWQ0NsRkpVb29EcXhzTExsU1JhMC9NSDB5akZialNqZTdIWlptdWF0?= =?utf-8?B?NTM3TVNwcmxnK1dQUC9RbGZQUzdBY3NNZnVQVDhpNDV2U0xTVzlFZCtMZzdL?= =?utf-8?B?MmU1WldpWk90anZCYlNmRW1SWlhhdnN6T3NmMEUrMWtoR2VMM2RhMFFzWDRu?= =?utf-8?B?cmxqbjFJSEVDeDVXaXl4SUQ5aXpIZVIzbzZwSld2U1F0TTRQeVZITVJMMXhM?= =?utf-8?B?MFZPMGRJWXgwVWxQZTVxenREOVVKTCt0V0l4WFBMTUdOb2VlYU9TQ3pNYThY?= =?utf-8?B?dkFjNVU0MTRab0Z2TUMzMW56NjVuVDR6SnhocUx2UjJoZ0Z6bkdnT0czWjhP?= =?utf-8?B?VU9rd1pPYVdKRUYvbEk5czBmQVRGcWhaSjJpd1A1SXloTmlCcUdTekw2N0RN?= =?utf-8?B?aFBiZVJ2WUdIR3lFN2lRLzFXQzRvbng5Rk5RajhYVXNiRnkya3dURkhJbWlp?= =?utf-8?B?bkVCU1RMMEpwVFdUSXNBWVNSV2gyWHBaZjhrR2ZOeWRiVTdaY3hFRE9zM0xC?= =?utf-8?B?ZzBOSGZFQkZHVUV0MUFGTVM2VWxIYkZnN3FRS2p2ZWZMWi9MdUpwaVVuTFRE?= =?utf-8?B?NXViNjVZNUw0dTAvTlFWaldVcUJsQU5uYSs1YkI2NFppWk54UGN6dk5MZXZW?= =?utf-8?B?dSs0MmUwZEVoU21YMzg3cXJVOWgzVG00dGpYT2drK1lleGdKbzBKNnBWRXli?= =?utf-8?B?MUxTZDlTZGprTkFMaU5sNHA1WVloaWxpNHI2aXJxaTZDUk4vbGJDLzlpZ29v?= =?utf-8?B?ZC84Z1U3VGM1d3NsOTJ4a016TkdnS1U4SWR4WndmOFYzdmkxSFIySnM3NzFp?= =?utf-8?B?RlFsR1JMWkZOUytnemh1S1pXUmtWRmhyb3pRaUxjSUNlbnVKUXVJSXVvWHBW?= =?utf-8?B?Q0xJR29KSTFFK1E3cW9iK0tQbkRHeFQ4SEErNWpHcVI1OS9MNTdaZzZYa0Nn?= =?utf-8?B?Yy9zU3orOGh6cTJDMlRaMVh4ZE1JUGlzUys1V3dZbmlYNkFwNWlXZzZaaWlr?= =?utf-8?B?UEJYRThDL1RyR3BWTHBTZWxMRWRPTGpUTDlEeDhrV293Tm5KOHdEbWpUY3F4?= =?utf-8?B?M1RrSlZtMk9wSTJyM1FSTTFvRmFjVVZjUDhyQ0xndElrTmIzUVBLQ2RndTBa?= =?utf-8?B?Kzc4aE1PWk1Fbk83SEpvaVA5ZDZoeWRDdGV2dnpMRzdWQXdUQUdCWjRCUWZY?= =?utf-8?B?elFiU2p3WDlTOFpTeTE5dnB6NjlURitWTlA3SnhwdURlMGZ0WnZ1MTJDYzVB?= =?utf-8?B?THF4dDdEeG8xdFM5bUNGWEUyQkFuanBzU2hnaGZoVWJUR1YyR0lIOWFyc0Rl?= =?utf-8?B?ZkF5TjFsWDBtZmRCeXZVRVcrbGlncEZuaDROM0c5RzFsMnlQcGNQUVFmT0lo?= =?utf-8?B?bXBiUmI4VGFBdk5PaG1jUTZ3VW9SLzVnSWVRNmdvNHVZK3Axbk03MVcxOSty?= =?utf-8?B?ektYRzVPdHJ0ZGQ1WVFud21NQmhEYkIrZFFqSWRMU0NhYzVnRVRGVmFqRUZk?= =?utf-8?B?UFB6Nm8wR0J6UDYzMWhXd0U5eHRMeXNNZ2hzMzJVdERJdW82bDNGNDNBaXZF?= =?utf-8?B?VFhFTnZIWHhId3NNTzlxUzNyWSs3aUVPZXZqMnNUNzlOVE9uWHU0SXpERUE2?= =?utf-8?B?QVBhZ3pRMlVBeUorMCtKTjhiTC81WTJpWGhDNXEydUNKaTY0UEwzb1dhN0hK?= =?utf-8?B?WjFOV2ZMNlRDa2g1dXVESGFpTkp6VEszeCsyaStudGs4K3M3ekZkUDVPb01E?= =?utf-8?B?YWluSEsyOHdNSk1ZaVg3cFhXcUpEOGhOeXgyVXByVTFYNW84dXR2M3ZsSzBp?= =?utf-8?B?cUpyNDJHYVZzZ0F5ZmlzVmI2cmlEbnowYWt3Z3dIeHJtVnVXMm5jQXBXMTd3?= =?utf-8?B?bVRxWWNkemY3Nk1mU0h0NXR4d2VNMHM1ZDIyWStWanVPazhEclVHcXhHb1ZX?= =?utf-8?B?ME9sV1NBbkpWUnQvOHNtd05sSWdwd05kMjk5UGtwYWlMT29zeTlYZz09?= X-Exchange-RoutingPolicyChecked: y8tnpVpoDkgYYW+jToC8njsT2LUcIkvi/bZqvhGUdVCaSa+wSx01l7Fc7Qsjj8vTlXewq0iiiVgYYN51kiYpGpsQ+x4TsWV8jav6PnDoicJHLdKmzLyQLIjSmWVZsxZozSaNXUS1pC9bCuBcyuFKfn/k4pmxOoxjU1a8iwBK+ww4OziKySxyOTQ/4dezaqcSb+75MIXbzpzmz33G+wlxErGJZ4qxOo1vlJZCHbq1a5cfIWdA1mS76UiCv3U5MAbpCowre/txSu4+qX5/c+Ey8mF2htCMTR/tZY/N3gDLHtoPhLm+ZCwZg/FljPIAnKkmanDamXZ1FrNhnjfObETV4g== X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8450952d-b554-4552-d2fe-08df07556e36 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5469.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2026 11:46:01.3466 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hM+yf0phCqmOHd4PUfnT3GjZmmd7XjNNq6jXr8JgOvUH1oyA0PRsxgu5oYiV/d6IA3armQuYIl5LsWLgSj5l+Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5077 X-Proofpoint-Spam-Info: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfX+CX7IgDcMTjr 0NTXwFwYQOzVy6ILzbXhCzwJVUTt5lCcu7urjkGbo0SqL/twM0gKqwJTysc9FEgygNfL/T2pL0W RQdk1SkgIMS9y72nHdlNWnBIbTdX7yEnTQDC2dLIkVx698QzZmKx X-Authority-Analysis: v=2.4 cv=feSdDUQF c=1 sm=1 tr=0 ts=6a95697c cx=c_pps a=zWRuVz0++A3eh/KBGeICZg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=M51BFTxLslgA:10 a=VkNPw1HP01LnGYTKEx00:22 a=0sLvza09kfJOxVLZPwjg:22 a=N--XFCr6TIEc_64PeIT2:22 a=8AirrxEcAAAA:8 a=gAnH3GRIAAAA:8 a=Kdv_YGyGnA_3IfjWuAwA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-ORIG-GUID: TCEDUKESBll3eSQ1XqmSkHvRFHgGvhYL X-Proofpoint-GUID: TCEDUKESBll3eSQ1XqmSkHvRFHgGvhYL X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODMxMDEwMSBTYWx0ZWRfXwhUJtmoSbQzi hX7/8k66EQPRSx0i39EorFC7nOFdx4H2o9qQPcJY9O2UdhmCRVXeTS3m+gCKuMBjOW1Es23YhTd baism8r5IOi3UvILIUPaq5noxO6NPgGOhMFVCIceG4kqs+Za2Tl77GTIhM4daIWKLcSpY8thzes 8wXeVVDrSRQ40ufQVi0rLE5b1kWB3XV8GLCBoWbSs7LoYT+HQMow4z0Y449vy/WJXSER9607N3T lMNh3I5VPMRg03G/SSmLij8APqE1dERCPF+mrk6yxOow8ya9gboSMMrOmN10B6sLR5SBiAS4Lij 2k5L/IXrwAEWGNyDdkOI9gW1KpL6NpZjEV3mVuZl/3DVTQ8M7DBpaY89DBxdZ0DOJWHammtRv9l OEMh+e/NNBsPxnMrHZzZz/7e4wllfdek9RVW9zwfETRgBQFDRO7LSPqmEwxUEZQcjbC4eR7zLfW i9zxQV8s3HKesqwlBGw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-31_04,2026-08-27_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 bulkscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608310101 All users of dma_get_slave_caps() that inspect bus width capabilities now use the bitmap helpers. Hence, remove the legacy u32 src_addr_widths and dst_addr_widths fields from struct dma_slave_caps and stop copying the dma_device masks into them. Note the legacy u32 src_addr_widths and dst_addr_widths fields in struct dma_device are kept for now as every DMA controller driver setting them still has to be converted to the new helpers. dma_get_slave_caps() keeps folding those masks into the bitmaps it returns so unconverted producers continue to work during the transition. Reviewed-by: Frank Li Signed-off-by: Nuno S=C3=A1 Reviewed-by: Andy Shevchenko --- drivers/dma/dmaengine.c | 26 +------------------------- include/linux/dmaengine.h | 13 ++----------- 2 files changed, 3 insertions(+), 36 deletions(-) diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index ae85d26b4803..6346b8664228 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c @@ -596,8 +596,6 @@ int dma_get_slave_caps(struct dma_chan *chan, struct dm= a_slave_caps *caps) =20 dma_bus_width_copy(caps->src_bus_widths, device->src_bus_widths); dma_bus_width_copy(caps->dst_bus_widths, device->dst_bus_widths); - caps->src_addr_widths =3D device->src_addr_widths; - caps->dst_addr_widths =3D device->dst_addr_widths; =20 caps->directions =3D device->directions; caps->min_burst =3D device->min_burst; @@ -616,31 +614,9 @@ int dma_get_slave_caps(struct dma_chan *chan, struct d= ma_slave_caps *caps) * callback to override the generic capabilities with * channel-specific ones. */ - if (device->device_caps) { + if (device->device_caps) device->device_caps(chan, caps); =20 - /* - * A driver already converted to the bus width interface - * adjusts the masks, so derive the legacy capabilities from - * them for the consumers not converted yet. Drivers not - * converted adjust the legacy capabilities directly, in which - * case there is nothing to do. - * - * Goes away with the legacy dma_slave_caps fields. - */ - if (!bitmap_equal(caps->src_bus_widths.bits, - device->src_bus_widths.bits, - DMA_SLAVE_BUSWIDTH_MAX)) - caps->src_addr_widths =3D bitmap_read(caps->src_bus_widths.bits, - 0, 32); - - if (!bitmap_equal(caps->dst_bus_widths.bits, - device->dst_bus_widths.bits, - DMA_SLAVE_BUSWIDTH_MAX)) - caps->dst_addr_widths =3D bitmap_read(caps->dst_bus_widths.bits, - 0, 32); - } - return 0; } EXPORT_SYMBOL_GPL(dma_get_slave_caps); diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 31c57d3dcb53..7441702015c3 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -481,10 +481,7 @@ enum dma_residue_granularity { /** * struct dma_slave_caps - expose capabilities of a slave channel only * @src_bus_widths: mask of source bus widths the channel supports. - * @src_addr_widths: legacy bit mask of source bus widths the channel supp= orts. * @dst_bus_widths: mask of destination bus widths the channel supports. - * @dst_addr_widths: legacy bit mask of destination bus widths the channel - * supports. * @directions: bit mask of slave directions the channel supports. * Since the enum dma_transfer_direction is not defined as bit flag for * each type, the dma controller should set BIT() and same @@ -503,14 +500,8 @@ enum dma_residue_granularity { * resubmitted multiple times */ struct dma_slave_caps { - struct { - dma_buswidth_mask_t src_bus_widths; - u32 src_addr_widths; - }; - struct { - dma_buswidth_mask_t dst_bus_widths; - u32 dst_addr_widths; - }; + dma_buswidth_mask_t src_bus_widths; + dma_buswidth_mask_t dst_bus_widths; u32 directions; u32 min_burst; u32 max_burst; --=20 2.55.0