All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Alexander Stein <alexander.stein@systec-electronic.com>
Cc: Hartmut Knaack <knaack.h@gmx.de>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Peter Meerwald-Stadler <pmeerw@pmeerw.net>,
	linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 1/1] iio: core: Fix fractional format generation
Date: Sat, 9 Nov 2019 11:55:19 +0000	[thread overview]
Message-ID: <20191109115519.14ba0bdc@archlinux> (raw)
In-Reply-To: <4116142.9TFg0imz4M@ws-140106>

On Thu, 07 Nov 2019 14:54:52 +0100
Alexander Stein <alexander.stein@systec-electronic.com> wrote:

> Gentle ping
> 
> On Thursday, August 22, 2019, 8:06:07 AM CET Alexander Stein wrote:
> > In case the result is -0.3252 tmp0 is 0 after the div_s64_rem, so tmp0 is
> > non-negative which results in an output of 0.3252.
> > Fix this by explicitly handling the negative sign ourselves.
> > 
> > Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>

Apologies. I'd missed this v2 entirely for some reason.

It looks correct to me, but as Lars had inputs on v1...

Lars, could you take a quick look at this v2 and give an ack if
you are happy with it.

Thanks,

Jonathan

> > ---
> > Changes in v2:
> > * Support vals[0] >= and vals[1] < 0 in IIO_VAL_FRACTIONAL
> > * Note: IIO_VAL_FRACTIONAL is untested, as I lack hardware
> > * Note2: Currently IIO_VAL_FRACTIONAL is only called with vals[1] from
> >          in-kernel drivers AFAICS
> > 
> >  drivers/iio/industrialio-core.c | 11 +++++++++--
> >  1 file changed, 9 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> > index 245b5844028d..247338142c87 100644
> > --- a/drivers/iio/industrialio-core.c
> > +++ b/drivers/iio/industrialio-core.c
> > @@ -568,6 +568,7 @@ static ssize_t __iio_format_value(char *buf, size_t len, unsigned int type,
> >  {
> >  	unsigned long long tmp;
> >  	int tmp0, tmp1;
> > +	char *sign;
> >  	bool scale_db = false;
> >  
> >  	switch (type) {
> > @@ -593,11 +594,17 @@ static ssize_t __iio_format_value(char *buf, size_t len, unsigned int type,
> >  		tmp = div_s64((s64)vals[0] * 1000000000LL, vals[1]);
> >  		tmp1 = vals[1];
> >  		tmp0 = (int)div_s64_rem(tmp, 1000000000, &tmp1);
> > -		return snprintf(buf, len, "%d.%09u", tmp0, abs(tmp1));
> > +		if (vals[1] < 0) {
> > +			sign = vals[0] >= 0 ? "-" : "";
> > +		} else {
> > +			sign = vals[0] < 0 ? "-" : "";
> > +		}
> > +		return snprintf(buf, len, "%s%u.%09u", sign, abs(tmp0), abs(tmp1));
> >  	case IIO_VAL_FRACTIONAL_LOG2:
> > +		sign = vals[0] < 0 ? "-" : "";
> >  		tmp = shift_right((s64)vals[0] * 1000000000LL, vals[1]);
> >  		tmp0 = (int)div_s64_rem(tmp, 1000000000LL, &tmp1);
> > -		return snprintf(buf, len, "%d.%09u", tmp0, abs(tmp1));
> > +		return snprintf(buf, len, "%s%u.%09u", sign, abs(tmp0), abs(tmp1));
> >  	case IIO_VAL_INT_MULTIPLE:
> >  	{
> >  		int i;
> >   
> 
> 


      reply	other threads:[~2019-11-09 11:55 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-22  6:06 [PATCH v2 1/1] iio: core: Fix fractional format generation Alexander Stein
2019-11-07 13:54 ` Alexander Stein
2019-11-09 11:55   ` Jonathan Cameron [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191109115519.14ba0bdc@archlinux \
    --to=jic23@kernel.org \
    --cc=alexander.stein@systec-electronic.com \
    --cc=knaack.h@gmx.de \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pmeerw@pmeerw.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.