aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/image/Kconfig
blob: 33350f9dd34f302f86d916a40a0cb627c636bf1b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#
# USB Imaging devices configuration
#
comment "USB Imaging devices"
	depends on USB

config USB_MDC800
	tristate "USB Mustek MDC800 Digital Camera support"
	depends on USB
	---help---
	  Say Y here if you want to connect this type of still camera to
	  your computer's USB port. This driver can be used with gphoto 0.4.3
	  and higher (look at <http://www.gphoto.org/>).
	  To use it create a device node with "mknod /dev/mustek c 180 32" and
	  configure it in your software.

	  To compile this driver as a module, choose M here: the
	  module will be called mdc800.

config USB_MICROTEK
	tristate "Microtek X6USB scanner support"
	depends on USB && SCSI
	help
	  Say Y here if you want support for the Microtek X6USB and
	  possibly the Phantom 336CX, Phantom C6 and ScanMaker V6U(S)L.
	  Support for anything but the X6 is experimental.
	  Please report failures and successes.
	  The scanner will appear as a scsi generic device to the rest
	  of the system. Scsi support is required.
	  This driver can be compiled as a module, called microtek.
com">/* __s390x__ */ #define cputime_zero (0ULL) #define cputime_max ((~0UL >> 1) - 1) #define cputime_add(__a, __b) ((__a) + (__b)) #define cputime_sub(__a, __b) ((__a) - (__b)) #define cputime_div(__a, __n) ({ \ unsigned long long __div = (__a); \ do_div(__div,__n); \ __div; \ }) #define cputime_halve(__a) ((__a) >> 1) #define cputime_eq(__a, __b) ((__a) == (__b)) #define cputime_gt(__a, __b) ((__a) > (__b)) #define cputime_ge(__a, __b) ((__a) >= (__b)) #define cputime_lt(__a, __b) ((__a) < (__b)) #define cputime_le(__a, __b) ((__a) <= (__b)) #define cputime_to_jiffies(__ct) (__div((__ct), 1000000 / HZ)) #define jiffies_to_cputime(__hz) ((cputime_t)(__hz) * (1000000 / HZ)) #define cputime64_zero (0ULL) #define cputime64_add(__a, __b) ((__a) + (__b)) #define cputime_to_cputime64(__ct) (__ct) static inline u64 cputime64_to_jiffies64(cputime64_t cputime) { do_div(cputime, 1000000 / HZ); return cputime; } /* * Convert cputime to milliseconds and back. */ static inline unsigned int cputime_to_msecs(const cputime_t cputime) { return __div(cputime, 1000); } static inline cputime_t msecs_to_cputime(const unsigned int m) { return (cputime_t) m * 1000; } /* * Convert cputime to milliseconds and back. */ static inline unsigned int cputime_to_secs(const cputime_t cputime) { return __div(cputime, 1000000); } static inline cputime_t secs_to_cputime(const unsigned int s) { return (cputime_t) s * 1000000; } /* * Convert cputime to timespec and back. */ static inline cputime_t timespec_to_cputime(const struct timespec *value) { return value->tv_nsec / 1000 + (u64) value->tv_sec * 1000000; } static inline void cputime_to_timespec(const cputime_t cputime, struct timespec *value) { #ifndef __s390x__ register_pair rp; rp.pair = cputime >> 1; asm ("dr %0,%1" : "+d" (rp) : "d" (1000000 >> 1)); value->tv_nsec = rp.subreg.even * 1000; value->tv_sec = rp.subreg.odd; #else value->tv_nsec = (cputime % 1000000) * 1000; value->tv_sec = cputime / 1000000; #endif } /* * Convert cputime to timeval and back. * Since cputime and timeval have the same resolution (microseconds) * this is easy. */ static inline cputime_t timeval_to_cputime(const struct timeval *value) { return value->tv_usec + (u64) value->tv_sec * 1000000; } static inline void cputime_to_timeval(const cputime_t cputime, struct timeval *value) { #ifndef __s390x__ register_pair rp; rp.pair = cputime >> 1; asm ("dr %0,%1" : "+d" (rp) : "d" (1000000 >> 1)); value->tv_usec = rp.subreg.even; value->tv_sec = rp.subreg.odd; #else value->tv_usec = cputime % 1000000; value->tv_sec = cputime / 1000000; #endif } /* * Convert cputime to clock and back. */ static inline clock_t cputime_to_clock_t(cputime_t cputime) { return __div(cputime, 1000000 / USER_HZ); } static inline cputime_t clock_t_to_cputime(unsigned long x) { return (cputime_t) x * (1000000 / USER_HZ); } /* * Convert cputime64 to clock. */ static inline clock_t cputime64_to_clock_t(cputime64_t cputime) { return __div(cputime, 1000000 / USER_HZ); } #endif /* _S390_CPUTIME_H */