[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <b16a4f13-7572-0e99-d8bb-d758b019a31a@linux.intel.com>
Date: Wed, 15 Jan 2025 16:18:14 +0200 (EET)
From: Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>
To: Ron Li <xiangrongl@...dia.com>
cc: vadimp@...dia.com, Hans de Goede <hdegoede@...hat.com>,
davthompson@...dia.com, asmaa@...dia.com,
platform-driver-x86@...r.kernel.org, LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v1] mlxbf-bootctl: Supports RTC battery status read and
clear
Hi,
In the subject:
Supports -> Support
On Tue, 14 Jan 2025, Ron Li wrote:
> Enable read and clear of the RTC battery low voltage status bit from user space.
>
> Signed-off-by: Xiangrong Li <xiangrongl@...dia.com>
> Reviewed-by: David Thompson <davthompson@...dia.com>
> ---
> drivers/platform/mellanox/mlxbf-bootctl.c | 20 ++++++++++++++++++++
> drivers/platform/mellanox/mlxbf-bootctl.h | 5 +++++
> 2 files changed, 25 insertions(+)
>
> diff --git a/drivers/platform/mellanox/mlxbf-bootctl.c b/drivers/platform/mellanox/mlxbf-bootctl.c
> index c5b36837e694..bc31061f779c 100644
> --- a/drivers/platform/mellanox/mlxbf-bootctl.c
> +++ b/drivers/platform/mellanox/mlxbf-bootctl.c
> @@ -91,6 +91,7 @@ static const char * const mlxbf_rsh_log_level[] = {
> static DEFINE_MUTEX(icm_ops_lock);
> static DEFINE_MUTEX(os_up_lock);
> static DEFINE_MUTEX(mfg_ops_lock);
> +static DEFINE_MUTEX(rtc_ops_lock);
>
> /*
> * Objects are stored within the MFG partition per type.
> @@ -489,6 +490,23 @@ static ssize_t large_icm_store(struct device *dev,
> return res.a0 ? -EPERM : count;
> }
>
> +static ssize_t rtc_battery_show(struct device *dev,
> + struct device_attribute *attr,
> + char *buf)
> +{
> + struct arm_smccc_res res;
> +
> + mutex_lock(&rtc_ops_lock);
> + arm_smccc_smc(MLNX_HANDLE_GET_RTC_LOW_BATT, 0, 0, 0, 0,
> + 0, 0, 0, &res);
> + mutex_unlock(&rtc_ops_lock);
> +
> + if (res.a0)
> + return -EPERM;
> +
> + return sysfs_emit(buf, "0x%lx\n", res.a1);
> +}
> +
> static ssize_t os_up_store(struct device *dev,
> struct device_attribute *attr,
> const char *buf, size_t count)
> @@ -906,6 +924,7 @@ static DEVICE_ATTR_RW(sn);
> static DEVICE_ATTR_RW(uuid);
> static DEVICE_ATTR_RW(rev);
> static DEVICE_ATTR_WO(mfg_lock);
> +static DEVICE_ATTR_RO(rtc_battery);
>
> static struct attribute *mlxbf_bootctl_attrs[] = {
> &dev_attr_post_reset_wdog.attr,
> @@ -925,6 +944,7 @@ static struct attribute *mlxbf_bootctl_attrs[] = {
> &dev_attr_uuid.attr,
> &dev_attr_rev.attr,
> &dev_attr_mfg_lock.attr,
> + &dev_attr_rtc_battery.attr,
> NULL
> };
>
> diff --git a/drivers/platform/mellanox/mlxbf-bootctl.h b/drivers/platform/mellanox/mlxbf-bootctl.h
> index 1299750a8661..90bbbdc65879 100644
> --- a/drivers/platform/mellanox/mlxbf-bootctl.h
> +++ b/drivers/platform/mellanox/mlxbf-bootctl.h
> @@ -103,6 +103,11 @@
> */
> #define MLNX_HANDLE_OS_UP 0x82000014
>
> +/*
> + * SMC function ID to get and clear the RTC low voltage bit
> + */
> +#define MLNX_HANDLE_GET_RTC_LOW_BATT 0x82000023
> +
> /* SMC function IDs for SiP Service queries */
> #define MLXBF_BOOTCTL_SIP_SVC_CALL_COUNT 0x8200ff00
> #define MLXBF_BOOTCTL_SIP_SVC_UID 0x8200ff01
This change is missing Documentation/ABI for the new sysfs entry.
Please add the documentation and resubmit as v2.
--
i.
Powered by blists - more mailing lists