1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * cxd2880_common.c 4*4882a593Smuzhiyun * Sony CXD2880 DVB-T2/T tuner + demodulator driver 5*4882a593Smuzhiyun * common functions 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Copyright (C) 2016, 2017, 2018 Sony Semiconductor Solutions Corporation 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #include "cxd2880_common.h" 11*4882a593Smuzhiyun cxd2880_convert2s_complement(u32 value,u32 bitlen)12*4882a593Smuzhiyunint cxd2880_convert2s_complement(u32 value, u32 bitlen) 13*4882a593Smuzhiyun { 14*4882a593Smuzhiyun if (!bitlen || bitlen >= 32) 15*4882a593Smuzhiyun return (int)value; 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun if (value & (u32)(1 << (bitlen - 1))) 18*4882a593Smuzhiyun return (int)(GENMASK(31, bitlen) | value); 19*4882a593Smuzhiyun else 20*4882a593Smuzhiyun return (int)(GENMASK(bitlen - 1, 0) & value); 21*4882a593Smuzhiyun } 22