RE: [PATCH 2/2] hwmon: (emc2305) fix pwm never being able to set lower

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Even when the cooling state is not set by the thermal subsystem, no lower state can be set by hwmon.



> On Tue, Dec 6, 2022 at 2:27 AM Michael Shych <michaelsh@xxxxxxxxxx> wrote:
> Hi,
> 
> This is intention - to set low limit through 'hwmon'.
> Thus, if it is set through 'hwom', cooling state is limited and not allowed to be set to a lower value.
> If user doesn't want this feature, he is not supposed to use 'hwmon' for fan speed setting.
> 
> Regards,
>    Michael.
> 
> > -----Original Message-----
> > From: Xingjiang Qiao <nanpuyue@xxxxxxxxx>
> > Sent: Monday, December 5, 2022 7:36 PM
> > To: Guenter Roeck <linux@xxxxxxxxxxxx>; Jean Delvare
> > <jdelvare@xxxxxxxx>
> > Cc: Michael Shych <michaelsh@xxxxxxxxxx>; Xingjiang Qiao
> > <nanpuyue@xxxxxxxxx>; linux-hwmon@xxxxxxxxxxxxxxx
> > Subject: [PATCH 2/2] hwmon: (emc2305) fix pwm never being able to set
> > lower
> >
> > There are fields 'last_hwmon_state' and 'last_thermal_state' in the structure
> > 'emc2305_cdev_data', which respectively store the cooling state set by the
> > 'hwmon' and 'thermal' subsystem, and the driver author hopes that if the
> > state set by 'hwmon' is lower than the value set by 'thermal', the driver will
> > just save it without actually setting the pwm. Currently, the
> > 'last_thermal_state' also be updated by 'hwmon', which will cause the
> > cooling state to never be set to a lower value. This patch fixes that.
> >
> > Signed-off-by: Xingjiang Qiao <nanpuyue@xxxxxxxxx>
> > ---
> >  drivers/hwmon/emc2305.c | 6 ++----
> >  1 file changed, 2 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/hwmon/emc2305.c b/drivers/hwmon/emc2305.c index
> > 4df84065cbfb..f51760f8aa85 100644
> > --- a/drivers/hwmon/emc2305.c
> > +++ b/drivers/hwmon/emc2305.c
> > @@ -398,11 +398,9 @@ emc2305_write(struct device *dev, enum
> > hwmon_sensor_types type, u32 attr, int ch
> >                                * Update PWM only in case requested state
> > is not less than the
> >                                * last thermal state.
> >                                */
> > -                             if (data-
> > >cdev_data[cdev_idx].last_hwmon_state >=
> > +                             if (data-
> > >cdev_data[cdev_idx].last_hwmon_state <
> >                                   data-
> > >cdev_data[cdev_idx].last_thermal_state)
> > -                                     return emc2305_set_cur_state(data-
> > >cdev_data[cdev_idx].cdev,
> > -                                                     data-
> > >cdev_data[cdev_idx].last_hwmon_state);
> > -                             return 0;
> > +                                     return 0;
> >                       }
> >                       return emc2305_set_pwm(dev, val, channel);
> >               default:
> > --
> > 2.38.1



[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux