Loading drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_core.c +29 −4 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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 Loading @@ -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, Loading drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_i2c.c +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading
drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_core.c +29 −4 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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 Loading @@ -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, Loading
drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_i2c.c +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading