Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f4bec11 authored by Bingzhe Cai's avatar Bingzhe Cai
Browse files

input: sensors: cleanup lis3dh accelerometer driver



Cleanup lis3dh accelerometer driver to fix coding style
issue and fix compile error.

Change-Id: I4bd937686292f47ee7dcb945e4550e6127464ce9
Signed-off-by: default avatarBingzhe Cai <bingzhec@codeaurora.org>
parent e459a479
Loading
Loading
Loading
Loading
+40 −88
Original line number Diff line number Diff line
@@ -273,6 +273,7 @@ static int lis3dh_acc_config_regulator(struct lis3dh_acc_data *acc, bool on)
				rc = PTR_ERR(lis3dh_acc_vreg[i].vreg);
				pr_err("%s:regulator get failed rc=%d\n",
								__func__, rc);
				lis3dh_acc_vreg[i].vreg = NULL;
				goto error_vdd;
			}

@@ -286,6 +287,7 @@ static int lis3dh_acc_config_regulator(struct lis3dh_acc_data *acc, bool on)
					pr_err("%s: set voltage failed rc=%d\n",
					__func__, rc);
					regulator_put(lis3dh_acc_vreg[i].vreg);
					lis3dh_acc_vreg[i].vreg = NULL;
					goto error_vdd;
				}
			}
@@ -301,6 +303,7 @@ static int lis3dh_acc_config_regulator(struct lis3dh_acc_data *acc, bool on)
						lis3dh_acc_vreg[i].max_uV);
				}
				regulator_put(lis3dh_acc_vreg[i].vreg);
				lis3dh_acc_vreg[i].vreg = NULL;
				goto error_vdd;
			}
		}
@@ -311,12 +314,16 @@ static int lis3dh_acc_config_regulator(struct lis3dh_acc_data *acc, bool on)

error_vdd:
	while (--i >= 0) {
		if (regulator_count_voltages(lis3dh_acc_vreg[i].vreg) > 0) {
			regulator_set_voltage(lis3dh_acc_vreg[i].vreg, 0,
						lis3dh_acc_vreg[i].max_uV);
		if (!IS_ERR_OR_NULL(lis3dh_acc_vreg[i].vreg)) {
			if (regulator_count_voltages(
			lis3dh_acc_vreg[i].vreg) > 0) {
				regulator_set_voltage(lis3dh_acc_vreg[i].vreg,
						0, lis3dh_acc_vreg[i].max_uV);
			}
			regulator_disable(lis3dh_acc_vreg[i].vreg);
			regulator_put(lis3dh_acc_vreg[i].vreg);
			lis3dh_acc_vreg[i].vreg = NULL;
		}
	}
	return rc;
}
@@ -393,8 +400,6 @@ static int lis3dh_acc_hw_init(struct lis3dh_acc_data *acc)
	int err = -1;
	u8 buf[7];

	printk(KERN_INFO "%s: hw init start\n", LIS3DH_ACC_DEV_NAME);

	buf[0] = WHO_AM_I;
	err = lis3dh_acc_i2c_read(acc, buf, 1);
	if (err < 0) {
@@ -467,7 +472,6 @@ static int lis3dh_acc_hw_init(struct lis3dh_acc_data *acc)
		goto err_resume_state;

	acc->hw_initialized = 1;
	printk(KERN_INFO "%s: hw init done\n", LIS3DH_ACC_DEV_NAME);
	return 0;

err_firstread:
@@ -546,9 +550,7 @@ static irqreturn_t lis3dh_acc_isr1(int irq, void *dev)

	disable_irq_nosync(irq);
	queue_work(acc->irq1_work_queue, &acc->irq1_work);
#ifdef DEBUG
	printk(KERN_INFO "%s: isr1 queued\n", LIS3DH_ACC_DEV_NAME);
#endif

	return IRQ_HANDLED;
}

@@ -558,9 +560,7 @@ static irqreturn_t lis3dh_acc_isr2(int irq, void *dev)

	disable_irq_nosync(irq);
	queue_work(acc->irq2_work_queue, &acc->irq2_work);
#ifdef DEBUG
	printk(KERN_INFO "%s: isr2 queued\n", LIS3DH_ACC_DEV_NAME);
#endif

	return IRQ_HANDLED;
}

@@ -569,11 +569,7 @@ static void lis3dh_acc_irq1_work_func(struct work_struct *work)

	struct lis3dh_acc_data *acc =
	container_of(work, struct lis3dh_acc_data, irq1_work);
	/* TODO  add interrupt service procedure.
		 ie:lis3dh_acc_get_int1_source(acc); */
	;
	/*  */
	printk(KERN_INFO "%s: IRQ1 triggered\n", LIS3DH_ACC_DEV_NAME);

	goto exit;
exit:
	enable_irq(acc->irq1);
