On Sun, 4 Sep 2022 17:27:28 +0200 Crt Mori <cmo@xxxxxxxxxxx> wrote: > On Sun, 4 Sept 2022 at 17:23, Jonathan Cameron <jic23@xxxxxxxxxx> wrote: > > > > On Sun, 4 Sep 2022 00:24:22 +0200 > > cmo@xxxxxxxxxxx wrote: > > > > > From: Crt Mori <cmo@xxxxxxxxxxx> > > > > > > The current EINVAL value is more applicable to embedded library, where > > > user can actually put the fixed value to the sensor. In case of the > > > driver if the value of the channel is invalid it is better in inform > > > userspace that Channel was out of range as that implies more to internal > > > driver error than invalid input. It also makes for easier debugging of > > > where the error comes from during the development. > > > > > > Signed-off-by: Crt Mori <cmo@xxxxxxxxxxx> > > Hmm. That's an obscure return value - I think it's mostly going to confuse > > anyone who ever gets it. So not sure this change is wise even though the > > descriptive text for that one does seem very much suited to this usecase. > > > I did get it few times during the development due to read when sensor > is not busy, but the measurement data not yet updated correctly due to > powermode switch. I think I added enough delays all around to avoid > hitting it and with proper power mode switching, but there might be a > case, so it will be easier to spot in the source code in future. I > would not remove it, if that is what you are proposing. I meant leave it as EINVAL. The users of ECHRNG are very very few in number, so I don't have a good understanding of it's expected uses.. > > > > --- > > > drivers/iio/temperature/mlx90632.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/iio/temperature/mlx90632.c b/drivers/iio/temperature/mlx90632.c > > > index 37edd324d6a1..d511d36942d3 100644 > > > --- a/drivers/iio/temperature/mlx90632.c > > > +++ b/drivers/iio/temperature/mlx90632.c > > > @@ -435,7 +435,7 @@ static int mlx90632_channel_new_select(int perform_ret, uint8_t *channel_new, > > > *channel_old = 1; > > > break; > > > default: > > > - return -EINVAL; > > > + return -ECHRNG; > > > } > > > > > > return 0; > >