summaryrefslogtreecommitdiff
path: root/v4l/compat.h
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-06-01 05:22:37 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-06-01 05:22:37 -0300
commitf132c7131268f8f4453e59546b2c989af12687bc (patch)
tree128bda02b3b602426e003d787cb231622c73e544 /v4l/compat.h
parentb8991839208bf9058df16c5afdc4abe46aed454d (diff)
parentded3cfe6e3debc87d199572ce1c62204c5a37391 (diff)
downloadmediapointer-dvb-s2-f132c7131268f8f4453e59546b2c989af12687bc.tar.gz
mediapointer-dvb-s2-f132c7131268f8f4453e59546b2c989af12687bc.tar.bz2
merge: http://linuxtv.org/hg/~anttip/af9015/
From: Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'v4l/compat.h')
-rw-r--r--v4l/compat.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/v4l/compat.h b/v4l/compat.h
index 6a40e2a33..ce28da615 100644
--- a/v4l/compat.h
+++ b/v4l/compat.h
@@ -454,4 +454,19 @@ static inline int snd_card_create(int idx, const char *id,
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
#endif
+/* __fls() was added for generic code in 2.6.29, existed for just 64-bit arches
+ * since 2.6.26 (v2.6.25-5228-g56a6b1e), and was x86-64 only before then. We
+ * only want this compat code when __fls doesn't exist, which 2.6.29 or later,
+ * non x86-64, and non 64-bit that's 2.6.26 or later. */
+#if !(LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) || \
+ defined(__x86_64__) || \
+ (BITS_PER_LONG == 64 && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)))
+/* This define will prevent breakage if __fls was already defined. */
+#define __fls v4l_compat_fls
+static inline unsigned long v4l_compat_fls(unsigned long x)
+{
+ return fls(x) - 1;
+}
+#endif
+
#endif /* _COMPAT_H */