From nobody Thu Jun 11 00:05:22 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013054.outbound.protection.outlook.com [52.101.72.54]) (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 9639926ED41; Fri, 24 Apr 2026 01:40:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.54 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776994803; cv=fail; b=YjqfAda2Nj0D1OXqoXh6IiGZv87sIMVsksDJaPdqvGyGYL/RH7bK0xRLV4SecSk8gzMqN8ICnbRwtEjDyrSn9D/nXagHD3uzQx84ZJchYNMk2kocHMDhbugRSrLlVdhQLMAS1WRkolYLv9z5XsqaHogNEJToQ31BMr5sc4X7zqA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776994803; c=relaxed/simple; bh=jkCrKYeikdmQ6amES6JQPBP8RYWnlxuQ8EwC1bsJlOo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=PvZNg37YK4kuL2BPvpSJLIcNsKNnDhYmR2hYgIkpsLysIVo3VCQwQWWZJcgegeXXsOCoYxtFo1XvuOxQXsvJKa5A3o3EcIcpeIwzB9RnX2Y1xeX6WVWvAkERmeKSCu7hOQCYKRyZ8hPZtthxrc8Qd5pxFhmcPuHRv8rZ5n82Ink= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=D9mKf/0T; arc=fail smtp.client-ip=52.101.72.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="D9mKf/0T" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=g7I/qv74I9a1uOSn5b/Su4LKOkhUSLe0LFGntXO+HBIo/nMtsvBTQS+na+XnLkxHVhH4kbMZEC05dg8ygtOCWhjkNvqrk2iR5q1kcirfjBIQjRoVKKCWR8u6PRG3sQ92VsLgDUUhaZtzOsyEI12ggWeXGKK+78l/uvwZiN+xU3pQk1QBgd5X/gTr52Hiq3vT5wgLKM/WD37HOH+qgdj4TFmWh2rSjgPRyPH34NuFzd/GwGOI+1tlIfNT2Y01cXGDGAw5Ruu74yh/zZaLRQI2PK+Stq/ohaX/4LMbQjdqWHY1jaOH//6dKDS4Eg1J8TeNRs6svRTz/2JpFaNweVzH0Q== 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=Nd6mzEqqLW3aU7Pmn/hiiKp76VY1eNSZg565Ecotyy0=; b=x1E5WGcknhENaSbk2y+nqONYGguX+ObRoX0qAQ7wb4bD5wXKMXjDrXP1P1dfUGLi7ELJxnZUpHWpoOenzA8F0aNWQd0/rda6bAlsIvjNArI0BiHsVxgDmoHRhh6sU1ZOVkvpNWzi82TIVsywsuoa9249wJIE8nQjxcdUfU0kUKNnMSU2q1j2FPgXKCIebEkVSMkw8yEygf3arVuh4lATECkJ3JsyJ1Xqb6gX+DKcELS4ivTyHR9W1/OPFTNepXEzT1xMRb7rMedgdSJmm6Xz4gDaFVL8v82QQrIEjZDAt7HhZZ1kdBIYs08TuO1wj1vumWVgseW9Vt0vbMHG9NKfnw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Nd6mzEqqLW3aU7Pmn/hiiKp76VY1eNSZg565Ecotyy0=; b=D9mKf/0TL323/j/AixuhcA5HfUggRoh7Vhg9ImB+mEbTsydEJwDlTXyNm3w+rZEdEpFap76p7uQ/KnRchiIosR4R8nFZPotLHu6ak2tpNFp7YWm/yT5y7wkbTogN0wOWwMg+ntym8614iDwEy19SIiBGnjkIEy00Hp854d2OrhE+s8buV9Fhq9NRzMPCX3HPLfoXxdYq1k6ItYqaRdYqqAcZj1mZSTJLVaa7xHPzhBYY9nxhkCQS22CRHKl0NcSSzlsrOFdeQnbjsoJMkXsCjEzaLOPQXHJtlEl+IdAvvVNmQEZCJ8XC6n0iirY5Y9GbqnN+y4v+TGZ1u20bXyT9bQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AS8PR04MB9080.eurprd04.prod.outlook.com (2603:10a6:20b:447::16) by VE1PR04MB7455.eurprd04.prod.outlook.com (2603:10a6:800:1a1::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.22; Fri, 24 Apr 2026 01:39:58 +0000 Received: from AS8PR04MB9080.eurprd04.prod.outlook.com ([fe80::92c2:2e03:bf99:68eb]) by AS8PR04MB9080.eurprd04.prod.outlook.com ([fe80::92c2:2e03:bf99:68eb%6]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 01:39:58 +0000 From: Guoniu Zhou Date: Fri, 24 Apr 2026 09:42:24 +0800 Subject: [PATCH v6 1/4] dt-bindings: media: ti,ds90ub953: Add support for remote GPIO data source Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260424-ds90ub953-v6-1-7a84efbab316@oss.nxp.com> References: <20260424-ds90ub953-v6-0-7a84efbab316@oss.nxp.com> In-Reply-To: <20260424-ds90ub953-v6-0-7a84efbab316@oss.nxp.com> To: Tomi Valkeinen , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Vladimir Zapolskiy , Linus Walleij , Bartosz Golaszewski Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-gpio@vger.kernel.org, Guoniu Zhou X-Mailer: b4 0.14.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1776994953; l=2701; i=guoniu.zhou@oss.nxp.com; s=20250815; h=from:subject:message-id; bh=pXbWQO4uMjgak74FrySFaYJsAa3sTB5MlYPpyYgRVr0=; b=eEtfbiTSQF5N0G4uXSuVS36Q6XDbcZDVhRVjK9rKPdxgLT4ZeRVMy5YIRDcQijP/w8gE4eSBm qUQ1CCt0JvDDyMrBjYFg0KUTKC+jl64kMddQHE+Np6nak4K4WmXYIaB X-Developer-Key: i=guoniu.zhou@oss.nxp.com; a=ed25519; pk=MM+/XICg5S78/gs+f9wtGP6yIvkyjTdZwfaxXeu5rlo= X-ClientProxiedBy: MA5P287CA0164.INDP287.PROD.OUTLOOK.COM (2603:1096:a01:1ba::16) To AS8PR04MB9080.eurprd04.prod.outlook.com (2603:10a6:20b:447::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB9080:EE_|VE1PR04MB7455:EE_ X-MS-Office365-Filtering-Correlation-Id: 6eda0952-9341-42d7-4352-08dea1a26511 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|52116014|1800799024|19092799006|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: ZY0PWm7YBVHsugWhTyt4SynTk9Tfi18ND/o1btPRid8pf8rtWHcxnehW59iD6JJgOy+msxoc0cfSyjkRuiq1ENhCDSog8QEvpU3hx6E6xduvcLNuJT6xZHiVMyavTTjxaFhXMZ+J4D4WjSVLqpGgiea1H8eZOZovoSZevKkgJWV2DdcoEz7gqA4u3sgC6gBXWxnbpYfLJKG5MKYvC18x6utaozy9ygSEdAlCLMX9vQjyAE6aplYDah3KhGWHMSGW4nGt2WfzXqWvImfcNM41r41kPvcZ5a9erb2RJUs3aqjoPjJi/U50md8sFZCpgthFt3SVYWmbJkHAB44YkT2G6eYgbmOf4sr5JH4Hyw4ep0k45x2aZDuNzc1VU/nlm23eYgV5v9abyuQ1n6n6I8cNUE1LO6Ge3NWGKTo8SP0WJ0lVOvAiWeT1w+WqJFYZEr3wWzZ6OLJcTJ9TSu0IaYnukPcD6bv+Wxq2vSTEQvTZFSPAGpTui6yhptwAgzGcl9bfl6ZuyVSyRhuO7hKsmbXhvWK2iFJfXh61vPa09QnhZwSr5UUdhC87YViMmQoeOx6ZaMgEqkLbskEdFc4tTaXihywNKliKdGhxJ251izhlz32aRdNPA9SeXLTDra3KNIlaggGSFLKPgcb/zVl16+X9+8bvMnfGz02mSMekGNZrGlYgmGBIlPOJPq9E+nVGmWqsFeyE4Rb5gH18yN1s919gSHEbdDORytZwYE4PVKkomowWuojiv8lkWRsC9E5Xf2jiqJbuVy9BoejoHPCt0yp531d8tblD5tEwJmBqe87gcng= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB9080.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(52116014)(1800799024)(19092799006)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aXk5ak5FVHNKTFlna1JncTJhdnZldWlvTjJxb29HY3ZsQjE2Q0JFT0M3Z3k5?= =?utf-8?B?TnFaOGFBQ01jNXY1VWVJNXA3VzZDOHh1UHhOUzI0VmJiRXNHVkdUTFNUUmNK?= =?utf-8?B?b1JoTElFQlAydEZnZHE2QzQ0TTJ1MlB6aVRraUFBbGZVSTNFSHNuQ2JOYlNP?= =?utf-8?B?MWdnM3E3RnJReEVnclNmL1pCdEJqWUUwZ2NUaGc5b0Q5UDdTVUdYbHF3dm1W?= =?utf-8?B?OUlIRWJ1TFhqdVdZd2tFcS9DOWh6LzQwc3pqdkNwd1Q5eG1DbTIwVmxKWjJE?= =?utf-8?B?cUwxTmZUcFNLNytPTDA5WlJqWEMzaFR3REdreVgvVUt2M2xoZFZpaGFOWFk5?= =?utf-8?B?aVVoOEYzRk1vLzhPeVlQU213c0hISFVCc3dRZG5GOG5ZNkRSK2R0VTBEK3BV?= =?utf-8?B?NlptRitqWUVpSmlDalN6SXJqUlE2elFnSDlweFpjUDBGQm5aNWl2eGxia01G?= =?utf-8?B?RytFTkVibW8reEZNZ3NJaEM5aXpqZkk2d285Q1RnNnlGTnA4Q2xmdzNDZGU3?= =?utf-8?B?em9kRTlXdE9iRjd5bHBGWllDbWdvb3Iyay9ORDcxeWFnM2V6VU5PVDV1R09y?= =?utf-8?B?a1ZLT2hIUTlaWlZrTWFpaXA1R20zMzI2UHZpV0ZJZ3M0NmcrM05EMGx6aHpQ?= =?utf-8?B?clZWZGhlWTBaQXY2VFFiajMxeWEvWmJDblVaUXRpSGFxUjgxTkwxbkZwcDZa?= =?utf-8?B?Mnc4cGdQUGVRSHVFKzBYMEF4aE4rRDZFMUdOMkttdko4WW51cEhOU3RpWTIy?= =?utf-8?B?Q2FUaUlBMUdod0kxcENLaDBiTFhrRkdqckxCc3FrSm10TEFiajZoczVEZnhK?= =?utf-8?B?ZnBxTHczc1lHMXVuNjIvOTBGdDZRcS9nbmlqUWw0RWhjY0VLRmdjcW5HOVly?= =?utf-8?B?S0l2ZmNrR2IxaE5NWGZBNitCbnBsd2lKSzhoaUlCSEFrVkd6UDNlWFAzVVNJ?= =?utf-8?B?am45M2s4SWlna0hGMzV6TVgyUnZTN1M0Um1zQmFhMlN4WW9UYmllSjdIVGdt?= =?utf-8?B?Qm9qbFpKUFN6S2pKcThyTjNERHhOaStqKy9BajdOWFhxTEg5T09QeTFkM0NZ?= =?utf-8?B?SGF4b3hoeVFHWFg3ZXJ2S0g5ajFYdDVqdWN4akY3NGUrSnFrVk56amNNZjNE?= =?utf-8?B?RGJjL0drVG9WYk85T3pZcGFJaUlza2tiMmpkZkdmTmJlQm1hZkZabUZpekN0?= =?utf-8?B?SVV1ZmZXdExxQnM3ckZrSFppL0hNWkJjOXk3aTlTcEdoa2pPK2ZuUGtSc0I1?= =?utf-8?B?aFpvZEpndldsTExHSGZmeFErU3cyUVFlUEJ5T1NkeWhRclY4djc3K2JkbnJO?= =?utf-8?B?eVlWZmNUaDdXdUlTNEdxVDlLME9seG9VREV3dTNVcXdzS1E4djE0WDh2anhL?= =?utf-8?B?SllJc01aR0I4M3FNdFQ0TzNDSEx0M08xQWtzTkpXOW1ObGZMbmYwUGkrNVpW?= =?utf-8?B?aExJaDVMZExnT0ZabDZSakpoMnlhNlI5NDlKc3hrVk1KcytZa21HbmM0Mktq?= =?utf-8?B?YlViUDdNNHdyVkxlSm9qTHFEUklNRmg1eHNFOFVGM1pBNUhmS3RJUVlDZi9X?= =?utf-8?B?M2ZBTkwreWtybXNmSjNkaEVhVlRNc25maThUVzYwNjB4UkpsbzRhTTg0QVdu?= =?utf-8?B?RHd6NHYrd09sOHNCejhQU2ZPblplS3BmSEY0Slh2ZTIwRndqemhCS2RJdFA4?= =?utf-8?B?OEtFQnJFaTdrVnY2YXlYU2xQMHo2VEZwaTc4cVlHSEd1QmZWVk1JSi9RKzh6?= =?utf-8?B?RHZtRFNJNkJnQW01NVNuV2NnSncwMm1VclpGZktacXY0aHlIYjV4U0pFZEtE?= =?utf-8?B?ejNjdklyOXNvOTNMc0J0NzBIcVZVR2JJcFVNYlRBcElCVnJON3M4d2Z6Lzc0?= =?utf-8?B?aUEwdDlrbVJ5ZlRneThuR0xKdmZWSGFOTGdUK3hwYWFRblByMjVreXl3aW45?= =?utf-8?B?LzBPK1NjMEczMFBwb2ZFTWd2N1pNcVJFcy8vdFpBSFd0UEdEYWVaNzNFWWxv?= =?utf-8?B?YU9WQ1hPT3lCVit1SWE0OGtVNnRLdkUvL0x2UFZNVlFtSVBJVzJsQ041ZWo2?= =?utf-8?B?S0JENU1RdEN5YUlmT2dVN0VSM25PcXNRREx5WlVPMm8ybUhVOURLNjl5TUs4?= =?utf-8?B?RkYwR0hlYzJ6OG0rY2JRbUdnR0Nyc0kyVi9ZMExtRkFXMlNuQmZnU2xhNVls?= =?utf-8?B?U1U1L0NPZmRTU0dNNnBQWmRlUHYyV1pTeTNqZGR0VXBkNWQ5S0Q0VFpyV0p0?= =?utf-8?B?Y2s3aHlmNkdMb3NUeHJGc09EaTd3aURNVWxjQkhyOVI0T3ZGQ1VZblNmVnho?= =?utf-8?B?RzFYUzMwRDlReGtQZzM4SVgwNkhPcU5ObzIxR25JRS9ET2lUTGtaUT09?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6eda0952-9341-42d7-4352-08dea1a26511 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB9080.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 01:39:58.6608 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dRRmWRQjadA9HYEllfIjLEIx40LpJu2xsWyhn2gA5pH42lscgWVpTk/SNErDVok7aSLqX/5z4CZsn/pLaWOlFA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB7455 From: Guoniu Zhou The DS90UB953 supports four pins, GPIO0 through GPIO3. When enabled as an output, it can be programed to output local data or remote data coming from the remote compatible deserializer. Add GPIO flag in second cell to select remote GPIO data source. Signed-off-by: Guoniu Zhou --- Changes in v6: - Added GPIO_DATA_SOURCE_REMOTE flag to dt-bindings/gpio/gpio.h - Updated dt-bindings documentation accordingly - Dropped Reviewed-by tag from Rob Herring due to significant binding change Changes in v5: - Improve the description for "#gpio-cells" as commented by Conor. Changes in v4: - Use folder block instead of literal block for #gpio-cell property descrip= tion. Changes in v3: - Make GPIO range from 0-3 to 0-7 to support GPIO data from remote compatible deserializer suggested by Rob instead of adding third cell for GPIO controller. Changes in v2: - Remove new property ti,gpio-data - Add third cell for GPIO controller to select GPIO output source. --- Documentation/devicetree/bindings/media/i2c/ti,ds90ub953.yaml | 6 ++++-- include/dt-bindings/gpio/gpio.h | 8 ++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/media/i2c/ti,ds90ub953.yaml = b/Documentation/devicetree/bindings/media/i2c/ti,ds90ub953.yaml index 2e129bf573b7..da63771bc236 100644 --- a/Documentation/devicetree/bindings/media/i2c/ti,ds90ub953.yaml +++ b/Documentation/devicetree/bindings/media/i2c/ti,ds90ub953.yaml @@ -21,8 +21,10 @@ properties: '#gpio-cells': const: 2 description: - First cell is the GPIO pin number, second cell is the flags. The GPI= O pin - number must be in range of [0, 3]. + First cell is the GPIO pin number (0-3) and the second cell is used + to specify flags. See for available flags + including GPIO_DATA_SOURCE_REMOTE for remote GPIO data source. + Flags can be OR'd together. =20 gpio-controller: true =20 diff --git a/include/dt-bindings/gpio/gpio.h b/include/dt-bindings/gpio/gpi= o.h index b5d531237448..d04a494d96ad 100644 --- a/include/dt-bindings/gpio/gpio.h +++ b/include/dt-bindings/gpio/gpio.h @@ -42,4 +42,12 @@ /* Bit 6 express pull disable */ #define GPIO_PULL_DISABLE 64 =20 +/* + * Bit 24 indicates the GPIO data source is from a remote device. + * This is used in serializer/deserializer setups where the GPIO pin + * on the local device (e.g., TI DS90UB953 serializer) reflects the + * state of a GPIO on the remote device (e.g., TI DS90UB960 deserializer). + */ +#define GPIO_DATA_SOURCE_REMOTE 0x01000000 + #endif --=20 2.34.1 From nobody Thu Jun 11 00:05:22 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013025.outbound.protection.outlook.com [52.101.72.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EE1F1277C96; Fri, 24 Apr 2026 01:40:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.25 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776994808; cv=fail; b=Wiw1BnBY9BflVY2cZki6+1WB1exWA/cuKKurrMkKNF7ljPDzZzYY/7K1d1aGJupcIpToRJDmtN/9I8MrJ0Q6rtA5gkUjOX390z691YLTNCzmO2C+WG5eO+Q2hkdkUWzWNLahoLzglLbM6xi/LFFsyU76ClQNFOQEV2a6nVPKeZM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776994808; c=relaxed/simple; bh=BYLUvPpfzaIBNeRQovwvRJKp2H9g8OyEni8+ktXRgvs=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=OShKb0TNwL2vOUfyWJb6BhgainWZ0xc8RsL26ZQrN3ebuEyZSCAvRu7SjhKnbHB/skAEnRb+tkHtQw5Xm+dVLsh1GapP0K96KktEZbEJSojeMZJZYD7yAclAzx3F6Gb4wgy49Pf8qTGeTDl27Pvg3QXkzp/TxI0FMn5rit9hMIU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=xdVtIpRn; arc=fail smtp.client-ip=52.101.72.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="xdVtIpRn" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Zn1Ci4ukIUrW0Dm3gp5EykA/Q/6HxaLBXpeNjSLP91kqmmAu+GWJ7Lg8XQSCVrLAj+AB6VvhGzKC6RivKwytv6xKhXYD6hFr/8TTZHMRLbRY8We911laf38xJJA+SpbSR7s7ywT+SUZvvPJmoYaaNVUvZS0UnxJmBFObnqUyUVT7UbbphqxefqdSxcLuQr+g4yDuEA6ABpwT1gKfOGd/CAYeEBIRTw2WqIVRM0nQhte2gk1Qaa7Gks6ZV2yY7hK7DopZ1OFJxNosmr4vyjyG39gjVgfj0AqJu0UkKXarRgiiPrHknTa0m+upLYYYnwC3E4IGYpR02CjYwdFJ3tHW6A== 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=62f+Qx0wlmDEkQvxsskjpFYSF7HYxHmyfReCsejF4Rc=; b=YwoBqixEz/6QL9GTjwKBp+ZzwKwEPvGVfXg60nTEjWc+nPiPWppFhqA0r34YkOx/0VKYIXqj0HxdpKcwI2wPUDE8cpASpHZCuI1xDZUfjo4/99miCksrHgG5w9fxVfeN1gikh3ef5oMRttM6CrT4J0CJ2MXuUij8hHJgIjU33TRoW4H8vzVjwX7IPlVLxQB+Edr/K4F+Ok49tw/T4RuLrlz+Vh2YB9AU8mItZx+SlYZOtI6Bb6XoOyDwMnwnh1eISYodSLPd94F5dUF52oootBTnKa5yft/EWU1GoywLV2wLWXy8ljaPttAjWoVhH8cYIY1/XGWC5Fyjm18AenG4Iw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=62f+Qx0wlmDEkQvxsskjpFYSF7HYxHmyfReCsejF4Rc=; b=xdVtIpRnCQmD7yJdbk+L+nq7eENdHD7FQbZvQBYpRNliNPod0y77f4vFUt4ZoeN4zTLs4H48kGdXg+0YTno3AulAvT1GAarDyHGzB5+MBxY4YIQYKTnYX3Ro/kBnmnVzugUOLLQpSxPA0HrG4nfIlVKVGkUpy/5lt1B/eKkU7N4mlVypJLI5R4bRznvxBkJDOoWjS2jrnctGSpQt2Jwrp6AuIck+8VI/gLXrYWXJAHDibk00MMVneflcFYZnpt8PPw8DZQ5AlAM16E7wutIgRcfYrrp274qvQWdqRvYag5TqEp06rlpXzYKtKvwxKY8nRZ7pt76oft1vwMznypqncw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AS8PR04MB9080.eurprd04.prod.outlook.com (2603:10a6:20b:447::16) by VE1PR04MB7455.eurprd04.prod.outlook.com (2603:10a6:800:1a1::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.22; Fri, 24 Apr 2026 01:40:03 +0000 Received: from AS8PR04MB9080.eurprd04.prod.outlook.com ([fe80::92c2:2e03:bf99:68eb]) by AS8PR04MB9080.eurprd04.prod.outlook.com ([fe80::92c2:2e03:bf99:68eb%6]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 01:40:03 +0000 From: Guoniu Zhou Date: Fri, 24 Apr 2026 09:42:25 +0800 Subject: [PATCH v6 2/4] media: i2c: ds90ub953: Add back channel GPIO support Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260424-ds90ub953-v6-2-7a84efbab316@oss.nxp.com> References: <20260424-ds90ub953-v6-0-7a84efbab316@oss.nxp.com> In-Reply-To: <20260424-ds90ub953-v6-0-7a84efbab316@oss.nxp.com> To: Tomi Valkeinen , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Vladimir Zapolskiy , Linus Walleij , Bartosz Golaszewski Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-gpio@vger.kernel.org, Guoniu Zhou X-Mailer: b4 0.14.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1776994953; l=3804; i=guoniu.zhou@oss.nxp.com; s=20250815; h=from:subject:message-id; bh=gje9vH51hA/z/uPiO/U0Y8u7/GSL19gAMVItmcpKXyk=; b=q43dFBgNL4z/+VXHauQ9fUK8YnfNzkB9mxBz9RpCxdOv7i+f6tGklJiSgUT4AKbqjG+Ahf+V4 WsyiVBodJJ0AGUVp7SjS7ueWGhty8eFzescrFZw6Okm6v3MVuNtxol+ X-Developer-Key: i=guoniu.zhou@oss.nxp.com; a=ed25519; pk=MM+/XICg5S78/gs+f9wtGP6yIvkyjTdZwfaxXeu5rlo= X-ClientProxiedBy: MA5P287CA0164.INDP287.PROD.OUTLOOK.COM (2603:1096:a01:1ba::16) To AS8PR04MB9080.eurprd04.prod.outlook.com (2603:10a6:20b:447::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB9080:EE_|VE1PR04MB7455:EE_ X-MS-Office365-Filtering-Correlation-Id: bab77a13-dd2c-46d9-e6e0-08dea1a267d2 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|52116014|1800799024|19092799006|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: YoJI5KE5RITuPs+mO9YhtZlRw6zc/D7kUppwBUhqgBR87zxfgDJZY3V4Mxz7bQY6HV7KxVL3epBZJNgHWNH1x3df4HHZDcmmPBtlWE2iTchdWvgOa1D3+epSyoiyaCOJUE8M0ERtLXpO9m5D1SbXPLVwah/4x5A0DL7h+ZX0lJGrHSKcnCMxkkSKIUfprTHuD7uqFmVmLHb10V9rk0c0H3jAaJbF2A8L1Y7lq/Tzda7PnO6QylTI9FeDUrAFYjX16oh4oo49S9eccXpMjHTGtG/XA6MZpWSmADpIYsuLAxYht8P8kE4Wl3wwqAEfyW6tDb69/LT+uSEhzfyGR7SZeg942hRjKXic6pYvagm4J4CoIHXEM71SVZChPZVpoe5hkWOTME8N89M1ScaY9EAT9Pt8GG8W0GXw8xmVv6klHGUzDh5P2UcV7lcqKVBhcHJMkYgoSo4p/B+O7+Tb/ao4lU+7vFofAWJsW5cg6CRBPQODXOgcI3TgbrWApzsJfxE+uL1V41qPgpb/V5nZHLwogtw+r30N7kY3QyyoPgiWtOIkwgGvFy0nRPHEmwYVNJY74ZbxXh7hVJPY7FvBsun2AkAwLnTg24uIKZbW4jFH3un93NgOet4QEmMl7Scfp2HEbtWPlf3ZKRQg9xjaz2+iYfLcEnxrt5dKlUO8XT36wYSxmysx9HOIKleYV/b3PAjPdKNlaSN+sdJwUg2Cv0t0T9xfhfUXLXL2ajvDXNa2j/WbU0q5u9fqKULKnuiYtzNocxFKzfrka6IzkkMnJaFScmfWFWZoFKQNL8VQZS/7gz8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB9080.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(52116014)(1800799024)(19092799006)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?STYrK2NtazhSVjl1ZzRIMS9CcHVVRU9ySTM4RU9tbEF5bG5FNmM5TDhZT3Vz?= =?utf-8?B?R0ZzeEU3Q3RSQ0orTTBYRzRWMGVVNUxJbVlFay9TRG80OTJocGRBQlFTTDRR?= =?utf-8?B?MmdOSWhxWWFSV0wwYjdlYzFHbDBYTTh1bkRrM2VwNFBFYXdpUUhwdGRnUTV0?= =?utf-8?B?TSt6bEduUGgyZmtVdHJWNjFQbkpXeTFQWm43Y3JtUlpGcEFsLy9OWnpqOGMw?= =?utf-8?B?ZEJjdUxlQmREN3luNDg0U2prdzFNS3pPdHovd0IxRUg1eG5UTGNuQmx1NmE5?= =?utf-8?B?MmlESXhoalVzZm1ITWJveDZJa1JCRUt6TUZCYnkzc0NSZ0tCNFR2K1h0R3kz?= =?utf-8?B?VkdCeHNWbUhoTTArQlFoa1dRYlk5eUJMUmpzYmZwRTE4TVRjcmltYjRPOWt6?= =?utf-8?B?a3VVd3lOWEdGZnlNMnZodllOTFV0ZGxPbEQ5cnJITWE3T242QmNxN3ZhZEEw?= =?utf-8?B?cVBJN3ZmcE83bWI1Znp4dlpDTWl4UHF0c2daVDA1ZVowZEdkMXJ6UjZOVnhw?= =?utf-8?B?ek1zMm5aZ21DY3crV05ZcTV5RzUxMGZrL3FHMFZNYVFvaUhqWi85b3ZLYWV3?= =?utf-8?B?ODFFUVhBN0tldllMRU9yaW95T3BBYjR3a2pMNHNGWHpNVTdLTW5SNDk2QTFF?= =?utf-8?B?UEcwNEtFb3Z0ODY3Qys3ZVIzcHNvek9OSEt2a3B4cmFySGJjcklEUnBBMUtW?= =?utf-8?B?NitPVGU0dmdXYlhCY1BSb1k0RGxLRjdxUHpyMjdyKzhRMjF1VTlSTmJ3d21l?= =?utf-8?B?eCtGanhwQlVYSWlndDEzWVZZTjVUTGJFQWhvRHNBMkJrdnB5eFpCcEdLUHJY?= =?utf-8?B?NjBqK2R0Rjd3dnhrM3VxTEVVa0NHK2NtcUdIMnJpWjVLR3hqS0phQzRILzRX?= =?utf-8?B?OHZuUGNDTloxR3U4QWN1RFAwUDkzSStpMmNqTzBac1ZDN2w4Z0NpM2U0Rktm?= =?utf-8?B?L2FTQzRJN2lrVk1NcU1uQkRmQjBBQ3lheWJ5Z1V6WkVDUzFQOGFUN3VSRTVQ?= =?utf-8?B?MmsrVm5KZlB1TlBZYzIvUmVHY2RFSUNNYURxZGRSYUw2dFBLeE1FUTVPaHdi?= =?utf-8?B?ckNpR1VqWEwyc21YckdhWUpWQnNRMlVOOW9kVTZrd3JYWGlJZmxEVFZjaFdj?= =?utf-8?B?WjVXdUxUemRpU25DNFVaQ1E5Nm5lcGRQendjemNMakNBUW1KeVlYcnAweVlT?= =?utf-8?B?VmZ2QTVMcGg2V0dZcTlYcXNqVXo2K3hLYlozc1VqcXc4SnNoOFlYZitIdHNI?= =?utf-8?B?OGdrSC9ZN2Q0YWtTQzVsVW1aOXkwMWwyc081Q2RhVXYxVHloejR4WHFzTDBa?= =?utf-8?B?dmVQYXdzTmNEY09naGRjaGYzWDIySFJXb0dQTENQTlVMTWNWUDA4cVI3Z3Zi?= =?utf-8?B?cW90RWNYMGNodnA0M3RDenFTRTFXcWZHVkhDK1VsaTNJUVJjb3pLbUJCakJ3?= =?utf-8?B?Mmpka1pCbEhRZ09lYXVtUDhsVmFGdUZOa2F1RDRiYW40NERCV1lDeXZsSVMx?= =?utf-8?B?eWVLcThZa0hSMDNoYmhGcmZqcGczNTZlaFY4M2dlTG4xRkRlNzRpV2RCWkZx?= =?utf-8?B?ekgreUhFcit6Qkt0R09teDE3VVAzNlJxUnBzME0zWS9Za0NuK2RUYzVyWVF5?= =?utf-8?B?NFRGZzB0czJIWTVoTXp5THA0bU1jQnZCZzI3N0N1Q0cweFFYQjJuZkNJNzZE?= =?utf-8?B?WHptRmVsRE0vMjh6dy9mNkFTWVdBaFdoVjJCZFRXbDExTldMdXZkaGlsbTdt?= =?utf-8?B?aWxwU1cybVVWMHY3a3ZXNmp0L01WTS81L1kyOSsrMElCYURFT2ZLb1ljRkI0?= =?utf-8?B?eExWV2dGQTg4M3JYaE1rRTMwSXdpUkJWWVdFa3h2QUY0WGthWFh1TUpwSGJw?= =?utf-8?B?Y1NSNkdDNVEwcDFCTk9OR3ZOazBKQlJjei9jeXFVZDl0VFdJQUFNbFZYMEJk?= =?utf-8?B?bmlVMzQrSmRWczczK3lxRTN2dE44Umd0WlQ0SFlHN0doWGJ3K1ltSU9BaXEr?= =?utf-8?B?VDZLL1BrYTQ0a205bDZuV25HMGhCNi8wVFpXcnRoaGtaTzFyVVBLb2tUMFNz?= =?utf-8?B?TzhubThNRGJQd0FVbHptamcwYzZoOUc5cWIwZzUvT1FHNytPM3FWTitLaGwr?= =?utf-8?B?UldSK1A2Z1ZSY3poSUdJZnZtelh4YXBJRTd6QTAreUcrakFlTW5SQTlaVVpu?= =?utf-8?B?UzFZeks5aVNVNHdvd1NiZ3V2ZkEreVRYTThRTmltRU13UHRhWHlrb1BtMkdk?= =?utf-8?B?Z0RJeXp1bFVENmlKRlAvSXY3eHdLQmxLZHpxRko5aTZWaDlLWUwvUldpM3Jx?= =?utf-8?B?S05GNjVielYvVFo3UFQ1SWxFcnVuTVdNUVF6c2FGMFo3dm53Rjd6Zz09?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: bab77a13-dd2c-46d9-e6e0-08dea1a267d2 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB9080.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 01:40:03.3080 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MmIhQoQ4WuKgMIk4JK4Cwm4T6A3rLYlZOLdWp43aiEQ7KI/Sq+bX8veuy6f2F0t9yBsDfjwiDOHenlyJJtw4jg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB7455 From: Guoniu Zhou The ds90ub953 supports GPIO0 through GPIO3. When enabled as an output, each GPIO pin can be programed to output remote data coming from the compatible deserializer using the register LOCAL_GPIO_DATA[7:4] field. Add back channel GPIO support by parsing flags from device tree. Signed-off-by: Guoniu Zhou --- Changes in v6: - Changed approach from extending GPIO range (v5) to using a custom GPIO flag (GPIO_DATA_SOURCE_REMOTE) as suggested by the driver maintainer Changes in v4: - Only log GPIO 0-3 stats since remote GPIO 4-7 reuse GPIO 0-3 pins. Changes in v3: - Update driver to expand GPIO range. Changes in v2: - Parse gpio third cell to select which GPIO pin the data from remote compatible deserializer. --- drivers/media/i2c/ds90ub953.c | 51 ++++++++++++++++++++++++++++++++++++++-= ---- 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/drivers/media/i2c/ds90ub953.c b/drivers/media/i2c/ds90ub953.c index a8ab67f4137f..da63dcfbbbc3 100644 --- a/drivers/media/i2c/ds90ub953.c +++ b/drivers/media/i2c/ds90ub953.c @@ -27,6 +27,8 @@ #include #include =20 +#include + #include "ds90ub953.h" =20 #define UB953_PAD_SINK 0 @@ -71,6 +73,7 @@ struct ub953_data { bool non_continous_clk; =20 struct gpio_chip gpio_chip; + u32 gpio_flags[UB953_NUM_GPIOS]; =20 struct v4l2_subdev sd; struct media_pad pads[2]; @@ -258,6 +261,12 @@ static int ub953_write_ind(struct ub953_data *priv, u8= block, u8 reg, u8 val, /* * GPIO chip */ + +static inline bool ub953_gpio_is_remote(unsigned int flag) +{ + return !!(flag & GPIO_DATA_SOURCE_REMOTE); +} + static int ub953_gpio_get_direction(struct gpio_chip *gc, unsigned int off= set) { struct ub953_data *priv =3D gpiochip_get_data(gc); @@ -288,13 +297,23 @@ static int ub953_gpio_direction_out(struct gpio_chip = *gc, unsigned int offset, int value) { struct ub953_data *priv =3D gpiochip_get_data(gc); + bool is_remote =3D ub953_gpio_is_remote(priv->gpio_flags[offset]); + unsigned int mask, val; int ret; =20 - ret =3D regmap_update_bits(priv->regmap, UB953_REG_LOCAL_GPIO_DATA, - UB953_REG_LOCAL_GPIO_DATA_GPIO_OUT_SRC(offset), - value ? UB953_REG_LOCAL_GPIO_DATA_GPIO_OUT_SRC(offset) : - 0); + mask =3D UB953_REG_LOCAL_GPIO_DATA_GPIO_OUT_SRC(offset) | + UB953_REG_LOCAL_GPIO_DATA_GPIO_RMTEN(offset); =20 + if (is_remote) { + /* Enable remote deserializer GPIO data on local GPIO */ + val =3D UB953_REG_LOCAL_GPIO_DATA_GPIO_RMTEN(offset); + } else { + /* Set output value on local GPIO and disable remote mode */ + val =3D value ? UB953_REG_LOCAL_GPIO_DATA_GPIO_OUT_SRC(offset) : 0; + } + + ret =3D regmap_update_bits(priv->regmap, UB953_REG_LOCAL_GPIO_DATA, + mask, val); if (ret) return ret; =20 @@ -330,10 +349,30 @@ static int ub953_gpio_of_xlate(struct gpio_chip *gc, const struct of_phandle_args *gpiospec, u32 *flags) { + struct ub953_data *priv =3D gpiochip_get_data(gc); + struct device *dev =3D &priv->client->dev; + u32 pin; + + if (WARN_ON(gc->of_gpio_n_cells < 2)) + return -EINVAL; + + if (WARN_ON(gpiospec->args_count < gc->of_gpio_n_cells)) + return -EINVAL; + + pin =3D gpiospec->args[0]; + if (pin >=3D UB953_NUM_GPIOS) { + dev_err(dev, "Invalid GPIO pin number: %u\n", pin); + return -EINVAL; + } + + /* Store GPIO flags for each pin */ + priv->gpio_flags[pin] =3D gpiospec->args[1]; + + /* Return standard flags to GPIO core */ if (flags) - *flags =3D gpiospec->args[1]; + *flags =3D gpiospec->args[1] & ~GPIO_DATA_SOURCE_REMOTE; =20 - return gpiospec->args[0]; + return pin; } =20 static int ub953_gpiochip_probe(struct ub953_data *priv) --=20 2.34.1 From nobody Thu Jun 11 00:05:22 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013046.outbound.protection.outlook.com [52.101.72.46]) (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 64EA629D28F; Fri, 24 Apr 2026 01:40:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.46 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776994813; cv=fail; b=h4NSG2OpzxEPjdotKtCgtqGp8rO5rqwa8fMmsEtZ9icHNpMTd8P+493lTLyCh/aFpvQ1alhfFif5ke6hfgMq0mhGA8CgBhd2Rsy5ftjFkDSC0b2BcG6CW+gcPM0tl1tnVFDsNUMKOO08lP3KifvJcL+pjodDp4sG+qNl40r7tpo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776994813; c=relaxed/simple; bh=cLTIfnGAzIjEnDLYcdNOv8VjdnMkTIVDwIhgt3FnDhM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=hqoqJzmdzOcfh5gCsH9YBJTqVxqAj2THShbZ8lch6aaAOeM8G4b6CPp6CSA2Q6x0/sAGatsrr8y8dJUepflr8D/IweAmAZAkVyOTkc3ljiTnE0KAdXh0Fcx9CXAjefIOkYwguSL4hQ5pF9nJ2ELfFjSrkNKq/3bMNnLjRLsFil8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=BcKTN8z+; arc=fail smtp.client-ip=52.101.72.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="BcKTN8z+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=c9Crvm+qnuRXqgzxEF8xLIF3kkuVzAZI60ZXVxdoSVGYQkejye3Dx5ntSoENGDMciCycg193PNkvl/VavJu4aKTzAebFp8TSga4HOaPFhVCPtgyRwctvk7YFAbvNrK27oxZOGAtjAJR6xNajlIBNIWzuHAhLGzhhEpo6wQTqP9MMphrd0VIw3qI75inaIZ/gL3/gsLW9WYn/DO5hB8PydmIbe8Lp/BOEF93wCALz9vtwf2o+dsLjM1X1XMTD9umJzeZVtpSz1t3g6RlgmRBLJyUnA53SiCaFK7PHPDaFIPoStID5sgKDH+PttaSlf8Sv9VpXs6XCTkBgUaVupVh/Bg== 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=UdtLwQJLtDVIBENIs3xfWkzAlnCbUk0cunj+tIuwIz0=; b=gZog3TNIO0IadhNS7YSX3HFvsMbORbKqgAqV3FfCeb5h0COQhp0vaLI0zTSsSQVcISfwmuFE8Gctc5v1MnK1G6I6pcK4+BfY/ixOUPjM2Zsl3prHVaxffaCNbCsXB7lPNaYzowNpDG05h3B7tyk1mGgtXH3gi+geoH192ocbhoVSfhZKNDi2kV3oF2eTAxgurnHKV9IZSNF8Jsi8jBVMLWKQr9stajiQyhsZbnY24DUpRQYQTuAQgwZ5lrNBaop7K/PJv3obnXrwGB3+mg/Kx0hpZk26MFJVLmocXNF1Ozc7fec5SO0zPzm0TGC88FnDmtKgZKwhrWOXhRrV11WB0A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UdtLwQJLtDVIBENIs3xfWkzAlnCbUk0cunj+tIuwIz0=; b=BcKTN8z+q2aa37FUK7DvtUb1tI94sZMifwsDxkHVya1G5s6wYp0Q/R/sM7q5TmfUmkkcfqjfo8PkeJE0hRYA9Ln/XYx2EknqOv+tG3ilZGaMVOd4x+NW3bvgYGqwEaNP5ivlFVaoCAIR+KceoIer1TdLdkxxOiQGHtrp/W0ZZa4pV/ynxjngLRRAMLUmPsikw3A37WeXXdeYml/QdGDJ/MqKsEy5WFOcQOBqqoD7Ud52sJAt+ZCxtXTYddA2Vu6aJS4mL6EIqO8mrb+maE6YQzdVZTamk0pHJ6ifWf5tjgNo7LP+u585wonyVSBPF5r/chPPi98acvgjiDdkPkPJ0g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AS8PR04MB9080.eurprd04.prod.outlook.com (2603:10a6:20b:447::16) by VE1PR04MB7455.eurprd04.prod.outlook.com (2603:10a6:800:1a1::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.22; Fri, 24 Apr 2026 01:40:08 +0000 Received: from AS8PR04MB9080.eurprd04.prod.outlook.com ([fe80::92c2:2e03:bf99:68eb]) by AS8PR04MB9080.eurprd04.prod.outlook.com ([fe80::92c2:2e03:bf99:68eb%6]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 01:40:07 +0000 From: Guoniu Zhou Date: Fri, 24 Apr 2026 09:42:26 +0800 Subject: [PATCH v6 3/4] media: i2c: ds90ub953: use devm_mutex_init() to simplify code Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260424-ds90ub953-v6-3-7a84efbab316@oss.nxp.com> References: <20260424-ds90ub953-v6-0-7a84efbab316@oss.nxp.com> In-Reply-To: <20260424-ds90ub953-v6-0-7a84efbab316@oss.nxp.com> To: Tomi Valkeinen , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Vladimir Zapolskiy , Linus Walleij , Bartosz Golaszewski Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-gpio@vger.kernel.org, Guoniu Zhou X-Mailer: b4 0.14.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1776994953; l=2757; i=guoniu.zhou@oss.nxp.com; s=20250815; h=from:subject:message-id; bh=3/WEgG1NNImg/h3VAcPVEQFyPY2QkmrMkCtpoug71jo=; b=OwpCwb4CaNaTWfiVeTvL1xK92BneX9OVG+JpMI12NCkR91wwnDWLxqBe/eUWiEe0/idi+zCYU BrePqsM5oDBBo7MT0jO5hkIwhOEmatxHw3805Gx/BSdxXHCE9iWq9a0 X-Developer-Key: i=guoniu.zhou@oss.nxp.com; a=ed25519; pk=MM+/XICg5S78/gs+f9wtGP6yIvkyjTdZwfaxXeu5rlo= X-ClientProxiedBy: MA5P287CA0164.INDP287.PROD.OUTLOOK.COM (2603:1096:a01:1ba::16) To AS8PR04MB9080.eurprd04.prod.outlook.com (2603:10a6:20b:447::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB9080:EE_|VE1PR04MB7455:EE_ X-MS-Office365-Filtering-Correlation-Id: daca719e-e7c2-49f2-5eb5-08dea1a26a9e X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|52116014|1800799024|19092799006|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: UV/rrH+UCYcfHZtHtdyl/HvdCuaoYUikP+1KG7EyQ1gBPGq+HslQKvSMLS1VpdpUVsh6QRzKWAQkHUkck8HFKKeBo0oxhJLuL2wRLZQSRbqrvoCtn008+0kXWwKlpaawB/hf6xH844mc2gl/YYiVnUuBaVTb00edCqtBbJ6YxkoLBkVufUJKZAjx+QqqGFTEtJyaErshaS0Eihy7L54tD1vrCm3rNaxOsZCTS6o1/QFzCAvHvxGA1k0h7TNHA0AR9KofaXGjavUhr597+zoSpZ2OOYtQZuM8PD5BPtzFb+XlzIBhBV3h7S/gMXyNLrNjukEtwtYs31hZUTyddUO3W1MEWCvkca31Fmw2Qc/0amCSsq+E/0eMVBiwANhB66wUAnMoOBljLmpirl7dNamXguceMTYv61vFvOYAfGjsTB5WicNwgpTNcIlNWLJmpH1zb6NB45PEBFDxHrRper2LYwP3Nw+f9XpEogFsOgjN3z5e2u3wkuW8olQwly7i0figa6gaDO6SJkbzj3L8G8T1VfOWUC3DAyS4f3OqKf7tcc6iH9QFVqNWYx2Kz8bcR4cqe2qt5ip+1fYdEG1f9/bSM0/6YJNCOISpq9YezqwyWAMNqfZsH9/MjlQTOXnSjFNZu440aWSrNj4RbTw4q9sEP8PNVi3OxQqxpBeXcuH/MJROawSudCucQVw/ZrqfhLfG0XiOAmHtVJs63W8wnT+cr+StjcnNsvcH+B0CWhFf15wnP+4NP5jthj2SQH+TLWymE9aJqFq+3uFSPl8NpTPZHP5bWQGl5nusx4mGd26mhqc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB9080.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(52116014)(1800799024)(19092799006)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cFUrRE9EbDgydC81T0dlSjg3Y2hVR1F3RHBkQ1ZWT29uQW14SWx0TndkV2U4?= =?utf-8?B?RGV1SkNPSnQ4d3NpSXMyREpqeWV6TmVsdU1MSXpySHhmTVViUC9hOEJtbEVV?= =?utf-8?B?Q1RuYkdJcG9nUTFZQXFCZHVLcGhyT25TYXRQeVVxNk9lTEo5L2k0WFJxaFc3?= =?utf-8?B?cVNGZVJnUStQSE5sSlMyMlJLeXlROVhPUGljU3F4ZVlmZ2pNS3hNc09COHd0?= =?utf-8?B?RUljSVBnUEorWWhZcnRyTmgxYmJBWVQvdmpwTWZvaHZYVWF2dURmcUdIQjRC?= =?utf-8?B?MnhhVnZ6Q0J4bnhVaEZDdnNYeUM4ZTVHb1crVXpYNUN5RHpxQ1VmNUJTSHpr?= =?utf-8?B?VWtFc1NQSUp0ZkRUZEQ4OFR5ZHRBM3JUcVNCcjZBNjBSRGlxM2dlWkx1Q3JI?= =?utf-8?B?QjJJdmw0alc0ZHBIRmtLbHUyUWlLZ3VBdGRTamQ3d2ljVngwVm1ZNHJjYkVP?= =?utf-8?B?SXpET21YK0piQy95S3UvV1AydWxCL2xlV0xpWjQ5cXVTeUt6Y0N6M1R5eVdp?= =?utf-8?B?d0FRRXcyRFNFOHVYbTlHVHVqc1FpQjIxTnJFWkxsNU5GNmZuUWFlZEQ5N0Fm?= =?utf-8?B?L2duUmNtV3BwdXp3QTZjQXBYOWdoeFVaenV6aTJIQlYxWnZEazJkQnNzNjRh?= =?utf-8?B?eVl2K3VqaFNpTm1jL2FhdmhMOTNISGFDUUEyQmYwMVRHcndlWmc2Y1Q1WVlR?= =?utf-8?B?VEZMV2NrN2Q5eE1pbVRnTUpSZWRkTVRZeFV2MDhLSmN1UGVxdUhsVytSd0JZ?= =?utf-8?B?R3ZrYUZ2VDlacU9PTkFuQ2p0dytpTVgxMGlTcUU5REU3UVpScjdiZ2FNeC9T?= =?utf-8?B?aE9pemJEWnlXendHL3g3SXlLbVE3aVlISWl3Um9NU051bkEvT1lreFBUM0VF?= =?utf-8?B?blNaVGxHZERhUEd1VXhQNHJVbUJlZnpxRFFwbCtoQjRMV1JwY1pHTTVQV2Jx?= =?utf-8?B?ZlFQTGh6L2lKeHdtcXFJV1BnOGdCSHZlTnpCeFk2RmdrZ1VTRGJVWUhDUXdO?= =?utf-8?B?b1cySXVwdHVtdjlOVDJ2eEJucHp6T2ZHTmZKSk5IOEw5OE05NW5vMDhBc1pO?= =?utf-8?B?WGFOZ0RiYmVIbWVGNnJGS2xBZ2syU0xwSU56TVdHU1JQT09ZSDJWNThOTDBL?= =?utf-8?B?dkhPZVVnTlhaN24rRVdHc3pmTWFyWDA3dXpIRkQzcG1KNWhNeExPeG5JSWty?= =?utf-8?B?L1UwVGRINzRYbWdTR0kxUWNtTlRQYTZpd3dWZk81dTc2ZFFjMmRndkNidnV0?= =?utf-8?B?ckx2b1dZOHpRcjdzWlZEQUVlTENlb0poQy9YSEZyVlc1TkdrN0tkVkpjcGgz?= =?utf-8?B?MXBOc1NFR3R5N1hPV2duMGhmZUluUGpnL1lrbHRYbDlnSUw2WjJ2SjJxYWs1?= =?utf-8?B?MXNSSHFhQmZrK2VibHgzYmYyaXN0bVVYMk02eUNYWTVSMFpCR3M3b0VpWldV?= =?utf-8?B?OTBpKys0TDRTcTQwR3pVOVJGRjJKSXdrUGpJUk9EaTBoMDhYV2RMdHBYV0VJ?= =?utf-8?B?SDFoR2w1OVdNd0Rqa0lLSXN3V0VoclkzN2VNeUZ6KzVJaFJrcmJzOGdqZ25B?= =?utf-8?B?ZDRaSzJ2aUlWZXMzTW13dkwvdWNGMVRqTXpFbTcwd1p6MkNlKzd1RmlJS2dn?= =?utf-8?B?NE93WTYxRjVhOHdtNzgycmxROSt1TUNYZisvWFdsOUtJVnZjeVphREg5anpN?= =?utf-8?B?WkI1eGJxVnkxZVdiaU4wbmk5N0laMGZrSlExMzhYUy9peU0xblY3andkR1V4?= =?utf-8?B?OHJ3cXlCOWVZdFBaM1k2b293bkw1cjExYk5PUFJCVkM1SlB0cjl6SDcybFZL?= =?utf-8?B?c3laa2pGWmwrTWx1SzN4cUFDalBpbUZOMnM2b0FWK3RkbUFtTVpjUWkrRitD?= =?utf-8?B?WkRiMjdlajlLWUpsTXZRNGlkM1ltNm9IMVZpeW03eDNOWjRWWjQwc28xMCtL?= =?utf-8?B?UXE0KzJxTkxVdG5WMmlBL040M1RqeHFkVHphaEp3aXdUaDkreVorZkhrU29j?= =?utf-8?B?Nm1oY3B2aDM3OHhoaytwNi90QUV1YWc4MFo2OG5rcGVoUVNURzFWaE8vSW15?= =?utf-8?B?YkRSVzNSZUxKNmlFUGJYVkhLdEluUW9CcjIvZGdXemZGbGZhODVPNGduM1dY?= =?utf-8?B?THYrZTBhdUFEU0tvS1QzY2hmUC8waHpZeVNxMVh2cDM5YjFDOUQybDRjZWRV?= =?utf-8?B?NTliY210U3d6OGtrZ290WCtMVVlhNmVMYjl4QlVTOUc4czlHWUpKZHozMkNE?= =?utf-8?B?aXdLbzR2eDl2VWxIK21Ycy9VZGpMWG8vRGJFWEFnS1Z1b3NnN1hyeS91VEE4?= =?utf-8?B?VGZYY1BNb3RDa25ZM3k0ZHVQakVwRDcrSUttYk1CYzhWSFpnMU9jdz09?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: daca719e-e7c2-49f2-5eb5-08dea1a26a9e X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB9080.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 01:40:07.9607 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Wwev+GKX7SpusEHlU19j/+IPbpVHNohHruLo5gH1jOp+J+0HgXmOqPMl7CQjnmOh8V1yJKd3cj1FTFp7PPrfjA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB7455 From: Guoniu Zhou Use devm_mutex_init() to simplify the code. No functional change. Reviewed-by: Frank Li Reviewed-by: Tomi Valkeinen Signed-off-by: Guoniu Zhou Reviewed-by: Bartosz Golaszewski --- Changes in v6: - Added Reviewed-by tag from Tomi Valkeinen Changes in v2: - Move PTR_ERR() in dev_err_probe(); --- drivers/media/i2c/ds90ub953.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/drivers/media/i2c/ds90ub953.c b/drivers/media/i2c/ds90ub953.c index da63dcfbbbc3..c37d9cbe88b9 100644 --- a/drivers/media/i2c/ds90ub953.c +++ b/drivers/media/i2c/ds90ub953.c @@ -1299,7 +1299,9 @@ static int ub953_probe(struct i2c_client *client) if (!priv->plat_data) return dev_err_probe(dev, -ENODEV, "Platform data missing\n"); =20 - mutex_init(&priv->reg_lock); + ret =3D devm_mutex_init(dev, &priv->reg_lock); + if (ret) + return ret; =20 /* * Initialize to invalid values so that the first reg writes will @@ -1308,32 +1310,26 @@ static int ub953_probe(struct i2c_client *client) priv->current_indirect_target =3D 0xff; =20 priv->regmap =3D devm_regmap_init_i2c(client, &ub953_regmap_config); - if (IS_ERR(priv->regmap)) { - ret =3D PTR_ERR(priv->regmap); - dev_err_probe(dev, ret, "Failed to init regmap\n"); - goto err_mutex_destroy; - } + if (IS_ERR(priv->regmap)) + return dev_err_probe(dev, PTR_ERR(priv->regmap), + "Failed to init regmap\n"); =20 priv->clkin =3D devm_clk_get_optional(dev, "clkin"); - if (IS_ERR(priv->clkin)) { - ret =3D PTR_ERR(priv->clkin); - dev_err_probe(dev, ret, "failed to parse 'clkin'\n"); - goto err_mutex_destroy; - } + if (IS_ERR(priv->clkin)) + return dev_err_probe(dev, PTR_ERR(priv->clkin), + "Failed to parse 'clkin'\n"); =20 ret =3D ub953_parse_dt(priv); if (ret) - goto err_mutex_destroy; + return ret; =20 ret =3D ub953_hw_init(priv); if (ret) - goto err_mutex_destroy; + return ret; =20 ret =3D ub953_gpiochip_probe(priv); - if (ret) { - dev_err_probe(dev, ret, "Failed to init gpiochip\n"); - goto err_mutex_destroy; - } + if (ret) + return dev_err_probe(dev, ret, "Failed to init gpiochip\n"); =20 ret =3D ub953_register_clkout(priv); if (ret) { @@ -1357,8 +1353,6 @@ static int ub953_probe(struct i2c_client *client) ub953_subdev_uninit(priv); err_gpiochip_remove: ub953_gpiochip_remove(priv); -err_mutex_destroy: - mutex_destroy(&priv->reg_lock); =20 return ret; } @@ -1373,7 +1367,6 @@ static void ub953_remove(struct i2c_client *client) ub953_subdev_uninit(priv); =20 ub953_gpiochip_remove(priv); - mutex_destroy(&priv->reg_lock); } =20 static const struct ub953_hw_data ds90ub953_hw =3D { --=20 2.34.1 From nobody Thu Jun 11 00:05:22 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013007.outbound.protection.outlook.com [52.101.72.7]) (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 208312BE7B6; Fri, 24 Apr 2026 01:40:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776994818; cv=fail; b=hdKaIMWF6giv8X0HFSJ1Zr9+p2CO6gGRAOm4h8r2j5buFrRvJYU8Rous10VWk3ZSFjTW2gGkseUy4HqzbtaXT/RfLKK/G71xHv7oKylDotu883YR7RhOCHS9o449U1V4yb956lyYkEtIZHD0+nSUv+bW8aUwTpPHRaACfAeA0ug= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776994818; c=relaxed/simple; bh=tqwAZAbm1xXBZMq+FS2vZRW8Ry34ghsQDncw4KuA/4w=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ovm9lOkJXqX0SFRZhZXVBRRoaNzARMNmvxQhdJlx2pe8suN8RlTM/S832p1LlottiYi60qVRwyT25sE9Rv6/bkhaqT7/uAoHjJafw+tS4qHwVpxXHHDXgxvPdbIqqWur1uMPRXu8fvw5y24dIkrCx+z1RXtUF50fuFMKg8/pT7I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=K300MvX9; arc=fail smtp.client-ip=52.101.72.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="K300MvX9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iHggkUNZYkdzty1/jd53w/m1CjPF/Atk84QTKrfye70SpgKJAJCb9bCDO9BAmhZvCx2h+m4+LZCHJ+1dG1oisE2ecvb7Ya6LucCHeSRVy1u0qkT/ttuTrRwF1up+IGmd0G2mnwZkzg5AK/Qnq6FMModiVi3DoYKsTgISLi9iPy7vrTtfQMO6SsdC6JTut1oV+XK/wJyqIjHAhkDr4IKo845oSmx7KsMC4FP+twZP0X+LbeO9g5xm8ChKp+ceTkn5aeiS8nH3Fs8M/fZncDLK9Fa72DnY+Pa0c+oKqXDWcf6/NexkLwU7fTDEYccNE8PtuMyn4yXqUGUKzPivSNo37g== 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=09BkqVNIF6Vem0C1TjyDSHBfBYFKTOtLVRkiaoEl6HU=; b=ee+7RjHLkfzWTqorDUI7R/YDa/Dl8umtaZ3cG2J4gnPJKeIZYMM4wLSfJhUxP+Sq9D+x4ODAJH58CvvKS7IVVSmm/4hIw7R7tAm7zelJdv+g9/tQMhDOi3I2Wh8j04aBc2WusBjaiZs2+FCLDYzLG4AmJudzTLUqL3DRE/jdtShkHSi2OhBFZFY5jhvavX+Ng2+P1BKi5JlksNdeLGcgUZRW9QazsXSEVph9GhPiGAed2rQIyTVW2iTTXF0MdmRG77o63oZZy4kjyTAP6eAHdfcrlRdPMheNo5qFGi33UTDhYN9qgNX8e67nKNJvJqP6/dqF7jyqHtlcygDOKdvUAg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=09BkqVNIF6Vem0C1TjyDSHBfBYFKTOtLVRkiaoEl6HU=; b=K300MvX9DnCHZsqaX/SnVaG4JZWRTbcUfX8qDfHa8Ujzz2o+F0LjAZKpWOhtMh90QynVrYj51BBXI/yDF/eOyZuNpRlWiwj32Or5/gfjReCFZmBB1FGbLA/Jb5fPvERvlr/+T4URjdDPOn1ep6e7AOaOT+knRk9KTFEdEChtp56MUsXArp7m4SCs6ici4gmWFBLc7Yqjnee5szLqhmcrDYV09TQ4/JR7tH/Y991vMvWw7HAFTQSHVhbxsb5+nYR39+dr47sbgwf1U/pWmpX2nSiyaYz7y11RGFGpSudZiGz5zBOIH7P2rX0USq6L9ddjaE0gGjSKlfRQQYtJ7L0tZA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AS8PR04MB9080.eurprd04.prod.outlook.com (2603:10a6:20b:447::16) by VE1PR04MB7455.eurprd04.prod.outlook.com (2603:10a6:800:1a1::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.22; Fri, 24 Apr 2026 01:40:12 +0000 Received: from AS8PR04MB9080.eurprd04.prod.outlook.com ([fe80::92c2:2e03:bf99:68eb]) by AS8PR04MB9080.eurprd04.prod.outlook.com ([fe80::92c2:2e03:bf99:68eb%6]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 01:40:12 +0000 From: Guoniu Zhou Date: Fri, 24 Apr 2026 09:42:27 +0800 Subject: [PATCH v6 4/4] media: i2c: ds90ub953: use guard() to simplify code Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260424-ds90ub953-v6-4-7a84efbab316@oss.nxp.com> References: <20260424-ds90ub953-v6-0-7a84efbab316@oss.nxp.com> In-Reply-To: <20260424-ds90ub953-v6-0-7a84efbab316@oss.nxp.com> To: Tomi Valkeinen , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Vladimir Zapolskiy , Linus Walleij , Bartosz Golaszewski Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-gpio@vger.kernel.org, Guoniu Zhou X-Mailer: b4 0.14.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1776994953; l=3323; i=guoniu.zhou@oss.nxp.com; s=20250815; h=from:subject:message-id; bh=wDpgp0zs1QklpvdTjPRwbQWwrPv5sdN6HH2vrTqJEG4=; b=LlyMPNZopaY/6EcOkyiqY6+TAqplY4mbKcV66OevkYYYcWclXERC9srwiw8UUAUG+wSl7NTkf 9ESalBc4f4JA7T+1sdKVA4XYQLlEASjMpvx9T07FfWB85TRXgr3Zw+D X-Developer-Key: i=guoniu.zhou@oss.nxp.com; a=ed25519; pk=MM+/XICg5S78/gs+f9wtGP6yIvkyjTdZwfaxXeu5rlo= X-ClientProxiedBy: MA5P287CA0164.INDP287.PROD.OUTLOOK.COM (2603:1096:a01:1ba::16) To AS8PR04MB9080.eurprd04.prod.outlook.com (2603:10a6:20b:447::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB9080:EE_|VE1PR04MB7455:EE_ X-MS-Office365-Filtering-Correlation-Id: 6d05b25d-59b8-498f-e6f1-08dea1a26d66 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|52116014|1800799024|19092799006|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: 1wFXZNfESbfGMqgyGFzGcxxAOeKmvdxsnXwOYkcCnK9zK0kACFHloInhmRqQ0qelkdJVYnXmQ60DKO2PirNTy3PmKHJ/QpGs8G1ap6xnb8tjQDwkPFDHB73XHZ3b2TaiakhaQWXJqcHszaxv4KJm3zlEhKnoRESO+tdxeq0L5KFSBtAzC9n2BhcaMjo1HtvQiybyR2Erm0R8k1nhvmusOpycydLW3LHAMNQr3vMKItJBDq4UUsBpqPVI4GV0z6Cy3ltuRfW5sgxx5glSZ/SYWh6iaxQzAWwiBRN3gIhRSBygUYH6R9xN6b3sccm3SdtGr0o4ZW0VO0NBMKhuDDCtsh9hgfqMYznAbkXnkLNgKkNmDirk1qup68BfWZF7U7Aqb4S9s9W7Qf2ziTAa5TcJ+2hOKZ5T3hE7kiLPoPi+7nD34/wT6MgD0wR8kC6SrDDCp1BcuBbpDJ8Rz4sOcBuPZ1pBCbErmdZkDtcN2UfmjT11CZ9Oar9yEpzmAiVbPVTogUbzZtdjZbcCwazTYKh6Z+qk8cu4lbtEG+6Vqb+G1nUxgzGG3xDeRUn8uZOctfWx38+44xcHLdH7SHye5qbitN+spDvyq1JolJUaqovzkSaChJGZi04chRqcSlGftclHbMtgpFMleYeQTWPvIMnx8di/e7kLTAJVYvEw/h2v257Oy45DFiyUYGFdJnyZJrNRAVaYFg2VUXKbJQXRGosYvhsmHPaXtclcYy+2K3bwSQNmcR+Go1GZ84EHS1lrpqumG1Z9W11bLQPuo0Hb3ZPv5+TKe+sS/wbZC2V4JC3cryY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB9080.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(52116014)(1800799024)(19092799006)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cTBtVjd1NHNTQVZ2RnBxZ1VmMVI5RHFscUd6Z3ZDd3lhV3gvT3JuSWNDZmxV?= =?utf-8?B?Y3JwNzF5TlJ6dDZMcDBuZ1UzVHNKWUZuR3dZZ3ZkcGI1V2VjdDlXMzdBYVha?= =?utf-8?B?Vmo3RHZBVndyTWgybzZkemFKNjEraThKL2pnYldpekFEVElsdlREcE9wQnd5?= =?utf-8?B?QjBwOGRmcTNqdzdzM0lHczFRaFYxUmFwUXdDK3BJYjlIcDFzTGh1WFd6WWlX?= =?utf-8?B?eWsySW1INkpMZWxUWEdiZExqMXdFL20zMXFJTXlCcDd4YmpNV2F0dFp5OW5y?= =?utf-8?B?c3dNVzVYM0JFYzhLYjg2V1NnRkMva0lnWFViTXdtV3ExYUFXWDVBMlBvaWpZ?= =?utf-8?B?YmNhOE5ienhsaDg3bTJSNTUwdG9ENUpLOStQMHVJZGExeE1GcG82R2xGYmUx?= =?utf-8?B?a2NkUWdzanpHUHZHRnZkOEwrOGFTVVAwWHZLakgzak5RMVBEK1VQbWNrc1hw?= =?utf-8?B?RUh0VXlFYU5MYUdGS0gwVktaM2hJbjg4WTNDaWhibEI3ZHNibVFjTkhlUmFj?= =?utf-8?B?c2xic05iMHd4T2h0dlNGVzVWZVhTQ2JscXc5R29VUEpqcnhQMmEzN2pDNTFN?= =?utf-8?B?UUlTZm5zaUQ0eGVyK25MNk5Kdlc1TnYwRjFON0dSYWl1VmczSU85U1B2aEw1?= =?utf-8?B?WW42aFdQdEExdXNCRnVLTDAzZWhrcmJLOUcyaXk0RDBxb0k5cmZnNkZTbCtn?= =?utf-8?B?TjFnWDJnVTg2ejA1RDk3VlRYUzBsWVVNTWpTQTF3K2xNdDd3dld1UUlFUFBl?= =?utf-8?B?SUlLTXpJRHFBZlpsNkNIejYwMGZoK2dSS2duRWFUc2ozR1k3YXVUbTBBL1gw?= =?utf-8?B?d0NnSXhNZHB2ZmN2SXRYZDVueS9VSlp5MGJUdUcrZkxmMlM3emc0b1l1M0tB?= =?utf-8?B?MWVoZHpWVlkxeld2U21kZTBUVXdtRmsrbnQzUWNTdE9ZUzc0QXBnYzI0QjFF?= =?utf-8?B?STE0ZXFsNHNKZ09POE9pZWNsZVYxcnhHOVduNFNHZzFpOGgyVWJRSXB1SGpj?= =?utf-8?B?SHpRR1BOMzl3TStpUHB4Q05SbFpkZWVYTXpCYVgzM3BnbmVrOFZ0RkJxRU9G?= =?utf-8?B?MGpZa1R2MVdRNzhRRmt5bW05ZEtzWlU5L3FpMTdBMmR5emFRWXYzY3BzMnRu?= =?utf-8?B?VXNxR2J4Vm1mWHJyVXJoZEIvZFJZT1BpUXBxMFRHREdaUmxqYUY2b3JJd29n?= =?utf-8?B?NDEyMFNvalRjcVZEVDlpdk1ZdHE4STlhR3ZUdUN0OUdWQVpoeUM4a0FXWU44?= =?utf-8?B?OTVZdVFIdkxFenJPbUtmTC9hK2JCUzJicVM4NG5Ebi8rV3FtWG5jQVdlY2dS?= =?utf-8?B?b2JydWxub2VJWEJDbFVINk45QXJrZG5QQjlvN1NRNGg3VkNrSGdWVCtxWFFx?= =?utf-8?B?cEwvOHNrNVdQZWxueFRVWm5QU3JlbXAvTy9MSmZvVGh2UjhualZGcm00WWcv?= =?utf-8?B?bDd2TVpnbk5PTFZ3bTd4ZWljZE50TlhBdkoySmxFOXVESjR0NVFVaEFnNCs5?= =?utf-8?B?RHNzVklHWDdhcWR4NUpuQjlPeWp4ZjlSMGhUVmZHOUMrOGh0NEFCQkNWUDhk?= =?utf-8?B?dkhoa09od2xTVDQ2ZjJ1Uk9BOFFXWWhMSW90TExuY1dGMThXZ2FQZ2l1QzR6?= =?utf-8?B?Z2JYUHJaZC8yOWF1Tkw2bFc0cGtXcFk2elVKaVlHYmFTbzc3d0FodjRuL1hF?= =?utf-8?B?R1FSekVKK2JubWIxRmErSzhEOGZ4Q0R5QlFMU0NlNzVwOWhOR2x3a3hVVU9v?= =?utf-8?B?RTRjaWRnejV6RlpNKzdLRklQNTFVZ1dyMTVSQ3ZobHFFLzExK3NWVUJ1eDRx?= =?utf-8?B?STZBQ1dSUVpmTGZxd05aR0NFaXpJN3hPZU1QaVN3SzlBWnFxL1pab2N0cXdu?= =?utf-8?B?dHdmSkthUUU0ZEtqQ0dDSE1JNWJ3dG9SOG13OHdNZi92RWpvd0k3cVRhZ2dS?= =?utf-8?B?TGY0T25SS3dyeTNzYmpSY3J0QUxEdERVV0lmdWxNQnlNWXZvTFFHTXltVk1W?= =?utf-8?B?amRBMmhUZVhGT0NRMnFQNGVHelJlZ2lveU5EdE0yTnB2Ni9NV0p3Y0hUSWNn?= =?utf-8?B?ZHpUZDVRZ0tRTW45c2xHajVURmcyeXhpZTAyYW56bjBYMkdNWTkydVpjUzZB?= =?utf-8?B?bGtBK1A1NGd0R2ZMUkhXZWRsVjBwMVVtSk5MREc3N2prelF5Z3pWVm5tV1V6?= =?utf-8?B?Vy91c0pUbGNoVnlFSnlkYllTK1MvYWgxQ0FkSkdSNGRwUlNGMkNxdzZhN3p3?= =?utf-8?B?VjQyY21nL09RdW1rY0QrbkJXRXRpNTNMK25ibUxOaHdKM1BxNFc1VmlhZ1Ez?= =?utf-8?B?OCsvQzMzNFBkL2hkckk3QUhNaFAwYWFPRGFEWjUySGFjckxXSzlndz09?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6d05b25d-59b8-498f-e6f1-08dea1a26d66 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB9080.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 01:40:12.6509 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Uow1FgpajdVKxzMnnUASxWEr3BNSQIRJGTcS3GiuUbOHpSbuNPh1INuGrcT4DOVBGxOJxAFBfvpNkQ4Hum9QWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB7455 From: Guoniu Zhou Use guard() to simplify mutex locking. No functional change. Reviewed-by: Frank Li Signed-off-by: Guoniu Zhou Reviewed-by: Bartosz Golaszewski --- Changes in v6: - Replace label "err" with "out" --- drivers/media/i2c/ds90ub953.c | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/drivers/media/i2c/ds90ub953.c b/drivers/media/i2c/ds90ub953.c index c37d9cbe88b9..a351d366cc3e 100644 --- a/drivers/media/i2c/ds90ub953.c +++ b/drivers/media/i2c/ds90ub953.c @@ -114,20 +114,18 @@ static int ub953_read(struct ub953_data *priv, u8 reg= , u8 *val, int *err) if (err && *err) return *err; =20 - mutex_lock(&priv->reg_lock); + guard(mutex)(&priv->reg_lock); =20 ret =3D regmap_read(priv->regmap, reg, &v); if (ret) { dev_err(&priv->client->dev, "Cannot read register 0x%02x: %d\n", reg, ret); - goto out_unlock; + goto out; } =20 *val =3D v; =20 -out_unlock: - mutex_unlock(&priv->reg_lock); - +out: if (ret && err) *err =3D ret; =20 @@ -141,15 +139,13 @@ static int ub953_write(struct ub953_data *priv, u8 re= g, u8 val, int *err) if (err && *err) return *err; =20 - mutex_lock(&priv->reg_lock); + guard(mutex)(&priv->reg_lock); =20 ret =3D regmap_write(priv->regmap, reg, val); if (ret) dev_err(&priv->client->dev, "Cannot write register 0x%02x: %d\n", reg, ret); =20 - mutex_unlock(&priv->reg_lock); - if (ret && err) *err =3D ret; =20 @@ -186,18 +182,18 @@ static int ub953_read_ind(struct ub953_data *priv, u8= block, u8 reg, u8 *val, if (err && *err) return *err; =20 - mutex_lock(&priv->reg_lock); + guard(mutex)(&priv->reg_lock); =20 ret =3D ub953_select_ind_reg_block(priv, block); if (ret) - goto out_unlock; + goto out; =20 ret =3D regmap_write(priv->regmap, UB953_REG_IND_ACC_ADDR, reg); if (ret) { dev_err(&priv->client->dev, "Write to IND_ACC_ADDR failed when reading %u:0x%02x: %d\n", block, reg, ret); - goto out_unlock; + goto out; } =20 ret =3D regmap_read(priv->regmap, UB953_REG_IND_ACC_DATA, &v); @@ -205,14 +201,12 @@ static int ub953_read_ind(struct ub953_data *priv, u8= block, u8 reg, u8 *val, dev_err(&priv->client->dev, "Write to IND_ACC_DATA failed when reading %u:0x%02x: %d\n", block, reg, ret); - goto out_unlock; + goto out; } =20 *val =3D v; =20 -out_unlock: - mutex_unlock(&priv->reg_lock); - +out: if (ret && err) *err =3D ret; =20 @@ -228,18 +222,18 @@ static int ub953_write_ind(struct ub953_data *priv, u= 8 block, u8 reg, u8 val, if (err && *err) return *err; =20 - mutex_lock(&priv->reg_lock); + guard(mutex)(&priv->reg_lock); =20 ret =3D ub953_select_ind_reg_block(priv, block); if (ret) - goto out_unlock; + goto out; =20 ret =3D regmap_write(priv->regmap, UB953_REG_IND_ACC_ADDR, reg); if (ret) { dev_err(&priv->client->dev, "Write to IND_ACC_ADDR failed when writing %u:0x%02x: %d\n", block, reg, ret); - goto out_unlock; + goto out; } =20 ret =3D regmap_write(priv->regmap, UB953_REG_IND_ACC_DATA, val); @@ -249,9 +243,7 @@ static int ub953_write_ind(struct ub953_data *priv, u8 = block, u8 reg, u8 val, block, reg, ret); } =20 -out_unlock: - mutex_unlock(&priv->reg_lock); - +out: if (ret && err) *err =3D ret; =20 --=20 2.34.1