Re: [PATCH 3/3] hwmon: (asus_wmi_sensors) Support access via Asus WMI.

From: Denis Pauk
Date: Sun Oct 03 2021 - 16:49:09 EST


Hi Eugene,

On Sat, 2 Oct 2021 23:56:20 +0200
Eugene Shalygin <eugene.shalygin@xxxxxxxxx> wrote:

> Hi, Denis!
>
> Thank you for submitting this driver to the mainline! I have a few
> comments/suggestions, please find them below.
>
> > +#define HWMON_MAX 9
>
> There is a hwmon_max enum member, whose current value is 10.
Thank you, I will check.

>
> > +#define ASUS_WMI_BLOCK_READ_REGISTERS_MAX 0x10 /* from the ASUS
> > DSDT source */ +/* from the ASUS_WMI_BLOCK_READ_REGISTERS_MAX value
> > */ +#define ASUS_WMI_MAX_BUF_LEN 0x80
> Suggestion:
> #define ASUS_WMI_MAX_BUF_LEN 0x80 /* from the
> ASUS_WMI_BLOCK_READ_REGISTERS_MAX value */
>
> > +#define ASUSWMI_SENSORS_MAX 11
> This one is for the EC only, maybe rename it accordingly?
>
Thank you, I will check.

> > +struct asus_wmi_data {
> > + int ec_board;
> > +};
>
> Duplicates the value in the asus_wmi_sensors struct. Refactoring
> artifact?
>
I have used different structures for data in platform and device.

> asus_wmi_ec_set_sensor_info(si++, "Water", hwmon_fan,
> > +
> > asus_wmi_ec_make_sensor_address(2, 0x00, 0xBC),
> > + &ec->nr_registers);
> This one is named "W_FLOW" in the BIOS and ASUS software. Maybe append
> "_flow" to the label?
>
Thank you, I will check.

> > + * The next four functions converts to/from BRxx string argument
> > format
> convert (remove "s")
>
> > + // assert(len <= 30)
> Makes little sense in the kernel.
>
Thank you, I will check.

> > +static void asus_wmi_ec_make_block_read_query(struct
> > asus_wmi_ec_info *ec) +{
> > + u16 registers[ASUS_EC_KNOWN_EC_REGISTERS];
> > + u8 i, j, register_idx = 0;
> > +
> > + /* if we can get values for all the registers in a single
> > query,
> > + * the query will not change from call to call
> > + */
> > + if (ec->nr_registers <= ASUS_WMI_BLOCK_READ_REGISTERS_MAX &&
> > + ec->read_arg[0] > 0) {
> > + /* no need to update */
> > + return;
> > + }
> > +
> I would add a test for ec->nr_registers >
> ASUS_WMI_BLOCK_READ_REGISTERS_MAX and a warning log message here.
>
Thank you, I will check.

> > +static int asus_wmi_probe(struct platform_device *pdev)
>
> Can we add a module alias or to load the module automatically by other
> means? For module aliases we know DMI parameters for the supported
> boards.
>
I will look, I prefer to reuse same module code for boards with/without
EC endpoints same as in
https://bugzilla.kernel.org/show_bug.cgi?id=204807#c128.

> Best regards,
> Eugene

Best regards,
Denis.