From nobody Mon Feb 9 14:32:36 2026 Received: from mx0b-0024c301.pphosted.com (mx0b-0024c301.pphosted.com [148.163.153.153]) (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 9BE3530CD89 for ; Thu, 15 Jan 2026 16:13:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.153.153 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768493616; cv=fail; b=rdo4ozx9ROp3hT+PgUjM5v8r/X6Gs3BwSdwy3POL6DMLbF0Y0M/6TeoPMHtVRWnNiNDE61ebtHJKu2gKjqpyp4dug45l7/9qWfrxteRPw02vc3xMkk0QCVKLAKvpU9wwO9T13NEqDdanlutjjaOK8dxhtkrfmUoY90noUImfbJM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768493616; c=relaxed/simple; bh=4fdWX7suWUwjW/kSRoSEsa/HmcYzINKlMYQsyC4MBf8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=SOkl7g/87utrak7TDry+4Zilk8jNOoQ/iSPfNaek/76xY5swLRRHarvT8Fsl921wocJqfrke9+A87IQb1808hIZ3fKzzyg+Ps/AlyHiNDCf4tRe2S9P85PLUTBoJmNp6Y3VvAnZfrr27PMzMVMJQENq7X5dS7/f1e9HEoKiU0wc= 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=tqM2iPCu; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b=Dsp5FlBL; arc=fail smtp.client-ip=148.163.153.153 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="tqM2iPCu"; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b="Dsp5FlBL" Received: from pps.filterd (m0101742.ppops.net [127.0.0.1]) by mx0a-0024c301.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60FFlYh6459378; Thu, 15 Jan 2026 09:58:41 -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=Iisn/b3wZk7PfW/YLCZI7JJZd7zOmh5wJWc4DEBRH+Y=; b=tqM2iPCu1//8 YpsqutfaLzrAwkXpjra8sFx/RLaZubYJ9/fcwZy3vXT83V4PdYWmPa6OLMyASts3 /FogEKnnkU7WR1/lMcmK0XqZ0JQBynA47QyAEBS3dB6BHclLlGB0vHx8guh7gJn1 N/PLinuBHU4+7fCKXpAxbg7dTy6f7hnbrc6q1XBRzeNTKmYRNZ0sWZarteVTLKb+ 85KjHylZ1lsNsP3a2Rf5DJ1aZ8UyuDPkPS8u+uWTxfv/fqULsELnLP6zA52L7AXJ hTjasFTFCsLm96yNcDGzwLtSrCxRNLnmBDkZG+5qS5uZodt3i/yG2YihLzlwPWVa ot+EkbmfZw== Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11020087.outbound.protection.outlook.com [40.93.198.87]) by mx0a-0024c301.pphosted.com (PPS) with ESMTPS id 4bq36kr0ux-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 15 Jan 2026 09:58:41 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RNUb9fSoKmqqzkic+ONHCPefLAWMKECtsPQEOo2c3LeyHgnxIGXPpJik97SFc8EtmF7Vz2P4RihIG6JKCTieVo74W588qH1XD80GdL0U1DHVq7GbpvrGGOrzowUPh40AycAwWov/LXmSoYTeMRs9fOK0803O7wMlPXfpg5LkmAqzFCH7RCA2AETHUjc15e2UfBGGttML3CIzxA3nTfI6pUPcPx6xiZX3+u3vwTNU9IRiG/Cq5CJE6kVLgXXsb36Opgymajmnqthuq9zHRL3IHcQlzo1U5zyJN3wMZ/JCpeSrkNBlXpHf8pSuzX8FHMrtH6JtV7z7Yl0qh0SrqyilEw== 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=Iisn/b3wZk7PfW/YLCZI7JJZd7zOmh5wJWc4DEBRH+Y=; b=jHkAyDqTKwrqbpQxA5xiZJ3s3FBJMWIm7aB+80UrmPfXBPOBZXWOi1gX8WE/0jga/L5sYYTzS02IJ0KKSb64nTec6TcNtjqwL4xzQ2fDr4ueat69v8dKiCsNTouNxjEAuE+f3RgtU7iFWGV3hp7zyO48T7XaofkopFuLkMNB8deGl1Vk87cw5LwdsinAFjjeUYN+tFksyGUvzCbwudYT5xMS4irrPO1eUaaaWGX+o9NE07GGp7iUEwGjKfnrAXWivIByhfEQTnLK2Tp+HB6pcIC0YC3s/oORZsfSP/FeUDUwHr8DLKPWaKjFtzH9JOcKaLJ9z7/OAqoTEGC+OhUwlw== 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=Iisn/b3wZk7PfW/YLCZI7JJZd7zOmh5wJWc4DEBRH+Y=; b=Dsp5FlBLzDN8aSKibrx1cj8K5vt86P/Ay1lJTeWufEoVW3BHaCAfrN9I91f0qYA5mQ6tAYrJtWNIgeFxkeI/yICxAD+rrVKUA4bm91QS3dOMX+xZ9vbBwq9KccDKgsww/R43w6aF3Wlc6ShJUKCQ125rYHQAMUDSI7V7sGGs1Wg= Received: from DS0PR11MB8205.namprd11.prod.outlook.com (2603:10b6:8:162::17) by SA2PR11MB5097.namprd11.prod.outlook.com (2603:10b6:806:11a::24) 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 15:58:39 +0000 Received: from DS0PR11MB8205.namprd11.prod.outlook.com ([fe80::2de6:bc88:2af7:3583]) by DS0PR11MB8205.namprd11.prod.outlook.com ([fe80::2de6:bc88:2af7:3583%3]) with mapi id 15.20.9520.005; Thu, 15 Jan 2026 15:58:39 +0000 From: =?UTF-8?q?Damien=20Ri=C3=A9gel?= To: greybus-dev@lists.linaro.org, Johan Hovold , Alex Elder , Greg Kroah-Hartman , linux-kernel@vger.kernel.org Cc: Silicon Labs Kernel Team , =?UTF-8?q?Damien=20Ri=C3=A9gel?= Subject: [PATCH v2 10/14] greybus: cpc: use holding queue instead of sending out immediately Date: Thu, 15 Jan 2026 10:58:03 -0500 Message-ID: <20260115155808.36102-11-damien.riegel@silabs.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260115155808.36102-1-damien.riegel@silabs.com> References: <20260115155808.36102-1-damien.riegel@silabs.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YQZPR01CA0025.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:86::22) To DS0PR11MB8205.namprd11.prod.outlook.com (2603:10b6:8:162::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: DS0PR11MB8205:EE_|SA2PR11MB5097:EE_ X-MS-Office365-Filtering-Correlation-Id: 7fcbf67a-9928-4aff-3534-08de544ef2ec X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|376014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?eHVvMHl6Q2tBZHdkd1BNYTZFWXk5dEp2ZEEzY1U1K1FEZ2lhL25aTm90cjhF?= =?utf-8?B?UUFOdUE4VGZ0SWJudVBVbUg4cnVjbjUzakZoMkEwT0J1MUppYjYwNithaGpU?= =?utf-8?B?N21XUmthVVhWYTI2WHhGSlJNWGNCSEw0enV3QnFrZ0RVQklzVGpDM0dPZkhs?= =?utf-8?B?OGc3RGRSZkpHV09xVjUwQnZBeFo5Mmc3QkV6UjdOZkt5MmRleGdrNlNWWTJ1?= =?utf-8?B?TzNlRUU1RVlZRU5pcFVqTGFPYnRGQ0ovTTNTanVwWmZHKzkvUVg2MlhRM3hL?= =?utf-8?B?eFk5dElTQTJGV1JBVkpTOGpEVkF3U3NVdFRna3ZWZUQwbXVFYXB5VzFySVNS?= =?utf-8?B?d2lTajh1M3M0YitDK1dNSkt2bFBGU2FkSGEwSHMvN1RQR1NpZlJDU290QVh2?= =?utf-8?B?VmNLS1YyRDNQcUdzRXM2Vi9LbUkzN01mU01XTjhNSG1RSHBZV2NtNEpucWdi?= =?utf-8?B?NUZmLzZYdWNyWWhHVzJ2cUM5M0Q2Yk92a1VkNHRtMFhNNS9hajBQei9WOGZs?= =?utf-8?B?WkRyT1VxS2trR2pvbDlScEtMdXdldVY5Yml4RnJhVFRzNmVvVjFseWRIQXRr?= =?utf-8?B?cG9sRWlvdTJYc2JYTitITW5ncXlnVVJhVTUwd2ZVd0c4NVVJWFFQeDQzcEVX?= =?utf-8?B?T1llV3dKbUR4azJsdXh1elZSMWZEVXlWR0JEMFZlY2NGcHdFNTNWdld1bTBq?= =?utf-8?B?cENvamZ6VWFQTTdpaHhNbXNMRmNmcHFzcnlkWng4M2xBTFhHdHhxUzF3czJ5?= =?utf-8?B?aFkxbG5oUE1nYXRuQ0ZsOUlRYkxJZzN5MmZyanFUSzFTODFDL1hhRkk2WDMv?= =?utf-8?B?NG5ZdUZRM2hZNkd1OW1Jb0tqUGZvai9HN2JvUytaL0U1bC9qYlVMQ1ByNDdH?= =?utf-8?B?Z1QrUkkvcWpyUW01cDlUZmN0T3NzVFB1NDA2UXBOdGNhZWNJcmJwNTVQTEpF?= =?utf-8?B?eVE2bHozbUlxaUQ3QUg0T2Y3amMxQXZtTStvclR1bkR4WmNSR0t1YjZJcTBX?= =?utf-8?B?VTdZaXdrbUU4ZUk0cjVsQnppMTZyMERqVWtDeXZMWERueXlnS25rSVRMZkZw?= =?utf-8?B?VlF0ZUZOWTZpeitteEtzdWZWUWw2eEs5MzYvVWYwbk1EWVhTVS9nQ01MbGZG?= =?utf-8?B?TWZnMjhhcG1DVk5zYXQ0U2pYbzFoMWdBTmw5c3J1K2hKMU9NaElCbWl3bENS?= =?utf-8?B?UlZSWEFzTUVJQ0VLV3VVSk5OSVJKbkhGd0NHVFpEMEYxR1lWZGN0K3RUVm9V?= =?utf-8?B?YzAxWS80NHRMRGVaa0Q5MVFmR25Uck1heXk3clVlNDV6cEdlcTBwRTF2c25l?= =?utf-8?B?MXlGRmdlUE0xb1Z6SWtvdWtvOVhtQnNxaFV5dElhNWNlRmhDYjl1TXpUalk0?= =?utf-8?B?NHBmSGxzLzJ0NG5GMGgvZHJhWmpBbEdVb0IrcmM0M0ZJOTF5dGFtWEYyQ0w2?= =?utf-8?B?Y1Z2WHVHbEVlSG5rK0lIQ1M1bGdFL2syVjB3RU9qRG1TL21Zd2Fjc0pMUWRM?= =?utf-8?B?V2JDaVRzcVlHaUUyVHBkQ3I0OXFUMThJcjBNZWQ3NE5zQlZGaGlJTVhRNklO?= =?utf-8?B?RzhxZ0JTRkVQc2xTTFM0ZmdlTk04bVk5UmdoR1p4aEE4Z215QUhjOHFIVjJG?= =?utf-8?B?bHdJMnFFQjN1NmZpYVVJMGlOSTRFcmk0MGRJbkh5ZFB2WFNIb254bEhON2NZ?= =?utf-8?B?a2w0Sk5YUDlMcHNOUjZ2NWJ4THdMdkVtc1E0OE5TWm1vUzl4YXROYThhMmlw?= =?utf-8?B?c2lxcHdGUEdNWEVBV2hHQng0QmVmS3BjdG5KcExTQzVnYUNXVXJ4UU5Rdi9U?= =?utf-8?B?WnNUbGhUbTkvVkU4cEg2T1NUdkRxVFBjU1RBaDdNc1AyMC9LQjV1RXI3NXJz?= =?utf-8?B?VitDR2NQZ1lXNWRXNng0am9xSjEwSjlpTS9nc3dvUXJCaWJReEF2bWU2amRh?= =?utf-8?B?dzY1SDkxZktORlJ5UzcvWEs1amI2VjJsTkFZYm5uQWNoSFdPL3F2TnAxYVM2?= =?utf-8?B?WDAwUFloRGtUWjUrVXFuaVZPWENleXdvbkxJZHN1UnJJUURFdFcvRXZZNHVJ?= =?utf-8?B?dHlselkvMU5EQzBuZndoTk02djZBSUhLUWtnRFhOb21JTlBRMXQxNThaMHRG?= =?utf-8?B?VitsVTlRRmd2a0hrd2NtbTVGTFhXOWJGRXAxT2xHVFArSUx1ZFdndC81Uk1N?= =?utf-8?Q?KGLX5OWS3XpSC4TXXu3ZCQo=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR11MB8205.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(376014)(366016)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T1hLbmg4cjdPcFpVNUZlcEgxczMvUFd1WHZDVmExdVF6VHpHWkx2NUlhQmoz?= =?utf-8?B?S25WNzFTS2d4T3dLOENFcEtMdFNoVFhXek83V2kxNUNOeXpnU3FDMGNsTGZH?= =?utf-8?B?cjZUNmpwUjI3c0Q3SzFHRVd6N1JzbDltS0M1ZU85YUVMdVZVOEZVcmo4WWhQ?= =?utf-8?B?NWtPZjQwVDdiQTJzMk95REc2b1lUYnJBYkhNNWZBMHdIMG5RRFZTOTFGLzkx?= =?utf-8?B?dE5pcDkvdk85TWNnYWN1ZEtjSnRKSmI3ay9LcmtOZW1sVTJXNjZwRU1DamF0?= =?utf-8?B?cEZZV1JqL3VVMlF5ZDgwWFFuNWh3LzM3V0lDc21SSHRoNkJKZUV0WGMyRnZW?= =?utf-8?B?WDlJRFFvekVhREJWYW5TVVUxQ3RuRzJPQUpvVDZEK0M5SUFnbU9Dc2NCcnZ1?= =?utf-8?B?R2FhZjJYSE1BU3NaSGtLSkZDczRvZXpaYndXNHNPTVUzV0djWkZYT1VzS3gw?= =?utf-8?B?bldyN3I1bkN1QTJuWXFOVHVMb3lLN25FNG9VYUVjVmVvV29mcVRKUHhLUFB0?= =?utf-8?B?SzQzNzB3azQ3Sy9QN01VcXdCVDVGUVpaNnVKb1haTWo1RTg3d09lWkNTczdC?= =?utf-8?B?QTBVNUFIMUFVeXVIVDBmQzhHVGgwTHQ5UU00VW5pNjlJL1I4ckFLRmpKeko2?= =?utf-8?B?aFVmYUNXbXhUdVlWd1UrQVBveUEwTkxKQkNCZDhvQ3FLckhnVThPdkRJVi9k?= =?utf-8?B?NCthOGJXS0FMbjQvNHJwS2VMRm9pcDFRT1Yya20rZEJPT2xHK2xXTTJuOXFq?= =?utf-8?B?Z2lUeDhWNWt3c0FCU200aDdLeldjZ1J2aGZSQzl5V0JRc21GMjlXSGxlMVh5?= =?utf-8?B?ZmNCYzdQQWI0QWJWNFpwaUQrNW5RdFJxQlhmNWdOVWk1UkdqWmMxeUNrSVph?= =?utf-8?B?Q0pLTDlZYml4cW9ZMExYQTdZa05oNEZmdnorQzg1U2tLVzZuQXpnRGp6Z0F0?= =?utf-8?B?L0xXVWtTUG1jSVFLNTF2YWZFZktyQUp6UnpDNGVQSGtJbEI0QVJJVnlIaXlF?= =?utf-8?B?c1h5M2M5K0Q3dzhKNWlYZXRzWGc5Vit0Z0dKcmVNYkw4dEIwMXRyMmc3VEg3?= =?utf-8?B?RjdBYVJ4Uy8rSExyVDFVSDFyZDhONGNlSE1FRDVmNVo2K2RHTHNMbGhMRjVD?= =?utf-8?B?RG8yMHg0RFEvMk1OWDhKa0tRZi8rbnl5K09OR0Y2enhZc203anhjZkNqaTUy?= =?utf-8?B?VGhrNXVuNTI2cWk0aXoxWEwwam9QQ0p1djBTR1lmMndkZVFTKzhkU1FEa092?= =?utf-8?B?OEc3Szd4SUVOVTFKdTVGNUt0U0JObFgzZVlWWEJmaW5ORmVwYzVyeG80MGNG?= =?utf-8?B?WCtiZ0w0SUVGT01VdW8zL1hRZXNlbm0rNWY2ekhCUHROZkNaTTZwSHdmR1dZ?= =?utf-8?B?MllGUEtUT1VGM2d3Sit3cmdGME5aRFZZam1wSklXYy95TXFSTlVoYkVsUi9Y?= =?utf-8?B?UHBhaTYvcGYzUTkyMUdpdVk1NldYdXpEZk1Ya09PanNhb0VKS3VqMzZlU1Zr?= =?utf-8?B?ZU01aUZONzI2cGtYKzZGeTBnZ2hDWTJ6TFRhZmh0anFpN1pPdS9tTzRNaGt6?= =?utf-8?B?eFJ5S3pVanBhUDhVMHFCUnJhOWprU01LRC9tckJ4RmJac2FSSDFIZ3Ryc01Q?= =?utf-8?B?ZmJ4cGlUY2p0UzhVYU5IREFwRkVPQjJ1YnlCTFZZajhMNktMbUNPaUFUNXFY?= =?utf-8?B?a3VBWW1nTzZjSjNNaGhOWkVVQlhiY0pRMXhqTzZBaEJpVlh0S3JMb3UyQ1ha?= =?utf-8?B?TnRDMHJKY3NtMStRaFBTMHhPMGdxZDBPclVNSThGbFh1ZzI4b0h6UTVyNnB5?= =?utf-8?B?ZTVrRVJQVU9hZE0yd0xEeVFHT09IWlNkN1pvZzZ3ejgwQVlLaFFLWHZDSnR3?= =?utf-8?B?SFRPSzhDeXEvZTdBUG5za1pwS2xxU29lbnJ5aDBMMUdxcmsrMFFQL3hjeTZM?= =?utf-8?B?REdxZmJyTytzOUxkN2E3RlhrWUVRU2tIVDBWckZCRTlJZzlWdjB5dTNZVEhy?= =?utf-8?B?S2kxM3RlSDNGd2tqVXJOLytMZW5qdnM2eUtrd3hqWTI1UVdBS1kxd01UbWo2?= =?utf-8?B?RTBNOG5MTFN3VVU4Q2VnZm5raXpGeGI1bGJybk5WRmdkMEMrTXhJV256Wkc0?= =?utf-8?B?eTFmazdjanpiTm0wR256OUxZbUZOTENSZlFmckR1Z3dqTWVNVUdLNm14YlhR?= =?utf-8?B?UUpuQ1gxbWFoZjhWYko4NHJEWk9NRExnOEJ6SFRrMzB0ODVSOXdyVXlHZkpq?= =?utf-8?B?TlVDYThBQmFwMng0TmQxcWcvcldoWHViNFoxQ24xTFQzb2tjVUIvQVV5TGw5?= =?utf-8?B?d2xnT2tYeDdQeVJ6cDVKMGRqU09MVDZPb0xHalpQS0wzSzRURVFhZz09?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7fcbf67a-9928-4aff-3534-08de544ef2ec X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB8205.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 15:58:39.4563 (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: LpzNXKvpeX2PXnFg6wV4bL8QC0gno2kLOkUQ+OWXKnWsriCa91TIK6C8TCKLDhtZyqqBqOd02OrtyJHAFTBY+Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB5097 X-Proofpoint-GUID: _XOaU3nTRUvNf03ry2i1e6sEANYhjTFK X-Authority-Analysis: v=2.4 cv=M6BA6iws c=1 sm=1 tr=0 ts=69690eb1 cx=c_pps a=Gy9E0H4ZmoUkNlDDtfVv6g==: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=4ZPe5lWXlvbldCu1ft8A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDEyMSBTYWx0ZWRfX1xAJwzl+bOCW vQVpSjnri5sTquBsR3ibWVhuQOhRY7uSImpkUNWC85j47UbGyQC63iz82YyQlAHpySeL7G7Jlri B7Ms01NqKc7+rLBRsmdF3QFAquSDUYiLY6kAmYy2o0jVL7PQXalXZwPOjlmqu+Q6IPJO3A877IO lj3HjLCPiLnXQPK8slgiMwafOigQOGeMp9uL/bYAh42FRcEZJE1dIg0uRyUnhviPEwLq9/hKwuk wUFvnGn+3Q1AnR86bEUl/tyywwMi22oWlWr3xIDO5WZPV2z87kBOZE3xO1gxZqCYkFqfgBej0Ze w3F1jnxYaFqujzL7JA4G4zpGhIr44XaRdHRRPXVYXQfDXfYB3QBgIpqmksNnjOnsihzgvOtlmYi O9ijiY63wX6G8VFgqGg43DU+NUTD+QYUlWdC5b53C9N+k5o6w/0Kk+1ZSAZE2+OPoKz9QgyvcN/ DSs08lPOSqakaTaqKdg== X-Proofpoint-ORIG-GUID: _XOaU3nTRUvNf03ry2i1e6sEANYhjTFK 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_05,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 bulkscore=0 spamscore=0 adultscore=0 priorityscore=1501 clxscore=1015 lowpriorityscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601150121 As the first step to handle remote's RX window, store the skb in a sk_buff_head list, instead of sending a message immediately when pushed by Greybus. skbs are still sent out straight away, but now there is a place to store away if the remote's RX window is too small. Signed-off-by: Damien Ri=C3=A9gel --- drivers/greybus/cpc/cpc.h | 10 ++++++---- drivers/greybus/cpc/cport.c | 21 ++++++++++++--------- drivers/greybus/cpc/host.c | 4 +++- drivers/greybus/cpc/protocol.c | 25 ++++++++++++++++++++++++- 4 files changed, 45 insertions(+), 15 deletions(-) diff --git a/drivers/greybus/cpc/cpc.h b/drivers/greybus/cpc/cpc.h index 725fd7f4afc..f1669585c45 100644 --- a/drivers/greybus/cpc/cpc.h +++ b/drivers/greybus/cpc/cpc.h @@ -9,15 +9,15 @@ #include #include #include +#include #include =20 -struct sk_buff; - /** * struct cpc_cport - CPC cport * @id: cport ID * @cpc_hd: pointer to the CPC host device this cport belongs to * @lock: mutex to synchronize accesses to tcb and other attributes + * @holding_queue: list of frames queued to be sent * @tcb: Transmission Control Block */ struct cpc_cport { @@ -26,6 +26,8 @@ struct cpc_cport { struct cpc_host_device *cpc_hd; struct mutex lock; /* Synchronize access to state variables */ =20 + struct sk_buff_head holding_queue; + /* * @ack: current acknowledge number * @seq: current sequence number @@ -42,7 +44,7 @@ void cpc_cport_release(struct cpc_cport *cport); void cpc_cport_pack(struct gb_operation_msg_hdr *gb_hdr, u16 cport_id); u16 cpc_cport_unpack(struct gb_operation_msg_hdr *gb_hdr); =20 -int cpc_cport_transmit(struct cpc_cport *cport, struct sk_buff *skb); +void cpc_cport_transmit(struct cpc_cport *cport, struct sk_buff *skb); =20 struct cpc_skb_cb { struct cpc_cport *cport; @@ -58,7 +60,7 @@ struct cpc_skb_cb { =20 #define CPC_SKB_CB(__skb) ((struct cpc_skb_cb *)&((__skb)->cb[0])) =20 -void cpc_protocol_prepare_header(struct sk_buff *skb, u8 ack); void cpc_protocol_on_data(struct cpc_cport *cport, struct sk_buff *skb); +void __cpc_protocol_write_head(struct cpc_cport *cport); =20 #endif diff --git a/drivers/greybus/cpc/cport.c b/drivers/greybus/cpc/cport.c index 847cc8ebe41..91c39856e22 100644 --- a/drivers/greybus/cpc/cport.c +++ b/drivers/greybus/cpc/cport.c @@ -7,7 +7,6 @@ #include =20 #include "cpc.h" -#include "host.h" =20 /** * cpc_cport_tcb_reset() - Reset cport's TCB to initial values. @@ -38,15 +37,23 @@ struct cpc_cport *cpc_cport_alloc(u16 cport_id, gfp_t g= fp_mask) cpc_cport_tcb_reset(cport); =20 mutex_init(&cport->lock); + skb_queue_head_init(&cport->holding_queue); =20 return cport; } =20 void cpc_cport_release(struct cpc_cport *cport) { + skb_queue_purge(&cport->holding_queue); kfree(cport); } =20 +static void cpc_cport_queue_skb(struct cpc_cport *cport, struct sk_buff *s= kb) +{ + __skb_header_release(skb); + __skb_queue_tail(&cport->holding_queue, skb); +} + /** * cpc_cport_pack() - Pack CPort ID into Greybus Operation Message header. * @gb_hdr: Greybus operation message header. @@ -78,11 +85,9 @@ u16 cpc_cport_unpack(struct gb_operation_msg_hdr *gb_hdr) * @cport: cport. * @skb: skb to be transmitted. */ -int cpc_cport_transmit(struct cpc_cport *cport, struct sk_buff *skb) +void cpc_cport_transmit(struct cpc_cport *cport, struct sk_buff *skb) { - struct cpc_host_device *cpc_hd =3D cport->cpc_hd; struct gb_operation_msg_hdr *gb_hdr; - u8 ack; =20 /* Inject cport ID in Greybus header */ gb_hdr =3D (struct gb_operation_msg_hdr *)skb->data; @@ -94,11 +99,9 @@ int cpc_cport_transmit(struct cpc_cport *cport, struct s= k_buff *skb) CPC_SKB_CB(skb)->cpc_flags =3D CPC_SKB_FLAG_REQ_ACK; =20 cport->tcb.seq++; - ack =3D cport->tcb.ack; + + cpc_cport_queue_skb(cport, skb); + __cpc_protocol_write_head(cport); =20 mutex_unlock(&cport->lock); - - cpc_protocol_prepare_header(skb, ack); - - return cpc_hd_send_skb(cpc_hd, skb); } diff --git a/drivers/greybus/cpc/host.c b/drivers/greybus/cpc/host.c index 7f0579fde26..ec43d33dfc6 100644 --- a/drivers/greybus/cpc/host.c +++ b/drivers/greybus/cpc/host.c @@ -62,7 +62,9 @@ static int cpc_hd_message_send(struct cpc_host_device *cp= c_hd, u16 cport_id, CPC_SKB_CB(skb)->cport =3D cport; CPC_SKB_CB(skb)->gb_message =3D message; =20 - return cpc_cport_transmit(cport, skb); + cpc_cport_transmit(cport, skb); + + return 0; } =20 static int cpc_hd_cport_allocate(struct cpc_host_device *cpc_hd, int cport= _id, unsigned long flags) diff --git a/drivers/greybus/cpc/protocol.c b/drivers/greybus/cpc/protocol.c index ad97e903b92..72276818f17 100644 --- a/drivers/greybus/cpc/protocol.c +++ b/drivers/greybus/cpc/protocol.c @@ -14,7 +14,7 @@ static bool cpc_skb_is_sequenced(struct sk_buff *skb) return CPC_SKB_CB(skb)->cpc_flags & CPC_SKB_FLAG_REQ_ACK; } =20 -void cpc_protocol_prepare_header(struct sk_buff *skb, u8 ack) +static void cpc_protocol_prepare_header(struct sk_buff *skb, u8 ack) { struct cpc_header *hdr; =20 @@ -85,3 +85,26 @@ void cpc_protocol_on_data(struct cpc_cport *cport, struc= t sk_buff *skb) greybus_data_rcvd(cport->cpc_hd->gb_hd, cport->id, skb->data, skb->len); } } + +static void __cpc_protocol_write_skb(struct cpc_cport *cport, struct sk_bu= ff *skb, u8 ack) +{ + cpc_protocol_prepare_header(skb, ack); + + cpc_hd_send_skb(cport->cpc_hd, skb); +} + +/* Write skbs at the head of holding queue */ +void __cpc_protocol_write_head(struct cpc_cport *cport) +{ + struct sk_buff *skb; + u8 ack; + + ack =3D cport->tcb.ack; + + /* For each SKB in the holding queue, clone it and pass it to lower layer= */ + while ((skb =3D skb_peek(&cport->holding_queue))) { + skb_unlink(skb, &cport->holding_queue); + + __cpc_protocol_write_skb(cport, skb, ack); + } +} --=20 2.52.0