Re: [PATCH 1 of 3] cx88: Add support for stereo and sap detection for A2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 5 Apr 2009, Mauro Carvalho Chehab wrote:

> Hi Marton,
> 
> I suspect that you will need to use div64 math or some othe way to calculate the freq:
> 
> /home/v4l/master/v4l/cx88-dsp.c: In function 'detect_a2_a2m_eiaj':
> /home/v4l/master/v4l/cx88-dsp.c:147: error: SSE register return with SSE disabled
> make[3]: *** [/home/v4l/master/v4l/cx88-dsp.o] Error 1
> make[3]: *** Waiting for unfinished jobs....

Gcc should have optimised away the floating point operations and the 
__builtin_remainder function. Hmm, it seems that older gcc's don't do 
this. Would you try the attached patch? It uses integer modulo instead 
of __builtin_remainder, so only basic floating point operations needs 
optimising, hopefully every common gcc version will be able to do it.

Regards,
  Marton

# HG changeset patch
# User Marton Balint <cus@xxxxxxxxxx>
# Date 1238977280 -7200
# Node ID 5a396f71d463b738c363c12bf53a3e446016aa95
# Parent  119acaa1dee387960325ba637c6257af2b0fd3af
cx88: dsp: more gcc compatible remainder function

From: Marton Balint <cus@xxxxxxxxxx>

Priority: normal

Signed-off-by: Marton Balint <cus@xxxxxxxxxx>

diff -r 119acaa1dee3 -r 5a396f71d463 linux/drivers/media/video/cx88/cx88-dsp.c
--- a/linux/drivers/media/video/cx88/cx88-dsp.c	Tue Mar 31 23:35:57 2009 +0200
+++ b/linux/drivers/media/video/cx88/cx88-dsp.c	Mon Apr 06 02:21:20 2009 +0200
@@ -28,8 +28,11 @@
 
 #define INT_PI			((s32)(3.141592653589 * 32768.0))
 
+#define compat_remainder(a, b) \
+	 ((float)(((s32)((a)*100))%((s32)((b)*100)))/100.0)
+
 #define baseband_freq(carrier, srate, tone) ((s32)( \
-	 (__builtin_remainder(carrier + tone, srate)) / srate * 2 * INT_PI))
+	 (compat_remainder(carrier + tone, srate)) / srate * 2 * INT_PI))
 
 /* We calculate the baseband frequencies of the carrier and the pilot tones
  * based on the the sampling rate of the audio rds fifo. */
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux