本文整理汇总了C++中clamp_val函数的典型用法代码示例。如果您正苦于以下问题:C++ clamp_val函数的具体用法?C++ clamp_val怎么用?C++ clamp_val使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了clamp_val函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: smb347_set_voltage_limits
static int smb347_set_voltage_limits(struct smb347_charger *smb)
{
int ret, val;
ret = smb347_read(smb, CFG_FLOAT_VOLTAGE);
if (ret < 0)
return ret;
if (smb->pdata->pre_to_fast_voltage) {
val = smb->pdata->pre_to_fast_voltage;
val = clamp_val(val, 2400000, 3000000) - 2400000;
val /= 200000;
ret &= ~CFG_FLOAT_VOLTAGE_THRESHOLD_MASK;
ret |= val << CFG_FLOAT_VOLTAGE_THRESHOLD_SHIFT;
}
if (smb->pdata->max_charge_voltage) {
val = smb->pdata->max_charge_voltage;
val = clamp_val(val, 3500000, 4500000) - 3500000;
val /= 20000;
ret |= val;
}
return smb347_write(smb, CFG_FLOAT_VOLTAGE, ret);
}
开发者ID:DirtyDroidX,项目名称:android_kernel_htc_m8ul,代码行数:31,代码来源:smb347-charger.c
示例2: mxr_try_format
static int mxr_try_format(struct mxr_device *mdev,
struct v4l2_subdev_fh *fh, u32 pad,
struct v4l2_mbus_framefmt *fmt,
enum v4l2_subdev_format_whence which)
{
struct v4l2_mbus_framefmt mbus_fmt;
fmt->width = clamp_val(fmt->width, 1, 32767);
fmt->height = clamp_val(fmt->height, 1, 2047);
switch (pad) {
case MXR_PAD_SINK_GSCALER:
fmt->code = V4L2_MBUS_FMT_YUV8_1X24;
break;
case MXR_PAD_SINK_GRP0:
case MXR_PAD_SINK_GRP1:
fmt->code = mxr_adjust_graph_format(fmt->code);
break;
case MXR_PAD_SOURCE_GSCALER:
case MXR_PAD_SOURCE_GRP0:
case MXR_PAD_SOURCE_GRP1:
mxr_get_mbus_fmt(mdev, &mbus_fmt);
fmt->code = (fmt->code == V4L2_MBUS_FMT_YUV8_1X24) ?
V4L2_MBUS_FMT_YUV8_1X24 : V4L2_MBUS_FMT_XRGB8888_4X8_LE;
fmt->width = mbus_fmt.width;
fmt->height = mbus_fmt.height;
break;
}
return 0;
}
开发者ID:djmax81,项目名称:Suemax-kernel_Exynos5433_BASIC_MM,代码行数:31,代码来源:mixer_drv.c
示例3: lut_temp_to_reg
static inline int lut_temp_to_reg(struct lm63_data *data, long val)
{
val -= data->temp2_offset;
if (data->lut_temp_highres)
return DIV_ROUND_CLOSEST(clamp_val(val, 0, 127500), 500);
else
return DIV_ROUND_CLOSEST(clamp_val(val, 0, 127000), 1000);
}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:8,代码来源:lm63.c
示例4: FAN_TO_REG
static inline u8 FAN_TO_REG(long rpm, int div)
{
long rpmdiv;
if (rpm == 0)
return 0;
rpmdiv = clamp_val(rpm, 1, 960000) * div;
return clamp_val((480000 + rpmdiv / 2) / rpmdiv, 1, 255);
}
开发者ID:Anjali05,项目名称:linux,代码行数:8,代码来源:gl518sm.c
示例5: FAN_TO_REG
static u8 FAN_TO_REG(long rpm, int div)
{
if (rpm == -1)
return 0;
if (rpm == 0)
return 255;
rpm = clamp_val(rpm, 1, 1000000);
return clamp_val((1350000 + rpm * div / 2) / (rpm * div), 1, 254);
}
开发者ID:AiWinters,项目名称:linux,代码行数:9,代码来源:asb100.c
示例6: clamp_val
void RectPrism::resize(XnPoint3D d)
{
this->width += d.X;
this->height += d.Y;
this->depth += d.Z;
clamp_val(width, SIZE_MIN_DIM/2, SIZE_MAX_DIM/2);
clamp_val(height, SIZE_MIN_DIM/2, SIZE_MAX_DIM/2);
clamp_val(height, SIZE_MIN_DIM/2, SIZE_MAX_DIM/2);
}
开发者ID:chazmatazz,项目名称:nestk,代码行数:9,代码来源:RectPrism.cpp
示例7: temp_to_reg
/* Return Both High byte and Low byte */
static u16 temp_to_reg(long temp, u8 config)
{
if (config & CFG_EXTEND) {
temp = clamp_val(temp, -64000, 191000);
temp += 64000;
} else
temp = clamp_val(temp, 0, 127000);
return (temp * 160 + 312) / 625; /* Copied from TMP411 driver */
}
开发者ID:1ee7,项目名称:linux_l4t_tx1,代码行数:11,代码来源:tmon-tmp411.c
示例8: IN_TO_REG
/*
* Conversions. Limit checking is only done on the TO_REG
* variants.
*
******** VOLTAGE CONVERSIONS (Bob Dougherty) ********
* From HWMon.cpp (Copyright 1998-2000 Jonathan Teh Soon Yew):
* voltagefactor[0]=1.25/2628; (2628/1.25=2102.4) // Vccp
* voltagefactor[1]=1.25/2628; (2628/1.25=2102.4) // +2.5V
* voltagefactor[2]=1.67/2628; (2628/1.67=1573.7) // +3.3V
* voltagefactor[3]=2.6/2628; (2628/2.60=1010.8) // +5V
* voltagefactor[4]=6.3/2628; (2628/6.30=417.14) // +12V
* in[i]=(data[i+2]*25.0+133)*voltagefactor[i];
* That is:
* volts = (25*regVal+133)*factor
* regVal = (volts/factor-133)/25
* (These conversions were contributed by Jonathan Teh Soon Yew
* <[email protected]>)
*/
static inline u8 IN_TO_REG(long val, int in_num)
{
if (in_num <= 1)
return (u8) clamp_val((val * 21024 - 1205000) / 250000, 0, 255);
else if (in_num == 2)
return (u8) clamp_val((val * 15737 - 1205000) / 250000, 0, 255);
else if (in_num == 3)
return (u8) clamp_val((val * 10108 - 1205000) / 250000, 0, 255);
else
return (u8) clamp_val((val * 41714 - 12050000) / 2500000, 0,
255);
}
开发者ID:magnusjjj,项目名称:android_kernel_huawei_rle,代码行数:31,代码来源:via686a.c
示例9: adxl345_write_raw
static int adxl345_write_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan,
int val, int val2, long mask)
{
struct adxl345_data *data = iio_priv(indio_dev);
s64 n;
switch (mask) {
case IIO_CHAN_INFO_CALIBBIAS:
/*
* 8-bit resolution at +/- 2g, that is 4x accel data scale
* factor
*/
return regmap_write(data->regmap,
ADXL345_REG_OFS_AXIS(chan->address),
val / 4);
case IIO_CHAN_INFO_SAMP_FREQ:
n = div_s64(val * NHZ_PER_HZ + val2, ADXL345_BASE_RATE_NANO_HZ);
return regmap_update_bits(data->regmap, ADXL345_REG_BW_RATE,
ADXL345_BW_RATE,
clamp_val(ilog2(n), 0,
ADXL345_BW_RATE));
}
return -EINVAL;
}
开发者ID:Anjali05,项目名称:linux,代码行数:27,代码来源:adxl345_core.c
示例10: min_store
static ssize_t min_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
int ret;
long temp;
struct stts751_priv *priv = dev_get_drvdata(dev);
if (kstrtol(buf, 10, &temp) < 0)
return -EINVAL;
mutex_lock(&priv->access_lock);
/* HW works in range -64C to +127.937C */
temp = clamp_val(temp, -64000, priv->event_max);
ret = stts751_set_temp_reg16(priv, temp,
STTS751_REG_LLIM_H, STTS751_REG_LLIM_L);
if (ret)
goto exit;
dev_dbg(&priv->client->dev, "setting event min %ld", temp);
priv->event_min = temp;
ret = count;
exit:
mutex_unlock(&priv->access_lock);
return ret;
}
开发者ID:Anjali05,项目名称:linux,代码行数:25,代码来源:stts751.c
示例11: set_pwm1
static ssize_t set_pwm1(struct device *dev, struct device_attribute *devattr,
const char *buf, size_t count)
{
struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
struct lm63_data *data = dev_get_drvdata(dev);
struct i2c_client *client = data->client;
int nr = attr->index;
unsigned long val;
int err;
u8 reg;
if (!(data->config_fan & 0x20)) /* register is read-only */
return -EPERM;
err = kstrtoul(buf, 10, &val);
if (err)
return err;
reg = nr ? LM63_REG_LUT_PWM(nr - 1) : LM63_REG_PWM_VALUE;
val = clamp_val(val, 0, 255);
mutex_lock(&data->update_lock);
data->pwm1[nr] = data->pwm_highres ? val :
(val * data->pwm1_freq * 2 + 127) / 255;
i2c_smbus_write_byte_data(client, reg, data->pwm1[nr]);
mutex_unlock(&data->update_lock);
return count;
}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:28,代码来源:lm63.c
示例12: set_crit_hyst
static ssize_t set_crit_hyst(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
struct lm95245_data *data = dev_get_drvdata(dev);
int index = to_sensor_dev_attr(attr)->index;
struct i2c_client *client = data->client;
unsigned long val;
int hyst, limit;
if (kstrtoul(buf, 10, &val) < 0)
return -EINVAL;
mutex_lock(&data->update_lock);
limit = i2c_smbus_read_byte_data(client, lm95245_reg_address[index]);
hyst = limit - val / 1000;
hyst = clamp_val(hyst, 0, 31);
data->regs[8] = hyst;
/* shared crit hysteresis */
i2c_smbus_write_byte_data(client, LM95245_REG_RW_COMMON_HYSTERESIS,
hyst);
mutex_unlock(&data->update_lock);
return count;
}
开发者ID:020gzh,项目名称:linux,代码行数:27,代码来源:lm95245.c
示例13: set_limit
static ssize_t set_limit(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
struct lm95245_data *data = dev_get_drvdata(dev);
int index = to_sensor_dev_attr(attr)->index;
struct i2c_client *client = data->client;
unsigned long val;
if (kstrtoul(buf, 10, &val) < 0)
return -EINVAL;
val /= 1000;
val = clamp_val(val, 0, (index == 6 ? 127 : 255));
mutex_lock(&data->update_lock);
data->valid = 0;
i2c_smbus_write_byte_data(client, lm95245_reg_address[index], val);
mutex_unlock(&data->update_lock);
return count;
}
开发者ID:020gzh,项目名称:linux,代码行数:25,代码来源:lm95245.c
示例14: set_temp_min
static ssize_t set_temp_min(struct device *dev,
struct device_attribute *devattr,
const char *buf, size_t count)
{
int index = to_sensor_dev_attr(devattr)->index;
struct max1668_data *data = dev_get_drvdata(dev);
struct i2c_client *client = data->client;
long temp;
int ret;
ret = kstrtol(buf, 10, &temp);
if (ret < 0)
return ret;
mutex_lock(&data->update_lock);
data->temp_min[index] = clamp_val(temp/1000, -128, 127);
ret = i2c_smbus_write_byte_data(client,
MAX1668_REG_LIML_WR(index),
data->temp_min[index]);
if (ret < 0)
count = ret;
mutex_unlock(&data->update_lock);
return count;
}
开发者ID:mikuhatsune001,项目名称:linux2.6.32,代码行数:25,代码来源:max1668.c
示例15: set_pwm
static ssize_t set_pwm(struct device *dev, struct device_attribute *devattr,
const char *buf, size_t count)
{
struct i2c_client *client = to_i2c_client(dev);
struct max6650_data *data = i2c_get_clientdata(client);
unsigned long pwm;
int err;
err = kstrtoul(buf, 10, &pwm);
if (err)
return err;
pwm = clamp_val(pwm, 0, 255);
mutex_lock(&data->update_lock);
if (data->config & MAX6650_CFG_V12)
data->dac = 180 - (180 * pwm)/255;
else
data->dac = 76 - (76 * pwm)/255;
i2c_smbus_write_byte_data(client, MAX6650_REG_DAC, data->dac);
mutex_unlock(&data->update_lock);
return count;
}
开发者ID:03199618,项目名称:linux,代码行数:27,代码来源:max6650.c
示例16: LongType
ShFraction<T>& ShFraction<T>::operator/=(const ShFraction& other)
{
LongType numerator = LongType(m_val) << BITS;
LongType denom = LongType(other.m_val);
m_val = clamp_val(numerator / denom);
return (*this);
}
开发者ID:Solidstatewater,项目名称:Anubis-Engine,代码行数:7,代码来源:ShFractionImpl.hpp
示例17: therm_store
static ssize_t therm_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
int ret;
long temp;
struct stts751_priv *priv = dev_get_drvdata(dev);
if (kstrtol(buf, 10, &temp) < 0)
return -EINVAL;
/* HW works in range -64C to +127.937C */
temp = clamp_val(temp, -64000, 127937);
mutex_lock(&priv->access_lock);
ret = stts751_set_temp_reg8(priv, temp, STTS751_REG_TLIM);
if (ret)
goto exit;
dev_dbg(&priv->client->dev, "setting therm %ld", temp);
/*
* hysteresis reg is relative to therm, so the HW does not need to be
* adjusted, we need to update our local copy only.
*/
priv->hyst = temp - (priv->therm - priv->hyst);
priv->therm = temp;
exit:
mutex_unlock(&priv->access_lock);
if (ret)
return ret;
return count;
}
开发者ID:Anjali05,项目名称:linux,代码行数:33,代码来源:stts751.c
示例18: set_fan
static ssize_t set_fan(struct device *dev, struct device_attribute *devattr,
const char *buf, size_t count)
{
struct emc6w201_data *data = dev_get_drvdata(dev);
struct i2c_client *client = data->client;
int sf = to_sensor_dev_attr_2(devattr)->index;
int nr = to_sensor_dev_attr_2(devattr)->nr;
int err;
unsigned long val;
err = kstrtoul(buf, 10, &val);
if (err < 0)
return err;
if (val == 0) {
val = 0xFFFF;
} else {
val = DIV_ROUND_CLOSEST(5400000U, val);
val = clamp_val(val, 0, 0xFFFE);
}
mutex_lock(&data->update_lock);
data->fan[sf][nr] = val;
err = emc6w201_write16(client, EMC6W201_REG_FAN_MIN(nr),
data->fan[sf][nr]);
mutex_unlock(&data->update_lock);
return err < 0 ? err : count;
}
开发者ID:020gzh,项目名称:linux,代码行数:29,代码来源:emc6w201.c
示例19: mxr_video_fix_geometry
static void mxr_video_fix_geometry(struct mxr_layer *layer)
{
struct mxr_geometry *geo = &layer->geo;
mxr_dbg(layer->mdev, "%s start\n", __func__);
geo->dst.x_offset = clamp_val(geo->dst.x_offset, 0,
geo->dst.full_width - 1);
geo->dst.y_offset = clamp_val(geo->dst.y_offset, 0,
geo->dst.full_height - 1);
/* mixer scale-up is unuseful. so no use it */
geo->dst.width = clamp_val(geo->dst.width, 1,
geo->dst.full_width - geo->dst.x_offset);
geo->dst.height = clamp_val(geo->dst.height, 1,
geo->dst.full_height - geo->dst.y_offset);
}
开发者ID:ARMP,项目名称:ARMP-i9300,代码行数:16,代码来源:mixer_video_layer.c
示例20: set_offset
static ssize_t set_offset(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
struct lm95234_data *data = dev_get_drvdata(dev);
int index = to_sensor_dev_attr(attr)->index;
int ret = lm95234_update_device(data);
long val;
if (ret)
return ret;
ret = kstrtol(buf, 10, &val);
if (ret < 0)
return ret;
/* Accuracy is 1/2 degrees C */
val = clamp_val(DIV_ROUND_CLOSEST(val, 500), -128, 127);
mutex_lock(&data->update_lock);
data->toffset[index] = val;
i2c_smbus_write_byte_data(data->client, LM95234_REG_OFFSET(index), val);
mutex_unlock(&data->update_lock);
return count;
}
开发者ID:3null,项目名称:linux,代码行数:25,代码来源:lm95234.c
注:本文中的clamp_val函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论