From patchwork Tue Jun 17 10:23:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Adolfsson X-Patchwork-Id: 897438 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010069.outbound.protection.outlook.com [52.101.69.69]) (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 DC381293C64; Tue, 17 Jun 2025 10:24:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.69 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750155847; cv=fail; b=hXZtUP7g7govkFdc1QjGMUTiw/Tw5KWsFZ41q25+Di6vfjYSEN5MWPdb3E7mr7OK0EBLuR/8Vf+uB9ynwWmbW4izLOv/JbEfXIZfVAkDLFLDTTHp5exeUejJZoXL+kefLeUbC6bC2Cfqn+9A/WwqNFj/4k5btVx1HLrfmIs00iw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750155847; c=relaxed/simple; bh=+oynsBGlGBjywA0QO+IenYfWCl+R1hEEizkAbNBlgt0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=ZQyuSZ8Klvm4c4geweZ4olquQRP0ZKpuqqw3S0vWiG8p2mC5HYG+A3M52pJvLg77zHQz7vQQEJ51ASQcnCInRKYPOc5v0yZk6kcLok1FIG/CIHVnTTJIi8k4UkzXDMHIDJaJzMF1U6pt5LG8KowT53U/xw3PUH8WbekBr0cyjJA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=axis.com; spf=pass smtp.mailfrom=axis.com; dkim=pass (1024-bit key) header.d=axis.com header.i=@axis.com header.b=Xeo/mcOW; arc=fail smtp.client-ip=52.101.69.69 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=axis.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=axis.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=axis.com header.i=@axis.com header.b="Xeo/mcOW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jxIa7g9C8nfRMNprXkef4LiWfIb4hpTua+LwV2tXczrXreYeSRx2vqo8b7R/8sdQBT3sW9kJFd2o6LtUvbNcu+fs0HwEDRmiIzrEyG0HQDcsEQifaqo6YC/oloq9zLaaeevSquckjwATmHnSHU4DIoYv13eyPEFy0tpXNtoGjDxPLYF8GlEGIZtzLsYhCdYGe8GOlzrGheL0M/2xXA2D0u6bOuljf3ncIoEmJuphRVsS0oZ1c/2rwjtHKtGpFDG3iBJ6xLkPeC3Te7vPGYLk8tcLfMxjpiiZ8Zgj27KhOvp25J7HXds5ivpufvSe7CEx5QlUbKlswl9eyI/13FtzsQ== 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=sB17wCEMybPfIHLGue9bE6nKWYU9wsh83ZzcKMe9+80=; b=ZIYNZzDP4S+5SJ26cNSGwcODBS4Haz90Wk2SXULaYKzw50bG9vj0FwC4+Z+3APw8MQl3gluJtvokX52ansJNrETDrlSnXyYHgTCNyIgsPM+9BiNz5G82lr0VImRchUxFalkodYD03ygKSupR6G6qdLMvrPn41OmnWtYDZphXotfUhaP4HlrVo06muaJavsT53+gKwD4LEgFczzKIqOEzV879J5C5vaAhAMTkVfmkdkpAVRYi8wCZfqo4fPiJnFdj5LO5dG0bO+dq3JoU3OxZFwSX7zfIh8FYW1d641tPi85d5ZdMq6vlwL/9VbbGlkHDWB+sfrZpgOaZq2xKrqXZQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 195.60.68.100) smtp.rcpttodomain=gmail.com smtp.mailfrom=axis.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=axis.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sB17wCEMybPfIHLGue9bE6nKWYU9wsh83ZzcKMe9+80=; b=Xeo/mcOWh1h22VLxM6maH54wd5EdXeYzfaJHT8aJQG9DU9VsN7OnJUNEHocZL76iZdYYrdDqzv1Q0TJY/C8MKYjA8ES1UsOp2gxFV2hpR+p/oMWWokJ/2eg+02oNapOR6sbHMrm48BKzOE5EiZFPTbBdw6+XdJ0fkcj1VGcnr+A= Received: from AM9P193CA0021.EURP193.PROD.OUTLOOK.COM (2603:10a6:20b:21e::26) by VI1PR02MB5854.eurprd02.prod.outlook.com (2603:10a6:803:131::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.29; Tue, 17 Jun 2025 10:23:59 +0000 Received: from AM3PEPF0000A793.eurprd04.prod.outlook.com (2603:10a6:20b:21e:cafe::f7) by AM9P193CA0021.outlook.office365.com (2603:10a6:20b:21e::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8835.27 via Frontend Transport; Tue, 17 Jun 2025 10:23:59 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 195.60.68.100) smtp.mailfrom=axis.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=axis.com; Received-SPF: Pass (protection.outlook.com: domain of axis.com designates 195.60.68.100 as permitted sender) receiver=protection.outlook.com; client-ip=195.60.68.100; helo=mail.axis.com; pr=C Received: from mail.axis.com (195.60.68.100) by AM3PEPF0000A793.mail.protection.outlook.com (10.167.16.122) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8835.15 via Frontend Transport; Tue, 17 Jun 2025 10:23:58 +0000 Received: from se-mail02w.axis.com (10.20.40.8) by se-mail01w.axis.com (10.20.40.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.44; Tue, 17 Jun 2025 12:23:55 +0200 Received: from se-intmail02x.se.axis.com (10.4.0.28) by se-mail02w.axis.com (10.20.40.8) with Microsoft SMTP Server id 15.1.2507.44 via Frontend Transport; Tue, 17 Jun 2025 12:23:55 +0200 Received: from pc51235-2237.se.axis.com (pc51235-2237.se.axis.com [10.96.29.3]) by se-intmail02x.se.axis.com (Postfix) with ESMTP id 6F8D0226D; Tue, 17 Jun 2025 12:23:55 +0200 (CEST) Received: by pc51235-2237.se.axis.com (Postfix, from userid 3319) id 674CA4034D5F; Tue, 17 Jun 2025 12:23:55 +0200 (CEST) From: Johan Adolfsson Date: Tue, 17 Jun 2025 12:23:54 +0200 Subject: [PATCH v7 1/2] leds: leds-lp50xx: Handle reg to get correct multi_index Precedence: bulk X-Mailing-List: linux-leds@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <20250617-led-fix-v7-1-cdbe8efc88fa@axis.com> References: <20250617-led-fix-v7-0-cdbe8efc88fa@axis.com> In-Reply-To: <20250617-led-fix-v7-0-cdbe8efc88fa@axis.com> To: Lee Jones , Pavel Machek , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Andrew Davis , Jacek Anaszewski CC: , , , Johan Adolfsson , X-Mailer: b4 0.13.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM3PEPF0000A793:EE_|VI1PR02MB5854:EE_ X-MS-Office365-Filtering-Correlation-Id: 2df42d36-eab4-46ed-6e6b-08ddad891208 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|82310400026|36860700013|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?au5+yZyRhJRGtU8YKIcRK5U4opIzsIv?= =?utf-8?q?CzYMq7M9CDYA4ODuLjDj+SfCaj2o+2sFUtgGS03v/31ayUdYg7MUIuRJbZZl2Fp4O?= =?utf-8?q?JwHf6wQnqCC1hgBDGVMEaLTTjl59zQvSJZe/0rt4ncMgEjhXs4rZKytqMXgeIQ9i1?= =?utf-8?q?bXttXnEI84dCHFBVk3XwRFETyh8EvTxX0m+2fJPHsrATB20wjZh5l49eBc7Q9wUI0?= =?utf-8?q?V7qzYeRjRnkcjaKd5/Y3UQZbvn+6/kC5FNd8l5HAy9r28CsRGsy49TCNM/v6wbZ3y?= =?utf-8?q?Q5UcwCQBhJCE75ZbayleOj0G435HGLhN8Ltb2ptPRU3Z2oturC2qrXpzCz55DAP3z?= =?utf-8?q?OHB5kWmIDRImTQGPnZ93MIYpul2v2zB258vaQP1Hey8YUdUlywVrU4HSaKZVoWyTz?= =?utf-8?q?LnW3k8yGAZJsiUqJMW7PbmHUrFtATAgub3jTaghcqpc4qD7+RSuGMLL4FfXLBYWpZ?= =?utf-8?q?RXRNhNSBYUoREFFmIoJxNcJnQ1ui7CuQYbf5Okbtk6q0EAWdUxA5yZaxPHo6HkXii?= =?utf-8?q?aSQ6HlXu1w9yu8HxATEi9y1CD9gDx12YfXj5CRgB3V2VvpX3DqH7Ssv4+W21q7Hhj?= =?utf-8?q?eYfmKB1mwsPpjpzeVNkIT3ZDB3X3hhLUb8We0PgaMkOboCv4HuqcFWb0WaQMWpLyN?= =?utf-8?q?1QpXpaLYJLNsZnq21gPUCL69Huu8S8G8gmJbfDk1qAG+hzEQvsGs4OmMJXmh9M5dH?= =?utf-8?q?LkoB5BlUFm2+NGkWZYWkt+9dc/Q7RjkJyq9m2JQNBEXnFH/pvVndiu/QwaMyBlT3W?= =?utf-8?q?OUg9H7qQ91mkwpZX9ej3pkNTDYLH67bpYbo/DVZi98tXVPTJIirMR2vD+r3qstN2V?= =?utf-8?q?gGCbzxUnSzfkgaDtlQ8s0mwRTUr43wmzFHzcufGSkF1zWlCfIF6x7nidmd02G0xeR?= =?utf-8?q?PwxU+e8PkXH/uccMDbLjtVSr+2Tq43tTUdIlXsF1L98Bi6MOLRh7lRmcEWVwi9czg?= =?utf-8?q?/FZwJE3uAlmaAcfMOmHIditVH2rAHSAkBlmncAULH0Xz0igNPq7kERLyayZvNA9V/?= =?utf-8?q?zdNk2rPg5/n4KjG1xICf06P+ZWZ51FqMbujFhgaAXEtVG7SbhyI+qgP/TAW4eTcvk?= =?utf-8?q?2Cuko5uGNKEHOloaZrd02rCOOfSM3ETDiY5+lc9XmATKX/LGdAhyIpGJ7twK7oO4p?= =?utf-8?q?ngCkwRKeCMfinnJQnBNlppNi+jACXGkk5AtcPglIao0W0VBqx9Jp5CiTnmTiTs0Xh?= =?utf-8?q?c7nNgwW92JsvWAFebNgyNjbynC2k6VIIHl+ch2uomtq1SFmNxxYJhQOPtA8iFTjCt?= =?utf-8?q?3mGeJFiCIRnuFiAw90RuFIiNQPAGbkaInYG9PTIGkWGDVqiJRgGgooqtw6OJIR2wx?= =?utf-8?q?hZHm63gTOxQ0SthkOdiyHf7jGp7AEek7iVAFqfDqTenSYK4iowWj4gy8XI/qH2Bl0?= =?utf-8?q?pQjSiadeHOj0lsuQ7K3nJcMpv9hULCtLmIrJpzEpKwQLVZYPH+fEyBa6VsZNOHf5M?= =?utf-8?q?bhwd0bsLuH?= X-Forefront-Antispam-Report: CIP:195.60.68.100; CTRY:SE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.axis.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024)(7416014); DIR:OUT; SFP:1101; X-OriginatorOrg: axis.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jun 2025 10:23:58.0719 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2df42d36-eab4-46ed-6e6b-08ddad891208 X-MS-Exchange-CrossTenant-Id: 78703d3c-b907-432f-b066-88f7af9ca3af X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=78703d3c-b907-432f-b066-88f7af9ca3af; Ip=[195.60.68.100]; Helo=[mail.axis.com] X-MS-Exchange-CrossTenant-AuthSource: AM3PEPF0000A793.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR02MB5854 mc_subled used for multi_index needs well defined array indexes, to guarantee the desired result, use reg for that. If devicetree child nodes is processed in random or reverse order you may end up with multi_index "blue green red" instead of the expected "red green blue". If user space apps uses multi_index to deduce how to control the leds they would most likely be broken without this patch if devicetree processing is reversed (which it appears to be). arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-fuji.dts has reg set but I don't see how it can have worked without this change. If reg is not set, an error is returned, If reg is out of range, an error is returned. reg within led child nodes starts with 0, to map to the iout in each bank. Signed-off-by: Johan Adolfsson --- drivers/leds/leds-lp50xx.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/leds/leds-lp50xx.c b/drivers/leds/leds-lp50xx.c index 02cb1565a9fb..94f8ef6b482c 100644 --- a/drivers/leds/leds-lp50xx.c +++ b/drivers/leds/leds-lp50xx.c @@ -476,6 +476,7 @@ static int lp50xx_probe_dt(struct lp50xx *priv) return -ENOMEM; fwnode_for_each_child_node(child, led_node) { + int multi_index; ret = fwnode_property_read_u32(led_node, "color", &color_id); if (ret) { @@ -483,8 +484,16 @@ static int lp50xx_probe_dt(struct lp50xx *priv) dev_err(priv->dev, "Cannot read color\n"); return ret; } + ret = fwnode_property_read_u32(led_node, "reg", &multi_index); + if (ret != 0) { + dev_err(priv->dev, "reg must be set\n"); + return -EINVAL; + } else if (multi_index >= LP50XX_LEDS_PER_MODULE) { + dev_err(priv->dev, "reg %i out of range\n", multi_index); + return -EINVAL; + } - mc_led_info[num_colors].color_index = color_id; + mc_led_info[multi_index].color_index = color_id; num_colors++; }