On 9/11/20 8:52 AM, Randy Dunlap wrote:
> 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>


Aha, added bonus:

This patch also eliminates this objtool warning:

../drivers/media/pci/ttpci/av7110_v4l.c:163:11: error: SSE register return with 
SSE disabled


>> 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