On 9/11/20 12:31 AM, Mauro Carvalho Chehab wrote:
> Hi Randy,
> 
> Em Thu, 10 Sep 2020 09:02:35 -0700
> Randy Dunlap <rdun...@infradead.org> escreveu:
> 
>> On 9/10/20 12:42 AM, Stephen Rothwell wrote:
>>> Hi all,
>>>
>>> Changes since 20200909:
>>>   
>>
>>
>> on i386:
>>
>> ERROR: modpost: "__floatunsidf" [drivers/media/pci/ttpci/dvb-ttpci.ko] 
>> undefined!
>> ERROR: modpost: "__ltdf2" [drivers/media/pci/ttpci/dvb-ttpci.ko] undefined!
>>
>>
>> Full randconfig file is attached.
> 
> I was unable to reproduce it here with the .config file you sent.
> 
> I suspect that the only difference is the compiler version. Here, I'm
> using:
> 
>       gcc (Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008
> 
> While you're using:
> 
>       gcc (SUSE Linux) 7.5.0
> 
> Yet, the only patch that could possibly have affected it is
> this changeset 13c129066845 ("media: av7110_v4l: avoid a typecast").
> 
> It sounds to me that gcc 7.5.0 only does the right math at compile
> time if there is a typecast. Could you please check if the enclosed
> patch fixes it?

Hi Mauro,
Yes, this fixes the build for me.  Thanks.

Acked-by: Randy Dunlap <rdun...@infradead.org>

> Thanks,
> Mauro
> 
> [PATCH] media: av7110: don't do float point math
> 
> It sounds that earlier versions of GCC have troubles when
> doing const math at compile time, if no typecast is used:
> 
> on i386:
>       ERROR: modpost: "__floatunsidf" [drivers/media/pci/ttpci/dvb-ttpci.ko] 
> undefined!
>       ERROR: modpost: "__ltdf2" [drivers/media/pci/ttpci/dvb-ttpci.ko] 
> undefined!
> 
> The warning was generated on gcc (SUSE Linux) 7.5.0.
> Gcc 9.2 compiles it fine.
> 
> Reported-by: Randy Dunlap <rdun...@infradead.org>
> Signed-off-by: Mauro Carvalho Chehab <mchehab+hua...@kernel.org>
> 
> diff --git a/drivers/media/pci/ttpci/av7110_v4l.c 
> b/drivers/media/pci/ttpci/av7110_v4l.c
> index 6d9c908be713..c89f536f699c 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 < 16U * 16825 / 100)
>               config = 0xa0;
> -     else if (freq < 16U * 447.25)
> +     else if (freq < 16U * 44725 / 100)
>               config = 0x90;
>       else
>               config = 0x30;
> 


-- 
~Randy

Reply via email to