On Sun, Mar 9, 2025 at 4:21 AM Antheas Kapenekakis <lkml@xxxxxxxxxxx> wrote: > > Currently, the driver only has the F1 OneXFly variant, which was based > on the 7000 AMD platform. Add its special editions: F1 EVA-01, F1 OLED. > F1 OLED might have been a dev unit, but it is supported by OneXConsole > with the same features so add it. Then add the F1L variant which is > based on the 8000 AMD platform and the F1Pro and its special edition > EVA-02. > > One might ask why not just fuzzy match. Well, EVA-02 is a variant of > F1Pro which is a Strix Point handheld, but does not have F1Pro in its > name. This makes it risky to fuzzy match, as special variants in the > future from different platforms might not have the same feature set > or registers. > > By happenstance, all current devices use the same registers. For the > charge limitting feature on this series, only F1Pro/X1 (AMD) were > released with it, but OneXPlayer is providing bios updates for F1, F1L, > X1 Mini units that use the same register, so treat all of them the same. > Greeting Antheas, Do we know the BIOS version(s) that support was added? If so, I think it makes sense to treat these as separate devices and check for device specific BIOS version in an is_visible for the charge limit attr. I expect that calling the registers when support isn't present will just be a no-op based on how OXP historically does things, but having a present attribute that has no effect will probably generate bug reports. It is also not appropriate to check/fix this in userspace as some folks might use udev to set it over a program with such checks. Cheers, - Derek > Signed-off-by: Antheas Kapenekakis <lkml@xxxxxxxxxxx> > --- > drivers/hwmon/oxp-sensors.c | 35 +++++++++++++++++++++++++++++++++++ > 1 file changed, 35 insertions(+) > > diff --git a/drivers/hwmon/oxp-sensors.c b/drivers/hwmon/oxp-sensors.c > index 5a4230ad3757..f7a64fbc8f33 100644 > --- a/drivers/hwmon/oxp-sensors.c > +++ b/drivers/hwmon/oxp-sensors.c > @@ -188,6 +188,41 @@ static const struct dmi_system_id dmi_table[] = { > }, > .driver_data = (void *)oxp_fly, > }, > + { > + .matches = { > + DMI_MATCH(DMI_BOARD_VENDOR, "ONE-NETBOOK"), > + DMI_EXACT_MATCH(DMI_BOARD_NAME, "ONEXPLAYER F1 EVA-01"), > + }, > + .driver_data = (void *)oxp_fly, > + }, > + { > + .matches = { > + DMI_MATCH(DMI_BOARD_VENDOR, "ONE-NETBOOK"), > + DMI_EXACT_MATCH(DMI_BOARD_NAME, "ONEXPLAYER F1 OLED"), > + }, > + .driver_data = (void *)oxp_fly, > + }, > + { > + .matches = { > + DMI_MATCH(DMI_BOARD_VENDOR, "ONE-NETBOOK"), > + DMI_EXACT_MATCH(DMI_BOARD_NAME, "ONEXPLAYER F1L"), > + }, > + .driver_data = (void *)oxp_fly, > + }, > + { > + .matches = { > + DMI_MATCH(DMI_BOARD_VENDOR, "ONE-NETBOOK"), > + DMI_EXACT_MATCH(DMI_BOARD_NAME, "ONEXPLAYER F1Pro"), > + }, > + .driver_data = (void *)oxp_fly, > + }, > + { > + .matches = { > + DMI_MATCH(DMI_BOARD_VENDOR, "ONE-NETBOOK"), > + DMI_EXACT_MATCH(DMI_BOARD_NAME, "ONEXPLAYER F1 EVA-02"), > + }, > + .driver_data = (void *)oxp_fly, > + }, > { > .matches = { > DMI_MATCH(DMI_BOARD_VENDOR, "ONE-NETBOOK"), > -- > 2.48.1 >