Пример #1
0
static ssize_t
geomagnetic_enable_store(struct device *dev,
        struct device_attribute *attr,
        const char *buf,
        size_t count)
{
    struct input_dev *input_data = to_input_dev(dev);
    struct geomagnetic_data *data = input_get_drvdata(input_data);
    int value;

    value = !!simple_strtol(buf, NULL, 10);
    if (hwdep_driver.set_enable == NULL) {
        return -ENOTTY;
    }

    if (geomagnetic_multi_lock() < 0) {
        return count;
    }

    if (hwdep_driver.set_enable(value) == 0) {
        if (value) {
            geomagnetic_enable(data);
        }
        else {
            geomagnetic_disable(data);
        }
    }

    geomagnetic_multi_unlock();

    return count;
}
static ssize_t
geomagnetic_enable_store(struct device *dev,
        struct device_attribute *attr,
        const char *buf,
        size_t count)
{
    struct input_dev *input_data = to_input_dev(dev);
    struct geomagnetic_data *data = input_get_drvdata(input_data);
    int value;

	dbg_func_in();
	
    value = !!simple_strtol(buf, NULL, 10);
	dbg("%s : enable(%d)\n", __func__, value);
    if (hwdep_driver.set_enable == NULL) {
        return -ENOTTY;
    }

#ifndef PANTECH_AVOID_DEADLOCK //p12911 : ef33s sensor patch
    if (geomagnetic_multi_lock() < 0) {
        return count;
    }
#endif

    if (hwdep_driver.set_enable(value) == 0) {
        if (value) {
            geomagnetic_enable(data);
        }
        else {
            geomagnetic_disable(data);
        }
    }

#ifndef PANTECH_AVOID_DEADLOCK
    geomagnetic_multi_unlock();
#endif

	dbg_func_out();

    return count;
}