mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: rafael@kernel.org, rui.zhang@intel.com
Cc: amitk@kernel.org, Sujith Thomas <sujith.thomas@intel.com>,
	"open list:INTEL MENLOW THERMAL DRIVER"
	<linux-pm@vger.kernel.org>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v1 03/11] thermal/drivers/intel_menlow: Remove add_one_attribute
Date: Mon, 13 Mar 2023 11:55:06 +0100	[thread overview]
Message-ID: <ca4e9523-0d12-c29f-6de1-365d1713ec84@linaro.org> (raw)
In-Reply-To: <20230307133735.90772-4-daniel.lezcano@linaro.org>


Hi,

is this code removal acceptable ?


On 07/03/2023 14:37, Daniel Lezcano wrote:
> The driver hooks the thermal framework sysfs to add some driver
> specific information. A debatable approach as that may belong the
> device sysfs directory, not the thermal zone directory.
> 
> As the driver is accessing the thermal internals, we should provide at
> least an API to the thermal framework to add an attribute to the
> existing sysfs thermal zone entry.
> 
> Before doing that and given the age of the driver (2008) may be it is
> worth to double check if these attributes are really needed. So my
> first proposal is to remove them if that does not hurt.
> 
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>



> ---
>   drivers/thermal/intel/intel_menlow.c | 193 ---------------------------
>   1 file changed, 193 deletions(-)
> 
> diff --git a/drivers/thermal/intel/intel_menlow.c b/drivers/thermal/intel/intel_menlow.c
> index 5a6ad0552311..5a9738a93083 100644
> --- a/drivers/thermal/intel/intel_menlow.c
> +++ b/drivers/thermal/intel/intel_menlow.c
> @@ -230,174 +230,8 @@ struct intel_menlow_attribute {
>   static LIST_HEAD(intel_menlow_attr_list);
>   static DEFINE_MUTEX(intel_menlow_attr_lock);
>   
> -/*
> - * sensor_get_auxtrip - get the current auxtrip value from sensor
> - * @handle: Object handle
> - * @index : GET_AUX1/GET_AUX0
> - * @value : The address will be fill by the value
> - */
> -static int sensor_get_auxtrip(acpi_handle handle, int index,
> -							unsigned long long *value)
> -{
> -	acpi_status status;
> -
> -	if ((index != 0 && index != 1) || !value)
> -		return -EINVAL;
> -
> -	status = acpi_evaluate_integer(handle, index ? GET_AUX1 : GET_AUX0,
> -				       NULL, value);
> -	if (ACPI_FAILURE(status))
> -		return -EIO;
> -
> -	return 0;
> -}
> -
> -/*
> - * sensor_set_auxtrip - set the new auxtrip value to sensor
> - * @handle: Object handle
> - * @index : GET_AUX1/GET_AUX0
> - * @value : The value will be set
> - */
> -static int sensor_set_auxtrip(acpi_handle handle, int index, int value)
> -{
> -	acpi_status status;
> -	union acpi_object arg = {
> -		ACPI_TYPE_INTEGER
> -	};
> -	struct acpi_object_list args = {
> -		1, &arg
> -	};
> -	unsigned long long temp;
> -
> -	if (index != 0 && index != 1)
> -		return -EINVAL;
> -
> -	status = acpi_evaluate_integer(handle, index ? GET_AUX0 : GET_AUX1,
> -				       NULL, &temp);
> -	if (ACPI_FAILURE(status))
> -		return -EIO;
> -	if ((index && value < temp) || (!index && value > temp))
> -		return -EINVAL;
> -
> -	arg.integer.value = value;
> -	status = acpi_evaluate_integer(handle, index ? SET_AUX1 : SET_AUX0,
> -				       &args, &temp);
> -	if (ACPI_FAILURE(status))
> -		return -EIO;
> -
> -	/* do we need to check the return value of SAX0/SAX1 ? */
> -
> -	return 0;
> -}
> -
> -#define to_intel_menlow_attr(_attr)	\
> -	container_of(_attr, struct intel_menlow_attribute, attr)
> -
> -static ssize_t aux_show(struct device *dev, struct device_attribute *dev_attr,
> -			char *buf, int idx)
> -{
> -	struct intel_menlow_attribute *attr = to_intel_menlow_attr(dev_attr);
> -	unsigned long long value;
> -	int result;
> -
> -	result = sensor_get_auxtrip(attr->handle, idx, &value);
> -	if (result)
> -		return result;
> -
> -	return sprintf(buf, "%lu", deci_kelvin_to_celsius(value));
> -}
> -
> -static ssize_t aux0_show(struct device *dev,
> -			 struct device_attribute *dev_attr, char *buf)
> -{
> -	return aux_show(dev, dev_attr, buf, 0);
> -}
> -
> -static ssize_t aux1_show(struct device *dev,
> -			 struct device_attribute *dev_attr, char *buf)
> -{
> -	return aux_show(dev, dev_attr, buf, 1);
> -}
> -
> -static ssize_t aux_store(struct device *dev, struct device_attribute *dev_attr,
> -			 const char *buf, size_t count, int idx)
> -{
> -	struct intel_menlow_attribute *attr = to_intel_menlow_attr(dev_attr);
> -	int value;
> -	int result;
> -
> -	/*Sanity check; should be a positive integer */
> -	if (!sscanf(buf, "%d", &value))
> -		return -EINVAL;
> -
> -	if (value < 0)
> -		return -EINVAL;
> -
> -	result = sensor_set_auxtrip(attr->handle, idx,
> -				    celsius_to_deci_kelvin(value));
> -	return result ? result : count;
> -}
> -
> -static ssize_t aux0_store(struct device *dev,
> -			  struct device_attribute *dev_attr,
> -			  const char *buf, size_t count)
> -{
> -	return aux_store(dev, dev_attr, buf, count, 0);
> -}
> -
> -static ssize_t aux1_store(struct device *dev,
> -			  struct device_attribute *dev_attr,
> -			  const char *buf, size_t count)
> -{
> -	return aux_store(dev, dev_attr, buf, count, 1);
> -}
> -
>   /* BIOS can enable/disable the thermal user application in dabney platform */
>   #define BIOS_ENABLED "\\_TZ.GSTS"
> -static ssize_t bios_enabled_show(struct device *dev,
> -				 struct device_attribute *attr, char *buf)
> -{
> -	acpi_status status;
> -	unsigned long long bios_enabled;
> -
> -	status = acpi_evaluate_integer(NULL, BIOS_ENABLED, NULL, &bios_enabled);
> -	if (ACPI_FAILURE(status))
> -		return -ENODEV;
> -
> -	return sprintf(buf, "%s\n", bios_enabled ? "enabled" : "disabled");
> -}
> -
> -static int intel_menlow_add_one_attribute(char *name, umode_t mode, void *show,
> -					  void *store, struct device *dev,
> -					  acpi_handle handle)
> -{
> -	struct intel_menlow_attribute *attr;
> -	int result;
> -
> -	attr = kzalloc(sizeof(struct intel_menlow_attribute), GFP_KERNEL);
> -	if (!attr)
> -		return -ENOMEM;
> -
> -	sysfs_attr_init(&attr->attr.attr); /* That is consistent naming :D */
> -	attr->attr.attr.name = name;
> -	attr->attr.attr.mode = mode;
> -	attr->attr.show = show;
> -	attr->attr.store = store;
> -	attr->device = dev;
> -	attr->handle = handle;
> -
> -	result = device_create_file(dev, &attr->attr);
> -	if (result) {
> -		kfree(attr);
> -		return result;
> -	}
> -
> -	mutex_lock(&intel_menlow_attr_lock);
> -	list_add_tail(&attr->node, &intel_menlow_attr_list);
> -	mutex_unlock(&intel_menlow_attr_lock);
> -
> -	return 0;
> -}
>   
>   static acpi_status intel_menlow_register_sensor(acpi_handle handle, u32 lvl,
>   						void *context, void **rv)
> @@ -420,12 +254,6 @@ static acpi_status intel_menlow_register_sensor(acpi_handle handle, u32 lvl,
>   	if (ACPI_FAILURE(status))
>   		return (status == AE_NOT_FOUND) ? AE_OK : status;
>   
> -	result = intel_menlow_add_one_attribute("aux0", 0644,
> -						aux0_show, aux0_store,
> -						&thermal->device, handle);
> -	if (result)
> -		return AE_ERROR;
> -
>   	status = acpi_get_handle(handle, GET_AUX1, &dummy);
>   	if (ACPI_FAILURE(status))
>   		goto aux1_not_found;
> @@ -434,27 +262,6 @@ static acpi_status intel_menlow_register_sensor(acpi_handle handle, u32 lvl,
>   	if (ACPI_FAILURE(status))
>   		goto aux1_not_found;
>   
> -	result = intel_menlow_add_one_attribute("aux1", 0644,
> -						aux1_show, aux1_store,
> -						&thermal->device, handle);
> -	if (result) {
> -		intel_menlow_unregister_sensor();
> -		return AE_ERROR;
> -	}
> -
> -	/*
> -	 * create the "dabney_enabled" attribute which means the user app
> -	 * should be loaded or not
> -	 */
> -
> -	result = intel_menlow_add_one_attribute("bios_enabled", 0444,
> -						bios_enabled_show, NULL,
> -						&thermal->device, handle);
> -	if (result) {
> -		intel_menlow_unregister_sensor();
> -		return AE_ERROR;
> -	}
> -
>   	return AE_OK;
>   
>    aux1_not_found:

-- 
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog


  reply	other threads:[~2023-03-13 10:55 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20230307133735.90772-1-daniel.lezcano@linaro.org>
2023-03-07 13:37 ` [PATCH v1 01/11] thermal/core: Relocate the traces definition in thermal directory Daniel Lezcano
2023-03-07 15:51   ` Steven Rostedt
2023-03-07 13:37 ` [PATCH v1 02/11] thermal/drivers/intel_pch_thermal: Use thermal driver device to write a trace Daniel Lezcano
2023-03-07 13:37 ` [PATCH v1 03/11] thermal/drivers/intel_menlow: Remove add_one_attribute Daniel Lezcano
2023-03-13 10:55   ` Daniel Lezcano [this message]
2023-03-13 12:26     ` Rafael J. Wysocki
2023-03-13 12:35       ` Daniel Lezcano
2023-03-17 18:18         ` Rafael J. Wysocki
2023-04-04 18:12           ` Daniel Lezcano
2023-04-04 18:14             ` Rafael J. Wysocki
2023-03-07 13:37 ` [PATCH v1 04/11] thermal/drivers/db8500: Use driver dev instead of tz->device Daniel Lezcano
2023-03-07 20:52   ` Linus Walleij
2023-03-07 13:37 ` [PATCH v1 05/11] thermal/drivers/stm: Don't set no_hwmon to false Daniel Lezcano
2023-03-07 13:37 ` [PATCH v1 06/11] thermal/drivers/ti: Use fixed update interval Daniel Lezcano
2023-03-07 13:47   ` J, KEERTHY
2023-03-07 15:30   ` Gole, Dhruva
2023-03-07 13:37 ` [PATCH v1 07/11] thermal/drivers/bcm2835: Remove buggy call to thermal_of_zone_unregister Daniel Lezcano
2023-03-07 13:37 ` [PATCH v1 08/11] thermal/of: Unexport unused OF functions Daniel Lezcano
2023-03-07 13:37 ` [PATCH v1 09/11] thermal/core: Add a linked device parameter Daniel Lezcano
2023-03-27 16:16   ` Rafael J. Wysocki
2023-04-04 19:01     ` Daniel Lezcano
2023-04-14 18:43       ` Rafael J. Wysocki
2023-03-07 13:37 ` [PATCH v1 10/11] thermal/core: Alloc-copy-free the thermal zone parameters structure Daniel Lezcano
2023-03-15 12:54   ` kernel test robot
2023-03-18  9:07   ` Dan Carpenter
2023-03-07 13:37 ` [PATCH v1 11/11] thermal/acpi: Use the thermal zone parameter to specify the device link Daniel Lezcano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ca4e9523-0d12-c29f-6de1-365d1713ec84@linaro.org \
    --to=daniel.lezcano@linaro.org \
    --cc=amitk@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=rui.zhang@intel.com \
    --cc=sujith.thomas@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®