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

Nilawar, Badal
2024-08-14T08:38:00Z

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