Thread (4 messages) 4 messages, 4 authors, 2021-09-09

RE: [PATCH] thermal: int340x: Use IMOK independently

From: "Zhang, Rui" <rui.zhang@intel.com>
Date: 2021-07-27 02:32:28
Also in: lkml

-----Original Message-----
From: Pawnikar, Sumeet R <redacted>
Sent: Saturday, July 17, 2021 12:40 AM
To: Zhang, Rui <rui.zhang@intel.com>; srinivas.pandruvada@linux.intel.com;
daniel.lezcano@linaro.org; linux-pm@vger.kernel.org; linux-
kernel@vger.kernel.org
Cc: Pawnikar, Sumeet R <redacted>
Subject: [PATCH] thermal: int340x: Use IMOK independently
Importance: High

Some chrome platform requires IMOK method in coreboot. But these
platforms don't use GDDV data vault in coreboot. As per current code flow,
to enable and use IMOK only, we need to have GDDV support as well in
coreboot. This patch removes the dependency for IMOK from GDDV to
enable and use IMOK independently.

Signed-off-by: Sumeet Pawnikar <redacted>
Acked-by: Zhang Rui <rui.zhang@intel.com>

Thanks,
Rui
quoted hunk ↗ jump to hunk
---
 .../intel/int340x_thermal/int3400_thermal.c        | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
index 823354a1a91a..19926beeb3b7 100644
--- a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
+++ b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
@@ -108,9 +108,12 @@ static struct attribute *imok_attr[] = {
 	NULL
 };

+static const struct attribute_group imok_attribute_group = {
+	.attrs = imok_attr,
+};
+
 static const struct attribute_group data_attribute_group = {
 	.bin_attrs = data_attributes,
-	.attrs = imok_attr,
 };

 static ssize_t available_uuids_show(struct device *dev, @@ -522,6 +525,12
@@ static int int3400_thermal_probe(struct platform_device *pdev)
 	if (result)
 		goto free_rel_misc;

+	if (acpi_has_method(priv->adev->handle, "IMOK")) {
+		result = sysfs_create_group(&pdev->dev.kobj,
&imok_attribute_group);
+		if (result)
+			goto free_imok;
+	}
+
 	if (priv->data_vault) {
 		result = sysfs_create_group(&pdev->dev.kobj,
 					    &data_attribute_group);
@@ -545,6 +554,8 @@ static int int3400_thermal_probe(struct
platform_device *pdev)
 	}
 free_uuid:
 	sysfs_remove_group(&pdev->dev.kobj, &uuid_attribute_group);
+free_imok:
+	sysfs_remove_group(&pdev->dev.kobj, &imok_attribute_group);
 free_rel_misc:
 	if (!priv->rel_misc_dev_res)
 		acpi_thermal_rel_misc_device_remove(priv->adev->handle);
@@ -573,6 +584,7 @@ static int int3400_thermal_remove(struct
platform_device *pdev)
 	if (priv->data_vault)
 		sysfs_remove_group(&pdev->dev.kobj,
&data_attribute_group);
 	sysfs_remove_group(&pdev->dev.kobj, &uuid_attribute_group);
+	sysfs_remove_group(&pdev->dev.kobj, &imok_attribute_group);
 	thermal_zone_device_unregister(priv->thermal);
 	kfree(priv->data_vault);
 	kfree(priv->trts);
--
2.17.1
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help