From patchwork Tue Feb 11 15:52:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 13969919 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (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 76CB124C69D for ; Tue, 11 Feb 2025 15:52:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289170; cv=none; b=qZc/4N9n5ZbeodT6QxcVYhnEPQUF6D2TT0UGsPt3oeCepNE39Km/4yt4mVv5nSVhJZN46kv7saTIMl8kxPY03J/S8HN19rCLMIT/wFihpQvVb8P66Pjbo9E6LB3nViMJyIq/9eMmZq8N9QpPOoPt7+6eHxMnCEH46w+qUHkRqAY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289170; c=relaxed/simple; bh=R/C7nInydMBonMoq1wniay/G0jiv3raGmg7k23ySHCc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kLkEHHiFAYbdJUT2+Ngzob/tN7/ZdGu1MJKbzyty/WnVKx745JUMttzQUOu4Dt7YOKSt7bhlyZyvHAvg7mYmristkwDQyDayLKQcALxUkZITbjtYNZZnmbzCoQ0u0Cc9VrLyM2fVwXkWtSq2qgAy8182nzhEDML4tC23D09JJA4= 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=G2DczUTi; arc=none smtp.client-ip=209.85.214.173 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="G2DczUTi" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-21f464b9a27so96735805ad.1 for ; Tue, 11 Feb 2025 07:52:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739289167; x=1739893967; 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=s288qdDCDWo/ulFPMlSq4mZIQlh0lNbhU12uHjB9YbE=; b=G2DczUTi16U12W3ypsqKdKixFy1B3rFdDQ1TOPqklhERr51uPB5Ele3sVK+9fP6uls JYJRomsLd1oJwrH2lxs5C4ppEim5EhGRmESRXI21Zq3s1f9XV+1zKwwazK8GX972rVGr GtXBXfgrOTx+krBOINu2rn6mHNYFa2oNzGag3tPTAZWWg8R8nq/FgLb67neRAwVveuXJ 6/e/io58P5Zh8lDOcjP2wKL6f46JwXVv0Zoqd1LDextDkyyLJ61SvSauYwVLnFzf/Np/ E6X5PfBikZS3WO7/BiU28OAF371dnHpn8UYHU8lcHcGQl3NA0HF05/oqjmXZ2iguzL1B ywyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739289167; x=1739893967; 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=s288qdDCDWo/ulFPMlSq4mZIQlh0lNbhU12uHjB9YbE=; b=jZJYbUJ9JREZTEdrhTALnbrH+SxPzUWWhNc5J9SNBp0wp+7FxDW/2HnDFpH9khArE0 5v0nJ4FAr4E5VMk/FlW+eNBGi5aYafDom9I5FNuDkf54Jf6gWf5JPyiCz2lw7HLtHF3o veOmEVupB3WDQjgPQSP8rf/z+aQF9Wit131NC90jUATWhmCeyN3mZXKhUtsTDnrJVmya E37kUXw7AE8NXkOBaJ2RwG8mrt1+IohMkSL1kprep6x7JdgTOpCMJr08lVT0OjbdFSt1 p3NMM3y7cVtgBKiOEzrOnG2SfoiuklckeZOx4oKSi1k78MQ+Ve3TtgyEKk7mswXhYDzl 8GHw== X-Gm-Message-State: AOJu0Yzpxry8zv/F0ND2STJFN+LHGoYBuyFu9Yut4mUVpKq+lq7ZkoI9 TgUa9Xsg1J4Yq+DRhoIha0jilZpyi2bCIuheZS2MxNMeLzV5BOzxcBSlYw== X-Gm-Gg: ASbGnctAAO+YLfL10N18xzf71sJOVmHkToGJFv6mqqICS+oODApNKecbGwuuIGfcj4y WAM+Tf3v5VO7YUT3fWhwSn2Z+IWmZIBeOT4h/otO90KqPNA9injyIPpyX2DxflsTk7uvDyxpvMw 04xjowBKzWzOfAj7N6S9sxm4tp3q0rqZsqZr7sVdpSqJ6zyG7/ONJPL1c+Eo+OGoa9rvdvTnpoF GfOe1GW7p+zEQOjvYEZ6TEOPe3lTE+ImgKIcsJeEMlnSfkSJdPAntsvN8pT2V6nfE/Z+btnFFTC bnlRYqr4Pvybxyfk8D9LmgYaUi3j X-Google-Smtp-Source: AGHT+IFJoajWV7HvBq8MUmCkbJUYyf4HJSYB8F+d7eaJV2ouEQGpZWaQjKiDrqm9UxoaJ++MTiOj0A== X-Received: by 2002:a05:6a00:3c8a:b0:730:949d:2d2e with SMTP id d2e1a72fcca58-7322a52288emr392474b3a.1.1739289166971; Tue, 11 Feb 2025 07:52:46 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7309569d6e0sm3393736b3a.142.2025.02.11.07.52.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 07:52:46 -0800 (PST) Sender: Guenter Roeck From: Guenter Roeck To: linux-hwmon@vger.kernel.org Cc: Wolfram Sang , Guenter Roeck , Tzung-Bi Shih Subject: [PATCH v2 1/8] hwmon: (pmbus/core) Fix various coding style issues Date: Tue, 11 Feb 2025 07:52:33 -0800 Message-ID: <20250211155240.2077464-2-linux@roeck-us.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211155240.2077464-1-linux@roeck-us.net> References: <20250211155240.2077464-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. Reviewed-by: Tzung-Bi Shih Signed-off-by: Guenter Roeck --- v2: Added Reviewed-by: tag 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 Tue Feb 11 15:52:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 13969920 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 A823A253F00 for ; Tue, 11 Feb 2025 15:52:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289171; cv=none; b=XTGq+hi9ssnGGJ7MjWyxWg+cnQUn8lEWShOKvmvIRF3ifhuyl0yzTTnbE6qtXAenoMt0iZCWvdGMkQw0CrxQBV2Wx3IjVRZ96pTfl1zZsgY/t+as/SpwV3gGZFxoRmb537uA1i29dHk5mEMkqH34Sq6c0BlpS+0oJ2hFJgfi/6s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289171; c=relaxed/simple; bh=HhbbXST1S0fxR9b4etCcSkQkDB5qCS402ODXmLG00fQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nwZKgqA6kfzfxVzUkB2mLNbjXHLXlamLoy8AaO6OPI1MeMUXK+sZQaH9cw4NLAEAR1kJ9LGqwzcqQtE0IAdZXq3t4iMJIEguhZSGWbGpmbpXDmANd6YZIL279dT7x1199KufuVoi7isU2HPsPZ/ckAPxNEl830FEU0gXyDGOfu4= 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=WXsSrz1H; arc=none smtp.client-ip=209.85.214.174 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="WXsSrz1H" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-21f74c4e586so60328575ad.0 for ; Tue, 11 Feb 2025 07:52:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739289168; x=1739893968; 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=xi8HAh4LuNqEizuiuO+hl1UJiY/wwk6gitcnSl2atR4=; b=WXsSrz1HSWmhwYH3a4jHUpvTCYogmO8CHjmB6rB4cQT7mOwRyvwUpTaBPVQH+D+C+P +lBUatfMzmTrJ+h3R/dPi2NpRPZFIduO2yg2yyEoYb9DZoiamJqzI0YAgg6quBEsug+F NlSsYuf8o/gNJP/uupqDJqO+hbOYADKXPLDJT9cDzWTyJ+a2CQyRXatTIULvk6b1z+Ql cLjSI8nf6+JBOwPsNJmF5bkyWzt22CgoWHgfVRz9hBe+YmhsSj749dIvU8Ake4kUIdX0 XkLZaxG8kx83yrHRTxfnhu52sqj3grzQn/16zX9CMfvIZiXEIo6uff12GBxIrZJl/ILk xt0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739289168; x=1739893968; 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=xi8HAh4LuNqEizuiuO+hl1UJiY/wwk6gitcnSl2atR4=; b=t3/1eUegCBUV/gTYCV6Wsww3UL5Xt+6pfhGxHMYcmw4VeCNHMyjPsXuxAENiRThys8 MiWgBLAKe9Nuz9g8FLy3nodjIJJKWorQ5LQ2nP1KsJLb65yBORfoo3pgb05EJj7qNJSM HjPTgi0E1RLxdS6RE/q3Nz+NDso6xmlEpkkvd8DJuZoxqdNeiR6ir+9Z1VPX0h4sOi1e QDrnkV2yWDAmUcdgi8ddKzrqPM89o6wZr07UuEFKktMYqrbujKCBHc4nRzc4lJV5Qem9 +V9I0YZjizRc8AgFZigczOQUzgUdVj69wT6c2DNoWtREEb5Rgyffpg493fpncI0p5ehE 18Tg== X-Gm-Message-State: AOJu0Yy7I3y6cywjy8xj4MjmQYD+98vygWy9KL5RZSaUjTRhMrcQ1/ub oTuqn61rwlGF0YDq8jVVt4+8+1+QpsiH8Q62FZ3FLHau7tJTurreqMv/hA== X-Gm-Gg: ASbGnctQpyTeriw61EKiuqNtEDVQ9yGo/tt07Jm00b4NZCkQCuhKbD1nT/FE0eiaqbM 2kElaIGSSGUWpdgitdIBpdotfS+nGyt6xPw9umeFqDhr8DJqCE0QZpCW1XMH8WNkNrVJ2LzT+ds t5d/TuPzjC8I6sYwYTReFTsc19NJX24xuRy2t80pmi+hLonryzd2/6Az+CLuqwWuy/OyAi991F+ mNTXDCnWYmem2koH9YUdu+SQ5J84qFcMV826SLwxMW2h9PBdUWG1uLryis60f6uZQ8hT0pd86ep ZMb+SbXVl5vi/S8nxquuJYfrdGXz X-Google-Smtp-Source: AGHT+IGUmWX8Ayc5bUO5KnW38lQwexNgKIx0vVzkPSx0h8efRWjWDjrdauk9ZHm+IV/yvpNaCvVB2w== X-Received: by 2002:a05:6a21:4591:b0:1e1:f281:8d07 with SMTP id adf61e73a8af0-1ee49d74562mr7000569637.10.1739289168491; Tue, 11 Feb 2025 07:52:48 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-ad53de9ee79sm5129395a12.40.2025.02.11.07.52.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 07:52:47 -0800 (PST) Sender: Guenter Roeck From: Guenter Roeck To: linux-hwmon@vger.kernel.org Cc: Wolfram Sang , Guenter Roeck , Tzung-Bi Shih Subject: [PATCH v2 2/8] hwmon: (pmbus/core) Use local debugfs variable in debugfs initialization Date: Tue, 11 Feb 2025 07:52:34 -0800 Message-ID: <20250211155240.2077464-3-linux@roeck-us.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211155240.2077464-1-linux@roeck-us.net> References: <20250211155240.2077464-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. Reviewed-by: Tzung-Bi Shih Signed-off-by: Guenter Roeck --- v2: Added Reviewed-by: tag 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 Tue Feb 11 15:52:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 13969921 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 50F7B253F2A for ; Tue, 11 Feb 2025 15:52:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289173; cv=none; b=DTMaLF27FcgPvnMn60k6O1W3w6/Ae7SpZNEkDYFKuwgomNxy+syYS41X2swjADR7dRV5GPUgzqNJG9uh0gIwcmXIkbKCnQcUrP/3zRBWU1yQGTxn/5FO8T0WDbiRdVrHKyjXhUDuB2ggCcSEitkA7KB0o/e7FcqLg/tHDLqKuNc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289173; c=relaxed/simple; bh=epYroza9t6c6x7Pr5NJhKYuxRgC16p4S0BGJhZ1/1jA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jidGjHLYH1MTcIbGwAfi7TiIO+5MTpr3w7iUqZ4d5HfGIW2RBmu2U5ExrIYTbDGr7z6coNrCvn1JR4G2xIO5ie0ddp6iP8Q7Mv5Wo8T0PI7GrDYgSis0HSttwKEEEuR5rIH9GCWEsGDdhT8ALTbbLdNMnIUpudaNZzitw7Qqrl0= 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=lAne/IZK; arc=none smtp.client-ip=209.85.214.174 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="lAne/IZK" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-21f50895565so64799425ad.2 for ; Tue, 11 Feb 2025 07:52:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739289170; x=1739893970; 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=jYrIJHyOGbj+ZBYaeYIwFamAdh5HNASdG8LGnoiovEM=; b=lAne/IZK9wyFh5rxoOJyy9/sLnrdkWYI2GXCC/LtH7H4ggqmzYsA1bJXib0XUbfiTc M4CheQRgMFM+H8V/ge2RJAeDNdNe42/gOefIffNK6d43+vQpV8r1BaonUQ8gxToibDLS dNIyIjw4Gpv9fLUjX+Tu1ajno9h8naIp7U5lJiU1UYfeUlfVUyhkIE6kMFrNYtuGSr1r RdXYMXTLN9zKwl5rRfZUlUmdL+c9dlhYg96uHhTcdrr+q+ZK6Ke/5L7LcbGshzqzXXiA 1DSFSqIMKv6JYFuqzlGa+6RyurnntYBPkckMRx6k/1po72jfbwq07SWaelX8Iauh+UHe QPnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739289170; x=1739893970; 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=jYrIJHyOGbj+ZBYaeYIwFamAdh5HNASdG8LGnoiovEM=; b=m+xkwnGIXuVb//tb+uw2qlzu+pVFqHhmNHlVbQke2mbna8CzJ4neRmxTyKk7bvhye8 xFAAV7k8R3mxe9bHP6AwsyXCvNn3QnfKi3PXm5dXDRN4x1t/Q/EDhxefrfHAcVeZ1Tvv 8eXUvuq13ykaNaUmiOwvAf7jDcD1qDIGxIvtk0s5Wa4N2JUOLf0syW7ESzLRpDmWrg4e 97piAlr7xw+aTro5u5fZ3/146ay5mOGIbLkaDfl8xV0dLXcRIM0YGruIwZcyfXAeUZAm loi6q2ne381W6QcaJayIDz1dEW63ABKJM7PeRFbWyh+5DPuwlF/6WlH5P2heoKP3BqOk Pgrg== X-Gm-Message-State: AOJu0YwBtA/RkUQF4mt9dT7iEkBLDyZdUtHiOgAvRx8g9rBKPjwGx0bG tVV0UyHwQ6vsaC43ZrY9yhY32Z4ZWq8WRFrRyRfnXctKADjpB0+mKn4opA== X-Gm-Gg: ASbGncsWL+OdGqC5gzx3UUFUf6svbz+san/cgRe9GtZOLXhCAPAe8y04bHeuTuiuxEX V7BhdmXSJxkbIqIkOtOJ6kEKfV9QAd9VJfOoDTuQSCIx+Q/FFJdNRX7U4zKiRh/BloEPkd2eVZy 4prPr2znf+kFCfji8ZbugoK+b9gW6Tsp52Kf+37VXeHgLgwqwn76bhDQ+pHAfR34z83+sT81CQd /z9YjQ9CndthtgpNA0hnkjke4uHihJdQi2gWC5pAhkW3r2yXn1BDCx1ycQrMlEK2y+vt+rCIZOO EqoCxeGOawvA/kxjVLyMerUjmqmt X-Google-Smtp-Source: AGHT+IHaLOD0ew7+A+fV+mL6cnl/TEqCRq205ruqCsWyIhQP/JIk/gvgXZKHkiVdlGnGpEqG+MPNQA== X-Received: by 2002:a17:902:d581:b0:215:7b06:90ca with SMTP id d9443c01a7336-21fb641d55dmr64414145ad.17.1739289170021; Tue, 11 Feb 2025 07:52:50 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21f368db022sm98309715ad.259.2025.02.11.07.52.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 07:52:49 -0800 (PST) Sender: Guenter Roeck From: Guenter Roeck To: linux-hwmon@vger.kernel.org Cc: Wolfram Sang , Guenter Roeck , Tzung-Bi Shih Subject: [PATCH v2 3/8] hwmon: (pmbus/core) Use the new i2c_client debugfs directory Date: Tue, 11 Feb 2025 07:52:35 -0800 Message-ID: <20250211155240.2077464-4-linux@roeck-us.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211155240.2077464-1-linux@roeck-us.net> References: <20250211155240.2077464-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 Reviewed-by: Tzung-Bi Shih Signed-off-by: Guenter Roeck --- v2: Added Reviewed-by: tag 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 Tue Feb 11 15:52:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 13969922 Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) (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 A018F253F2B for ; Tue, 11 Feb 2025 15:52:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289175; cv=none; b=rl3fYYPijTXB2JP9SfLyusulVufbYpyySkdzPPmang5zajTjKP3lIQGXqYT0cCQeDhk8xOynzn9rmzQsy3Kwkrr3kGNMs577all1dWTyc/3FMw5BbAqcLSzF3ZTc+7PzHrOUUO5ewRU1noN1F3GVduP1za/CfFCrJvPUOxG9Dtc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289175; c=relaxed/simple; bh=g8wzu0eYdr1RaOxgeeuA9TNT+mxg3KGV2OLMF/Yckbg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UT+hVM2g3cG9QOeNNSJneREhpuxwHioAcMs6dKOGNas0AgTDkDiD3HnEfZqK+viruK7IqDazWsZ/FHXvqxnzvDsPSrNmKtouPxhxGreG8NzXOpwWYgHI9JUgsqls5iH1MDmyPFV86A11jF/Iv+hsRulwakhmkFYUu1ofZwkSZwY= 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=e/Ynl74D; arc=none smtp.client-ip=209.85.216.48 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="e/Ynl74D" Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-2fa1d9fb990so9113282a91.2 for ; Tue, 11 Feb 2025 07:52:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739289172; x=1739893972; 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=Rs8PeEicoW0PbsG7q1rUbmUXFYDywYudvhHCFnOE6+Q=; b=e/Ynl74DQxysqqa0AWrOrMghjcpSNx2k2P/riZjI/Mk1aTpCkPO9fAenVv+4DLYx3r rm2KiSrNF1XQ7XIHXG7EjGTPya4aie83LXECbzWMVeu5qPhuyRGAkxpd4QGEFjVwDwsy aRxDOiXS2FvIQnFmvUk7kHBzyqef0kFmI82O/NTQxbEmQ79SEn638WpBYVCi+z71B5BF mzyQK91DhLyvdxhJpv96i0geAg7LQIU5O0bWnDWEa0a0BLHJDogaitU6HO5Dn5eX3XXx +c6FEMzadJHig84/3XALkXQoyMlr9/TpYZrmCe50qH4ig1dB371HpXck0Jwj+2odXsSJ D6KA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739289172; x=1739893972; 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=Rs8PeEicoW0PbsG7q1rUbmUXFYDywYudvhHCFnOE6+Q=; b=J8911WWHUyZvd5p3oV307imMGw7gs7a/MdB4LGOKDnCW8rkMfUTH4M/uxKzBb676yH mqkZ9VSwDdPLuBt6mnufZTGPIAjx1qog+0RlJO9ChpXjDwANlTS1J124HRSOGkOEY9J8 /zFnPkctyWfr73Mj51SMcrKXIOF4RFG6Ub4kpzZCb3xf0SA90xLwFvYqphY15StTGHu5 b8Sn1qaJybTXrBVJlAnFgyRuQuKAA0uIQX15DM1Ri4YNgpki4yTW0DQ726szgMTgUoCH ID81JhliT2vcFBnz5m5bIyQFc/KyJ7prTXRKKUwfTaRoq1/r59wp/9bmyy72JCgNXpD7 FQCQ== X-Gm-Message-State: AOJu0YzrBRHor5trWAJ8CjuX2Cc4LsZxO6b8q65V+oDW1LbXiOvclH99 K01M1K0SPskNX4wAaMh4C6kdS81oMWxRoN7wDWTt3cM2uOGSFWt0JuaNNw== X-Gm-Gg: ASbGncsLEHQPdtVWItWnYVD41ns14Cc58NyRU07D3k0C0acTfZzofsR0d/HTT1Xh9Nw 9Z82zdlUb2KzlQTomqECjwhaQttaGjVNgEeL++GD4fJ6TsNFMG1slp0huQEdmL4Ja7ld+BGP37K IlO2Ej33mkoL/kotGAyWaC+WNLyZFgc/ySUAGruylpyn6sI7mj+StCkJFh99U4igNvLg5sK/ThF nU1ZjWrEFG+5lUxY26COqCAYrWa/psvpGLYMHoNGd3qZopxidmhAJtf79uyXOk1H6PtGRUG4U3C E7lap2K8sVCH78iScdOKwhqdk5+i X-Google-Smtp-Source: AGHT+IFtX9ggC/vjwUDh1mo6GoqIbgH5UuZkFg/yhsU4tVW/QJ7yymKQGIGgxCYTsn7KhSMSjfAkDA== X-Received: by 2002:a17:90b:1805:b0:2ee:d024:e4fc with SMTP id 98e67ed59e1d1-2fb7e8d765fmr381074a91.33.1739289172491; Tue, 11 Feb 2025 07:52:52 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2faa30a356csm1730710a91.7.2025.02.11.07.52.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 07:52:51 -0800 (PST) Sender: Guenter Roeck From: Guenter Roeck To: linux-hwmon@vger.kernel.org Cc: Wolfram Sang , Guenter Roeck , Tzung-Bi Shih Subject: [PATCH v2 4/8] hwmon: (pmbus/core) Make debugfs code unconditional Date: Tue, 11 Feb 2025 07:52:36 -0800 Message-ID: <20250211155240.2077464-5-linux@roeck-us.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211155240.2077464-1-linux@roeck-us.net> References: <20250211155240.2077464-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. Reviewed-by: Tzung-Bi Shih Signed-off-by: Guenter Roeck --- v2: Added Reviewed-by: tag 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 Tue Feb 11 15:52:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 13969923 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (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 561F0253F09 for ; Tue, 11 Feb 2025 15:52:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289176; cv=none; b=Qxy+d76zmDiOgrf2vVx1gm1KVUIP1/MyT0uy9trxz5wKSHXTTc8aM3Pxa+jQLotUEnjR3gqaZgrx2NDa3y1OLIj/lX90cukbCkReULq8cygVJEOeWO/hM7oK56Xs62PkpNkuUK5qcgNghdrobnBIIvFWm4jLXD8uDsfDP/V4tWU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289176; c=relaxed/simple; bh=cj48dyNTd0s9sZhJQ9XvBi9Ios9Yn3sGSNj2XqkMGhU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZpSLcEHEw9WBF0LYEIBDR6dWkojf6C3jy9sG/GvY4/fHsCF4xOqo57E30aj798y6+aiAaALsl4sa6x0NUZnHzWLIbgOHkwm8dlzVRhFldeF7HHHwPzTv6Wva2aNuE/mkqBpYS3LPxzX29c4PIbqdmGMFQEA+QZ3sqPrg0n7/5tc= 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=PGC7jMb3; arc=none smtp.client-ip=209.85.214.179 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="PGC7jMb3" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-21f573ff39bso85707925ad.1 for ; Tue, 11 Feb 2025 07:52:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739289174; x=1739893974; 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=20eQb4tQxHftvzVRi2J/iaF928YwTfWnxa70RPeCWJw=; b=PGC7jMb3FcO4b9IORpBKpIpkwSU/QVGtbApeli76jzMmyi6oYgepeFe9GjBaJzmI4j 7sdbZ5QnWdlQcNuxkDkrk3wNjGXYtOjnA0QXxZ82vHuKEhGUrxdLHUNHzFRAs9GjNwYY 0eGxPKwrdwyaY8QxJLw8ftWkmjr1oNqvXcdK32NeeJltbC3SdQkZWQ4nYge8bJG5FRhe tznGiImPmZ3lKAKjHFIWvqVX9NTEqvfHqkKiipDO3X3rIFaRxT8mcDi+fJ3JqH/TudMQ 9IzN81m95RiimU8H/NYouiQQt9ob5MXKYxNwaagMfMvm+/DRvxGAeaSBDAXm/uQ1MooD /w8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739289174; x=1739893974; 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=20eQb4tQxHftvzVRi2J/iaF928YwTfWnxa70RPeCWJw=; b=bFUPU2dFHvURsuRGQoyNyL8vMLXMn0kcOAOy5NSH6oSHr63loHrclyfzp4t9IkDaXp vpzDZ5o1ykILfGFUujsV/aeK88iifBVTAUrHwpgZnmmSfanViIT0Rew1Rzu76K+PrUNA UINBhPZQxHegq65nZw969JlCEKeWN0jSkF8qH3hdQYGVuUICgNU75aT2NXUkEM8ejU9t vOZYEsmrUKV63EsKfrHdeoDreZPIcJG1BDFd2NmjNfXFhkz9WBW7PenJ2jQa9UmC9ASm +d1qBD8Wau6bPS7NZm8EjBsd7V4+DXWt9iygBIfgPzTcWwL0jxuGacIaN44zvQ/0hnYg CgsA== X-Gm-Message-State: AOJu0YyXDH6iXOzAj36tkXikjlkNyCuasgrpFHx9ZH449OuAabAf9Tdt lYy7yCNPh2HpOHu/s/R+fHYhlhr6px5aTO7P2xP5/KjYLLFWu+G9F9HuIg== X-Gm-Gg: ASbGnctGHyOfwLXumdOtDoSkNgpXMRHOQit88yYTISolzxFVGj82/Ya006zy2yPjk3m vQv93Y73NWyFUHEo3HksTIxWVm5dQpx7nBuspNFbtZSgM+Dpr4rn5SoUqB8+5fNIqFLS+njC0SN fVeHAD+3hfKEITq05O9mauKDZLh47uCctmJK6cYhAnNfQTqO3hTmrRXFI2ghWkhWIUb88cEggHb zhTKC/HJ7wQw6davk9mH459IEMsyP/oChsstALzTLxRKptuYlWsGsudHS/QP0e2v6yUDir0pYRW zUNCONCzPZgq79Kc+GBnfUH3lJ3/ X-Google-Smtp-Source: AGHT+IHab0C5kAALQQ4tG+Q0A+yoiWaUpk3a7yCBSDSZNGsW0WHJokWLo6bhWIUWtbku0x81KG7oRg== X-Received: by 2002:a17:903:32c6:b0:215:94eb:adb6 with SMTP id d9443c01a7336-2207d0221c1mr2990745ad.40.1739289174141; Tue, 11 Feb 2025 07:52:54 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21f3653cbbasm98518995ad.79.2025.02.11.07.52.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 07:52:53 -0800 (PST) Sender: Guenter Roeck From: Guenter Roeck To: linux-hwmon@vger.kernel.org Cc: Wolfram Sang , Guenter Roeck , Tzung-Bi Shih Subject: [PATCH v2 5/8] hwmon: (pmbus/core) Declare regulator notification function as void Date: Tue, 11 Feb 2025 07:52:37 -0800 Message-ID: <20250211155240.2077464-6-linux@roeck-us.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211155240.2077464-1-linux@roeck-us.net> References: <20250211155240.2077464-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. Reviewed-by: Tzung-Bi Shih Signed-off-by: Guenter Roeck --- v2: Added Reviewed-by: tag 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 Tue Feb 11 15:52:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 13969924 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (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 6F105253F09 for ; Tue, 11 Feb 2025 15:52:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289179; cv=none; b=ukgGN0MELY0c1qQWqF/Uu190wAyXb+et0oeBFTLwJfomj9LLZ0cIdBrlQUUOBQDx8v6cfJ9p2EZ+myyMOXL1sbrux70sfvmGizLlM5dHCywPmX5yQYf6uTnIZm2+3mLKMSnJSIa1SCWCpQ1DD/rRnzFnRqjUsfno6W3Y7PEF67g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289179; c=relaxed/simple; bh=ZCxdGeHtPZl67RoBhM5PUAd7I1GtBCo7Tu4i5Kk1xxA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JnFnjtu5Mvsu/GUXBw4ejnVelIuePRsdvqkti4grvvvNxF6fAsp47pxbbhL3PGBAv+BBek9LO+ko+Siz0zFsooA5FG5pHUTK9Mq0JLLDASoWjPehyo7JKjawl0O7ztpOlIqByhaJVRhOxWSnK3ntXn4DVaP5PgOzdstlktnZekE= 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=Dg6WAVwB; arc=none smtp.client-ip=209.85.214.178 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="Dg6WAVwB" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-21f3c119fe6so130068675ad.0 for ; Tue, 11 Feb 2025 07:52:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739289176; x=1739893976; 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=U9kai2uPOeBbYEdDxMaB3KxsGUE10PIaDaK+dtPaYwU=; b=Dg6WAVwBggdv/KvVkPOkEBR+TSfVBEbTDeVULxUKcM5imjMZ/P09zITeyMCKvg4RR5 VvupMxoZ682t5sIOXer56lj46OBEW+ne+fiXgcQNHUB07vBp8C3odwXmdCnlWj3X4Xqt PvDZD/mcs78OWFwqiRiGneC3I4qPteRmxPcdXAC1wBrFgmFA6m7vXMpuI8Wlt/5sQ0aJ plenljs+wjj4U8+iP/h5ItGcf0Kfpq8xGkUsFuEdGTRRKU9NbtB27RtpH+0JBFcnG4zS D/r1/HvPf3raNja/DVc7YtV9dudma4InE+CunlrMA1xI62XERBAlSvKsS55lVJALGvUI eUBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739289176; x=1739893976; 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=U9kai2uPOeBbYEdDxMaB3KxsGUE10PIaDaK+dtPaYwU=; b=EL5PATKCgZfSqDOqa+HIL61WsoXlH+3ZYKkNf3ABOJgubGSNLEXlvBqF8raQF9nZau ndU5SBVsjphaEy5KJEhGrrAZQLxRjh+KYdPVGS3hVkIE+Bu/0YX6/FpmqUgSSx3i7wgi XFjKV7E0J2ZBv/Qt4qvwc2ywUdvTvmaw6JZ803zHcHXGy2DhMrDTVOdR62dARVDc9orb fjc9EhR2KbqDA/Yt+EwkymuyBw5gNnPKjSdBol4L+gxojtA+GEjlyw00sJcg+ZPZRAoC o4DXme/WEpGrGqevgRzd5nrg2bTwuBVzEc2utsRITYL7dAg+UdLJy11mnGOs5XNIchT9 r23Q== X-Gm-Message-State: AOJu0YyxSQ1jZh80ZusCb4KcbOoxqoMIdFEi23bIXy3LL9uM53tyB5OZ sBwG6K1MySgKojvOpi5pF46UbKS+B5aKXKMTuwaP/K7ARDEutVByznqm6Q== X-Gm-Gg: ASbGnctsjN3go38DStAHJ/0qhJ6LISMFSRKAV3K9PYM7Gqpp5MrlAy3gOycnogVHcBn KKjYRqPTZ6AaSKgkC6QulPOl0IGY7rnel82Zm2SLfNLPoGAGvmSBAGGBMfL9NRs5B3uSwJvaR4Z 31FpptfeFK86er9Dx2Rz1wYXgdVg/OdJlH2/go4MEu1CiPTJ3DxGNuWtmMnWiAr+iUcPpQjYK49 PeXoUVnNAr7aTipCHpkf55MLnSz74NrTObUmmRxYFVREGSkzCgc2736ObjDkqa+J9sNhd85V82u eestlleXp5TLk2hLTA8aPDjkrZXQ X-Google-Smtp-Source: AGHT+IGQV2K8bjfY2vLuY4G14xV3WuNGzgp4qKt+jT6fbSu0CrVVYFqoV8X3xJ4jaJvZs7trnfk7Vw== X-Received: by 2002:a05:6a21:9211:b0:1ed:a4ae:31d6 with SMTP id adf61e73a8af0-1ee03a9adf2mr33174228637.18.1739289175794; Tue, 11 Feb 2025 07:52:55 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7307b136aa6sm5925799b3a.57.2025.02.11.07.52.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 07:52:55 -0800 (PST) Sender: Guenter Roeck From: Guenter Roeck To: linux-hwmon@vger.kernel.org Cc: Wolfram Sang , Guenter Roeck Subject: [PATCH v2 6/8] hwmon: (pmbus/core) Optimize debugfs block data attribute initialization Date: Tue, 11 Feb 2025 07:52:38 -0800 Message-ID: <20250211155240.2077464-7-linux@roeck-us.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211155240.2077464-1-linux@roeck-us.net> References: <20250211155240.2077464-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 --- v2: Use ARRAY_SIZE() to calculate the number of debugfs files drivers/hwmon/pmbus/pmbus_core.c | 93 ++++++++++++-------------------- 1 file changed, 34 insertions(+), 59 deletions(-) diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c index 3085afc9c1ed..25ad0a016292 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) { @@ -3540,12 +3554,14 @@ static void pmbus_init_debugfs(struct i2c_client *client, /* * Allocate the max possible entries we need. - * 7 entries device-specific + * device specific: + * ARRAY_SIZE(pmbus_debugfs_block_data) + 1 * 10 entries page-specific */ entries = devm_kcalloc(data->dev, - 7 + data->info->pages * 10, sizeof(*entries), - GFP_KERNEL); + ARRAY_SIZE(pmbus_debugfs_block_data) + 1 + + data->info->pages * 10, + sizeof(*entries), GFP_KERNEL); if (!entries) return; @@ -3561,63 +3577,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 */ From patchwork Tue Feb 11 15:52:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 13969925 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (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 5ED68253F2D for ; Tue, 11 Feb 2025 15:52:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289181; cv=none; b=ACykXb6REz441w7qxivPNndtcvNJQAhhCcDg7JsQgBk1BOf2MCbreLS5ezNKaMsIGiEOT2UoCeS0yK4httKuTN8P3F0nfeyYRBfdszjLCIJw/t0Z4dU7VJKwKTAqQtwrlyu/I+wuYT1+tn4yzrgz184HtCFHW5OT1Z1faVfzadM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289181; c=relaxed/simple; bh=LMGomRaOtH29ja3KgW4GxX3Kca+kf+2WYVroN9XtXjI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SEQYUQm3nsHr1fCVCBThVY8GDc4PpXazst/cIbosLXNTdUP4UrcMefb3xw3Q8jI2ZVEudN8ZOxjQSygMSmdjEzlO3ymQvKO6SXUYaM9I5smWeVuSSd/ICzO2ajnjDUoC5uD8vJ+FCplkWEUIua6flP8kOJRqGBcBBtfXOfDcDHU= 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=Un21d+6o; arc=none smtp.client-ip=209.85.214.177 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="Un21d+6o" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-21f3e2b4eceso109459215ad.2 for ; Tue, 11 Feb 2025 07:52:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739289178; x=1739893978; 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=tz/KN50qJ3LMKII0WAeSZR2TOOMp+KirwyFnmg+pUzM=; b=Un21d+6oV5gvOfdhT4f4sqrDs8rpejZW+iLzdJqjea9pLxPmPiXdMX2Uw6Z2B5ZxKQ ZY0UBJkEDmp3jpQz7nOr3B0RGw52XvN1bIZmSrSKltClVl2gfH/NDA5s/o8me7YIWN3r nD7SHlqxfSP5kjj7hF7Pva0+njK0ElBnwsSjCqV5zjJWP8jVO+zZ3GGoTZDHP3wjsUg5 iyC17IXu80yFRMNxLr/+ezkIE3OzGoAw4ID862526COFT/lxHdQFTLqPba3iSkqC2tht BAEHGtb8w4UyeaWx0X0j/Q3D/SgRE0gnBpV2MonSx6pZfskrRQg7B6HgLX9BFFpf3hCy n+/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739289178; x=1739893978; 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=tz/KN50qJ3LMKII0WAeSZR2TOOMp+KirwyFnmg+pUzM=; b=jY7zYsfCpI4mQHhCR8pJhUg4BgHBREcPn6L2CsyoCfUGggi8Bj+7O5jRSWSijo1ZsB TmlaUqKX3jdzG32/IYCqE3fIPNwrXI777IPr/9phgelaTjfCgo4OvLIFoK2H8sacS/Xl dic1TZFqFmYDw7kV74+1US7W+pMgnnpTndzj8YJNsjqsYRgGvX3X4PuJTB7ytuOgest4 esUMCbIZfrI428x5y/R6rqXcYmE9KMh30eWxnPsFLXW57eRU0s8FmhXaLUBELoaiostL dAFS+O3OmtF83Q9H32q7fJz//qm0/CGWuS9npIKJux7CQYkS76xicRun7rxYvGljZ0eS uHHg== X-Gm-Message-State: AOJu0Yyds5g1KYuHUjgVgpjMkkldvNqMK0sOAkZLy91hJVlzy3mwELGo Hnns5SOrcZtWPUeTm8KV9I+FiPFcYzAfZh+Q7v5y4WOQL2SWbgwv7O3MhA== X-Gm-Gg: ASbGnctdRcE8hUrBSebkx96gcVhvGm6uxRzs2joS28dEdwHi3a0LpF+luYmWFrhoN95 tBF5+c3ntEOyVRnORXBxzDwGN8XLreWYmO1qll8EEz40dyL+PB6HQaSJ2FHX3HgG9GAytvLY65f tMg7Vb0P+9bJaSGCpCTT5BKzqd7YGSJWF90t2jFTfPb5aHoWJRbNpc0SkMwju66Z3Bl/QC3EGs1 QcGjV5qH9xyBibUxo27GkYIUqbj9e8oYscCJTFao1FRV5tQ/Kat54Aqtf/JOTzKq2y9JwYWEsFY 1vlL5XyytKPj2ulGCF3WvMkduxgs X-Google-Smtp-Source: AGHT+IFfcw+wKxmUzXgyDKbGg+E0BlEOzerBQTvhshx08jGj3r3xR8B5ZaTeP2tPM+C/jIBw1TflEw== X-Received: by 2002:a17:903:2f84:b0:216:31aa:12fc with SMTP id d9443c01a7336-21f4e6e6123mr285502405ad.24.1739289177241; Tue, 11 Feb 2025 07:52:57 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21f64a67488sm68690575ad.244.2025.02.11.07.52.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 07:52:56 -0800 (PST) Sender: Guenter Roeck From: Guenter Roeck To: linux-hwmon@vger.kernel.org Cc: Wolfram Sang , Guenter Roeck Subject: [PATCH v2 7/8] hwmon: (pmbus/core) Optimize debugfs status attribute initialization Date: Tue, 11 Feb 2025 07:52:39 -0800 Message-ID: <20250211155240.2077464-8-linux@roeck-us.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211155240.2077464-1-linux@roeck-us.net> References: <20250211155240.2077464-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 used to access status registers 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. Signed-off-by: Guenter Roeck Reviewed-by: Tzung-Bi Shih --- v2: Use ARRAY_SIZE() to calculate the number of debugfs files drivers/hwmon/pmbus/pmbus_core.c | 130 +++++++++---------------------- 1 file changed, 35 insertions(+), 95 deletions(-) diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c index 25ad0a016292..f0f8b7ed5416 100644 --- a/drivers/hwmon/pmbus/pmbus_core.c +++ b/drivers/hwmon/pmbus/pmbus_core.c @@ -3501,6 +3501,7 @@ static void pmbus_remove_symlink(void *symlink) struct pmbus_debugfs_data { u8 reg; + u32 flag; const char *name; }; @@ -3513,6 +3514,19 @@ static const struct pmbus_debugfs_data pmbus_debugfs_block_data[] = { { .reg = PMBUS_MFR_SERIAL, .name = "mfr_serial" }, }; +static const struct pmbus_debugfs_data pmbus_debugfs_status_data[] = { + { .reg = PMBUS_STATUS_VOUT, .flag = PMBUS_HAVE_STATUS_VOUT, .name = "status%d_vout" }, + { .reg = PMBUS_STATUS_IOUT, .flag = PMBUS_HAVE_STATUS_IOUT, .name = "status%d_iout" }, + { .reg = PMBUS_STATUS_INPUT, .flag = PMBUS_HAVE_STATUS_INPUT, .name = "status%d_input" }, + { .reg = PMBUS_STATUS_TEMPERATURE, .flag = PMBUS_HAVE_STATUS_TEMP, + .name = "status%d_temp" }, + { .reg = PMBUS_STATUS_FAN_12, .flag = PMBUS_HAVE_STATUS_FAN12, .name = "status%d_fan12" }, + { .reg = PMBUS_STATUS_FAN_34, .flag = PMBUS_HAVE_STATUS_FAN34, .name = "status%d_fan34" }, + { .reg = PMBUS_STATUS_CML, .name = "status%d_cml" }, + { .reg = PMBUS_STATUS_OTHER, .name = "status%d_other" }, + { .reg = PMBUS_STATUS_MFR_SPECIFIC, .name = "status%d_mfr" }, +}; + static void pmbus_init_debugfs(struct i2c_client *client, struct pmbus_data *data) { @@ -3520,7 +3534,7 @@ static void pmbus_init_debugfs(struct i2c_client *client, struct pmbus_debugfs_entry *entries; const char *pathname, *symlink; char name[PMBUS_NAME_SIZE]; - int i, idx = 0; + int page, i, idx = 0; /* * client->debugfs may be NULL or an ERR_PTR(). dentry_path_raw() @@ -3556,11 +3570,12 @@ static void pmbus_init_debugfs(struct i2c_client *client, * Allocate the max possible entries we need. * device specific: * ARRAY_SIZE(pmbus_debugfs_block_data) + 1 - * 10 entries page-specific + * page specific: + * ARRAY_SIZE(pmbus_debugfs_status_data) + 1 */ entries = devm_kcalloc(data->dev, ARRAY_SIZE(pmbus_debugfs_block_data) + 1 + - data->info->pages * 10, + data->info->pages * (ARRAY_SIZE(pmbus_debugfs_status_data) + 1), sizeof(*entries), GFP_KERNEL); if (!entries) return; @@ -3596,107 +3611,32 @@ static void pmbus_init_debugfs(struct i2c_client *client, } /* Add page specific entries */ - for (i = 0; i < data->info->pages; ++i) { + for (page = 0; page < data->info->pages; ++page) { /* Check accessibility of status register if it's not page 0 */ - if (!i || pmbus_check_status_register(client, i)) { + if (!page || pmbus_check_status_register(client, page)) { /* No need to set reg as we have special read op. */ entries[idx].client = client; - entries[idx].page = i; - scnprintf(name, PMBUS_NAME_SIZE, "status%d", i); + entries[idx].page = page; + scnprintf(name, PMBUS_NAME_SIZE, "status%d", page); debugfs_create_file(name, 0444, debugfs, &entries[idx++], &pmbus_debugfs_ops_status); } - if (data->info->func[i] & PMBUS_HAVE_STATUS_VOUT) { - entries[idx].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, debugfs, - &entries[idx++], - &pmbus_debugfs_ops); - } + for (i = 0; i < ARRAY_SIZE(pmbus_debugfs_status_data); i++) { + const struct pmbus_debugfs_data *d = + &pmbus_debugfs_status_data[i]; - if (data->info->func[i] & PMBUS_HAVE_STATUS_IOUT) { - entries[idx].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, debugfs, - &entries[idx++], - &pmbus_debugfs_ops); - } - - if (data->info->func[i] & PMBUS_HAVE_STATUS_INPUT) { - entries[idx].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, debugfs, - &entries[idx++], - &pmbus_debugfs_ops); - } - - if (data->info->func[i] & PMBUS_HAVE_STATUS_TEMP) { - entries[idx].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, debugfs, - &entries[idx++], - &pmbus_debugfs_ops); - } - - if (pmbus_check_byte_register(client, i, PMBUS_STATUS_CML)) { - entries[idx].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, debugfs, - &entries[idx++], - &pmbus_debugfs_ops); - } - - if (pmbus_check_byte_register(client, i, PMBUS_STATUS_OTHER)) { - entries[idx].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, debugfs, - &entries[idx++], - &pmbus_debugfs_ops); - } - - if (pmbus_check_byte_register(client, i, - PMBUS_STATUS_MFR_SPECIFIC)) { - entries[idx].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, debugfs, - &entries[idx++], - &pmbus_debugfs_ops); - } - - if (data->info->func[i] & PMBUS_HAVE_STATUS_FAN12) { - entries[idx].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, debugfs, - &entries[idx++], - &pmbus_debugfs_ops); - } - - if (data->info->func[i] & PMBUS_HAVE_STATUS_FAN34) { - entries[idx].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, debugfs, - &entries[idx++], - &pmbus_debugfs_ops); + if ((data->info->func[page] & d->flag) || + (!d->flag && pmbus_check_byte_register(client, page, d->reg))) { + entries[idx].client = client; + entries[idx].page = page; + entries[idx].reg = d->reg; + scnprintf(name, PMBUS_NAME_SIZE, d->name, page); + debugfs_create_file(name, 0444, debugfs, + &entries[idx++], + &pmbus_debugfs_ops); + } } } } From patchwork Tue Feb 11 15:52:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guenter Roeck X-Patchwork-Id: 13969926 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (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 D54A4253F09 for ; Tue, 11 Feb 2025 15:52:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289181; cv=none; b=PHnP0+RBb9EVGl3Hb7tFXkcEXnjSNORouVdUkGWu9sfTynWUZt0aE6Xe/srnZV/0axYx3fMZ/B18klgwyb/9lhYM/PBI+CCQWiXu5njcPsWZSKahCnlRkId6Ddf2xJJJi/NQ9cQkpWKu2vbBaOZj8lwCDHeuB+KkBrz+sLXDIaE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739289181; c=relaxed/simple; bh=9TAhblHUf19WWcrTx4thdvfqQC1xuDKGrt9h50Lplwg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X7Vg7tWK3fN5to00hIxWKcGAm+mPfuqxJe3GZIThlBzWFpAZ5qt8yMl/BLn8rrdHU99eBE6tZn5TZZ7NYQEiIi12zbZD02kWeSGFkhEAbwFkfAfoxc+6EaXH9+CA/IIzP6gBc5GYS8mYceFugVvp+h3K2TDqY1t/MogHI6m3Mro= 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=IcRQJHMK; arc=none smtp.client-ip=209.85.214.177 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="IcRQJHMK" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-21c2f1b610dso139430695ad.0 for ; Tue, 11 Feb 2025 07:52:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739289179; x=1739893979; 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=w4uwK3zgkOgZBJZqsrCjAZlHOEdEzMZJOcg4UjIAi6U=; b=IcRQJHMK58uXaqkgkQALlhgb+jGcKSykj3O0TpuAW0nmJyc6JOkbhFZeB3VdHn7FDD nrJTp4qdkuR0LQEsLSTXB7/7RF24T/52NfHrdtYcCbWJIA3aGE58QpxTtC4gGDR+HS7y 4UwcUG5zASU8LlptBKuLXohycQooJL8PZMUFrh+GkYgbXbKAqJjUtaYct+PAspLRruzO nIdNkm31dQ/GMTYICLKnPzYHSrnOw6fn59n0upVCMJHZ53y3p4/ux7cUxxWJZyCx1T5g 03SEUZxUsu8HOHrHpAZ1HU8M+kqiZRi11Y+7R/AsSdheypypu+2jRw2JpUdkIuSNaSyC igkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739289179; x=1739893979; 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=w4uwK3zgkOgZBJZqsrCjAZlHOEdEzMZJOcg4UjIAi6U=; b=AVJbJqe03Op3DYeKvmEL6Axz0acJFs1iY8WNnMaW8UmEkzuV5DsJ8zu81ybp2NRui2 JhZayN9xKNiQ5u+u15ubfN5C9y+MW4LDQ2FvnjaE6W0o9J456Ms+PIrBOFN0aezX82b7 6i83MmM0SsxGfmf/9YTCMwikUZqsA7Hg8efY3r/qyqyHPfNQA4z8jLytGpkzS3jHYcHh Yzv/idZWUv/Zn1QXh+1JuDfSM3tdy+9vs6ai9TmTBuBTGM5z+VR2U1nIMOpOhryw0t2b wQG3aujGMLuFrErGcOF38vHq2z5OaxXvrGoZHWb+n+uBMOKaLokq+uIcZvf4pBG49/5n De+w== X-Gm-Message-State: AOJu0Yw0AXpr7BMwGPs87BuKF5RT/nBqKE+huxq+fZxmPoboC0ZgTDXG W3TGCwOVAH5cj9LqocsG01xv68Q262DcqWGGbpJ47WVXdAy5bYMNYrVnDw== X-Gm-Gg: ASbGncv29svEpp+kZczNkl4JBCB5g146sH97r1E0vheZlwzz9AA4Ds+bGqZsePrUaV/ eQXqgolI7+yEHbsn03HNQ9tmIlH1VTx8fqTGhcFDS8GjFrhz4GwEhJ9cKp1/zvz95qaP4bSKFFC wx77uG0vUpIbtT7lBLBsM/Q2EWqFm67oidBBrOvMQ6YM5vE2sXUX2/c9Tj/rJk6UEh40+QcIaVy mZ6DaR2FntPS1zp/E/xPtfYeSNg7DVQb4RBqbqcIEOWtT+LVY4XA+PhjwvSWEfUhV/cRkxiUR7E HNXbmhaPlq7V+1CKM1OD6DT67lLq X-Google-Smtp-Source: AGHT+IG7KQ3yZ6ueh84UQbdxAEhgzGltVUzJfuRxGH/4Hv86lX2wE2yoP8jAhovwP7jlmoL0+nrFig== X-Received: by 2002:a17:902:f685:b0:21f:2cb4:963 with SMTP id d9443c01a7336-21f4e7f2369mr274943685ad.50.1739289178697; Tue, 11 Feb 2025 07:52:58 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21f368d79a7sm97631775ad.253.2025.02.11.07.52.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Feb 2025 07:52:58 -0800 (PST) Sender: Guenter Roeck From: Guenter Roeck To: linux-hwmon@vger.kernel.org Cc: Wolfram Sang , Guenter Roeck Subject: [PATCH v2 8/8] hwmon: (pmbus/core) Report content of CAPABILITY register in debugfs Date: Tue, 11 Feb 2025 07:52:40 -0800 Message-ID: <20250211155240.2077464-9-linux@roeck-us.net> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250211155240.2077464-1-linux@roeck-us.net> References: <20250211155240.2077464-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 Report the value of the CAPABILITY register in debugfs if supported. Only check if the register is supported if PMBUS_NO_CAPABILITY is not set. Signed-off-by: Guenter Roeck Reviewed-by: Tzung-Bi Shih --- v2: Fix number of debugfs files drivers/hwmon/pmbus/pmbus_core.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c index f0f8b7ed5416..8625de9caff7 100644 --- a/drivers/hwmon/pmbus/pmbus_core.c +++ b/drivers/hwmon/pmbus/pmbus_core.c @@ -3569,12 +3569,12 @@ static void pmbus_init_debugfs(struct i2c_client *client, /* * Allocate the max possible entries we need. * device specific: - * ARRAY_SIZE(pmbus_debugfs_block_data) + 1 + * ARRAY_SIZE(pmbus_debugfs_block_data) + 2 * page specific: * ARRAY_SIZE(pmbus_debugfs_status_data) + 1 */ entries = devm_kcalloc(data->dev, - ARRAY_SIZE(pmbus_debugfs_block_data) + 1 + + ARRAY_SIZE(pmbus_debugfs_block_data) + 2 + data->info->pages * (ARRAY_SIZE(pmbus_debugfs_status_data) + 1), sizeof(*entries), GFP_KERNEL); if (!entries) @@ -3588,6 +3588,15 @@ static void pmbus_init_debugfs(struct i2c_client *client, * assume that values of the following registers are the same for all * pages and report values only for page 0. */ + if (!(data->flags & PMBUS_NO_CAPABILITY) && + pmbus_check_byte_register(client, 0, PMBUS_CAPABILITY)) { + entries[idx].client = client; + entries[idx].page = 0; + entries[idx].reg = PMBUS_CAPABILITY; + debugfs_create_file("capability", 0444, debugfs, + &entries[idx++], + &pmbus_debugfs_ops); + } if (pmbus_check_byte_register(client, 0, PMBUS_REVISION)) { entries[idx].client = client; entries[idx].page = 0;