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;
}
static int
geomagnetic_remove(struct i2c_client *client)
{
    struct geomagnetic_data *data = i2c_get_clientdata(client);

    if (data != NULL) {
        geomagnetic_disable(data);
        if (hwdep_driver.term != NULL) {
            hwdep_driver.term();
        }

        input_unregister_device(data->input_raw);
        sysfs_remove_group(&data->input_data->dev.kobj,
                &geomagnetic_attribute_group);
        sysfs_remove_group(&data->input_raw->dev.kobj,
                &geomagnetic_raw_attribute_group);
        input_unregister_device(data->input_data);
        kfree(data);
    }

    return 0;
}