@@ -584,11 +580,7 @@ static void lis3dh_acc_irq2_work_func(struct work_struct *work)

	struct lis3dh_acc_data *acc =
	container_of(work, struct lis3dh_acc_data, irq2_work);
	/* TODO  add interrupt service procedure.
		 ie:lis3dh_acc_get_tap_source(acc); */
	;
	/*  */
	printk(KERN_INFO "%s: IRQ2 triggered\n", LIS3DH_ACC_DEV_NAME);

	goto exit;
exit:
	enable_irq(acc->irq2);
@@ -742,10 +734,8 @@ static int lis3dh_acc_get_acceleration_data(struct lis3dh_acc_data *acc,
		   : (hw_d[acc->pdata->axis_map_z]));

	#ifdef DEBUG
	/*
		printk(KERN_INFO "%s read x=%d, y=%d, z=%d\n",
	dev_dbg(&acc->client->dev, "%s read x=%d, y=%d, z=%d\n",
			LIS3DH_ACC_DEV_NAME, xyz[0], xyz[1], xyz[2]);
	*/
	#endif
	return err;
}
@@ -860,6 +850,7 @@ static ssize_t attr_get_range(struct device *dev,
	char val;
	struct lis3dh_acc_data *acc = dev_get_drvdata(dev);
	char range = 2;

	mutex_lock(&acc->lock);
	val = acc->pdata->g_range;
	switch (val) {
@@ -1085,26 +1076,26 @@ static ssize_t attr_addr_set(struct device *dev, struct device_attribute *attr,

static struct device_attribute attributes[] = {

	__ATTR(pollrate_ms, 0666, attr_get_polling_rate,
	__ATTR(poll_delay, 0664, attr_get_polling_rate,
			attr_set_polling_rate),
	__ATTR(range, 0666, attr_get_range, attr_set_range),
	__ATTR(enable, 0666, attr_get_enable, attr_set_enable),
	__ATTR(int1_config, 0666, attr_get_intconfig1, attr_set_intconfig1),
	__ATTR(int1_duration, 0666, attr_get_duration1, attr_set_duration1),
	__ATTR(int1_threshold, 0666, attr_get_thresh1, attr_set_thresh1),
	__ATTR(range, 0664, attr_get_range, attr_set_range),
	__ATTR(enable, 0664, attr_get_enable, attr_set_enable),
	__ATTR(int1_config, 0664, attr_get_intconfig1, attr_set_intconfig1),
	__ATTR(int1_duration, 0664, attr_get_duration1, attr_set_duration1),
	__ATTR(int1_threshold, 0664, attr_get_thresh1, attr_set_thresh1),
	__ATTR(int1_source, 0444, attr_get_source1, NULL),
	__ATTR(click_config, 0666, attr_get_click_cfg, attr_set_click_cfg),
	__ATTR(click_config, 0664, attr_get_click_cfg, attr_set_click_cfg),
	__ATTR(click_source, 0444, attr_get_click_source, NULL),
	__ATTR(click_threshold, 0666, attr_get_click_ths, attr_set_click_ths),
	__ATTR(click_timelimit, 0666, attr_get_click_tlim,
	__ATTR(click_threshold, 0664, attr_get_click_ths, attr_set_click_ths),
	__ATTR(click_timelimit, 0664, attr_get_click_tlim,
			attr_set_click_tlim),
	__ATTR(click_timelatency, 0666, attr_get_click_tlat,
	__ATTR(click_timelatency, 0664, attr_get_click_tlat,
							attr_set_click_tlat),
	__ATTR(click_timewindow, 0666, attr_get_click_tw, attr_set_click_tw),
	__ATTR(click_timewindow, 0664, attr_get_click_tw, attr_set_click_tw),

#ifdef DEBUG
	__ATTR(reg_value, 0666, attr_reg_get, attr_reg_set),
	__ATTR(reg_addr, 0222, NULL, attr_addr_set),
	__ATTR(reg_value, 0664, attr_reg_get, attr_reg_set),
	__ATTR(reg_addr, 0220, NULL, attr_addr_set),
#endif
};

@@ -1218,7 +1209,7 @@ static int lis3dh_acc_input_init(struct lis3dh_acc_data *acc)

	acc->input_dev->open = lis3dh_acc_input_open;
	acc->input_dev->close = lis3dh_acc_input_close;
	acc->input_dev->name = LIS3DH_ACC_DEV_NAME;
	acc->input_dev->name = ACCEL_INPUT_DEV_NAME;
	acc->input_dev->id.bustype = BUS_I2C;
	acc->input_dev->dev.parent = &acc->client->dev;

@@ -1283,25 +1274,6 @@ static int lis3dh_acc_probe(struct i2c_client *client,
		goto exit_check_functionality_failed;
	}

	/*
	if (!i2c_check_functionality(client->adapter,
					I2C_FUNC_SMBUS_BYTE |
					I2C_FUNC_SMBUS_BYTE_DATA |
					I2C_FUNC_SMBUS_WORD_DATA)) {
		dev_err(&client->dev, "client not smb-i2c capable:2\n");
		err = -EIO;
		goto exit_check_functionality_failed;
	}


	if (!i2c_check_functionality(client->adapter,
						I2C_FUNC_SMBUS_I2C_BLOCK)) {
		dev_err(&client->dev, "client not smb-i2c capable:3\n");
		err = -EIO;
		goto exit_check_functionality_failed;
	}
	*/

	acc = kzalloc(sizeof(struct lis3dh_acc_data), GFP_KERNEL);
	if (acc == NULL) {
		err = -ENOMEM;
@@ -1344,23 +1316,11 @@ static int lis3dh_acc_probe(struct i2c_client *client,
		}
	}

	if (acc->pdata->gpio_int1 >= 0) {
	if (acc->pdata->gpio_int1 >= 0)
		acc->irq1 = gpio_to_irq(acc->pdata->gpio_int1);
		printk(KERN_INFO "%s: %s has set irq1 to irq: %d\n",
			LIS3DH_ACC_DEV_NAME, __func__, acc->irq1);
		printk(KERN_INFO "%s: %s has mapped irq1 on gpio: %d\n",
			LIS3DH_ACC_DEV_NAME, __func__,
			acc->pdata->gpio_int1);
	}

	if (acc->pdata->gpio_int2 >= 0) {
	if (acc->pdata->gpio_int2 >= 0)
		acc->irq2 = gpio_to_irq(acc->pdata->gpio_int2);
		printk(KERN_INFO "%s: %s has set irq2 to irq: %d\n",
			LIS3DH_ACC_DEV_NAME, __func__, acc->irq2);
		printk(KERN_INFO "%s: %s has mapped irq2 on gpio: %d\n",
			LIS3DH_ACC_DEV_NAME, __func__,
			acc->pdata->gpio_int2);
	}

	memset(acc->resume_state, 0, ARRAY_SIZE(acc->resume_state));

@@ -1460,11 +1420,9 @@ static int lis3dh_acc_probe(struct i2c_client *client,
		disable_irq_nosync(acc->irq2);
	}



	mutex_unlock(&acc->lock);

	dev_info(&client->dev, "%s: probed\n", LIS3DH_ACC_DEV_NAME);
	dev_dbg(&client->dev, "%s: probed\n", LIS3DH_ACC_DEV_NAME);

	return 0;

@@ -1491,11 +1449,11 @@ err_mutexunlock:
	mutex_unlock(&acc->lock);
	kfree(acc);
exit_check_functionality_failed:
	printk(KERN_ERR "%s: Driver Init failed\n", LIS3DH_ACC_DEV_NAME);
	dev_err(&client->dev, "%s: Driver Init failed\n", LIS3DH_ACC_DEV_NAME);
	return err;
}

static int __devexit lis3dh_acc_remove(struct i2c_client *client)
static int lis3dh_acc_remove(struct i2c_client *client)
{
	struct lis3dh_acc_data *acc = i2c_get_clientdata(client);

@@ -1556,7 +1514,7 @@ static struct i2c_driver lis3dh_acc_driver = {
			.name = LIS3DH_ACC_DEV_NAME,
		  },
	.probe = lis3dh_acc_probe,
	.remove = __devexit_p(lis3dh_acc_remove),
	.remove = lis3dh_acc_remove,
	.suspend = lis3dh_acc_suspend,
	.resume = lis3dh_acc_resume,
	.id_table = lis3dh_acc_id,
@@ -1564,17 +1522,11 @@ static struct i2c_driver lis3dh_acc_driver = {

static int __init lis3dh_acc_init(void)
{
	printk(KERN_INFO "%s accelerometer driver: init\n",
						LIS3DH_ACC_DEV_NAME);
	return i2c_add_driver(&lis3dh_acc_driver);
}

static void __exit lis3dh_acc_exit(void)
{
#ifdef DEBUG
	printk(KERN_INFO "%s accelerometer driver exit\n",
						LIS3DH_ACC_DEV_NAME);
#endif /* DEBUG */
	i2c_del_driver(&lis3dh_acc_driver);
	return;
}
+1 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@
#define LIS3DH_ACC_I2C_SAD_L	((LIS3DH_ACC_I2C_SADROOT<<1)|SAD0L)
#define LIS3DH_ACC_I2C_SAD_H	((LIS3DH_ACC_I2C_SADROOT<<1)|SAD0H)
#define	LIS3DH_ACC_DEV_NAME	"lis3dh_acc"

#define ACCEL_INPUT_DEV_NAME	"accelerometer"

/************************************************/
/*	Accelerometer defines section		*/