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