xref: /rk3399_rockchip-uboot/include/usb/lin_gadget_compat.h (revision 1a4596601fd395f3afb8f82f3f840c5e00bdd57a)
138517a78SLukasz Majewski /*
238517a78SLukasz Majewski  * Copyright (c) 2011 Samsung Electronics
338517a78SLukasz Majewski  * Lukasz Majewski <l.majewski@samsung.com>
438517a78SLukasz Majewski  *
538517a78SLukasz Majewski  * This is a Linux kernel compatibility layer for USB Gadget
638517a78SLukasz Majewski  *
7*1a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
838517a78SLukasz Majewski  */
938517a78SLukasz Majewski 
1038517a78SLukasz Majewski #ifndef __LIN_COMPAT_H__
1138517a78SLukasz Majewski #define __LIN_COMPAT_H__
1238517a78SLukasz Majewski 
136777a3cfSMike Frysinger #include <linux/compat.h>
146777a3cfSMike Frysinger 
1538517a78SLukasz Majewski /* common */
1638517a78SLukasz Majewski #define spin_lock_init(...)
1738517a78SLukasz Majewski #define spin_lock(...)
18ea2d9159SAnatolij Gustschin #define spin_lock_irqsave(lock, flags) do { debug("%lu\n", flags); } while (0)
1938517a78SLukasz Majewski #define spin_unlock(...)
2038517a78SLukasz Majewski #define spin_unlock_irqrestore(lock, flags) do {flags = 0; } while (0)
2138517a78SLukasz Majewski #define disable_irq(...)
2238517a78SLukasz Majewski #define enable_irq(...)
2338517a78SLukasz Majewski 
2438517a78SLukasz Majewski #define mutex_init(...)
2538517a78SLukasz Majewski #define mutex_lock(...)
2638517a78SLukasz Majewski #define mutex_unlock(...)
2738517a78SLukasz Majewski 
2838517a78SLukasz Majewski #define GFP_KERNEL	0
2938517a78SLukasz Majewski 
3038517a78SLukasz Majewski #define IRQ_HANDLED	1
3138517a78SLukasz Majewski 
3238517a78SLukasz Majewski #define ENOTSUPP	524	/* Operation is not supported */
3338517a78SLukasz Majewski 
347010f5b9SLukasz Majewski #define BITS_PER_BYTE				8
357010f5b9SLukasz Majewski #define BITS_TO_LONGS(nr) \
367010f5b9SLukasz Majewski 	DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long))
377010f5b9SLukasz Majewski #define DECLARE_BITMAP(name, bits) \
387010f5b9SLukasz Majewski 	unsigned long name[BITS_TO_LONGS(bits)]
397010f5b9SLukasz Majewski 
407010f5b9SLukasz Majewski #define small_const_nbits(nbits) \
417010f5b9SLukasz Majewski 	(__builtin_constant_p(nbits) && (nbits) <= BITS_PER_LONG)
427010f5b9SLukasz Majewski 
437010f5b9SLukasz Majewski static inline void bitmap_zero(unsigned long *dst, int nbits)
447010f5b9SLukasz Majewski {
457010f5b9SLukasz Majewski 	if (small_const_nbits(nbits))
467010f5b9SLukasz Majewski 		*dst = 0UL;
477010f5b9SLukasz Majewski 	else {
487010f5b9SLukasz Majewski 		int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long);
497010f5b9SLukasz Majewski 		memset(dst, 0, len);
507010f5b9SLukasz Majewski 	}
517010f5b9SLukasz Majewski }
527010f5b9SLukasz Majewski 
5338517a78SLukasz Majewski #define dma_cache_maint(addr, size, mode) cache_flush()
5438517a78SLukasz Majewski void cache_flush(void);
5538517a78SLukasz Majewski 
5638517a78SLukasz Majewski #endif /* __LIN_COMPAT_H__ */
57