All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.