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

Mauro Carvalho Chehab
2021-06-01T09:16:28Z

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