xref: /linux/drivers/media/pci/cx25821/cx25821-biffuncs.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1*c942fddfSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
202b20b0bSMauro Carvalho Chehab /*
302b20b0bSMauro Carvalho Chehab  *  Driver for the Conexant CX25821 PCIe bridge
402b20b0bSMauro Carvalho Chehab  *
502b20b0bSMauro Carvalho Chehab  *  Copyright (C) 2009 Conexant Systems Inc.
602b20b0bSMauro Carvalho Chehab  *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
702b20b0bSMauro Carvalho Chehab  */
802b20b0bSMauro Carvalho Chehab 
902b20b0bSMauro Carvalho Chehab #ifndef _BITFUNCS_H
1002b20b0bSMauro Carvalho Chehab #define _BITFUNCS_H
1102b20b0bSMauro Carvalho Chehab 
1202b20b0bSMauro Carvalho Chehab #define SetBit(Bit)  (1 << Bit)
1302b20b0bSMauro Carvalho Chehab 
getBit(u32 sample,u8 index)14dafc456cSMauro Carvalho Chehab static inline u8 getBit(u32 sample, u8 index)
1502b20b0bSMauro Carvalho Chehab {
1602b20b0bSMauro Carvalho Chehab 	return (u8) ((sample >> index) & 1);
1702b20b0bSMauro Carvalho Chehab }
1802b20b0bSMauro Carvalho Chehab 
clearBitAtPos(u32 value,u8 bit)19dafc456cSMauro Carvalho Chehab static inline u32 clearBitAtPos(u32 value, u8 bit)
2002b20b0bSMauro Carvalho Chehab {
2102b20b0bSMauro Carvalho Chehab 	return value & ~(1 << bit);
2202b20b0bSMauro Carvalho Chehab }
2302b20b0bSMauro Carvalho Chehab 
setBitAtPos(u32 sample,u8 bit)24dafc456cSMauro Carvalho Chehab static inline u32 setBitAtPos(u32 sample, u8 bit)
2502b20b0bSMauro Carvalho Chehab {
2602b20b0bSMauro Carvalho Chehab 	sample |= (1 << bit);
2702b20b0bSMauro Carvalho Chehab 	return sample;
2802b20b0bSMauro Carvalho Chehab 
2902b20b0bSMauro Carvalho Chehab }
3002b20b0bSMauro Carvalho Chehab 
3102b20b0bSMauro Carvalho Chehab #endif
32