Re: [av7110/budget/budget-ci/budget-av drivers] please test: drivers switched to I2C interrupt mode

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

 



Gregoire Favre wrote:
> On Wed, Nov 01, 2006 at 02:06:17PM -0800, C.Y.M wrote:
> 
> C.Y.M had more luck than I (with the patch to allow 2.6.19 compilation
> applied) :
> 
>   CC [M]  /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.o
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c: In function 'av7110_bootarm':
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:238: error: size of array 'type name' is negative
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:238: warning: comparison of distinct pointer types lacks a cast
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:238: error: size of array 'type name' is negative
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:238: warning: comparison of distinct pointer types lacks a cast
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:238: error: size of array 'type name' is negative
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:238: warning: comparison of distinct pointer types lacks a cast
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:238: error: size of array 'type name' is negative
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:238: warning: comparison of distinct pointer types lacks a cast
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:302: error: size of array 'type name' is negative
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:302: warning: comparison of distinct pointer types lacks a cast
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:302: error: size of array 'type name' is negative
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:302: warning: comparison of distinct pointer types lacks a cast
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:302: error: size of array 'type name' is negative
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:302: warning: comparison of distinct pointer types lacks a cast
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:302: error: size of array 'type name' is negative
> /usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.c:302: warning: comparison of distinct pointer types lacks a cast
> make[2]: *** [/usr/src/CVS/v4l-dvb-av7110-refactoring/v4l/av7110_hw.o] Error 1
> make[1]: *** [_module_/usr/src/CVS/v4l-dvb-av7110-refactoring/v4l] Error 2
> make[1]: Leaving directory `/usr/src/linux-2.6.19-rc4-mm1'
> make: *** [default] Error 2

Hm - it compiles here without any warnings. ;-(
Maybe some problem with macro expansion.

The attached patch replaces the macros by inline functions.
Does it work now?

Oliver

-- 
--------------------------------------------------------
VDR Remote Plugin 0.3.8 available at
http://www.escape-edv.de/endriss/vdr/
--------------------------------------------------------
diff -r 4a40207ae301 linux/include/media/saa7146.h
--- a/linux/include/media/saa7146.h	Thu Nov  2 13:51:06 2006 +0100
+++ b/linux/include/media/saa7146.h	Thu Nov  2 14:16:08 2006 +0100
@@ -54,20 +54,6 @@ extern unsigned int saa7146_debug;
 #define DEB_INT(x)  if (0!=(DEBUG_VARIABLE&0x20)) { DEBUG_PROLOG; printk x; } /* interrupt debug messages */
 #define DEB_CAP(x)  if (0!=(DEBUG_VARIABLE&0x40)) { DEBUG_PROLOG; printk x; } /* capture debug messages */
 
-#define SAA7146_IER_DISABLE(x,y) 					\
-	do { 								\
-		unsigned int flags; 					\
-		spin_lock_irqsave(&x->int_slock, flags); 		\
-		saa7146_write(x, IER, saa7146_read(x, IER) & ~(y));	\
-		spin_unlock_irqrestore(&x->int_slock, flags);		\
-	} while(0)
-#define SAA7146_IER_ENABLE(x,y)						\
-	do { 								\
-		unsigned int flags; 					\
-		spin_lock_irqsave(&x->int_slock, flags); 		\
-		saa7146_write(x, IER, saa7146_read(x, IER) | (y));	\
-		spin_unlock_irqrestore(&x->int_slock, flags);		\
-	} while(0)
 #define SAA7146_ISR_CLEAR(x,y) \
 	saa7146_write(x, ISR, (y));
 
@@ -475,4 +461,20 @@ int saa7146_wait_for_debi_done(struct sa
 #define SAA7146_I2C_BUS_BIT_RATE_80	(0x200)
 #define SAA7146_I2C_BUS_BIT_RATE_60	(0x300)
 
-#endif
+static inline void SAA7146_IER_DISABLE(struct saa7146_dev *x, unsigned y)
+{
+	unsigned long flags;
+	spin_lock_irqsave(&x->int_slock, flags);
+	saa7146_write(x, IER, saa7146_read(x, IER) & ~(y));
+	spin_unlock_irqrestore(&x->int_slock, flags);
+}
+
+static inline void SAA7146_IER_ENABLE(struct saa7146_dev *x, unsigned y)
+{
+	unsigned long flags;
+	spin_lock_irqsave(&x->int_slock, flags);
+	saa7146_write(x, IER, saa7146_read(x, IER) | (y));
+	spin_unlock_irqrestore(&x->int_slock, flags);
+}
+
+#endif
_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux