From patchwork Sun Feb 9 01:26:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 13966571 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E597824338C for ; Sun, 9 Feb 2025 01:36:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739064979; cv=none; b=aYyhXLm9A4Kh845r/YtzJLGsN0gRlEKalngZp25mQt1RQrpe9PGV1q3L6TWjzRajJIkXS9zFnUeLBltP48OIPRLbYd2y/C1Le19QsTOrXyiu3ZA0/R6c0iC5CXTlXsWdmfn6BQE5QzYH1uHgbynuQZqkVCXfFvwXAkMhaJdkgcw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739064979; c=relaxed/simple; bh=SX5uCrafWaBsuabZRx2S5/jJXvmDVAPwbmy2KTJkbSk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lT2y/jv7DlOplpOkALw2C7S1M4aXQ0TjSDBkHhjOqY87j7zxBtSvdkajotovzZLxmzle3L+I4RA73wTNoyMW9Yg+Nazg5/himfaleTC7YTooaEVgXsOYB9dAYtd0HZtOE5ZHcEktVro0QRCWVfLIiEPaywY1jqJMOZLmVTSnGl0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Ony7kWQp; arc=none smtp.client-ip=209.85.216.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ony7kWQp" Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-2fa51743d80so741308a91.2 for ; Sat, 08 Feb 2025 17:36:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739064976; x=1739669776; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=nvWS+O+VD32dJVGmxwjPRz5m+lyiG8WkSczuxgGqpfk=; b=Ony7kWQp29vySOeORweEaRAftUHXYPJ3DOkdtuzwaaMGmQOKss/HMSbfQmtMvwXXxT WXHFZlrZj9kE0v68RcuUGQr0BkWkDekh9hTT2uj1v3hXN3Zp6p5S/nbFGIvHucRF6UEX 23gBNmXZbDrhHD9l3iNSpGMfn4bX57MvybqCSJVODBUiOSRS4xASyvmaGKS/DlmB0Z6G 2zhXgypBu0rgLH/gZPsEeyVNpZLGsBqRkKKqB3Nb0tPblYTGI/qlqqHAvDIifmjAmccI pngOCuue7jn/NMwu3LWMRHyLW+8azBVtfmd44954PctemOn9sRN38+O16d+RHGul8XFu quog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739064976; x=1739669776; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=nvWS+O+VD32dJVGmxwjPRz5m+lyiG8WkSczuxgGqpfk=; b=Yo9fPNU2ChRUuHg4Yt7S7fdHQJaUIdcZ4HWvehLeeOwgZeY4Ud0Y90hwLR83qBgS2j 3ATICKIa4HvT+T5CTwO6zRUZkJTdaA82EESnc4RYlSgAOgBA5gcz5YJ8AmfU02N/DB7d BP1JYaBw2lRKtws/MpwaZXWCY6A/HKyIWN1mOBHQMVkBTnKU7M5ZwGGNDKZf6QH+mR7F RZXVVsh5deu4TPU7uLdjUrYnJTYcBfrxVQVoREDf0+ZbqmS9R9MOu5G7tEqFzThHplou +IsbKBKzf/u6kAyVlyLwsKepfV0ZKtUzdGGyvioZ87C1Yu3gXN/fPVg5C8R1mNbJdeGN NbGA== X-Gm-Message-State: AOJu0YwpBmO1ZZO8lQBiPaOV4CthLG5+E4FbFUEfcmV36J2/b+rfm5pA 7uBhcTX8/sp2UOura6kiSpzVxcGVLP9VamecWZbzM8uXIbRzKQHbuPsTvg== X-Gm-Gg: ASbGnctqJ95Yl2xTS0qVS8W3fDySdHhfh8G9WKdg39qcPJSrcegfxEIKJDgEQ2u8Dm2 Wsyw4hxEJ5QoCXB5e6OqPY4XgovRZb088zczlemMJX1WvNdEq0HWcMN/x/u8e3rqim8Mzn0Bcdc pvDvtsyQ0gG7A9qqUaEwvu0uhkdlBskd0RkbI4CrmYQoSGM5oZeAY8OlLCVFCVymk3zK9eetsvD rSkWeJKt3n5khj0vpHPq4jku3+aGaKUiWnkeZD1Eg6qSJ9EhApu3iDYd9S5e76RJ110zKTn/RJf rn1umzTQK7e76wxrjNumaAhAMuF1 X-Google-Smtp-Source: AGHT+IF4qkWGd6d+wp1DP3+A4OsdcO6GrotezP5pdA6B1bqyc+3eLlyQKT+UYtxyWu6CftA8JVoMTA== X-Received: by 2002:a17:90b:38c3:b0:2f7:e201:a8cc with SMTP id 98e67ed59e1d1-2fa2416703fmr15514518a91.18.1739064976217; Sat, 08 Feb 2025 17:36:16 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2fa099f4fdfsm5852235a91.1.2025.02.08.17.36.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2025 17:36:15 -0800 (PST) Sender: Guenter Roeck From: Guenter Roeck To: linux-hwmon@vger.kernel.org Cc: Wolfram Sang , Guenter Roeck Subject: [PATCH 1/8] hwmon: (pmbus/core) Fix various coding style issues Date: Sat, 8 Feb 2025 17:26:10 -0800 Message-ID: <20250209012617.944499-2-linux@roeck-us.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250209012617.944499-1-linux@roeck-us.net> References: <20250209012617.944499-1-linux@roeck-us.net> Precedence: bulk X-Mailing-List: linux-hwmon@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Checkpatch reports bad multi-line comments, bad multi-line alignments, missing blank lines after variable declarations, unnecessary empty lines, unnecessary spaces, and unnecessary braces. Fix most of the reported problems except for some multi-line alignment problems. Signed-off-by: Guenter Roeck Reviewed-by: Tzung-Bi Shih --- drivers/hwmon/pmbus/pmbus_core.c | 41 +++++++++++++------------------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c index 787683e83db6..e38d69d723c0 100644 --- a/drivers/hwmon/pmbus/pmbus_core.c +++ b/drivers/hwmon/pmbus/pmbus_core.c @@ -44,8 +44,7 @@ struct pmbus_sensor { enum pmbus_sensor_classes class; /* sensor class */ bool update; /* runtime sensor update needed */ bool convert; /* Whether or not to apply linear/vid/direct */ - int data; /* Sensor data. - Negative if there was a read error */ + int data; /* Sensor data; negative if there was a read error */ }; #define to_pmbus_sensor(_attr) \ container_of(_attr, struct pmbus_sensor, attribute) @@ -192,11 +191,10 @@ static void pmbus_update_ts(struct i2c_client *client, bool write_op) struct pmbus_data *data = i2c_get_clientdata(client); const struct pmbus_driver_info *info = data->info; - if (info->access_delay) { + if (info->access_delay) data->access_time = ktime_get(); - } else if (info->write_delay && write_op) { + else if (info->write_delay && write_op) data->write_time = ktime_get(); - } } int pmbus_set_page(struct i2c_client *client, int page, int phase) @@ -292,7 +290,6 @@ int pmbus_write_word_data(struct i2c_client *client, int page, u8 reg, } EXPORT_SYMBOL_NS_GPL(pmbus_write_word_data, "PMBUS"); - static int pmbus_write_virt_reg(struct i2c_client *client, int page, int reg, u16 word) { @@ -381,14 +378,14 @@ int pmbus_update_fan(struct i2c_client *client, int page, int id, u8 to; from = _pmbus_read_byte_data(client, page, - pmbus_fan_config_registers[id]); + pmbus_fan_config_registers[id]); if (from < 0) return from; to = (from & ~mask) | (config & mask); if (to != from) { rv = _pmbus_write_byte_data(client, page, - pmbus_fan_config_registers[id], to); + pmbus_fan_config_registers[id], to); if (rv < 0) return rv; } @@ -563,7 +560,7 @@ static int pmbus_get_fan_rate(struct i2c_client *client, int page, int id, } config = _pmbus_read_byte_data(client, page, - pmbus_fan_config_registers[id]); + pmbus_fan_config_registers[id]); if (config < 0) return config; @@ -788,7 +785,7 @@ static s64 pmbus_reg2data_linear(struct pmbus_data *data, if (sensor->class == PSC_VOLTAGE_OUT) { /* LINEAR16 */ exponent = data->exponent[sensor->page]; - mantissa = (u16) sensor->data; + mantissa = (u16)sensor->data; } else { /* LINEAR11 */ exponent = ((s16)sensor->data) >> 11; mantissa = ((s16)((sensor->data & 0x7ff) << 5)) >> 5; @@ -1173,7 +1170,6 @@ static int pmbus_get_boolean(struct i2c_client *client, struct pmbus_boolean *b, } else { pmbus_clear_fault_page(client, page); } - } if (s1 && s2) { s64 v1, v2; @@ -1500,8 +1496,7 @@ struct pmbus_limit_attr { u16 reg; /* Limit register */ u16 sbit; /* Alarm attribute status bit */ bool update; /* True if register needs updates */ - bool low; /* True if low limit; for limits with compare - functions only */ + bool low; /* True if low limit; for limits with compare functions only */ const char *attr; /* Attribute name */ const char *alarm; /* Alarm attribute name */ }; @@ -2212,8 +2207,8 @@ static const u32 pmbus_fan_status_flags[] = { /* Precondition: FAN_CONFIG_x_y and FAN_COMMAND_x must exist for the fan ID */ static int pmbus_add_fan_ctrl(struct i2c_client *client, - struct pmbus_data *data, int index, int page, int id, - u8 config) + struct pmbus_data *data, int index, int page, + int id, u8 config) { struct pmbus_sensor *sensor; @@ -2225,7 +2220,7 @@ static int pmbus_add_fan_ctrl(struct i2c_client *client, return -ENOMEM; if (!((data->info->func[page] & PMBUS_HAVE_PWM12) || - (data->info->func[page] & PMBUS_HAVE_PWM34))) + (data->info->func[page] & PMBUS_HAVE_PWM34))) return 0; sensor = pmbus_add_sensor(data, "pwm", NULL, index, page, @@ -2935,7 +2930,7 @@ static void pmbus_notify(struct pmbus_data *data, int page, int reg, int flags) } static int _pmbus_get_flags(struct pmbus_data *data, u8 page, unsigned int *flags, - unsigned int *event, bool notify) + unsigned int *event, bool notify) { int i, status; const struct pmbus_status_category *cat; @@ -2964,7 +2959,6 @@ static int _pmbus_get_flags(struct pmbus_data *data, u8 page, unsigned int *flag if (notify && status) pmbus_notify(data, page, cat->reg, status); - } /* @@ -3015,7 +3009,6 @@ static int _pmbus_get_flags(struct pmbus_data *data, u8 page, unsigned int *flag *event |= REGULATOR_EVENT_OVER_TEMP_WARN; } - return 0; } @@ -3228,7 +3221,7 @@ static int pmbus_regulator_set_voltage(struct regulator_dev *rdev, int min_uv, } static int pmbus_regulator_list_voltage(struct regulator_dev *rdev, - unsigned int selector) + unsigned int selector) { struct device *dev = rdev_get_dev(rdev); struct i2c_client *client = to_i2c_client(dev->parent); @@ -3363,8 +3356,8 @@ static irqreturn_t pmbus_fault_handler(int irq, void *pdata) { struct pmbus_data *data = pdata; struct i2c_client *client = to_i2c_client(data->dev); - int i, status, event; + mutex_lock(&data->update_lock); for (i = 0; i < data->info->pages; i++) { _pmbus_get_flags(data, i, &status, &event, true); @@ -3472,7 +3465,7 @@ DEFINE_DEBUGFS_ATTRIBUTE(pmbus_debugfs_ops_status, pmbus_debugfs_get_status, NULL, "0x%04llx\n"); static ssize_t pmbus_debugfs_mfr_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) + size_t count, loff_t *ppos) { int rc; struct pmbus_debugfs_entry *entry = file->private_data; @@ -3800,8 +3793,8 @@ int pmbus_do_probe(struct i2c_client *client, struct pmbus_driver_info *info) data->groups[0] = &data->group; memcpy(data->groups + 1, info->groups, sizeof(void *) * groups_num); - data->hwmon_dev = devm_hwmon_device_register_with_groups(dev, - name, data, data->groups); + data->hwmon_dev = devm_hwmon_device_register_with_groups(dev, name, + data, data->groups); if (IS_ERR(data->hwmon_dev)) { dev_err(dev, "Failed to register hwmon device\n"); return PTR_ERR(data->hwmon_dev); From patchwork Sun Feb 9 01:26:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 13966572 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 848C83208 for ; Sun, 9 Feb 2025 01:36:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739064981; cv=none; b=DNRUvWWHKYPPeK5vOYiQ/vt74LrnsgO/8l4t6iPuI2+ZKD1rRa1Guv1Jo/FqBYqGkBz1iR07EANsObpsQWrvkXiy0fwcDfDa1iv//HR7lIXE83BI+Sn/xY6crEi+sdaW01GGCjKrkeyNIump45kl8E5pKC+hMqPEbfCVYwbUSrk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739064981; c=relaxed/simple; bh=0gtCcaKoR51/0SKKOO3Bx+lIzEFxBjM6jgf6uVskXjQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iXt8aLZQy3o+q3Rym+j1Fje/yhd2f9gO75Apj2K/UiPrLtT5vp8QKXxXy0UVxVcwnNC/EM9mABUA1nqElsltTbSK6n76YZTkX7c5qqQZ3XAhqQPaBEyedxPdzLR4lXkoSGE66491bUXNf166gIgj09uxzFAJsCGtVw+O1FXKjOc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MuDBC1Yk; arc=none smtp.client-ip=209.85.216.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MuDBC1Yk" Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-2ee9a780de4so5113581a91.3 for ; Sat, 08 Feb 2025 17:36:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739064978; x=1739669778; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=auSut3l/BfrCkvqBADZ+CIIp70IVDk1JOPfDRR8nfyg=; b=MuDBC1Ykbq3ObxvdYWg8WueaCu7vpXfzYVpSF+qfU6rV9nvmbsM4U9cEPmIHXFETEq t0dPCio0+hER8aYIcEgpWDU1r1QNdTSKjBbhRhgtPwfdAcyKFLKBTEHN4y8uZKNhfWrG Cm3rrlTmZ/NcCqIUBT3UIAkhjDfL9pb/9CuwXN+wFP8EKNGwK7BGasnvpuG4N1eWo24R ASyv40AruhaloGE6HazRhbjUCgafTeYI4p9TDVPcGh3erC4uY6BjkKN4XuWKU5Yn7qeH 1piqwH+daN0aaOJYkey5Uz3scuvYepaxKBaBJjHfCJzv/C8IQd0dJ+7IG0tmSpQct7Xz bXoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739064978; x=1739669778; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=auSut3l/BfrCkvqBADZ+CIIp70IVDk1JOPfDRR8nfyg=; b=N2OHnYmoiJLMmf5QO+qK3zVRlemmkf5pLSTlgjVNlIbEV9uvECQlFUg3gH2m+2b+CC T+DDkioQf6HMVa4zV/hs/KyWT/gaVMK3uaiiJIxuAYZ7QNJqpf5p8pW+NinulX28Ci2R 0hjtGqwjz5dZ/e2lIJTA+WL71oHBNlT0f2teraqpVfPKeslMRQwR69ZQ/SdO98YHUrlC O/VY9xp0ZIQxsjtRG1Kic4bLdBUB1TD8jWELjEfG9zQIQZfevIX1McaWWCOiP3GUv2vC EhOCPKrwJ34vcYp6Tfj9oezbBzqEKkiG0ijvUOAUfQQ1PL14B6ZJzh4NqB2WxyzO6n1Y fXBQ== X-Gm-Message-State: AOJu0Yz0u5Vao7GPtzMQFmmxTXexsTohbbpaWwZ3NKs4INY/xXyAGHJ2 MbbsybWFW9XtaNMcqGsUZDSniAOg6/xOpCpM/O2SVK08GNArrxyScwVi/g== X-Gm-Gg: ASbGncvZIsEJOPlJgOGTjJqoBYIaO5VGhaRkrgoy5qRRlwZRzM0EvU3XsfAuuoe3TOq TwnMwYi41piBH3c8b7nJ3TZwckhtfxvriPjTPgRa6p+Xkl5ErBI6RnhDJsD70NH6qc8LNWpkGwG JyNzJpSZEiw8mkDMIUWwOVgk/yerfBykHRuZSeBuqKpZXmjiJt5ZS1mz2z55JoMmAoTXWROucVc TlpJmjAglwBdZ8ppkvfM0pTHpm29TZeqrna9Wm2JlrCWPXRD1p83zBsdW6tWJJX+6eZEqelYcAH C5FfYFLegoMZTe5kEij3hO8vTEsB X-Google-Smtp-Source: AGHT+IEqmlfMWmtxHY47tyQj8ntVTBsIFppOZ+jn5eLDIKAsK8D/cr5yNeP5BqWqJMrVQn7aW519gg== X-Received: by 2002:a05:6a00:4f8c:b0:728:b601:86df with SMTP id d2e1a72fcca58-7305d450c49mr12690121b3a.10.1739064977850; Sat, 08 Feb 2025 17:36:17 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73048ae7e6dsm5160366b3a.70.2025.02.08.17.36.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2025 17:36:17 -0800 (PST) Sender: Guenter Roeck From: Guenter Roeck To: linux-hwmon@vger.kernel.org Cc: Wolfram Sang , Guenter Roeck Subject: [PATCH 2/8] hwmon: (pmbus/core) Use local debugfs variable in debugfs initialization Date: Sat, 8 Feb 2025 17:26:11 -0800 Message-ID: <20250209012617.944499-3-linux@roeck-us.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250209012617.944499-1-linux@roeck-us.net> References: <20250209012617.944499-1-linux@roeck-us.net> Precedence: bulk X-Mailing-List: linux-hwmon@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 In preparation for the next patch in the series, use a local debugfs variable during debugfs initialization. No functional change intended. Signed-off-by: Guenter Roeck Reviewed-by: Tzung-Bi Shih --- drivers/hwmon/pmbus/pmbus_core.c | 49 ++++++++++++++++---------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c index e38d69d723c0..472375b62379 100644 --- a/drivers/hwmon/pmbus/pmbus_core.c +++ b/drivers/hwmon/pmbus/pmbus_core.c @@ -3507,6 +3507,7 @@ static void pmbus_remove_debugfs(void *data) static int pmbus_init_debugfs(struct i2c_client *client, struct pmbus_data *data) { + struct dentry *debugfs; int i, idx = 0; char name[PMBUS_NAME_SIZE]; struct pmbus_debugfs_entry *entries; @@ -3518,12 +3519,12 @@ static int pmbus_init_debugfs(struct i2c_client *client, * Create the debugfs directory for this device. Use the hwmon device * name to avoid conflicts (hwmon numbers are globally unique). */ - data->debugfs = debugfs_create_dir(dev_name(data->hwmon_dev), - pmbus_debugfs_dir); - if (IS_ERR_OR_NULL(data->debugfs)) { - data->debugfs = NULL; + debugfs = debugfs_create_dir(dev_name(data->hwmon_dev), + pmbus_debugfs_dir); + if (IS_ERR_OR_NULL(debugfs)) return -ENODEV; - } + + data->debugfs = debugfs; /* * Allocate the max possible entries we need. @@ -3548,7 +3549,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].client = client; entries[idx].page = 0; entries[idx].reg = PMBUS_REVISION; - debugfs_create_file("revision", 0444, data->debugfs, + debugfs_create_file("revision", 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops); } @@ -3557,7 +3558,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].client = client; entries[idx].page = 0; entries[idx].reg = PMBUS_MFR_ID; - debugfs_create_file("mfr_id", 0444, data->debugfs, + debugfs_create_file("mfr_id", 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops_mfr); } @@ -3566,7 +3567,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].client = client; entries[idx].page = 0; entries[idx].reg = PMBUS_MFR_MODEL; - debugfs_create_file("mfr_model", 0444, data->debugfs, + debugfs_create_file("mfr_model", 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops_mfr); } @@ -3575,7 +3576,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].client = client; entries[idx].page = 0; entries[idx].reg = PMBUS_MFR_REVISION; - debugfs_create_file("mfr_revision", 0444, data->debugfs, + debugfs_create_file("mfr_revision", 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops_mfr); } @@ -3584,7 +3585,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].client = client; entries[idx].page = 0; entries[idx].reg = PMBUS_MFR_LOCATION; - debugfs_create_file("mfr_location", 0444, data->debugfs, + debugfs_create_file("mfr_location", 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops_mfr); } @@ -3593,7 +3594,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].client = client; entries[idx].page = 0; entries[idx].reg = PMBUS_MFR_DATE; - debugfs_create_file("mfr_date", 0444, data->debugfs, + debugfs_create_file("mfr_date", 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops_mfr); } @@ -3602,7 +3603,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].client = client; entries[idx].page = 0; entries[idx].reg = PMBUS_MFR_SERIAL; - debugfs_create_file("mfr_serial", 0444, data->debugfs, + debugfs_create_file("mfr_serial", 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops_mfr); } @@ -3615,7 +3616,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].client = client; entries[idx].page = i; scnprintf(name, PMBUS_NAME_SIZE, "status%d", i); - debugfs_create_file(name, 0444, data->debugfs, + debugfs_create_file(name, 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops_status); } @@ -3625,7 +3626,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].page = i; entries[idx].reg = PMBUS_STATUS_VOUT; scnprintf(name, PMBUS_NAME_SIZE, "status%d_vout", i); - debugfs_create_file(name, 0444, data->debugfs, + debugfs_create_file(name, 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops); } @@ -3635,7 +3636,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].page = i; entries[idx].reg = PMBUS_STATUS_IOUT; scnprintf(name, PMBUS_NAME_SIZE, "status%d_iout", i); - debugfs_create_file(name, 0444, data->debugfs, + debugfs_create_file(name, 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops); } @@ -3645,7 +3646,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].page = i; entries[idx].reg = PMBUS_STATUS_INPUT; scnprintf(name, PMBUS_NAME_SIZE, "status%d_input", i); - debugfs_create_file(name, 0444, data->debugfs, + debugfs_create_file(name, 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops); } @@ -3655,7 +3656,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].page = i; entries[idx].reg = PMBUS_STATUS_TEMPERATURE; scnprintf(name, PMBUS_NAME_SIZE, "status%d_temp", i); - debugfs_create_file(name, 0444, data->debugfs, + debugfs_create_file(name, 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops); } @@ -3665,7 +3666,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].page = i; entries[idx].reg = PMBUS_STATUS_CML; scnprintf(name, PMBUS_NAME_SIZE, "status%d_cml", i); - debugfs_create_file(name, 0444, data->debugfs, + debugfs_create_file(name, 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops); } @@ -3675,7 +3676,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].page = i; entries[idx].reg = PMBUS_STATUS_OTHER; scnprintf(name, PMBUS_NAME_SIZE, "status%d_other", i); - debugfs_create_file(name, 0444, data->debugfs, + debugfs_create_file(name, 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops); } @@ -3686,7 +3687,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].page = i; entries[idx].reg = PMBUS_STATUS_MFR_SPECIFIC; scnprintf(name, PMBUS_NAME_SIZE, "status%d_mfr", i); - debugfs_create_file(name, 0444, data->debugfs, + debugfs_create_file(name, 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops); } @@ -3696,7 +3697,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].page = i; entries[idx].reg = PMBUS_STATUS_FAN_12; scnprintf(name, PMBUS_NAME_SIZE, "status%d_fan12", i); - debugfs_create_file(name, 0444, data->debugfs, + debugfs_create_file(name, 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops); } @@ -3706,14 +3707,14 @@ static int pmbus_init_debugfs(struct i2c_client *client, entries[idx].page = i; entries[idx].reg = PMBUS_STATUS_FAN_34; scnprintf(name, PMBUS_NAME_SIZE, "status%d_fan34", i); - debugfs_create_file(name, 0444, data->debugfs, + debugfs_create_file(name, 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops); } } - return devm_add_action_or_reset(data->dev, - pmbus_remove_debugfs, data->debugfs); + return devm_add_action_or_reset(data->dev, pmbus_remove_debugfs, + debugfs); } #else static int pmbus_init_debugfs(struct i2c_client *client, From patchwork Sun Feb 9 01:26:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 13966573 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1F66624338C for ; Sun, 9 Feb 2025 01:36:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739064982; cv=none; b=nGHx0zRXCvTi6Pkfn+PhSuv7LaPtAuWA63XFRda+JuE+DGb35ZsJCykGzO1CwwctbjJ0DryETJf0crtPC6AJF5LL8ytOeSnJIQc1OAwQ3YMggn/z5C+gxWI3misLBjsLlsg+y68J+YSLpBLfC1SXTS4JZZ374/oeZgNUVNkDv3k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739064982; c=relaxed/simple; bh=DFnVUrB8d3zUK37YUx5IVXLhWwxh0NYo1iLQ8MxH1Ls=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qwDLrA2n80dnZBJYiCFOr6j7EyLaYffLZSbei7ExswHgPJyTT7x7HKBphEYk7At1P+X0Znq1JjKOF3DEzGbKfZCuh+SZ/BaCJC1S15PukU4tVrHVsy8ApJH+FJ9NwuzU4uVcPJ11mqzW++8XDFZMvgZ7y8dkJXkmaHz4RLEER6o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=lYcyoVFU; arc=none smtp.client-ip=209.85.216.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lYcyoVFU" Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-2f42992f608so4967253a91.0 for ; Sat, 08 Feb 2025 17:36:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739064979; x=1739669779; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=bxVWfoy2Kv/+WAa9e9cRlhK4WZmcNRGacdf+NmCv1+Q=; b=lYcyoVFUvV/ew5KMjJcTm4xnWwSNLxazRA1EP9aiFqLePUjSFA/znGpIQN47fNgwHr CTCbhHeKeR3TT/e+pCJMtl8rYi3Mmli/YRqiEKg7cGMsJZXZ3JfDXeJpWXbpKWIDF/kJ ZGsMAK85sXP58LZfkIyDMonU0KImxUNk3wz7gtWaKEw5PTjunpsaRNgqti0wQWbuG2FD 8Q26aRtTe64gAY/dejJvf1siVJywLxOqE55DvAlPGJAW9Ln8vP/QaZSjVvTlLNSW7Slp aiUmvKaLvPYJQ4l2wK9RjpVY5EOrtf2EQbfSeLnhHWHMRdSk6ndWuE+2AzYPf5+JlUdZ CjEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739064979; x=1739669779; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=bxVWfoy2Kv/+WAa9e9cRlhK4WZmcNRGacdf+NmCv1+Q=; b=t2psRczv73s4DHkulNsbXZUypuXRNpGcdj8LnfPEDZSqZNli1kV6vdrQIIdpcLZzUR 0AtmrhIKCfGCw43FpSDd7nxGE+T3kUlxZqau8eGAHE/4A4p/DUi4fVOMoPmsaff/H3ZO c+2R9uMcQpF9DprJ4zkf7JftppUND80Lc6mlTwDlt/8uj8qxp/ohtkOR/DtoJGA5d5BQ m5fnnRP86RqsUfrnxLnZ/XaYp0ZQDEz6GZGN2300UIFaGMLPXO7dYb70aVWah0IyCmfX iJctI1tUYZTOzvnKqNWj+Sfi6syG160LYeZV6+cMRI/UFlAjN6aUAvMLek0sfRaPkSyN fxBQ== X-Gm-Message-State: AOJu0YyLhkk0VSbQf/Tgcu/a3IFsZLa2LiQz0YCR05gZDuOtRaXRAFa+ GHEh4haNNB83ZRMwJXBp6WNGukCrWH91vWKjD7yWVNN/mKNi5V5PKPSHbQ== X-Gm-Gg: ASbGncufJ+W1xvups1gGITpesM2SdKj2o9jEIEWsibmanxJr3yZHlpyGTp35TFk85Sj 090NvvsKfaRcFYtag1CPFNaha4E8Gbt2ziBb3hBESKZ1gcs3JVx/dwQppgw7lRlRqcdq2BSswkC vakmqQSBAugTZhb8k1GmC9N3UtmiwjFiafs3vW5vYFSt0nYrzFDJK1Y/9i/cO8o8r6DZuhZdJif HrQQdyouoiYzWXAytJTW+7/YQIW8KXjVy3MXrAe8QEWEAsB/1WVJBGhaCMTOg6t9Byd5T+GnX/z BeeynBcdfO+q8ZpZs5lUeO2t9KZk X-Google-Smtp-Source: AGHT+IHFd1R5pQU8OEJ44+JBpvAfpRj+Gr+v8SJkUSQ3nXbzWd3+l+0LH4Ap4WW3M1VK57VtfovVHw== X-Received: by 2002:a05:6a00:1393:b0:730:888a:252a with SMTP id d2e1a72fcca58-730888a2799mr421644b3a.15.1739064979497; Sat, 08 Feb 2025 17:36:19 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73048e20400sm5110756b3a.168.2025.02.08.17.36.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2025 17:36:18 -0800 (PST) Sender: Guenter Roeck From: Guenter Roeck To: linux-hwmon@vger.kernel.org Cc: Wolfram Sang , Guenter Roeck Subject: [PATCH 3/8] hwmon: (pmbus/core) Use the new i2c_client debugfs directory Date: Sat, 8 Feb 2025 17:26:12 -0800 Message-ID: <20250209012617.944499-4-linux@roeck-us.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250209012617.944499-1-linux@roeck-us.net> References: <20250209012617.944499-1-linux@roeck-us.net> Precedence: bulk X-Mailing-List: linux-hwmon@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The I2C core now manages a debugfs directory per I2C client. PMBus has its own debugfs hierarchy. Link the two, so a user will be pointed to the I2C domain from the PMBus domain. Suggested-by: Wolfram Sang Signed-off-by: Guenter Roeck Reviewed-by: Tzung-Bi Shih --- drivers/hwmon/pmbus/pmbus_core.c | 63 +++++++++++++++++++++----------- 1 file changed, 41 insertions(+), 22 deletions(-) diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c index 472375b62379..be794ba993b8 100644 --- a/drivers/hwmon/pmbus/pmbus_core.c +++ b/drivers/hwmon/pmbus/pmbus_core.c @@ -8,6 +8,7 @@ #include #include +#include #include #include #include @@ -99,7 +100,6 @@ struct pmbus_data { int num_attributes; struct attribute_group group; const struct attribute_group **groups; - struct dentry *debugfs; /* debugfs device directory */ struct pmbus_sensor *sensors; @@ -3497,34 +3497,49 @@ static const struct file_operations pmbus_debugfs_ops_mfr = { .open = simple_open, }; -static void pmbus_remove_debugfs(void *data) +static void pmbus_remove_symlink(void *symlink) { - struct dentry *entry = data; - - debugfs_remove_recursive(entry); + debugfs_remove(symlink); } static int pmbus_init_debugfs(struct i2c_client *client, struct pmbus_data *data) { - struct dentry *debugfs; - int i, idx = 0; - char name[PMBUS_NAME_SIZE]; + struct dentry *symlink_d, *debugfs = client->debugfs; struct pmbus_debugfs_entry *entries; + const char *pathname, *symlink; + char name[PMBUS_NAME_SIZE]; + int i, idx = 0; - if (!pmbus_debugfs_dir) + /* + * client->debugfs may be NULL or an ERR_PTR(). dentry_path_raw() + * does not check if its parameters are valid, so validate + * client->debugfs before using it. + */ + if (!pmbus_debugfs_dir || IS_ERR_OR_NULL(debugfs)) return -ENODEV; /* - * Create the debugfs directory for this device. Use the hwmon device - * name to avoid conflicts (hwmon numbers are globally unique). + * Backwards compatibility: Create symlink from /pmbus/ + * to i2c debugfs directory. */ - debugfs = debugfs_create_dir(dev_name(data->hwmon_dev), - pmbus_debugfs_dir); - if (IS_ERR_OR_NULL(debugfs)) - return -ENODEV; + pathname = dentry_path_raw(debugfs, name, sizeof(name)); + if (IS_ERR(pathname)) + return PTR_ERR(pathname); - data->debugfs = debugfs; + /* + * The path returned by dentry_path_raw() starts with '/'. Prepend it + * with ".." to get the symlink relative to the pmbus root directory. + */ + symlink = kasprintf(GFP_KERNEL, "..%s", pathname); + if (!symlink) + return -ENOMEM; + + symlink_d = debugfs_create_symlink(dev_name(data->hwmon_dev), + pmbus_debugfs_dir, symlink); + kfree(symlink); + + devm_add_action_or_reset(data->dev, pmbus_remove_symlink, symlink_d); /* * Allocate the max possible entries we need. @@ -3712,9 +3727,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, &pmbus_debugfs_ops); } } - - return devm_add_action_or_reset(data->dev, pmbus_remove_debugfs, - debugfs); + return 0; } #else static int pmbus_init_debugfs(struct i2c_client *client, @@ -3819,9 +3832,15 @@ EXPORT_SYMBOL_NS_GPL(pmbus_do_probe, "PMBUS"); struct dentry *pmbus_get_debugfs_dir(struct i2c_client *client) { - struct pmbus_data *data = i2c_get_clientdata(client); - - return data->debugfs; + /* + * client->debugfs may be an ERR_PTR(). Returning that to + * the calling code would potentially require additional + * complexity in the calling code and otherwise add no + * value. Return NULL in that case. + */ + if (IS_ERR_OR_NULL(client->debugfs)) + return NULL; + return client->debugfs; } EXPORT_SYMBOL_NS_GPL(pmbus_get_debugfs_dir, "PMBUS"); From patchwork Sun Feb 9 01:26:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 13966574 Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F21A24339B for ; Sun, 9 Feb 2025 01:36:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739064984; cv=none; b=BbTFk2V2gAy+INO9gvYZT+aRd0cacdJ4uLdQzPKIpj56a6Gb+sY6bzFLVStW4V62kaC5Jx7wVrc071/xLaCaqfKSP5xeIh+8nBQKmYP4ipDCQNz9MFAs72MrMD/3hb68biXiJpfBZHu1c0P+AQux+dBxoK8/ZUQU9zee03I79Dc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739064984; c=relaxed/simple; bh=x9IShF0u3RKD7RVCaXDtOa4K0qUtAQiwEelurQPR8L0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hBpIs7F3nKJ3tq/lPNdbjn7joQdi523u2AVY8iuknRuo+Xia2As6VeLXw6e6zPXc9ozwptkNxJDUqC25jc7F4ufSgDg6bbJj0qWDiYNEr2jVtOfbbFNhJVB90dWKjTM2geQgUS6EUCYGozEgmAY2rJkSd0GOSHxtyHOrXG7XGzk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=O0McLn38; arc=none smtp.client-ip=209.85.216.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="O0McLn38" Received: by mail-pj1-f52.google.com with SMTP id 98e67ed59e1d1-2f9bac7699aso4773547a91.1 for ; Sat, 08 Feb 2025 17:36:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739064981; x=1739669781; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=puMIw9r4WkpGcXmJkCRd6pPHDjgprgL124aP3C3tIwM=; b=O0McLn38qWZeT7QI4ozsI8CAobU7rr2Wda49iQuFSj3nJSTYflULeeaPH1XLqlKTv8 iulbGHveiqWyYh+S3EzDyAXG86zvzeajFXWJXzb5KtiEZC1WmEnn5S5enBCEbNNlmLjP nM6PPfgXwyMjEJT+DCSFdlewEkLn0Y4MdC+oiiH4XXsA1wVb8ddw2JkS8DaWpVKrWTnP CT9mIgBriqCkSC/X5OUXm5l8evVOlJxENS0oNABwMi1pCqdbS0mh5UQNp/12+s4+OYX1 Pz9MYxsNa+qPXxFJLtdU7crm5lMfj7XZlMYP4B5ndcbNN/seWBPH8fo1r6Uuv/UtxONN TzZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739064981; x=1739669781; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=puMIw9r4WkpGcXmJkCRd6pPHDjgprgL124aP3C3tIwM=; b=rUkr8f2p4c9YWwctdsTgVAxFLdfmeC7EkP5FV06/ethS/C3S0stuFFmRtrtOe/ilGG 3JCXBlj5QWMwlA7M9dUMqj3hg8ZK4JofiG9od8t3+JyCxsx1s8p8339+zawrQe3bJirb bgFrOtlt+eAobCvqCGJKkb4Pj2JGBrJXWIzrv+2QHod756zCY2OxyHRO3uz4b8WCKF7U B1sSQgSjN3I0GT3URODicn51W9+5AVB7wjotUpqULyB2r2g5HdRjsOn7kHoZ12a5HdsA aD3lZ+C0o+fBFD9b4PfIlyGmzmYAH63MRNPm/sEQi+Jz/Gw1TNmEmbMazurcGr5ljh4/ Xi9w== X-Gm-Message-State: AOJu0Yx71Yl7DJmG4MuBiuKF7YWIH0Dz2uFIxvRJtkMIdrKVAF6O/iDW c7/b5RWPv3+/CPmbBfGU6SXn7o0IBoRQzVYWeqVnaj/hRWmNPobDHvlQSw== X-Gm-Gg: ASbGncvcG1mYbml41HuK7jAcSBa7XyaHh+bfeed0/Cv8mMbkDpLLFA4DwgM82aMS0Fi Z8InUfuly41quLnaRpCe4cCkaKpnt8azyetqPPAQFuhdIlbFMZxeK9bvHKNVTsSV8FAtA7jelyj cZryUc9NO/kVlkRnxxKWYy9Wu/TZr7lX4fNHetWptSvA7yzfdd08FZpHFret+NThO++CbtLlCJE wjIpiyoC0NkjLGyt3p02pY9p72z1hX8q1nAC2Zp4Kz73ETgoSgdoTgz6L98UkNlA2/+tfM3IiA0 ZW9ZmEB8CHIO3ECxnUxxdGGW8I7W X-Google-Smtp-Source: AGHT+IEbd+oanaUuAPfIQcFJICiViDU2qP/+iSiyBmXIKRIwMvZeht98TNTUSTqBnzncIF8q3V1O0g== X-Received: by 2002:a05:6a00:9286:b0:725:ea30:ab15 with SMTP id d2e1a72fcca58-7305d4171f6mr12527551b3a.1.1739064981548; Sat, 08 Feb 2025 17:36:21 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7307d1e80e5sm1110405b3a.15.2025.02.08.17.36.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2025 17:36:20 -0800 (PST) Sender: Guenter Roeck From: Guenter Roeck To: linux-hwmon@vger.kernel.org Cc: Wolfram Sang , Guenter Roeck Subject: [PATCH 4/8] hwmon: (pmbus/core) Make debugfs code unconditional Date: Sat, 8 Feb 2025 17:26:13 -0800 Message-ID: <20250209012617.944499-5-linux@roeck-us.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250209012617.944499-1-linux@roeck-us.net> References: <20250209012617.944499-1-linux@roeck-us.net> Precedence: bulk X-Mailing-List: linux-hwmon@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Drop contitionals around debugfs code to compile it unconditionally. In practice it will be optimized away by the compiler if CONFIG_DEBUG_FS is not enabled, so the code size is not affected by this change. Also silently ignore errors if debugfs initialization fails. Signed-off-by: Guenter Roeck Reviewed-by: Tzung-Bi Shih --- drivers/hwmon/pmbus/pmbus_core.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c index be794ba993b8..39cdcbb96215 100644 --- a/drivers/hwmon/pmbus/pmbus_core.c +++ b/drivers/hwmon/pmbus/pmbus_core.c @@ -3421,7 +3421,6 @@ static int pmbus_irq_setup(struct i2c_client *client, struct pmbus_data *data) static struct dentry *pmbus_debugfs_dir; /* pmbus debugfs directory */ -#if IS_ENABLED(CONFIG_DEBUG_FS) static int pmbus_debugfs_get(void *data, u64 *val) { int rc; @@ -3502,8 +3501,8 @@ static void pmbus_remove_symlink(void *symlink) debugfs_remove(symlink); } -static int pmbus_init_debugfs(struct i2c_client *client, - struct pmbus_data *data) +static void pmbus_init_debugfs(struct i2c_client *client, + struct pmbus_data *data) { struct dentry *symlink_d, *debugfs = client->debugfs; struct pmbus_debugfs_entry *entries; @@ -3517,7 +3516,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, * client->debugfs before using it. */ if (!pmbus_debugfs_dir || IS_ERR_OR_NULL(debugfs)) - return -ENODEV; + return; /* * Backwards compatibility: Create symlink from /pmbus/ @@ -3525,7 +3524,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, */ pathname = dentry_path_raw(debugfs, name, sizeof(name)); if (IS_ERR(pathname)) - return PTR_ERR(pathname); + return; /* * The path returned by dentry_path_raw() starts with '/'. Prepend it @@ -3533,7 +3532,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, */ symlink = kasprintf(GFP_KERNEL, "..%s", pathname); if (!symlink) - return -ENOMEM; + return; symlink_d = debugfs_create_symlink(dev_name(data->hwmon_dev), pmbus_debugfs_dir, symlink); @@ -3550,7 +3549,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, 7 + data->info->pages * 10, sizeof(*entries), GFP_KERNEL); if (!entries) - return -ENOMEM; + return; /* * Add device-specific entries. @@ -3727,15 +3726,7 @@ static int pmbus_init_debugfs(struct i2c_client *client, &pmbus_debugfs_ops); } } - return 0; } -#else -static int pmbus_init_debugfs(struct i2c_client *client, - struct pmbus_data *data) -{ - return 0; -} -#endif /* IS_ENABLED(CONFIG_DEBUG_FS) */ int pmbus_do_probe(struct i2c_client *client, struct pmbus_driver_info *info) { @@ -3822,9 +3813,7 @@ int pmbus_do_probe(struct i2c_client *client, struct pmbus_driver_info *info) if (ret) return ret; - ret = pmbus_init_debugfs(client, data); - if (ret) - dev_warn(dev, "Failed to register debugfs\n"); + pmbus_init_debugfs(client, data); return 0; } From patchwork Sun Feb 9 01:26:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 13966575 Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 00AEE24339B for ; Sun, 9 Feb 2025 01:36:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739064986; cv=none; b=DQrhOTBojW2s9hE7EYPF45lLjbvJ8yUwy+sukhJk92f/1lpo5/6werxe5wmnfLmPE4tU1py8XxJbYAYpNkb5fLZgMarl3W7yNeZOCwsFaclen9bP2WV3tgZdx8ltJ0WB1ODFUr80z5gKU74ABbYjN6BzWeSEFkHxQP9H/Vhnex4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739064986; c=relaxed/simple; bh=PCIQ4g/SL7oqYMqPYtr2SBAe2+SJcg7+3QCRBjDatu0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cosjuCVUbWkVrvqjBIoI3chlndtH0BGwE/wBBQ+btaKA1O2DftmACNHdz7w2d3hYvUBQ4jJLjpiq4/ks7yHRQj5GoaeC4YSvUqlxKlAlqo3zt2zBllH6PZy7E2vBZYAhMHaHPId/o6uAc1DrMlxAQwfFOUaowcovJKos8SHs/1Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=lGSw0H7c; arc=none smtp.client-ip=209.85.216.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lGSw0H7c" Received: by mail-pj1-f52.google.com with SMTP id 98e67ed59e1d1-2f9f6a2fa8dso4570779a91.1 for ; Sat, 08 Feb 2025 17:36:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739064983; x=1739669783; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=vxeo6wjfBjZDxxwkZouvZBJMcSOB01vFgGKBOtIKOrE=; b=lGSw0H7cgghdpynTsxMFWJvVAmE0iUl7laN8uUqJlAx25N2AK4hvhV7dZDySrAFXyd 0jvu8rjBVhpUdudVO5CWefssm/SvIM53ak5j6syaueZmGwg1MiAPD+x5DIbzyERTHIz4 YDNzsqAb28swvRClDGiu0hZP0rH9qoK+j+9/HuR+JEc2kXOdxuy3fzlwA6NSjSlw+ZiB /+u2ssrg4XQORFO2PAPN1ew95SMk552LMbA0XAvbGQRaODZXq1mOI/D85kVxXPkGjjEw 8UzZin2H4M80etnVCcfCOjyCMFvHuMqFCx9tT0PDRcu6QKMoP4hftxltXT8BirgTRP4v D/Gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739064983; x=1739669783; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=vxeo6wjfBjZDxxwkZouvZBJMcSOB01vFgGKBOtIKOrE=; b=NxvbdhPp3QWovFGDEzdc5O8cwgy5VfrgGQXEVXrylOfXTUC47+aiSIYrs0zd04bdv0 IjHUsxzf7h+ngKPF6QuZvvKBqzI7xmMUp93nW/yZZrOJtPaFIIv0F5sL8lokh81R4iHT JKulY7ZZhm6FwDv8jaqknJxdb/gTTi3f8w3R9cHLmM+h12m6nTsEfgrSR4e4t5I/0esC jox40qREBwMUpSq0OUTaRFjWIZdGzA3/bbPe2UyNEhqUINR5ZyE1co6IMByjBGjc8Xst hrYbR+505qm1iNkorH6M6Ne9fCW0tayxHQ1imQTI0ZcyBnW8pzjJDZFJpVFyNQtnSq1u S+ZQ== X-Gm-Message-State: AOJu0Yz3D+NsjBq9O8IO2jAwUUAQ2OVLC0S8mMIPaO5OpsGH8bz/poLp GCysVNh/ITlSxf1k4ra4EvJm6g/k7RWu5tUv5v9HIkydMkQ8fJwZHs1bzA== X-Gm-Gg: ASbGncuZ4nyiiWAlsltHG1FB1uiXKYjoXCAxwrhNJwD614feq03Rwt+a6aouTfjsoh0 UOYFPcdE21o14jc8H7Slh9OVIcyh0pwOGbmKYzRV3cA6fP9vTflGTKoWvCmIAKHHIhmv++JmGDC b0uNYIsGNXbAGaqupbwBSKkQekCl1sunEnjDcdZPimuj3oHP5mUzP+3xjQJrmoiruUq3mqUQ9+Q Ql8yTJ9c+28qnlGJS7YiA/7/nB84wmF1YJpKFCE6jB7LQ+JZQhsBUaQg82G/pgTH2Oa1pRqpgg/ Tp0E3Ww9tRRyB/lMdxNlFC7kipiW X-Google-Smtp-Source: AGHT+IHgQYDZ+5vhdetjIxY1GipLHbpOLk1mI0y8ML/ww7Uo9urp9VhrVuyxYiiK1isPmUXRG+/Cvg== X-Received: by 2002:a05:6a00:4615:b0:72f:9f9e:5bc8 with SMTP id d2e1a72fcca58-7305d51599bmr15004410b3a.22.1739064983279; Sat, 08 Feb 2025 17:36:23 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7304c780da5sm5092390b3a.69.2025.02.08.17.36.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2025 17:36:22 -0800 (PST) Sender: Guenter Roeck From: Guenter Roeck To: linux-hwmon@vger.kernel.org Cc: Wolfram Sang , Guenter Roeck Subject: [PATCH 5/8] hwmon: (pmbus/core) Declare regulator notification function as void Date: Sat, 8 Feb 2025 17:26:14 -0800 Message-ID: <20250209012617.944499-6-linux@roeck-us.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250209012617.944499-1-linux@roeck-us.net> References: <20250209012617.944499-1-linux@roeck-us.net> Precedence: bulk X-Mailing-List: linux-hwmon@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The regulator notification function never returns an error. Declare it as void. While at it, fix its indentation. No functional change. Signed-off-by: Guenter Roeck Reviewed-by: Tzung-Bi Shih --- drivers/hwmon/pmbus/pmbus_core.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c index 39cdcbb96215..3085afc9c1ed 100644 --- a/drivers/hwmon/pmbus/pmbus_core.c +++ b/drivers/hwmon/pmbus/pmbus_core.c @@ -3313,17 +3313,16 @@ static int pmbus_regulator_register(struct pmbus_data *data) return 0; } -static int pmbus_regulator_notify(struct pmbus_data *data, int page, int event) +static void pmbus_regulator_notify(struct pmbus_data *data, int page, int event) { - int j; + int j; - for (j = 0; j < data->info->num_regulators; j++) { - if (page == rdev_get_id(data->rdevs[j])) { - regulator_notifier_call_chain(data->rdevs[j], event, NULL); - break; - } + for (j = 0; j < data->info->num_regulators; j++) { + if (page == rdev_get_id(data->rdevs[j])) { + regulator_notifier_call_chain(data->rdevs[j], event, NULL); + break; } - return 0; + } } #else static int pmbus_regulator_register(struct pmbus_data *data) @@ -3331,9 +3330,8 @@ static int pmbus_regulator_register(struct pmbus_data *data) return 0; } -static int pmbus_regulator_notify(struct pmbus_data *data, int page, int event) +static void pmbus_regulator_notify(struct pmbus_data *data, int page, int event) { - return 0; } #endif From patchwork Sun Feb 9 01:26:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 13966576 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E654224339B for ; Sun, 9 Feb 2025 01:36:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739064988; cv=none; b=W7XBy7gwsUxNs86cP2Osq1inNVnDkbZybphX5Y/yWyrJD/U29pK2zxjbFnNLQKSyd2hDoNriSiAb605TqccyZ/9iU28cSgN5ebxF35wD8ieEvobUBoAX2p6Jytn5kQ6ph3/uVrV/zavVWyUm8UEMnRTBP19iQFLp82Qc+ojLQCI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739064988; c=relaxed/simple; bh=xGX32KSxe/YZVKc3xxtf3Vbpl28poz8OIlnGaCr8jRc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MHLgNyouMeiIp2iGg6bAKwXRSx63EeHm4cvujPx7Ky0i1IlTRpcaLxeDCPgzIKkZp4qmNPnTsherCdNJt6wsEelTKLA5ecaddTzAcxvTXU4AQuNmZZUoteBjfjLNLk/GHEuOlu6im1djCyZA9XsDxurQ/U0MlekXsBUIxQQSsYE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=cy/zgz7H; arc=none smtp.client-ip=209.85.214.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cy/zgz7H" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-21f6f18b474so8836095ad.1 for ; Sat, 08 Feb 2025 17:36:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739064985; x=1739669785; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=BMt4dHus8/ZF6JFhblunsnj5FOoFtOhSksCLiTPiumk=; b=cy/zgz7HnNbP0167j6HSxlgQSF3xxU4dlQzQ7cU8GIGG6ohhB+j4rF2xHHLxUNCA0k MJrkA7Xw2LggLfBk9tu6482eaLpXQaqA/MPNn33jexShLHpWnow2Mv7lhIemgsGDsSs4 7RH8bnVsEoqq9a2Jol5V7ecc6cfkI5xtlGep5ojn+D1dCr/ocaqu9UOjnC3vfK0mOfYg J0yDaFWGK02Uu8cTheSGGvlF6IGcRkJo0BybOHbYKnK34kONXsajF9fE9Xe8PkAJXGdb +OipJEJzmg2N65u5C0b7U/NBcoSlNkCjkFrhQf3SeG39sTX7PHH2eR3V0eng4ktVRMjf Wlyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739064985; x=1739669785; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BMt4dHus8/ZF6JFhblunsnj5FOoFtOhSksCLiTPiumk=; b=gV4tiMlcV+dlVi01OEhuhdNGOS17qkTrs/9yFa0kN8NUp2DBBhXv56XA5OIDay7gc7 AUSvwQraSe4jKBKH1u3ZBBVDwm+EYjETRSgYEDTOg3hygZoHQv2gFVHf8cLJTvnuLxEL +c+mwQVopy5YAEsBZWJ8sjTHujBUBRTjXTEVy9wxNQaH/OJCGyGOfo5GZrKBDl3gAQpK vdbuX7mqowdf2dSjjjzufw6NyZ0E0kkzivfAdbUQiAe90pcxaEh1R5xiOy2d9DEZtotn y6S9ZZpj6geXdMz3OTWiR1wuWlv1CIOvHrV4fgCUjBTeCkEYMy29s5NlAUbF7+Q50FKV 1BIQ== X-Gm-Message-State: AOJu0Yyg6wPhulu38/MJ9OWnLu+Zi9JhMurVfY0O+dlvUHtfdB3HCs+j MT8y6IGAc9N1zyhBh5EfKK0aKc+Q636OKcGg8e8ZJLMW/BFVMB3kveXO4g== X-Gm-Gg: ASbGncsD9CnRSQjdGY7DFOAvjdwi/H+yIAqC2prOTYptTX9SXsUzlE1RE1EPakBlI5G d6nXQBDcn4N/4CauOJoMM1Np5Pe1Ycdp6+pHxUq+eRyYq+CUPEhZGtIqNXQwqAuXc4rAPeUw6bd Nnl19jFEf/BBke6fj4wqwmdG1ecy+PsfHWsHmrSbZ0z/UX+HeS+Jcnc0JQGOwFBdMZv62o0YwmA pjAU+gCGigMRwMQd0G5oy8Pu2RGcVdqnMKe8tKMPhNXEJvwvNWNzRHD5aQd5J56T6oK0PRFgqbO uxrBBXRCbfnTx5gETc9vwBMREiQl X-Google-Smtp-Source: AGHT+IHr716Y3tQ/3A7WZfYCdmnZnPSNHHsAv8UnTJLvP2I1KxPJOwUszi7lzUMCrrXJNRht/qfRgw== X-Received: by 2002:a17:902:f60d:b0:21a:8dec:e59f with SMTP id d9443c01a7336-21f4e7637d1mr118651305ad.39.1739064985136; Sat, 08 Feb 2025 17:36:25 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2fa09a1848asm5902372a91.12.2025.02.08.17.36.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2025 17:36:24 -0800 (PST) Sender: Guenter Roeck From: Guenter Roeck To: linux-hwmon@vger.kernel.org Cc: Wolfram Sang , Guenter Roeck Subject: [PATCH 6/8] hwmon: (pmbus/core) Optimize debugfs block data attribute initialization Date: Sat, 8 Feb 2025 17:26:15 -0800 Message-ID: <20250209012617.944499-7-linux@roeck-us.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250209012617.944499-1-linux@roeck-us.net> References: <20250209012617.944499-1-linux@roeck-us.net> Precedence: bulk X-Mailing-List: linux-hwmon@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Define debugfs attributes which need block data access in a data structure and loop through it instead of creating debugfs files one by one. This reduces code size and simplifies adding additional attributes if needed. While this is currently only used for manufacturer specific attributes, the access code is generic and also works for other block attributes, so rename operation functions from _mfg to _block. While at it, rename the "revison" file to "pmbus_revision" to make its meaning more obvious and to create a clear distinction against the "mfg_revision" file. Signed-off-by: Guenter Roeck Reviewed-by: Tzung-Bi Shih --- drivers/hwmon/pmbus/pmbus_core.c | 85 +++++++++++--------------------- 1 file changed, 29 insertions(+), 56 deletions(-) diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c index 3085afc9c1ed..91dfb9ec9223 100644 --- a/drivers/hwmon/pmbus/pmbus_core.c +++ b/drivers/hwmon/pmbus/pmbus_core.c @@ -3461,8 +3461,8 @@ static int pmbus_debugfs_get_status(void *data, u64 *val) DEFINE_DEBUGFS_ATTRIBUTE(pmbus_debugfs_ops_status, pmbus_debugfs_get_status, NULL, "0x%04llx\n"); -static ssize_t pmbus_debugfs_mfr_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t pmbus_debugfs_block_read(struct file *file, char __user *buf, + size_t count, loff_t *ppos) { int rc; struct pmbus_debugfs_entry *entry = file->private_data; @@ -3487,9 +3487,9 @@ static ssize_t pmbus_debugfs_mfr_read(struct file *file, char __user *buf, return simple_read_from_buffer(buf, count, ppos, data, rc); } -static const struct file_operations pmbus_debugfs_ops_mfr = { +static const struct file_operations pmbus_debugfs_block_ops = { .llseek = noop_llseek, - .read = pmbus_debugfs_mfr_read, + .read = pmbus_debugfs_block_read, .write = NULL, .open = simple_open, }; @@ -3499,6 +3499,20 @@ static void pmbus_remove_symlink(void *symlink) debugfs_remove(symlink); } +struct pmbus_debugfs_data { + u8 reg; + const char *name; +}; + +static const struct pmbus_debugfs_data pmbus_debugfs_block_data[] = { + { .reg = PMBUS_MFR_ID, .name = "mfr_id" }, + { .reg = PMBUS_MFR_MODEL, .name = "mfr_model" }, + { .reg = PMBUS_MFR_REVISION, .name = "mfr_revision" }, + { .reg = PMBUS_MFR_LOCATION, .name = "mfr_location" }, + { .reg = PMBUS_MFR_DATE, .name = "mfr_date" }, + { .reg = PMBUS_MFR_SERIAL, .name = "mfr_serial" }, +}; + static void pmbus_init_debugfs(struct i2c_client *client, struct pmbus_data *data) { @@ -3561,63 +3575,22 @@ static void pmbus_init_debugfs(struct i2c_client *client, entries[idx].client = client; entries[idx].page = 0; entries[idx].reg = PMBUS_REVISION; - debugfs_create_file("revision", 0444, debugfs, + debugfs_create_file("pmbus_revision", 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops); } - if (pmbus_check_block_register(client, 0, PMBUS_MFR_ID)) { - entries[idx].client = client; - entries[idx].page = 0; - entries[idx].reg = PMBUS_MFR_ID; - debugfs_create_file("mfr_id", 0444, debugfs, - &entries[idx++], - &pmbus_debugfs_ops_mfr); - } + for (i = 0; i < ARRAY_SIZE(pmbus_debugfs_block_data); i++) { + const struct pmbus_debugfs_data *d = &pmbus_debugfs_block_data[i]; - if (pmbus_check_block_register(client, 0, PMBUS_MFR_MODEL)) { - entries[idx].client = client; - entries[idx].page = 0; - entries[idx].reg = PMBUS_MFR_MODEL; - debugfs_create_file("mfr_model", 0444, debugfs, - &entries[idx++], - &pmbus_debugfs_ops_mfr); - } - - if (pmbus_check_block_register(client, 0, PMBUS_MFR_REVISION)) { - entries[idx].client = client; - entries[idx].page = 0; - entries[idx].reg = PMBUS_MFR_REVISION; - debugfs_create_file("mfr_revision", 0444, debugfs, - &entries[idx++], - &pmbus_debugfs_ops_mfr); - } - - if (pmbus_check_block_register(client, 0, PMBUS_MFR_LOCATION)) { - entries[idx].client = client; - entries[idx].page = 0; - entries[idx].reg = PMBUS_MFR_LOCATION; - debugfs_create_file("mfr_location", 0444, debugfs, - &entries[idx++], - &pmbus_debugfs_ops_mfr); - } - - if (pmbus_check_block_register(client, 0, PMBUS_MFR_DATE)) { - entries[idx].client = client; - entries[idx].page = 0; - entries[idx].reg = PMBUS_MFR_DATE; - debugfs_create_file("mfr_date", 0444, debugfs, - &entries[idx++], - &pmbus_debugfs_ops_mfr); - } - - if (pmbus_check_block_register(client, 0, PMBUS_MFR_SERIAL)) { - entries[idx].client = client; - entries[idx].page = 0; - entries[idx].reg = PMBUS_MFR_SERIAL; - debugfs_create_file("mfr_serial", 0444, debugfs, - &entries[idx++], - &pmbus_debugfs_ops_mfr); + if (pmbus_check_block_register(client, 0, d->reg)) { + entries[idx].client = client; + entries[idx].page = 0; + entries[idx].reg = d->reg; + debugfs_create_file(d->name, 0444, debugfs, + &entries[idx++], + &pmbus_debugfs_block_ops); + } } /* Add page specific entries */