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 94BB8326952 for ; Thu, 15 Jan 2026 21:46:49 +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=1768513611; cv=fail; b=J1ju3CQgywin7q1040f0KKL6uz+Kv9p0oFqD1cbouFdBPL1/+dUHEN5EAVk4OWCtevVhDUMssfdGEJhZHPPQ1BHaUHxqyi9LvudJFrd1B4PTHad6RUB5va4xCtaDt78n1F2JGjO8sgrchEiJa6fr6WlKPSpGAtVSfpjvY7dqbPs= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768513611; c=relaxed/simple; bh=UYBtHpXP+WYhWMf3yR0GyGbh/TT69Pz0M8tq0GQvHKk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qTFd6GqSGhQ87JVN8oY5wN/Ko5foodfLoUFv+UIi99kgfi7CdZSW+mMMZiZokftAbvaziobF4DEqDvauoLsVTkrFt94wU/w0+2b3bVwCBkp0NQHvWmiZIsrYWl6c24L6S3/DDAR9KIROR5mbkqt4fTmH5AA/tXis6B4xz1qB9Zc= 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=CI8UrvGl; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b=c9hoq0Wi; 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="CI8UrvGl"; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b="c9hoq0Wi" 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 60FFjWH1817080; Thu, 15 Jan 2026 15:46:43 -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=TxHicTQEdpdlLiNL31yWFXlaDU0GBW+wH1bft2iVeaQ=; b=CI8UrvGlPXpB wQNWbXAIldmlulLj+UvIwneLLhjd2OkEz0oMP/n9qil8uXneEYbvUOMMpmm5qdil 7MV2jogsZNky90m6/ncn8LvFvRH+r+f0EOrfqE3VI5+07YKXaBSqenudQ7F24gOK uyrzP6XGzFqhKduwY8fZwCBrUoiSsncGu+oEvul5Suya/8adrPCfhPuuNPGNbiV/ ffgCyCOV9UXAFQXglRP7pS33ndxN2vgLAhK6iDLmCdNV0UX3GB7DquqZTevMMTTU pZLf2YbVRNVII5fPhHzRxN2a9XBnISQBr3nzI9hwyzH9zVPEuSvGgcoVX4GqafAD jyOTd7JNBA== Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11020097.outbound.protection.outlook.com [52.101.61.97]) by mx0a-0024c301.pphosted.com (PPS) with ESMTPS id 4bq35hrrhw-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 15 Jan 2026 15:46:43 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IhtL5u+evqKHwwf4/GVCKJXD4/K/uZdHll3+AkzFvkaQjL1xK4GTBXxTVwe7Sw+LUfgoNcnlsC7AwVmjbMKxxo9kL4ChcSd9LAe1SiV0cmMWpFSWE7eDnTS35vMEOHCBdRSGSin2CkcI6PYW0tg8IlpPIS++9FTzgHUpUrrkFLQgkoqUmkZSZPtWs/KBQ9NhHMd5Nr+Rgp8n4AWRE5Stca1Ch1NZXYM66cK3fYb7LGS58ya62k4EElLwFp7Vd21nM5oPkppukgR2K53iQ9DppLhzZ1KGXJbL1C4Q7/tytB9/I8uLq150EFgxZvobWbaAfzX3w31cpveSfHOHdej8IQ== 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=TxHicTQEdpdlLiNL31yWFXlaDU0GBW+wH1bft2iVeaQ=; b=ZrY5rlICwxYhwrdsBMDsZDwSH8EUaYjETMYK2kDmI1/kGMWPw/Xq49OWw8wPCHYq4ODc7hGq8s+BYF0YfYpHm/XOakmFhK0BcZUrRSuGiso3bngV2gbofKUdYCLvRkVxnW3QZutTEsSMIMwRJ9G8QEzIzsOYpgio7xN7DZ441Xs0MLxXv9dDMfsM+8EEHYJEymZTqAKgww0XE3QZNVebF75jk0vdrmj+OoEG9zdIYudsaDI2eaoQsA8fQrKBbmmPPLTZVgO3RMsFLC94OG6k8e2wR7qPDFgYlpOXix3yB6bRAEmI2qr4YWq4V7e9RCEXozBapBvTks9DnIvhJnnUAA== 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=TxHicTQEdpdlLiNL31yWFXlaDU0GBW+wH1bft2iVeaQ=; b=c9hoq0WiAVhyeZWpVALGF93s2xJ8ShkuaK4U4aes4XRWalNgR/f8NhqS+48bsRMucm/8j7g36AspK+zQMT6eJFxmF5NUgC3r5d1z60+hFWPvzb0WLAIosOu+WHZ59+ZcUe2QsO2QDUfNVam9oXhSRUVMNI3cr1MGNTazGMiNVrk= Received: from IA1PR11MB7773.namprd11.prod.outlook.com (2603:10b6:208:3f0::21) by SA1PR11MB9525.namprd11.prod.outlook.com (2603:10b6:806:4c5::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.7; Thu, 15 Jan 2026 21:46:41 +0000 Received: from IA1PR11MB7773.namprd11.prod.outlook.com ([fe80::acd3:fd18:5809:64c4]) by IA1PR11MB7773.namprd11.prod.outlook.com ([fe80::acd3:fd18:5809:64c4%3]) with mapi id 15.20.9520.005; Thu, 15 Jan 2026 21:46:41 +0000 From: =?UTF-8?B?SsOpcsO0bWU=?= Pouiller To: greybus-dev@lists.linaro.org, Johan Hovold , Alex Elder , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, Damien =?UTF-8?B?UmnDqWdlbA==?= Cc: Silicon Labs Kernel Team , Gabriel Beaulieu , Damien =?UTF-8?B?UmnDqWdlbA==?= Subject: Re: [PATCH v2 14/14] greybus: cpc: add CPC SDIO host driver Date: Thu, 15 Jan 2026 22:46:33 +0100 Message-ID: <5369550.jE0xQCEvom@nb0018864> Organization: Silicon Labs In-Reply-To: <20260115155808.36102-15-damien.riegel@silabs.com> References: <20260115155808.36102-1-damien.riegel@silabs.com> <20260115155808.36102-15-damien.riegel@silabs.com> Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" X-ClientProxiedBy: PR3P192CA0005.EURP192.PROD.OUTLOOK.COM (2603:10a6:102:56::10) To IA1PR11MB7773.namprd11.prod.outlook.com (2603:10b6:208:3f0::21) 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: IA1PR11MB7773:EE_|SA1PR11MB9525:EE_ X-MS-Office365-Filtering-Correlation-Id: 68b2ccc4-e866-415c-3d3e-08de547f91c1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|10070799003|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?VWNMblRYZkh1UWpXbkE5cWN6SDJTL3hsWWs3Nm5BYnQ3R3Yyc3lhdW9oSjgr?= =?utf-8?B?OGJxSktzeTF5aDhBU29hdTA5YlZlaVFhTERqWlZ5Rk8xNXFma1RFRTYwVGFD?= =?utf-8?B?RWFWUlpMK0dYMjF5dkYya1lNRUQ2eC9WdkQrWkJkR0lhdHB6bk1RaDZ6K2Rv?= =?utf-8?B?Rk1mMDhPbkNUZUFBRVZtVDl1b3MxeFVUbDh3MkNjNFNlTnVWOW1tZFBSeEd5?= =?utf-8?B?dHNUdzg4cEZ0cWR4d21EYjU0QjVMOUg3WHBrS3dnb2lZaDNSVmJON0VOV0Fa?= =?utf-8?B?V1l1WVhDUnRzOXhKNWhiQTdKY3FuR25GOTNxSkVic0c0Sjk4bzFXcFJHdDYw?= =?utf-8?B?OTlVQmxOUzZkVHNhLzJOd0ljaVE0b3lFaW1Ic3Z4bGpBajB5Y3ZydEJJdWVJ?= =?utf-8?B?SW5lOSs1QWpHemJYbmY3UlkvT1Q1QVBOdlZVbkpxaU0wS2FrU3BZZFQ2Zm9N?= =?utf-8?B?NHpVYTdOVmN5b25jSWNWeHh4UmZ6WmxoZmt2a3dzK0ZsbW81RDJhUllxeS9y?= =?utf-8?B?aFpuNHpEUXg5a0FEdzREN1oveTc1bnRldlJYRlNnOUlmb0taTVhaR1pCVDNz?= =?utf-8?B?S05BYzF4VzJhUHRzMUt1bVNpd1ZxQnVldnk3SFI3RVZlek5NeHVUOEZKMmtO?= =?utf-8?B?UmpKekpMRklNZm5FZTlsQndVc2J1bnErYWlTS3pHZUNpQzBOUnpPY3Zsb0Y3?= =?utf-8?B?MzFmZnZjcUtxT1QzdDZmMVFMU05VT3lVNWFvWEExZWlWbzg1K1E4V3JCczhm?= =?utf-8?B?OXpnbEZlVm42NS9RM2o4SEJySHVoZnN1cURNQXR3bnpkdXBoUEFIbXFObVF2?= =?utf-8?B?MUYzTjF6b3R6cXVuT2hlNFp4UkRjK2l3KytNUHJrSmx2MWtIclBXNlRaUlZV?= =?utf-8?B?QWhIRFgyYkQrRUxTMlhXcDJLSTh1RWg2R05Id3VmbmNFV3hVTVBpZWt2enA4?= =?utf-8?B?Z2s0Z3VPL3VOZXJRbGwyeHByWXhLdEJjWUY5TzFtUEYwelhmQ051eHdxV05y?= =?utf-8?B?Mmt3R2JkTXB0djV5Tnc4dFRXdVEzYTdmMmtZdkd1MkF1K3dwdmpiQ3hTeGsw?= =?utf-8?B?WndEbEJYZHQ5UVVLUTJHZHlWdEk5Y2pycVpuQng3OFl0NzdrdDFBTzRVQUtJ?= =?utf-8?B?Y1NmNlhSRENCSmU1ZHZkbkVacVFFcFQ3cVpFUXUvRFZUbkIxekhMNDNZaVVP?= =?utf-8?B?Q3NvTkg1WWVHcEtrVkRzS0NoUmdCYzRNaFJQSkNLTWhXc21ITVRKVjZjeWl1?= =?utf-8?B?TXQ2NndNNkVjUFdkSkRCNVRJeUc2Q0xrazdFQVZwOEl1M3pIOWp1c25taHVj?= =?utf-8?B?bmxVTDVFQU1YNXhyd3RuSXlCVGRyZDZDVjExWTFJbWdHTkRHTjRUR1N2Tnpx?= =?utf-8?B?OVA2ZjBuL3pZcHZvMTljK0t2eU5Bd2hPa0hPVmRYMGRzUzc5QWhHdkF2VnFh?= =?utf-8?B?NWMyNFJ5eXNXS3hsZTFaWFlXb3RiMjUvREl6MlB2Si9IUjhVRkU3V3pRUUZU?= =?utf-8?B?Q1BSd2ltM0x4N2l5MEE4S1NHRnZ4dlNYdDJkdlI0UjRlK1JGZktaSTZrRHBY?= =?utf-8?B?ZTY4K3dqNi9LTStvcm1qS0NNcnY4Y2VQTmxmRDBjb3grNURVYkFHdlNzZmFU?= =?utf-8?B?YUQ2amI1SnprOUpKU3JMMzBUT1NiRTFlUE5OUnZTMzhPVlc0VnZTZVJrcFh4?= =?utf-8?B?Vk02YlpVdWVaYUhJdlNZMUFxWFVQUEZESkRuWXlpSWdqSVg0UDd0d3hnK2or?= =?utf-8?B?QkVQS21VL2p2aElCQjcvUndJS3JSaDNTTStpdDZtMWRJam9TbXVzdTcwajBT?= =?utf-8?B?TTM5WXNQUW14U1lPMGUzZHhsZHFQcmJnQ1BUa2pOYi9YVDFCYUJpY2lGcnB0?= =?utf-8?B?L2wrZnZiQUQvczJmU1ZTRERLSjVmNzJ4eUQvVzRXWFlCblVVWXpsSWlBT1E2?= =?utf-8?B?eGNMQ0xDeU9Lam80bVJRTnN5M1hXQ2JVazBMcTFidDI4Z25NR1JRZUJoWVdV?= =?utf-8?B?SVJxdzBKckljMTZCY1pCVmpURmxJcFphT1JtYVRuYW1sQTEwMTZRYnM0UjlG?= =?utf-8?B?SlpKZHlZbTNYNlBmZ0NBMi9CcVBRMXc3alBaeGJDenZqeXptZUpUTUJiSlBL?= =?utf-8?Q?tw34=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR11MB7773.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(10070799003)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YTQycXBzeWU0eVhhUUVYVURRZEp5RVZucXJ2NXVIbGpyV1B0MmdsU2FnV1Uy?= =?utf-8?B?MncxUDF3QXcwMThWazRPRThBQnVJL3ZDSE1mZHdsZXNnK3lnVkZvMUtvbFhU?= =?utf-8?B?UGhDdmU1ZGhhNGI5ck1sZTRDNHhkK2xZUjBTSjY4NWVMaHZ2eDh4dUM4TGkx?= =?utf-8?B?RktMcmVOdDYvUGZ5NUREQlE2N1lCMTZZU2xudW1FYmtCalYyWjFqdWZOYlJF?= =?utf-8?B?YkwxNGdtRll3TUovbFFoWDY2TGt6MlU1TjVyd29tME5TTWNIQ01Jbk9vS1d0?= =?utf-8?B?Qno2akFDaTJwcUgyNk9KcStEd3A3NnY5V24yNHRiMm4zNG5CdHJ1ejBsOEFp?= =?utf-8?B?VWNQWWRRTVVuVWk1Q25pR0p4bjFWU3dtc2creHBnT0h5VWw4SjlNcW5Va2N5?= =?utf-8?B?dUJTMnNTR3FwWWpZV0hyVWVqWDU3bDhQTXhvNnNodFI0OUpnTERUVjFsTkZB?= =?utf-8?B?dkxNRWtNRUVxeEpSaVlraDYzSVlLODJsQ1dGWnJyald6MWJnNnlPU1RKNE1a?= =?utf-8?B?YTBZM1BWWnZ2cmk1MGFuQ0YzajNySTlCWXI0bG5IdFpDMDdoMTVtVURCRk15?= =?utf-8?B?TEM4MWpFRVRTc0RwNFBWeTY4Vm5oQjV3MGI3K1Z5RFhnb2g5bXY5Q0djdkY3?= =?utf-8?B?R3JZRnZUMGhtZ0RGbi82WjY1RHN0VEpBTmlCR3F3amRVb2toY3NVaFRqbGFM?= =?utf-8?B?MTBUWnBwUE4wUkVwZmI3SkNtcld4cENDQVkrUmhKMEtOb2c5TFdZYWVjc3lO?= =?utf-8?B?Zi9Rb2kzQ3cwNnNWSEN4MHVCcGF0VVYyUWFuMnhtWWlhWnFFTERHZ1JLN2cv?= =?utf-8?B?ZGJMZnlpT3NwUHpIOUQyL2FwVlNzRk5jeUxkZkIxUFlGeDV4T3lkTmFlTGpj?= =?utf-8?B?SlNaZVRBTVlLL2JHNUUvay9OeDVGVU9yc2JrdmQ0b0x6U240M0tXRGtGdmZH?= =?utf-8?B?Zll1NHovSGRkY3FUenZCS0pweU40c25hQlRoKzRLVHJ1U2svSjJpTERiN3Zh?= =?utf-8?B?cDRKYlZlT0VPZnAyS21Kd3RDdzN6dEEzOU5FL3g3cEI3UEx4ZXl4dkd6bEtJ?= =?utf-8?B?RGNlQm1oTFlPRUhscDJmUjJ4UTcxWHZ4bWdlaXRTU1lra0lvRlZMRjdsWENz?= =?utf-8?B?Qm8zekJNUFI1WG5MNGZHbE1CRXB3OUxxcGVETXRBNXB6bWxyV1VPS3ZnWXU4?= =?utf-8?B?NG1JSjNaWktiMGVpTy9JSWpIY2VNaUkxQk5pdnNTUEhiNnhsSHlWU3c1bUp1?= =?utf-8?B?Wk03VTlDQjByNTYralF1STBKaTRPNG85T3NNVmJLZmpyTmVXS21xSUY4KzNo?= =?utf-8?B?MXB3eU96UExNNllyZFBBSDNPOThETzgzT21KMnprNnlndzMvSFJkQUtaZnBo?= =?utf-8?B?aXU0UkJoYnJHVThlTVgxOVBSWlhDM1dnenk5dThEZFI1bm5KWUJCVCtTcmZL?= =?utf-8?B?RWNNVWRSYWJsQUpvQ2I5eWJ2Z0o2T01ERHQwVEdjU3dpZzRUWXByRjcyRzJj?= =?utf-8?B?OHFsMktWTFhVYTY3WHRKVUJSZWhMb1kvZjdVZEh6UDZNUmNRMmdKQmJiYnlZ?= =?utf-8?B?M0ptSFI1UmlpWk9WMzUxYVMrVzNzeTJiMjJ6MEpOMFpZSVoxcU5rZlVvUUZQ?= =?utf-8?B?bGxZMUJtV2dpMHprQ3hxSGxSTEllUk01MWVnOEQxV0pVNjF6OFJqNUtGS21T?= =?utf-8?B?S1V3Y24wMUtLck8xV3NscWpSdENQeXlwNzJUREhNdDVaOVhPVVEwRkFWUmNZ?= =?utf-8?B?a284SjVLaFFqSjd2dCtLak5vN21ESzZJSTZwTm01cFY1dHlTRWZOc0tDcnU2?= =?utf-8?B?MS9xbnc2dmpaOE1qVzhQT0NjZFQ1TWgxRFRBcUJGNXFQNk0ybmUrdEt4Z0lM?= =?utf-8?B?S1VpV1VjMkt0YlZJUFlvRllvMVVCM0xPQkFBcDRUNkxETXBNOVBaZFA1T2cz?= =?utf-8?B?SGJlcnZ5WWF1QUtoUjNGT2FwcW9MK0p6R2JkRDhtWGtCZkYxNCt1UmIzSG5D?= =?utf-8?B?YmRmeVFMRnhiU1kvamw4cEdPNDVKOVJzd0Z5cWxSdHRMdldZaEVEcUI0WFM0?= =?utf-8?B?Y3B4K0xXUzlQOG1VWXJvd3IzcFJvcVlTTExtL21zc1J2NWJXSXViMUZFa2ti?= =?utf-8?B?TDN3akhRZldKWTlRYTFXbzB5cE9FdE9IaVZ2ZHEwTFdYWlM1SGY5Ym1jamRF?= =?utf-8?B?SWIycDBNYXRuakRnVE5ja2FYWU00Y1cvM2luTXdaTTFoSWY0NWNTcDBBcmht?= =?utf-8?B?ZHdzS1VXenhTcEFoY0xXdk1WaFR5NGRidzBKQXUrd2g4M3hndE9FNnpHSGdy?= =?utf-8?B?UnVVbGh4Ujd4MEp1UGhOYUpzSEVaWGgxT3JicWtFdHhIVEhlR1dxTGxLN3ht?= =?utf-8?Q?v+BdSgJ+xkvKyahNh7fLjxzREjb9pE81/isaqb4Ezkq8w?= X-MS-Exchange-AntiSpam-MessageData-1: KYoEcDnOONFlGg== X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 68b2ccc4-e866-415c-3d3e-08de547f91c1 X-MS-Exchange-CrossTenant-AuthSource: IA1PR11MB7773.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 21:46:41.7352 (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: Sm/Wud6Au4EnSDF1SeCDe+d8fEUITM76vG9EX2eLkQkpkStlziO1Ty+98qQn16OEYe1CeOd/z+DRd/MwAMbqWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB9525 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE3MSBTYWx0ZWRfX9dHWW43wAjPV AxDzHJAZTkmJIARB99XKvRp5UGvRyc4YRMQUWH4G4/D/kDrDJ9k8J/hb2Oei2u3SGi6m7N8a4HZ S1Iq00lmxAJP0HKtzau3e6a1uG2dDoWdT8t+nLnCqqSZVUDgNa/L8ZZzgTXWbwAqqj96T2rfQ4M +WVqZ6HlXWSLVaPKZkNPLkDXFOcDc/JAurpbBYyiShDzdfeFXv1GW+xpeF4Xnpst8OzJcyzUPlw OaziFDJDuicSQlxay/eQqgjewt4lghpUovHae+rooqaUp4sq47wAApyP6E4rNN1E+Rr+1BEMBW+ xNYarihujiy4cZ2apGdGcYzplM9FQg8fjReKPIvU6tzOyUeb2IWW8l37TqLyypeK6jTgz8FNv+/ YR8jwDZ97CW4WiP3ss0qyrW70sYH8EiLyKnRmeS1RcIbBM34g6ip/KkepE5teX8gbC3NUc2znwt a2HdHs0n+So3WTcjykA== X-Proofpoint-ORIG-GUID: iR1wyH40c_Tf6gIt4FZS8UbQxbe2x4hj X-Proofpoint-GUID: iR1wyH40c_Tf6gIt4FZS8UbQxbe2x4hj X-Authority-Analysis: v=2.4 cv=PcXyRyhd c=1 sm=1 tr=0 ts=69696043 cx=c_pps a=67drJv3h0MZitt89ot57dA==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=M51BFTxLslgA:10 a=i1IsUcr2s-wA:10 a=VkNPw1HP01LnGYTKEx00:22 a=2AEO0YjSAAAA:8 a=GhxYV62_c9tQuH0WrjIA:9 a=QEXdDO2ut3YA:10 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=2026-01-15_06,2026-01-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 phishscore=0 impostorscore=0 bulkscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601150171 On Thursday 15 January 2026 16:58:07 Central European Standard Time Damien = Ri=C3=A9gel wrote: > From: Gabriel Beaulieu >=20 > This introduces a new module gb-cpc-sdio, in order to communicate with a > Greybus CPC device over SDIO. >=20 > Most of the complexity stems from aggregation: packets are aggregated to > minimize the number of CMD53s. In the first block, the first le32 is the > number of packets in this transfer. Immediately after that are all the > packet headers (CPC + Greybus). This lets the device process all the > headers in a single interrupt, and prepare the ADMA descriptors for all > the payloads in one go. >=20 > Payloads start at the beginning of the second block and are concatained. > Their lengths must be 32-bit aligned, so the driver takes care of adding > and removing padding if necessary. >=20 > Signed-off-by: Gabriel Beaulieu > Signed-off-by: Damien Ri=C3=A9gel > --- > Changes in v2: > - change formatting from %lu to %zu when printing size_t's > - remove "/**" kernel-doc marker for static functions not actually > using the kernel-doc format > - reduce header inclusion list > - use reverse christmas tree variable declarations consistently > - update aggregation functions to try to be more legible > - use define instead of constant value 0x0C for the address where to > read the number of bytes the device wants to send > - remove padding between headers and payloads when aggregating packets >=20 > drivers/greybus/cpc/Kconfig | 12 + > drivers/greybus/cpc/Makefile | 3 + > drivers/greybus/cpc/sdio.c | 533 +++++++++++++++++++++++++++++++++++ > 3 files changed, 548 insertions(+) > create mode 100644 drivers/greybus/cpc/sdio.c >=20 [...] > diff --git a/drivers/greybus/cpc/sdio.c b/drivers/greybus/cpc/sdio.c > new file mode 100644 > index 00000000000..aeeb8378dea > --- /dev/null > +++ b/drivers/greybus/cpc/sdio.c > @@ -0,0 +1,533 @@ [...] > +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); > +} > + > +static void gb_cpc_sdio_tx_work(struct work_struct *work) > +{ > + struct cpc_sdio *ctx =3D container_of(work, struct cpc_sdio, tx_work); > + > + /* Do not execute concurrently to the interrupt */ > + if (test_bit(CPC_SDIO_FLAG_IRQ_RUNNING, &ctx->flags)) { > + set_bit(CPC_SDIO_FLAG_TX_WORK_DELAYED, &ctx->flags); > + return; > + } > + > + gb_cpc_sdio_tx(ctx); > +} > + > +static struct cpc_hd_driver cpc_sdio_driver =3D { > + .wake_tx =3D gb_cpc_sdio_wake_tx, > +}; > + > +static int cpc_sdio_init(struct sdio_func *func) > +{ > + unsigned char rx_data_ready_irq_en_bit =3D BIT(0); > + unsigned int irq_enable_addr =3D 0x09; > + int err; > + > + /* Enable the read data ready interrupt. */ > + sdio_writeb(func, rx_data_ready_irq_en_bit, irq_enable_addr, &err); > + if (err) > + dev_err(&func->dev, "failed to set data ready interrupt (%d)\n", err); > + > + return err; > +} > + > +static void cpc_sdio_irq_handler(struct sdio_func *func) > +{ > + unsigned int rx_data_pending_irq_bit =3D 0; > + unsigned int irq_status_addr =3D 0x08; > + unsigned long int_status; > + struct cpc_sdio *ctx; > + struct device *dev; > + int err; > + > + ctx =3D sdio_get_drvdata(func); > + dev =3D &func->dev; > + > + int_status =3D sdio_readb(func, irq_status_addr, &err); > + if (err) { > + dev_err(dev, "failed to read interrupt status registers (%d)\n", err); > + return; > + } > + > + if (__test_and_clear_bit(rx_data_pending_irq_bit, &int_status)) { > + /* Clear the IRQ on the device side. */ > + sdio_writeb(func, BIT(rx_data_pending_irq_bit), irq_status_addr, &err)= ; > + if (err) { > + dev_err(dev, "failed to clear read interrupt (%d), interrupt will rep= eat\n", > + err); > + return; > + } > + > + cancel_work_sync(&ctx->tx_work); > + gb_cpc_sdio_rx_tx(ctx); > + > + if (test_and_clear_bit(CPC_SDIO_FLAG_TX_WORK_DELAYED, &ctx->flags)) > + schedule_work(&ctx->tx_work); >From my experience, data path is easier to debug when all the data are sent (and received) from the same context. Don't you think you could call gb_cpc_sdio_rx() from the workqueue: if (__test_and_clear_bit(0, &int_status)) { sdio_writeb(func, BIT(0), irq_status_addr, &err); atomic_inc(&rx_wait); schedule_work(&ctx->rxtx_work); } --=20 J=C3=A9r=C3=B4me Pouiller