Commit f1b07a14 authored by Sumeet Pawnikar's avatar Sumeet Pawnikar Committed by Daniel Lezcano

thermal/drivers/int340x: Use IMOK independently

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: default avatarSumeet Pawnikar <sumeet.r.pawnikar@intel.com>
Acked-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Acked-by: default avatarZhang Rui <rui.zhang@intel.com>
Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20210716163946.3142-1-sumeet.r.pawnikar@intel.com
parent b5f7912b
...@@ -108,9 +108,12 @@ static struct attribute *imok_attr[] = { ...@@ -108,9 +108,12 @@ static struct attribute *imok_attr[] = {
NULL NULL
}; };
static const struct attribute_group imok_attribute_group = {
.attrs = imok_attr,
};
static const struct attribute_group data_attribute_group = { static const struct attribute_group data_attribute_group = {
.bin_attrs = data_attributes, .bin_attrs = data_attributes,
.attrs = imok_attr,
}; };
static ssize_t available_uuids_show(struct device *dev, static ssize_t available_uuids_show(struct device *dev,
...@@ -522,6 +525,12 @@ static int int3400_thermal_probe(struct platform_device *pdev) ...@@ -522,6 +525,12 @@ static int int3400_thermal_probe(struct platform_device *pdev)
if (result) if (result)
goto free_rel_misc; 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) { if (priv->data_vault) {
result = sysfs_create_group(&pdev->dev.kobj, result = sysfs_create_group(&pdev->dev.kobj,
&data_attribute_group); &data_attribute_group);
...@@ -545,6 +554,8 @@ static int int3400_thermal_probe(struct platform_device *pdev) ...@@ -545,6 +554,8 @@ static int int3400_thermal_probe(struct platform_device *pdev)
} }
free_uuid: free_uuid:
sysfs_remove_group(&pdev->dev.kobj, &uuid_attribute_group); sysfs_remove_group(&pdev->dev.kobj, &uuid_attribute_group);
free_imok:
sysfs_remove_group(&pdev->dev.kobj, &imok_attribute_group);
free_rel_misc: free_rel_misc:
if (!priv->rel_misc_dev_res) if (!priv->rel_misc_dev_res)
acpi_thermal_rel_misc_device_remove(priv->adev->handle); acpi_thermal_rel_misc_device_remove(priv->adev->handle);
...@@ -573,6 +584,7 @@ static int int3400_thermal_remove(struct platform_device *pdev) ...@@ -573,6 +584,7 @@ static int int3400_thermal_remove(struct platform_device *pdev)
if (priv->data_vault) if (priv->data_vault)
sysfs_remove_group(&pdev->dev.kobj, &data_attribute_group); sysfs_remove_group(&pdev->dev.kobj, &data_attribute_group);
sysfs_remove_group(&pdev->dev.kobj, &uuid_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); thermal_zone_device_unregister(priv->thermal);
kfree(priv->data_vault); kfree(priv->data_vault);
kfree(priv->trts); kfree(priv->trts);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment