2020-09-09 15:44:00

by Yue Haibing

[permalink] [raw]
Subject: [PATCH -next] media: av7110_v4l: Fix build error

drivers/media/pci/ttpci/av7110_v4l.c: In function ‘vidioc_s_frequency’:
drivers/media/pci/ttpci/av7110_v4l.c:163:11: error: SSE register return with SSE disabled
if (freq < 16U * 168.25)
~~~~~^~~~~~~~~~~~~~
Get rid of float pointing math to fix this.

Fixes: 13c129066845 ("media: av7110_v4l: avoid a typecast")
Signed-off-by: YueHaibing <[email protected]>
---
drivers/media/pci/ttpci/av7110_v4l.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/media/pci/ttpci/av7110_v4l.c b/drivers/media/pci/ttpci/av7110_v4l.c
index 6d9c908be713..ba745b161cba 100644
--- a/drivers/media/pci/ttpci/av7110_v4l.c
+++ b/drivers/media/pci/ttpci/av7110_v4l.c
@@ -160,9 +160,9 @@ static int ves1820_set_tv_freq(struct saa7146_dev *dev, u32 freq)
buf[1] = div & 0xff;
buf[2] = 0x8e;

- if (freq < 16U * 168.25)
+ if (freq < (16 * 16825) / 100)
config = 0xa0;
- else if (freq < 16U * 447.25)
+ else if (freq < (16 * 44725) / 100)
config = 0x90;
else
config = 0x30;
--
2.17.1



2021-06-01 09:17:50

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: [PATCH -next] media: av7110_v4l: Fix build error

Em Wed, 9 Sep 2020 21:38:44 +0800
YueHaibing <[email protected]> escreveu:

> drivers/media/pci/ttpci/av7110_v4l.c: In function ‘vidioc_s_frequency’:
> drivers/media/pci/ttpci/av7110_v4l.c:163:11: error: SSE register return with SSE disabled
> if (freq < 16U * 168.25)
> ~~~~~^~~~~~~~~~~~~~
> Get rid of float pointing math to fix this.

Out of curiosity: what compiler are you using? This sounds to be a compiler
issue, as compiler should be optimizing the code by doing the math evaluation
at compile time instead of doing it during runtime.

>
> Fixes: 13c129066845 ("media: av7110_v4l: avoid a typecast")
> Signed-off-by: YueHaibing <[email protected]>
> ---
> drivers/media/pci/ttpci/av7110_v4l.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/pci/ttpci/av7110_v4l.c b/drivers/media/pci/ttpci/av7110_v4l.c
> index 6d9c908be713..ba745b161cba 100644
> --- a/drivers/media/pci/ttpci/av7110_v4l.c
> +++ b/drivers/media/pci/ttpci/av7110_v4l.c
> @@ -160,9 +160,9 @@ static int ves1820_set_tv_freq(struct saa7146_dev *dev, u32 freq)
> buf[1] = div & 0xff;
> buf[2] = 0x8e;
>
> - if (freq < 16U * 168.25)
> + if (freq < (16 * 16825) / 100)
> config = 0xa0;
> - else if (freq < 16U * 447.25)
> + else if (freq < (16 * 44725) / 100)
> config = 0x90;
> else
> config = 0x30;



Thanks,
Mauro

2021-06-01 09:20:36

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: [PATCH -next] media: av7110_v4l: Fix build error

Em Tue, 1 Jun 2021 11:16:17 +0200
Mauro Carvalho Chehab <[email protected]> escreveu:

> Em Wed, 9 Sep 2020 21:38:44 +0800
> YueHaibing <[email protected]> escreveu:
>
> > drivers/media/pci/ttpci/av7110_v4l.c: In function ‘vidioc_s_frequency’:
> > drivers/media/pci/ttpci/av7110_v4l.c:163:11: error: SSE register return with SSE disabled
> > if (freq < 16U * 168.25)
> > ~~~~~^~~~~~~~~~~~~~
> > Get rid of float pointing math to fix this.
>
> Out of curiosity: what compiler are you using? This sounds to be a compiler
> issue, as compiler should be optimizing the code by doing the math evaluation
> at compile time instead of doing it during runtime.

Nevermind. A similar patch was already applied upstream.

Please ignore this e-mail.

Thanks,
Mauro