static int bma250_remove(struct i2c_client *client) { struct bma250_data *data = i2c_get_clientdata(client); bma250_set_enable(&client->dev, 0); unregister_early_suspend(&data->early_suspend); sysfs_remove_group(&data->input->dev.kobj, &bma250_attribute_group); bma250_input_delete(data); kfree(data); return 0; }
static int bma250_remove(struct i2c_client *client) { struct bma250_data *data = i2c_get_clientdata(client); bma250_set_enable(&client->dev, 0); #ifdef CONFIG_HAS_EARLYSUSPEND unregister_early_suspend(&data->early_suspend); #endif sysfs_remove_group(&data->input->dev.kobj, &bma250_attribute_group); input_unregister_device(data->input); kfree(data); return 0; }
static ssize_t bma250_enable_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { unsigned long data; int error; error = strict_strtoul(buf, 10, &data); if (error) return error; if ((data == 0) || (data == 1)) bma250_set_enable(dev, data); return count; }
static int bma250_remove(struct i2c_client *client) { struct bma250_data *data = i2c_get_clientdata(client); bma250_set_enable(&client->dev, 0); #ifdef CONFIG_HAS_EARLYSUSPEND unregister_early_suspend(&data->early_suspend); #endif sysfs_remove_group(&data->input->dev.kobj, &bma250_attribute_group); bma250_input_delete(data); kfree(data); #if BMA250_PWROFF_EN if (bma250_set_power(false)) { printk(KERN_ERR "%s: bma250_set_power(false) fail \r\n", __func__); } #endif return 0; }