From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0024c301.pphosted.com (mx0a-0024c301.pphosted.com [148.163.149.154]) (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 C098D205E25 for ; Fri, 12 Dec 2025 22:01:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.149.154 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765576890; cv=fail; b=i9eB2id7EjQ8G75JJU95WItxCi/0m+wk+s2tjxdYfV+ipweaQDF6i96gyIOJbAxLkWqxd5iSlG57s6qIMmGwiRRr/7nT0Af1m+7GRhw/uQ/9zD45DChvY/50h+2913owBkkAESQ47FsS+TZANbcTJ9VIPYHd//oAlnW7bZBSEug= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765576890; c=relaxed/simple; bh=ZriM85V6FyXf2C9eXCd4ugWAo27hI6nCpNjo9pBt1Io=; h=Content-Type:Date:Message-Id:To:Cc:Subject:From:References: In-Reply-To:MIME-Version; b=sm7/3od3PGH/L7VROHygWSgiWTh/4H+t7bZDXp2Xqh3LsCEZB61kM2/oZ5qJFVH1mUr1E2qYMpk3szU2VRsnL3XR2SMsd+oyySGEukln61oyPvmXRvKEOSQVNHMoUlbwPY/UE6UG3rLSQ3+GFWYw+vY1Xw+Ed+OMYTAav8y48AM= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=silabs.com; spf=pass smtp.mailfrom=silabs.com; dkim=pass (2048-bit key) header.d=silabs.com header.i=@silabs.com header.b=rDgunVFB; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b=L3OcAyEK; arc=fail smtp.client-ip=148.163.149.154 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=silabs.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=silabs.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=silabs.com header.i=@silabs.com header.b="rDgunVFB"; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b="L3OcAyEK" Received: from pps.filterd (m0101743.ppops.net [127.0.0.1]) by mx0a-0024c301.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BCHsGxL087004; Fri, 12 Dec 2025 16:01:22 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps12202023; bh=iGLZi/+3LCEDkFTmVz1IQJpNkk9SGELS+cxTNuQN5zw=; b=rDgunVFBu0VY VBvk2zIPqVDUuhDyCfjkoxgfHiUl5p07GElNtJJwXSiCwP4cYKE10gz0In4Eeb6h TiW51dDePXk4T37feKQYAeDwS61d9wWjUrl32R5WRFINTWor+tNAJZSb1Cb0zHrK njcTMejVU7UwIfjK836gPvmiuK7raWoCnCrCj9j6WqNMSxf4FRKiWWXEDfWiJcg4 EL9AUOYTDkdu69Du9QiL/T7jNPrYd3kPSoWrf4vyE8Cee+ykSi4R22+zTVx3lJI/ 1jdv73KBF1UdEeFoD4P4QhKPRWzX4skbF8+j6yUDgPhclp4Q/hFUIGlcVxo0IAaX JOi5rs8fWg== Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11021119.outbound.protection.outlook.com [40.107.208.119]) by mx0a-0024c301.pphosted.com (PPS) with ESMTPS id 4b0qujrbuj-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 12 Dec 2025 16:01:22 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=enfSmQ86xwIQLWX7BegjY66zC6bQbIB/9YNACSL9D3SyrO+B23kr2f6w6TF0Lztj24P3kSGDFyjvHLtP8O4KdSmJGUFwcGWv9SDVxSeA6BQ6tnEoc4YuwrHwiVRbswbqZXFKnsySXao+/K8JtkM3uB6P/i9KOEf9hcLHtl3z+0OuGoGgOS9reQALoCyvxoTSpG+o6a53GuBNK4hum/55tdjup2W6mE1rsWvHpoxSNNhxiDw1b1EMGpEcieqs49/A0n76j2reu74ELfWlyGlovVilrT1+ma5wxL+LXIedG6ipFPkXEAXthOBvEnzut/oGJMRrYlYIW9SHTbjaeV3BgA== 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=iGLZi/+3LCEDkFTmVz1IQJpNkk9SGELS+cxTNuQN5zw=; b=ulOawfTGVuFY7d1glvu8rZ4dY42s1M+mMQ6qIJ5ZeR3ESW48G5TFmdn3I0tPqsM/91J6OGubRK1brGExcfy7PMkkXB9hnG0Xf2qMX8VmOHfCG9lCfWxLnS3M+fJLtEFMszy1zo6r0cijDZQgt2XOvlOmXzEa/TiDeWS5qRK5LRoJTAmkWij7NmUJA/XN5LxfpsYg0QiFEBWSdHQK37YliZS3hi7eHkEQR/2uRvtGcB9MKgTSqH4uovU1OyDyXysOC0AxnENqJjRXsKEBjrhe/lgJG5QArmYEE8CBPQS75AzG8lAxP0Q0D23+kYH+tn4VnR/dlJXD59abe7GuZpfNYA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iGLZi/+3LCEDkFTmVz1IQJpNkk9SGELS+cxTNuQN5zw=; b=L3OcAyEKJB1omI8Z52vNUV7Roc1hUZjYGmggAAj/pHgjm0/abROmQS8GEYu5L/jBLyJf+cxaxXZEqzznGSv50XDh6cMzNAT0IKMqhHVX05j55q/5dwDlGCasinsrlEcNj7NTflURyaWJHUGi72SeGwECUsUd+QG1Z0uyykdle1k= Received: from PH0PR11MB4998.namprd11.prod.outlook.com (2603:10b6:510:32::8) by BL3PR11MB6313.namprd11.prod.outlook.com (2603:10b6:208:3b0::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec 2025 22:01:20 +0000 Received: from PH0PR11MB4998.namprd11.prod.outlook.com ([fe80::4d2a:d205:a1ec:b7a]) by PH0PR11MB4998.namprd11.prod.outlook.com ([fe80::4d2a:d205:a1ec:b7a%6]) with mapi id 15.20.9412.005; Fri, 12 Dec 2025 22:01:19 +0000 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Fri, 12 Dec 2025 17:01:17 -0500 Message-Id: To: =?utf-8?q?Damien_Ri=C3=A9gel?= , Cc: , "Johan Hovold" , "Alex Elder" , "Greg Kroah-Hartman" , "Silicon Labs Kernel Team" , "Gabriel Beaulieu" Subject: Re: [PATCH 14/14] greybus: cpc: add CPC SDIO host driver From: "Yacin Belmihoub-Martel" X-Mailer: aerc 0.20.1-25-g357c1bff1570 References: <20251212161308.25678-1-damien.riegel@silabs.com> <20251212161308.25678-15-damien.riegel@silabs.com> In-Reply-To: <20251212161308.25678-15-damien.riegel@silabs.com> X-ClientProxiedBy: YT4PR01CA0383.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fd::29) To PH0PR11MB4998.namprd11.prod.outlook.com (2603:10b6:510:32::8) 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: PH0PR11MB4998:EE_|BL3PR11MB6313:EE_ X-MS-Office365-Filtering-Correlation-Id: 5b649513-54d7-4e4a-e394-08de39c9fad2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?bmpkbndFOFNBY0VYbGt2ZVA5N1lpZEI4RDhkUEpubk1iYnVZa05SYXBKYzFl?= =?utf-8?B?YjhiYkd2a0lnQkNSUWZ6NVNFZlB2U04wVXhhN3F6b3N3WWJDVjNjYnZEbHBr?= =?utf-8?B?V25QNVh4eC9ZbTFrcU0rNWltMUF5UmlucG9IUkdSaTkwdzU4R2k1RTBReFhJ?= =?utf-8?B?QnVJUThGOWtsUktydmRDVGY2d1dOTXRhajFkMHhKelpVNXRJb3ZoNFFxY01G?= =?utf-8?B?eERaYTVlQ25keTRuK1liY1BtUlZ3ZTFVc2NlbFJkMDlMa2tHZE55RktTeldZ?= =?utf-8?B?Yko0U2Y2SEttL0pUMDBuY2Fvbjh5MUMzSlNhTksxQTl2a0lBOS9TdEhDeTJu?= =?utf-8?B?bzV6UFFGbXk1eGdPbkcwN3E2ajRoL05UOEk0cDFQdlFVSVE5ejUydEt3ZGlY?= =?utf-8?B?TFVvUzdNUVJQbmZWM1VzaC9JNDhoT3BJcXdMbFpUYVdHSE9wOUNMWkNudC9B?= =?utf-8?B?V1QyWGVzRStiM2VXOGx3NHI4QjFrMWxWVE90b3lJSWcyMGJncGVEcGp3cWlJ?= =?utf-8?B?cWVRVDk2WHJEekVJdkpQVFdueWxGS24wSlVhVlZBcCt2TnlhVzFMM2k0Y1R1?= =?utf-8?B?ZFdTU2UrY1RQZmppdFdqYUFiSW0wTk9vSjBqUTVXVy93eXV4a3FNUmQwMklm?= =?utf-8?B?cG5qd3p4THZDLzYzTnUrWW9ZTFVaamJ2OW1Ub0tNQ2FURUJOWW4wOGdkMFE4?= =?utf-8?B?Z3c0eEZSQlN6Z2VrTVp1VEpQZnc0SDFLcU15QXlENVBoOTRmR0dPVjBiR0xQ?= =?utf-8?B?bVZjK2t0Y1JOc3JiYUtLS1NnL0FtQUZRd1dXU21zVWkwckl6TFY4VVlUWUJv?= =?utf-8?B?bDhLTXBBeUprT3dUb3AvdHpzcVBVVFBuRjZ3UUpwaGE2OWdZTzFWbEQyakwy?= =?utf-8?B?SnNud09vMVBtUW5OMWdWU1pHSXd3bzJvQzd4L1hpcFBnY1FvRE4zRDV3MjJt?= =?utf-8?B?RTRKd2xObE1CM3lpUllHWUdwdHNaQTRON3hFYm5iWkdRemFNdUtqRHpweXph?= =?utf-8?B?WmRiTkNoRC9BK3hIa2czZ0dBYlNyZ1JRa2owM25EZ2xJOU42NWxxQWxGU2M2?= =?utf-8?B?ZEVrTDJOeVU5NVhxYW40aTBoZHI3ZitzOG1WeW9Qb0RrTUhrNWxwc1RkUk1C?= =?utf-8?B?RjVDdFEyRWVoWU5kUHNpNG1UcHZMWVByQlV5bHNrRTEwY1F6WmdSd2ZVRXpa?= =?utf-8?B?dC95TUxySU1rTHhBcHdMOWtZTk5ndWtOWHV2cllmdS9ZSEwyc0kvUlVOeWx1?= =?utf-8?B?VkUxYzRudU5zTHU1MmJmZndNbm1kTEM1dWdtaDVFRG5xVUVmdmEvYlNXZUxu?= =?utf-8?B?cUZ6UlgvMXJFQTIrOWxIS1dpNmdHbmc4aXpwN3JWZWNGdG9rTVQyU1lxSjRj?= =?utf-8?B?TjM4ZUxEcUI5aThDWXRNTmVOUWtUS2JnTW9sdGRKelZlVXNQSWxVVUM5b3Y1?= =?utf-8?B?SERrd0l4VVZqR3Rpa0dEK213SjRIcW4zMHJPSG14SDZMMnlwWEZFaExtRzNV?= =?utf-8?B?UTFvUXJIRktmWU9IK1VXUHRXMlBzZmNNdkhFTU1BYTNVb1JPNVJPUlBORUIv?= =?utf-8?B?ckxjNG9oZlpiZURIcFhWZEc2enRZdk1kSzRVbkt2RlBvdlc1SUFnQlBFNGFK?= =?utf-8?B?ay9qcGttbHd4L1MvVkttK01BKzNETDYwMVRFZlY5bnp0WlRlZEhrTjZJandy?= =?utf-8?B?aDVoaU9hbDIrbEM2b01kZThZMlFpaHhPcDk2eEpjdDlTc2NqckJ6SUFQYVp0?= =?utf-8?B?aml0QXNrUjBxRk52blpma0xhWkNFQ1pOWkcwVWwxUGJjdWV3T1JFSVYwWjl3?= =?utf-8?B?SGpwTm9QVmM0aFRGNUVaK1VJV25iL2k2VHVSY3lNZnN1MzR4VmxZZm1LSVcy?= =?utf-8?B?dzJ5Z0RzUjQyU3BGU2pBT2pVOGF4MVdKa3BnUnh0T3YxUUloeXEvREZJUXpP?= =?utf-8?Q?jk9h+MzC/kWNAd4y7U0rt5//cLghqEOc?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB4998.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?U1V0a09TQTlzTEF0cjROR1pRb0wySGIzeFU0NVpFZWFSaXNmY0g5YXlTM2w4?= =?utf-8?B?Uk1hSE4rdVhOMVF5WEdXREpOTzJqSDJaKzNuTXVmZjc4blZnSU1PYnhOV01z?= =?utf-8?B?aU92UlJVMEh0dy9wSi80bm5iYTVka3NOTkQyb3Z6bGpMQjFid1IyejVoeE02?= =?utf-8?B?a2pzRUJiRzhFaERTZmhlekJqMGN2Nk9aWm1BU0JEaFk2OExIQUlQUldNcHJL?= =?utf-8?B?V0VaOTdNbFFraVlnNXNyMWxFeWZEYjlKNjI0WmhXL1hnbDUzUGVselhDVVJM?= =?utf-8?B?YktieS9aVThsUW5tcGtXTE5JUStTbEZ6U2pLMXFvVU05ekppYUdhbS9aaFBl?= =?utf-8?B?N2NEalArZ2NkNGZWaVJyM2QxanpkZnlOYzdWbDhvaWlSbkhaY1BaaXVzSlYy?= =?utf-8?B?N2RpTGEvWXYvQVQ2Z2h0RS9Edzd0UjJ4eS9sRFRmd2RPbmg5WTZUV1VHWnN1?= =?utf-8?B?UEJZNklWd0l3Y3QrdGc2QUFEQm15KzBrbkgwb3BOV1JNTjl0MnZxam45anFY?= =?utf-8?B?VVRkSExDanpzcm9oVks2REszcmNHTWJ2MHg1OFN6VVAvZGxXck13UnIwdEI3?= =?utf-8?B?UFZmQXlSdnppV2d0S1ZvOVpYMnNWZ2hKemNhQnU1WDc2VWZ2Z3o3a1NWb3Y3?= =?utf-8?B?K25MRUpGWk8ya2V6ci8xWC96aStJcVI2NG1RRWh3TXhMOU85aU14Y1BCbHM3?= =?utf-8?B?d1VTSUtVQTA2S0RpS3JKanJTV051anlxaTZYRVdmVm1qa2xIcjhGMmZzZ2gy?= =?utf-8?B?SlhpK00zYjU4b2FaNjRMRXV0cnNPbU84bWIwKzl1a01WVkFjL09KVUxSY1M5?= =?utf-8?B?b3pkZ3RtZmxHbXNWd2R1VUVycC9qR0dzM1hJUTlObTB2VWdrUEFWb1VUeG5p?= =?utf-8?B?YUVQUVVPZUdQUlB1NzdmTWNFRXl4SlBYZVdaYTRPcWU3dUdjNkFUTW9mQWRV?= =?utf-8?B?RVVWT0VNVksxYzRTbUFHSVU5Wml6RFdPNEpVbmo2WUZJK0ZibHNFUUR0SU84?= =?utf-8?B?Z0Vhc1BOa2xzaHpnMHlnTEZJR05BWUE2bk5WUEZKUmtzRWRNekE2RndVV1lC?= =?utf-8?B?ZEo1aXZRdlN2Vk5Xei8xOFhPUXdleTBwM0kzd1NGUk1aa2orVnlBRGdTTzdz?= =?utf-8?B?ZXhndTlPY0dack91NENHd1pVVmtKL1l5OHdJY0sraHkrcjk2T3Jqd0hOTHlw?= =?utf-8?B?d29MbzJsUVV6blJvQ3NWTDFibmNwa2pIazlLMGpXdXlZUy9tYzJhNnl6U2xx?= =?utf-8?B?bUhEazlFN2RmMXROZkYwdm1uK1R2MVVtYTA0Sk16STc5LzhmUGZKa1hKUVVU?= =?utf-8?B?Q1ZPSXZXcjNIRmwrM0dmdUFJa0kxR0NTMDFld24wM1JUVHRka1drMWthQUpa?= =?utf-8?B?R25pREdJblUxMkRieEt6emtzYWZxcnBOSG9ja1MxaFdLa0EvdW9sMzFDRTlr?= =?utf-8?B?bCtzcXZsUWpsRDBsOFNrWE0ydGd2a1dIVHBCWU1BdnVnVStFQjY2UGdDbGNh?= =?utf-8?B?VHB2QWcvTkVsU0FvcUpDc1YyZjNMSTAvdTBwVUN1VXF5MXNWV0JwUEptMnF6?= =?utf-8?B?bTQ0ZEZMMUVWaHlYNzcyUG5ZL0xBMWhCcVVHQlNPbDduN1hhUXpQTXliSXdv?= =?utf-8?B?c2dnZUZZRGM1Z1FjU1kzRjBOTEZHNXBLZ3l0NktncVdFeVJ6dWdxcVBINWtl?= =?utf-8?B?NUN4V1B1OW9aYWVveXo5NUR6WVdsTndRM1RPQ3lSYWsyemF4VzR1NFB5ODZq?= =?utf-8?B?bnA0bmxwRXBldWxhMTZpd01uL3gwS2xmTnl6Y2VMNEs4V01QU2pBR2s0ZFB0?= =?utf-8?B?VHBxbm8rcFpEZmNycEl4a2xZR2FsNkltcFc0NFplbXJwR0RGMVhsc1NjL0I4?= =?utf-8?B?OTFYK3ZNUzgyY0pham5paVpBVFFmc2NFK2UzOXB2QWNwSU1RZ1NwRWMza1Ja?= =?utf-8?B?Z2ZWaWNpQkYzOXVxUzE2NnZRVFViSVdxOEkwNk14TW8yT2FYNks5R0NlNVE2?= =?utf-8?B?SG94cmFodjBXZUovMEcwOWl3Wkg5QVFQazNEU0NieVd0eXViNjhXazQ1WDFV?= =?utf-8?B?bXR3Y0F3VE1DbjR4eHA0Q0dYS1doNzk5b1U5QXpEcVVneEFWdGV0TmtmZ05U?= =?utf-8?Q?uLASKY9VpecKnSZNmtlkLHDnD?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5b649513-54d7-4e4a-e394-08de39c9fad2 X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4998.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 22:01:19.5542 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xPMLGWAytwW6KkFh140MXwDcra6IZBWp1Oc3MnVeO4qlmR970MDmM3a8rIspSy40bFPodqLJc0Y3xoFBrR9yKA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR11MB6313 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjEyMDE3NyBTYWx0ZWRfXxPUEspZqsIqA J4bGARLHdOeSxvBUiyF3vaSLZLgNMQTI0X8c73c/29iWUJqnb5l4prmTc5zT+MKkG/32kFc/A5t VpnDoNEaWZkHgEimVMfRmg1M1f0jtYEroSEQy873P+1QZL4dxdHa/349b2JRtlHnRuj3e93Sg6V QhK0jWyKpbSJzvk0OXyL0X1+qBkIFjio39zMF2JMRfhJL7P2bBb4s1+Md3hr9IOKvGKBkMB9Q/8 L/Fq3dUGJrYQzTc2DwKH0fRbjNzfIHZIKGj9+fD5Ut3VidH99FIqQA5sr5PFtFtZb6lfhSPUuku X8MfyumsX4JRqx3PxMezVfZifSJnABYaDujOk841OEAeZUOuV0WhfAjtBAjIFng1TPDipRDRQkM miI4x/8u1z6PDhX8Orsz8bWJYTLUrA== X-Authority-Analysis: v=2.4 cv=BJm+bVQG c=1 sm=1 tr=0 ts=693c90b2 cx=c_pps a=Dn5GTbaAjVxhKizcS6VC0A==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=i1IsUcr2s-wA:10 a=VkNPw1HP01LnGYTKEx00:22 a=l8gqk3GRtQDPDfc2xSIA:9 a=QEXdDO2ut3YA:10 X-Proofpoint-GUID: FywtMS9ZH8MeVFa87ARb_SZzTPKO3-PQ X-Proofpoint-ORIG-GUID: FywtMS9ZH8MeVFa87ARb_SZzTPKO3-PQ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-12_06,2025-12-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 spamscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512120177 On Fri Dec 12, 2025 at 11:13 AM EST, Damien Ri=C3=A9gel wrote: > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include I think there are a few includes that are not used here (`atomic.h`, `delay.h`, `minmax.h`, `slab.h`).=20 > +/** > + * Return the memory requirement in bytes for the aggregated frame align= ed to the block size > + */ > +static size_t cpc_sdio_get_aligned_size(struct cpc_sdio *ctx, struct sk_= buff_head *frame_list) > +{ > + size_t size =3D 0; > + struct sk_buff *frame; Check for reverse xmass tree notation, there are a few occurences in this source file where this is not enforced. > +static unsigned char *cpc_sdio_build_aggregated_frame(struct cpc_sdio *c= tx, > + struct sk_buff_head *frame_list, > + size_t *xfer_len) > +{ > + [...] > + frame_count =3D (__le32 *)tx_buff; > + *frame_count =3D cpu_to_le32(skb_queue_len(frame_list)); > + i +=3D 4; `i +=3D sizeof(*frame_count);` to avoid magic value. Also, it is more common to return the size of the built array instead of the array itself, so I would instead pass `char **tx_buff` as an argument and return `xfer_len`. > + > + /* Copy frame headers to aggregate buffer */ > + skb_queue_walk(frame_list, frame) { > + memcpy(&tx_buff[i], frame->data, CPC_FRAME_HEADER_SIZE); > + i +=3D CPC_FRAME_HEADER_SIZE; > + } Declaring a local `struct frame_header*` would be more explicit. > + /* Zero-pad remainder of header block to fill complete SDIO block */ > + if (i < GB_CPC_SDIO_BLOCK_SIZE) > + memset(&tx_buff[i], 0, GB_CPC_SDIO_BLOCK_SIZE - i); Remove unnecessary `if`. > +/** > + * Process aggregated frame > + * Reconstructed frame layout: > + * +-----+-----+-----+------+------+------+------+-------+---------+ > + * | CPC Header (4B) | Size | OpID | Type | Stat | CPort | Payload | > + * +-----+-----+-----+------+------+------+------+-------+---------+ > + */ > +static int cpc_sdio_process_aggregated_frame(struct cpc_sdio *ctx, unsig= ned char *aggregated_frame, > + unsigned int frame_len) > +{ > + [...] > + /* Ensure frame count doesn't exceed our negotiated maximum */ > + if (frame_count > ctx->max_aggregation) { > + dev_warn(ctx->dev, > + "Process aggregated frame: frame count %u exceeds negotiated maximum= %u\n", > + frame_count, ctx->max_aggregation); > + //frame_count =3D ctx->effective_max_aggregation; > + } First off, remove inline comment. Also, this function returns an integer that is never checked by the caller, so change the reurn type to `void`. I think the solution to handling this error is to simply return. > + > + /* Header starts at block 0 after frame count */ > + header =3D (struct frame_header *)&aggregated_frame[sizeof(__le32)]; Use `sizeof(frame_count)` to make this more explicit, and make it easier to maintain if `frame_count` ever changes type. > + for (unsigned int i =3D 0; i < frame_count; i++) { No need for `i` to be unsigned, just use an `int` to alleviate the code. > + /* Allocate sk_buff for reconstructed frame */ > + rx_skb =3D alloc_skb(frame_size, GFP_KERNEL); > + if (rx_skb) { > + /* Copy header */ > + memcpy(skb_put(rx_skb, CPC_FRAME_HEADER_SIZE), header, > + CPC_FRAME_HEADER_SIZE); > + > + /* Copy payload */ > + if (payload_size > 0) > + memcpy(skb_put(rx_skb, payload_size), payload_start, payload_size); > + > + /* Send reconstructed frame to CPC core */ > + cpc_hd_rcvd(ctx->cpc_hd, rx_skb); > + } > + /* else: allocation failed, skip this frame but continue processing */ No? If we're not able to allocate, we should just return. Change the `if` to check for a failed allocation and return. This has the added benefit of keeping the nominal path unindented. > +static u32 cpc_sdio_get_rx_num_bytes(struct sdio_func *func, int *err) > +{ > + unsigned int rx_num_block_addr =3D 0x0C; > + > + return sdio_readl(func, rx_num_block_addr, err); > +} Have `0x0C` in a `GB_CPC_SDIO_RX_BLOCK_CNT_ADDR` define for better readability. > +static void gb_cpc_sdio_tx(struct cpc_sdio *ctx) > +{ > +cleanup_frames: > + /* Clean up any remaining frames in the list */ > + skb_queue_purge(&frame_list); Misleading comment, since `frame_list` will always have frames left in it, as they are never removed during TX. > +static void gb_cpc_sdio_rx_tx(struct cpc_sdio *ctx) > +{ > + gb_cpc_sdio_rx(ctx); > + > + set_bit(CPC_SDIO_FLAG_IRQ_RUNNING, &ctx->flags); > + gb_cpc_sdio_tx(ctx); > + clear_bit(CPC_SDIO_FLAG_IRQ_RUNNING, &ctx->flags); > +} This is very surprising to me, why are we processing our TX in the RX IRQ? This seems entirely unnecessary. It feels like we could rework this and remove `CPC_SDIO_FLAG_IRQ_RUNNING`. Thanks, --=20 Yacin Belmihoub-Martel Silicon Laboratories