On Wed, Apr 19, 2023 at 11:36:55AM +1200, Chris Packham wrote: > On DT unaware platforms of_property_read_u32_array() returns -ENOSYS > which wasn't handled by the code treating adi,pwm-active-state as > optional. Update the code to use device_property_read_u32_array() which > deals gracefully with DT unaware platforms. > > Fixes: 86da28eed4fb ("hwmon: (adt7475) Add support for inverting pwm output") > Reported-by: Mariusz Białończyk <manio@xxxxxxxxxx> > Signed-off-by: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx> > --- > > Notes: > I've not currently got access to a DT unaware platform with an ADT7475 > chip so I'm not 100% sure that this will fix the problem Mariusz > reported but looking at drivers I think this approach is correct. > What happens if there is no such property anywhere, neither in devicetree nor in acpi ? Guenter > Changes in v2: > - use device_property_read_u32_array instead of checking for -ENOSYS > > drivers/hwmon/adt7475.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/hwmon/adt7475.c b/drivers/hwmon/adt7475.c > index 6e4c92b500b8..6a6ebcc896b1 100644 > --- a/drivers/hwmon/adt7475.c > +++ b/drivers/hwmon/adt7475.c > @@ -1604,9 +1604,9 @@ static int adt7475_set_pwm_polarity(struct i2c_client *client) > int ret, i; > u8 val; > > - ret = of_property_read_u32_array(client->dev.of_node, > - "adi,pwm-active-state", states, > - ARRAY_SIZE(states)); > + ret = device_property_read_u32_array(&client->dev, > + "adi,pwm-active-state", states, > + ARRAY_SIZE(states)); > if (ret) > return ret; > > -- > 2.40.0 >