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

Commit 74b88742 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "input: synaptics_dsx_2.6: fix issues raised by static analyzer"

parents d1e6f204 a7ade8b5
Loading
Loading
Loading
Loading
+29 −4
Original line number Diff line number Diff line
@@ -3140,7 +3140,9 @@ static int synaptics_rmi4_gpio_setup(int gpio, bool config, int dir, int state)
	unsigned char buf[16];

	if (config) {
		snprintf(buf, PAGE_SIZE, "dsx_gpio_%u\n", gpio);
		retval = snprintf(buf, ARRAY_SIZE(buf), "dsx_gpio_%u\n", gpio);
		if (retval >= 16)
			return -EINVAL;

		retval = gpio_request(gpio, buf);
		if (retval) {
@@ -4080,19 +4082,29 @@ static int synaptics_rmi4_probe(struct platform_device *pdev)

	rmi4_data->rb_workqueue =
			create_singlethread_workqueue("dsx_rebuild_workqueue");
	if (!rmi4_data->rb_workqueue) {
		retval = -ENOMEM;
		goto err_rb_workqueue;
	}
	INIT_DELAYED_WORK(&rmi4_data->rb_work, synaptics_rmi4_rebuild_work);

	exp_data.workqueue = create_singlethread_workqueue("dsx_exp_workqueue");
	if (!exp_data.workqueue) {
		retval = -ENOMEM;
		goto err_exp_data_workqueue;
	}
	INIT_DELAYED_WORK(&exp_data.work, synaptics_rmi4_exp_fn_work);
	exp_data.rmi4_data = rmi4_data;
	exp_data.queue_work = true;
	queue_delayed_work(exp_data.workqueue,
			&exp_data.work,
			0);
	queue_delayed_work(exp_data.workqueue, &exp_data.work, 0);

#ifdef FB_READY_RESET
	rmi4_data->reset_workqueue =
			create_singlethread_workqueue("dsx_reset_workqueue");
	if (!rmi4_data->reset_workqueue) {
		retval = -ENOMEM;
		goto err_reset_workqueue;
	}
	INIT_WORK(&rmi4_data->reset_work, synaptics_rmi4_reset_work);
	queue_work(rmi4_data->reset_workqueue, &rmi4_data->reset_work);
#endif
@@ -4103,6 +4115,19 @@ static int synaptics_rmi4_probe(struct platform_device *pdev)

	return retval;

#ifdef FB_READY_RESET
err_reset_workqueue:
#endif
	cancel_delayed_work_sync(&exp_data.work);
	flush_workqueue(exp_data.workqueue);
	destroy_workqueue(exp_data.workqueue);

err_exp_data_workqueue:
	cancel_delayed_work_sync(&rmi4_data->rb_work);
	flush_workqueue(rmi4_data->rb_workqueue);
	destroy_workqueue(rmi4_data->rb_workqueue);

err_rb_workqueue:
err_sysfs:
	for (attr_count--; attr_count >= 0; attr_count--) {
		sysfs_remove_file(&rmi4_data->input_dev->dev.kobj,
+1 −1
Original line number Diff line number Diff line
@@ -291,7 +291,7 @@ static void synaptics_rmi4_i2c_check_addr(struct synaptics_rmi4_data *rmi4_data,
static int synaptics_rmi4_i2c_set_page(struct synaptics_rmi4_data *rmi4_data,
		unsigned short addr)
{
	int retval;
	int retval = 0;
	unsigned char retry;
	unsigned char buf[PAGE_SELECT_LEN];
	unsigned char page;