Exemple #1
0
static ssize_t ms5607_enable_store(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t count)
{
	struct i2c_client *client = to_i2c_client(dev);
	struct ms5607_data *ms5607 = i2c_get_clientdata(client);
	unsigned long val;

	if (strict_strtoul(buf, 10, &val))
		return -EINVAL;

	if (val != MS5607_SYSFS_POWERON && val != MS5607_SYSFS_POWERDOWN)
		return -EINVAL;

	mutex_lock(&ms5607->lock);
	if (val)
		ms5607_enable(ms5607);
	else
		ms5607_disable(ms5607);

	ms5607->enabled = val;
	/*
	 * We don't know if user space application has e.g. restarted. So
	 * better to report coeff data again.
	 */

	ms5607->report_coeff = val;
	mutex_unlock(&ms5607->lock);

	return count;
}
Exemple #2
0
static ssize_t ms5607_enable_store(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t count)
{
	struct i2c_client *client = to_i2c_client(dev);
	struct ms5607_data *ms5607 = i2c_get_clientdata(client);
	unsigned long val;

	if (strict_strtoul(buf, 10, &val))
		return -EINVAL;

	if (val != MS5607_SYSFS_POWERON && val != MS5607_SYSFS_POWERDOWN)
		return -EINVAL;

	mutex_lock(&ms5607->lock);
	if (val)
		ms5607_enable(ms5607);
	else
		ms5607_disable(ms5607);

	ms5607->enabled = val;

	mutex_unlock(&ms5607->lock);

	return count;
}
Exemple #3
0
static void ms5607_early_suspend(struct early_suspend *h)
{
	struct ms5607_data *ms5607 = container_of(h, struct ms5607_data, es);

	mutex_lock(&ms5607->lock);
	if (ms5607->enabled)
		ms5607_disable(ms5607);
	mutex_unlock(&ms5607->lock);
}
Exemple #4
0
static int ms5607_suspend(struct device *dev)
{
	struct i2c_client *client = to_i2c_client(dev);
	struct ms5607_data *ms5607 = i2c_get_clientdata(client);

	mutex_lock(&ms5607->lock);
	if (ms5607->enabled)
		ms5607_disable(ms5607);
	mutex_unlock(&ms5607->lock);

	return 0;
}