* [PATCH 0/2] thermal: int340x: processor_thermal: Add additional
@ 2021-05-17 6:14 Srinivas Pandruvada
2021-05-17 6:14 ` [PATCH 1/2] thermal: int340x: processor_thermal: Export mailbox interface Srinivas Pandruvada
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Srinivas Pandruvada @ 2021-05-17 6:14 UTC (permalink / raw)
To: daniel.lezcano, rui.zhang, amitk
Cc: linux-pm, linux-kernel, Srinivas Pandruvada
Add additional attributes to RFIM, which use mailbox commands.
Srinivas Pandruvada (2):
thermal: int340x: processor_thermal: Export mailbox interface
thermal: int340x: processor_thermal: Export additional attributes
.../processor_thermal_device.h | 2 +
.../int340x_thermal/processor_thermal_mbox.c | 12 +++-
.../int340x_thermal/processor_thermal_rfim.c | 55 +++++++++++++++++++
3 files changed, 66 insertions(+), 3 deletions(-)
--
2.27.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] thermal: int340x: processor_thermal: Export mailbox interface
2021-05-17 6:14 [PATCH 0/2] thermal: int340x: processor_thermal: Add additional Srinivas Pandruvada
@ 2021-05-17 6:14 ` Srinivas Pandruvada
2021-06-21 9:46 ` [thermal: thermal/next] thermal/drivers/int340x: " thermal-bot for Srinivas Pandruvada
2021-05-17 6:14 ` [PATCH 2/2] thermal: int340x: processor_thermal: Export additional attributes Srinivas Pandruvada
2021-07-06 8:26 ` [PATCH 0/2] thermal: int340x: processor_thermal: Add additional You-Sheng Yang
2 siblings, 1 reply; 6+ messages in thread
From: Srinivas Pandruvada @ 2021-05-17 6:14 UTC (permalink / raw)
To: daniel.lezcano, rui.zhang, amitk
Cc: linux-pm, linux-kernel, Srinivas Pandruvada
Export the mailbox interface to be used by other modules. Also change
command id and response from u8 to u32 data type.
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
---
.../intel/int340x_thermal/processor_thermal_device.h | 2 ++
.../intel/int340x_thermal/processor_thermal_mbox.c | 12 +++++++++---
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h
index b9ed64561aaf..3161607424f5 100644
--- a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h
+++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h
@@ -79,4 +79,6 @@ void proc_thermal_rfim_remove(struct pci_dev *pdev);
int proc_thermal_mbox_add(struct pci_dev *pdev, struct proc_thermal_device *proc_priv);
void proc_thermal_mbox_remove(struct pci_dev *pdev);
+int processor_thermal_send_mbox_cmd(struct pci_dev *pdev, u16 cmd_id, u32 cmd_data, u32 *cmd_resp);
+
#endif
diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_mbox.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_mbox.c
index 990f51f22884..59e93b04f0a9 100644
--- a/drivers/thermal/intel/int340x_thermal/processor_thermal_mbox.c
+++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_mbox.c
@@ -23,7 +23,7 @@
static DEFINE_MUTEX(mbox_lock);
-static int send_mbox_cmd(struct pci_dev *pdev, u8 cmd_id, u32 cmd_data, u8 *cmd_resp)
+static int send_mbox_cmd(struct pci_dev *pdev, u16 cmd_id, u32 cmd_data, u32 *cmd_resp)
{
struct proc_thermal_device *proc_priv;
u32 retries, data;
@@ -82,6 +82,12 @@ static int send_mbox_cmd(struct pci_dev *pdev, u8 cmd_id, u32 cmd_data, u8 *cmd_
return ret;
}
+int processor_thermal_send_mbox_cmd(struct pci_dev *pdev, u16 cmd_id, u32 cmd_data, u32 *cmd_resp)
+{
+ return send_mbox_cmd(pdev, cmd_id, cmd_data, cmd_resp);
+}
+EXPORT_SYMBOL_GPL(processor_thermal_send_mbox_cmd);
+
/* List of workload types */
static const char * const workload_types[] = {
"none",
@@ -147,7 +153,7 @@ static ssize_t workload_type_show(struct device *dev,
char *buf)
{
struct pci_dev *pdev = to_pci_dev(dev);
- u8 cmd_resp;
+ u32 cmd_resp;
int ret;
ret = send_mbox_cmd(pdev, MBOX_CMD_WORKLOAD_TYPE_READ, 0, &cmd_resp);
@@ -181,7 +187,7 @@ static bool workload_req_created;
int proc_thermal_mbox_add(struct pci_dev *pdev, struct proc_thermal_device *proc_priv)
{
- u8 cmd_resp;
+ u32 cmd_resp;
int ret;
/* Check if there is a mailbox support, if fails return success */
--
2.27.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] thermal: int340x: processor_thermal: Export additional attributes
2021-05-17 6:14 [PATCH 0/2] thermal: int340x: processor_thermal: Add additional Srinivas Pandruvada
2021-05-17 6:14 ` [PATCH 1/2] thermal: int340x: processor_thermal: Export mailbox interface Srinivas Pandruvada
@ 2021-05-17 6:14 ` Srinivas Pandruvada
2021-06-21 9:46 ` [thermal: thermal/next] thermal/drivers/int340x: " thermal-bot for Srinivas Pandruvada
2021-07-06 8:26 ` [PATCH 0/2] thermal: int340x: processor_thermal: Add additional You-Sheng Yang
2 siblings, 1 reply; 6+ messages in thread
From: Srinivas Pandruvada @ 2021-05-17 6:14 UTC (permalink / raw)
To: daniel.lezcano, rui.zhang, amitk
Cc: linux-pm, linux-kernel, Srinivas Pandruvada
Export additional attributes:
ddr_data_rate (RO) : Show current DDR (Double Data Rate) data rate.
rfi_restriction (RW) : Show or set current state for RFI (Radio
Frequency Interference) protection.
These attributes use mailbox commands to get/set information. Here
command codes are:
0x0007: Read RFI restriction
0x0107: Read DDR data rate
0x0008: Write RFI restriction
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
---
.../int340x_thermal/processor_thermal_rfim.c | 55 +++++++++++++++++++
1 file changed, 55 insertions(+)
diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c
index aef993a813e2..2b8a3235d518 100644
--- a/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c
+++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c
@@ -190,6 +190,59 @@ static DEVICE_ATTR_RO(ddr_data_rate_point_2);
static DEVICE_ATTR_RO(ddr_data_rate_point_3);
static DEVICE_ATTR_RW(rfi_disable);
+static ssize_t rfi_restriction_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ u16 cmd_id = 0x0008;
+ u32 cmd_resp;
+ u32 input;
+ int ret;
+
+ ret = kstrtou32(buf, 10, &input);
+ if (ret)
+ return ret;
+
+ ret = processor_thermal_send_mbox_cmd(to_pci_dev(dev), cmd_id, input, &cmd_resp);
+ if (ret)
+ return ret;
+
+ return count;
+}
+
+static ssize_t rfi_restriction_show(struct device *dev,
+ struct device_attribute *attr,
+ char *buf)
+{
+ u16 cmd_id = 0x0007;
+ u32 cmd_resp;
+ int ret;
+
+ ret = processor_thermal_send_mbox_cmd(to_pci_dev(dev), cmd_id, 0, &cmd_resp);
+ if (ret)
+ return ret;
+
+ return sprintf(buf, "%u\n", cmd_resp);
+}
+
+static ssize_t ddr_data_rate_show(struct device *dev,
+ struct device_attribute *attr,
+ char *buf)
+{
+ u16 cmd_id = 0x0107;
+ u32 cmd_resp;
+ int ret;
+
+ ret = processor_thermal_send_mbox_cmd(to_pci_dev(dev), cmd_id, 0, &cmd_resp);
+ if (ret)
+ return ret;
+
+ return sprintf(buf, "%u\n", cmd_resp);
+}
+
+static DEVICE_ATTR_RW(rfi_restriction);
+static DEVICE_ATTR_RO(ddr_data_rate);
+
static struct attribute *dvfs_attrs[] = {
&dev_attr_rfi_restriction_run_busy.attr,
&dev_attr_rfi_restriction_err_code.attr,
@@ -199,6 +252,8 @@ static struct attribute *dvfs_attrs[] = {
&dev_attr_ddr_data_rate_point_2.attr,
&dev_attr_ddr_data_rate_point_3.attr,
&dev_attr_rfi_disable.attr,
+ &dev_attr_ddr_data_rate.attr,
+ &dev_attr_rfi_restriction.attr,
NULL
};
--
2.27.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [thermal: thermal/next] thermal/drivers/int340x: processor_thermal: Export mailbox interface
2021-05-17 6:14 ` [PATCH 1/2] thermal: int340x: processor_thermal: Export mailbox interface Srinivas Pandruvada
@ 2021-06-21 9:46 ` thermal-bot for Srinivas Pandruvada
0 siblings, 0 replies; 6+ messages in thread
From: thermal-bot for Srinivas Pandruvada @ 2021-06-21 9:46 UTC (permalink / raw)
To: linux-pm; +Cc: Srinivas Pandruvada, Daniel Lezcano, rui.zhang, amitk
The following commit has been merged into the thermal/next branch of thermal:
Commit-ID: fb5a6ec80367bcccb659a421850d757a5a81767a
Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git//fb5a6ec80367bcccb659a421850d757a5a81767a
Author: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
AuthorDate: Sun, 16 May 2021 23:14:40 -07:00
Committer: Daniel Lezcano <daniel.lezcano@linaro.org>
CommitterDate: Fri, 11 Jun 2021 11:54:42 +02:00
thermal/drivers/int340x: processor_thermal: Export mailbox interface
Export the mailbox interface to be used by other modules. Also change
command id and response from u8 to u32 data type.
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20210517061441.1921901-2-srinivas.pandruvada@linux.intel.com
---
drivers/thermal/intel/int340x_thermal/processor_thermal_device.h | 2 ++
drivers/thermal/intel/int340x_thermal/processor_thermal_mbox.c | 12 +++++++++---
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h
index b9ed645..3161607 100644
--- a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h
+++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h
@@ -79,4 +79,6 @@ void proc_thermal_rfim_remove(struct pci_dev *pdev);
int proc_thermal_mbox_add(struct pci_dev *pdev, struct proc_thermal_device *proc_priv);
void proc_thermal_mbox_remove(struct pci_dev *pdev);
+int processor_thermal_send_mbox_cmd(struct pci_dev *pdev, u16 cmd_id, u32 cmd_data, u32 *cmd_resp);
+
#endif
diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_mbox.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_mbox.c
index 990f51f..59e93b0 100644
--- a/drivers/thermal/intel/int340x_thermal/processor_thermal_mbox.c
+++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_mbox.c
@@ -23,7 +23,7 @@
static DEFINE_MUTEX(mbox_lock);
-static int send_mbox_cmd(struct pci_dev *pdev, u8 cmd_id, u32 cmd_data, u8 *cmd_resp)
+static int send_mbox_cmd(struct pci_dev *pdev, u16 cmd_id, u32 cmd_data, u32 *cmd_resp)
{
struct proc_thermal_device *proc_priv;
u32 retries, data;
@@ -82,6 +82,12 @@ unlock_mbox:
return ret;
}
+int processor_thermal_send_mbox_cmd(struct pci_dev *pdev, u16 cmd_id, u32 cmd_data, u32 *cmd_resp)
+{
+ return send_mbox_cmd(pdev, cmd_id, cmd_data, cmd_resp);
+}
+EXPORT_SYMBOL_GPL(processor_thermal_send_mbox_cmd);
+
/* List of workload types */
static const char * const workload_types[] = {
"none",
@@ -147,7 +153,7 @@ static ssize_t workload_type_show(struct device *dev,
char *buf)
{
struct pci_dev *pdev = to_pci_dev(dev);
- u8 cmd_resp;
+ u32 cmd_resp;
int ret;
ret = send_mbox_cmd(pdev, MBOX_CMD_WORKLOAD_TYPE_READ, 0, &cmd_resp);
@@ -181,7 +187,7 @@ static bool workload_req_created;
int proc_thermal_mbox_add(struct pci_dev *pdev, struct proc_thermal_device *proc_priv)
{
- u8 cmd_resp;
+ u32 cmd_resp;
int ret;
/* Check if there is a mailbox support, if fails return success */
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [thermal: thermal/next] thermal/drivers/int340x: processor_thermal: Export additional attributes
2021-05-17 6:14 ` [PATCH 2/2] thermal: int340x: processor_thermal: Export additional attributes Srinivas Pandruvada
@ 2021-06-21 9:46 ` thermal-bot for Srinivas Pandruvada
0 siblings, 0 replies; 6+ messages in thread
From: thermal-bot for Srinivas Pandruvada @ 2021-06-21 9:46 UTC (permalink / raw)
To: linux-pm; +Cc: Srinivas Pandruvada, Daniel Lezcano, rui.zhang, amitk
The following commit has been merged into the thermal/next branch of thermal:
Commit-ID: 5d6fbc96bd36cfec7bbc0578ad3986affdeb70de
Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git//5d6fbc96bd36cfec7bbc0578ad3986affdeb70de
Author: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
AuthorDate: Sun, 16 May 2021 23:14:41 -07:00
Committer: Daniel Lezcano <daniel.lezcano@linaro.org>
CommitterDate: Fri, 11 Jun 2021 11:55:47 +02:00
thermal/drivers/int340x: processor_thermal: Export additional attributes
Export additional attributes:
ddr_data_rate (RO) : Show current DDR (Double Data Rate) data rate.
rfi_restriction (RW) : Show or set current state for RFI (Radio
Frequency Interference) protection.
These attributes use mailbox commands to get/set information. Here
command codes are:
0x0007: Read RFI restriction
0x0107: Read DDR data rate
0x0008: Write RFI restriction
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20210517061441.1921901-3-srinivas.pandruvada@linux.intel.com
---
drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c | 55 +++++++-
1 file changed, 55 insertions(+)
diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c
index aef993a..2b8a323 100644
--- a/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c
+++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c
@@ -190,6 +190,59 @@ static DEVICE_ATTR_RO(ddr_data_rate_point_2);
static DEVICE_ATTR_RO(ddr_data_rate_point_3);
static DEVICE_ATTR_RW(rfi_disable);
+static ssize_t rfi_restriction_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ u16 cmd_id = 0x0008;
+ u32 cmd_resp;
+ u32 input;
+ int ret;
+
+ ret = kstrtou32(buf, 10, &input);
+ if (ret)
+ return ret;
+
+ ret = processor_thermal_send_mbox_cmd(to_pci_dev(dev), cmd_id, input, &cmd_resp);
+ if (ret)
+ return ret;
+
+ return count;
+}
+
+static ssize_t rfi_restriction_show(struct device *dev,
+ struct device_attribute *attr,
+ char *buf)
+{
+ u16 cmd_id = 0x0007;
+ u32 cmd_resp;
+ int ret;
+
+ ret = processor_thermal_send_mbox_cmd(to_pci_dev(dev), cmd_id, 0, &cmd_resp);
+ if (ret)
+ return ret;
+
+ return sprintf(buf, "%u\n", cmd_resp);
+}
+
+static ssize_t ddr_data_rate_show(struct device *dev,
+ struct device_attribute *attr,
+ char *buf)
+{
+ u16 cmd_id = 0x0107;
+ u32 cmd_resp;
+ int ret;
+
+ ret = processor_thermal_send_mbox_cmd(to_pci_dev(dev), cmd_id, 0, &cmd_resp);
+ if (ret)
+ return ret;
+
+ return sprintf(buf, "%u\n", cmd_resp);
+}
+
+static DEVICE_ATTR_RW(rfi_restriction);
+static DEVICE_ATTR_RO(ddr_data_rate);
+
static struct attribute *dvfs_attrs[] = {
&dev_attr_rfi_restriction_run_busy.attr,
&dev_attr_rfi_restriction_err_code.attr,
@@ -199,6 +252,8 @@ static struct attribute *dvfs_attrs[] = {
&dev_attr_ddr_data_rate_point_2.attr,
&dev_attr_ddr_data_rate_point_3.attr,
&dev_attr_rfi_disable.attr,
+ &dev_attr_ddr_data_rate.attr,
+ &dev_attr_rfi_restriction.attr,
NULL
};
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] thermal: int340x: processor_thermal: Add additional
2021-05-17 6:14 [PATCH 0/2] thermal: int340x: processor_thermal: Add additional Srinivas Pandruvada
2021-05-17 6:14 ` [PATCH 1/2] thermal: int340x: processor_thermal: Export mailbox interface Srinivas Pandruvada
2021-05-17 6:14 ` [PATCH 2/2] thermal: int340x: processor_thermal: Export additional attributes Srinivas Pandruvada
@ 2021-07-06 8:26 ` You-Sheng Yang
2 siblings, 0 replies; 6+ messages in thread
From: You-Sheng Yang @ 2021-07-06 8:26 UTC (permalink / raw)
To: Srinivas Pandruvada
Cc: linux-pm, linux-kernel, daniel.lezcano, amitk, rui.zhang
Works for me for bringing up PCI MMIO based thermal device.
Tested-by: You-Sheng Yang <vicamo.yang@canonical.com>
On 5/17/21 2:14 PM, Srinivas Pandruvada wrote:
> Add additional attributes to RFIM, which use mailbox commands.
>
> Srinivas Pandruvada (2):
> thermal: int340x: processor_thermal: Export mailbox interface
> thermal: int340x: processor_thermal: Export additional attributes
>
> .../processor_thermal_device.h | 2 +
> .../int340x_thermal/processor_thermal_mbox.c | 12 +++-
> .../int340x_thermal/processor_thermal_rfim.c | 55 +++++++++++++++++++
> 3 files changed, 66 insertions(+), 3 deletions(-)
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-07-06 8:26 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-17 6:14 [PATCH 0/2] thermal: int340x: processor_thermal: Add additional Srinivas Pandruvada
2021-05-17 6:14 ` [PATCH 1/2] thermal: int340x: processor_thermal: Export mailbox interface Srinivas Pandruvada
2021-06-21 9:46 ` [thermal: thermal/next] thermal/drivers/int340x: " thermal-bot for Srinivas Pandruvada
2021-05-17 6:14 ` [PATCH 2/2] thermal: int340x: processor_thermal: Export additional attributes Srinivas Pandruvada
2021-06-21 9:46 ` [thermal: thermal/next] thermal/drivers/int340x: " thermal-bot for Srinivas Pandruvada
2021-07-06 8:26 ` [PATCH 0/2] thermal: int340x: processor_thermal: Add additional You-Sheng Yang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.