Browse Source

usb: common: Use a global definition for 'min3'

We can use a common global method for calculating minimum of
3 numbers. Put the same in 'common header' and let 'ehci'
use it.

Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
Acked-by: Tom Rini <trini@ti.com>
Vivek Gautam 12 years ago
parent
commit
4f4eab4d14
2 changed files with 21 additions and 14 deletions
  1. 0 10
      drivers/usb/host/ehci-hcd.c
  2. 21 4
      include/common.h

+ 0 - 10
drivers/usb/host/ehci-hcd.c

@@ -603,16 +603,6 @@ fail:
 	return -1;
 	return -1;
 }
 }
 
 
-static inline int min3(int a, int b, int c)
-{
-
-	if (b < a)
-		a = b;
-	if (c < a)
-		a = c;
-	return a;
-}
-
 int
 int
 ehci_submit_root(struct usb_device *dev, unsigned long pipe, void *buffer,
 ehci_submit_root(struct usb_device *dev, unsigned long pipe, void *buffer,
 		 int length, struct devrequest *req)
 		 int length, struct devrequest *req)

+ 21 - 4
include/common.h

@@ -199,18 +199,35 @@ typedef void (interrupt_handler_t)(void *);
  * General Purpose Utilities
  * General Purpose Utilities
  */
  */
 #define min(X, Y)				\
 #define min(X, Y)				\
-	({ typeof (X) __x = (X);		\
-		typeof (Y) __y = (Y);		\
+	({ typeof(X) __x = (X);			\
+		typeof(Y) __y = (Y);		\
 		(__x < __y) ? __x : __y; })
 		(__x < __y) ? __x : __y; })
 
 
 #define max(X, Y)				\
 #define max(X, Y)				\
-	({ typeof (X) __x = (X);		\
-		typeof (Y) __y = (Y);		\
+	({ typeof(X) __x = (X);			\
+		typeof(Y) __y = (Y);		\
 		(__x > __y) ? __x : __y; })
 		(__x > __y) ? __x : __y; })
 
 
 #define MIN(x, y)  min(x, y)
 #define MIN(x, y)  min(x, y)
 #define MAX(x, y)  max(x, y)
 #define MAX(x, y)  max(x, y)
 
 
+#define min3(X, Y, Z)				\
+	({ typeof(X) __x = (X);			\
+		typeof(Y) __y = (Y);		\
+		typeof(Z) __z = (Z);		\
+		__x < __y ? (__x < __z ? __x : __z) :	\
+		(__y < __z ? __y : __z); })
+
+#define max3(X, Y, Z)				\
+	({ typeof(X) __x = (X);			\
+		typeof(Y) __y = (Y);		\
+		typeof(Z) __z = (Z);		\
+		__x > __y ? (__x > __z ? __x : __z) :	\
+		(__y > __z ? __y : __z); })
+
+#define MIN3(x, y, z)  min3(x, y, z)
+#define MAX3(x, y, z)  max3(x, y, z)
+
 /*
 /*
  * Return the absolute value of a number.
  * Return the absolute value of a number.
  *
  *