Esempio n. 1
0
static int bma250_suspend(struct i2c_client *ic_dev, pm_message_t mesg)
{
    struct driver_data *dd = bma250_ic_get_data(ic_dev);

    if (dd->ip_dev->users)
        bma250_power_down(dd);

    return 0;
}
Esempio n. 2
0
static int bma250_resume(struct i2c_client *ic_dev)
{
    struct driver_data *dd = bma250_ic_get_data(ic_dev);
    int rc = 0;

    if (dd->ip_dev->users) {
        rc = bma250_power_up(dd);
        if (rc)
            return rc;
        rc = bma250_config(dd);
    }
    return rc;
}
static int bma250_resume(struct i2c_client *ic_dev)
{
	struct driver_data *dd = bma250_ic_get_data(ic_dev);
	int rc = 0;

	if (dd->ip_dev->users) {
		rc = bma250_power_up(dd);
		if (rc)
			return rc;
		rc = bma250_config(dd, TRUE, TRUE);
		schedule_delayed_work(&dd->work_data, dd->delay_jiffies);
	}
	return rc;
}
Esempio n. 4
0
static int __devexit bma250_remove(struct i2c_client *ic_dev)
{
    struct driver_data *dd = bma250_ic_get_data(ic_dev);
    int                 rc;

    rc = bma250_power_down(dd);
    if (rc)
        dev_err(&dd->ip_dev->dev,
                "%s: power down failed with error %d\n",
                __func__, rc);
    remove_sysfs_interfaces(&dd->ip_dev->dev);
    input_unregister_device(dd->ip_dev);
    bma250_remove_dbfs_entry(dd);
    bma250_ic_set_data(ic_dev, NULL);
    mutex_lock(&bma250_dd_lock);
    list_del(&dd->next_dd);
    mutex_unlock(&bma250_dd_lock);
    kfree(dd);
    return 0;
}