[PATCH v4] drm/i915/hwmon: expose fan speed

Nilawar, Badal badal.nilawar at intel.com
Wed Aug 14 08:37:44 UTC 2024


Hi Andi,

On 09-08-2024 15:46, Andi Shyti wrote:
> Hi Badal,
> 
>>> +static int
>>> +hwm_fan_read(struct hwm_drvdata *ddat, u32 attr, long *val)
>>> +{
>>> +	struct i915_hwmon *hwmon = ddat->hwmon;
>>> +	struct hwm_fan_info *fi = &ddat->fi;
>>> +	u32 reg_val, pulses, time, time_now;
>>> +	intel_wakeref_t wakeref;
>>> +	long rotations;
>>> +	int ret = 0;
>>> +
>>> +	if (attr != hwmon_fan_input)
>>> +		return -EOPNOTSUPP;
>> Using a switch case in rev3 is more logical here. It will also simplify
>> adding more fan attributes in the future. This is why switch cases are used
>> in other parts of the file.
> 
> it was my suggestion and to be honest I would rather prefer it
> this way. I can understand it if we were expecting more cases in
> the immediate, like it was in your case.
> 
> But I wouldn't have an ugly and unreadable one-case-switch in the
> eventuality that something comes in the future. In that case, we
> can always convert it.

My rationale for suggesting a switch case is that in the current 
alignment hwm_XX_read() function is designed to handle all 
possible/supported attributes of the XX sensor type.
With the proposed change, hwm_fan_read() would only manage the 
hwmon_fan_input attribute.
If a single switch case isn’t preferred, I would recommend creating a 
helper function dedicated to hwmon_fan_input.

hwm_fan_read()
{
	if (attr == hwmon_fan_input)
		return helper(); //hwmon_fan_input_read()
	return -EOPNOTSUPP;
}

Regards,
Badal
> 
> Thanks,
> Andi


More information about the dri-devel mailing list