diff mbox series

[-next] media: av7110_v4l: Fix build error

Message ID 20200909133844.6812-1-yuehaibing@huawei.com (mailing list archive)
State New, archived
Headers show
Series [-next] media: av7110_v4l: Fix build error | expand

Commit Message

Yue Haibing Sept. 9, 2020, 1:38 p.m. UTC
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 <yuehaibing@huawei.com>
---
 drivers/media/pci/ttpci/av7110_v4l.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Mauro Carvalho Chehab June 1, 2021, 9:16 a.m. UTC | #1
Em Wed, 9 Sep 2020 21:38:44 +0800
YueHaibing <yuehaibing@huawei.com> 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 <yuehaibing@huawei.com>
> ---
>  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
Mauro Carvalho Chehab June 1, 2021, 9:19 a.m. UTC | #2
Em Tue, 1 Jun 2021 11:16:17 +0200
Mauro Carvalho Chehab <mchehab@kernel.org> escreveu:

> Em Wed, 9 Sep 2020 21:38:44 +0800
> YueHaibing <yuehaibing@huawei.com> 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
diff mbox series

Patch

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;