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 <rdunlap@xxxxxxxxxxxxx> 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 <rdunlap@xxxxxxxxxxxxx> 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 <rdunlap@xxxxxxxxxxxxx> >> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> >> >> 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