Thread (12 messages) 12 messages, 6 authors, 2011-01-05

RE: [v3 1/3] 1/3 Touchscreen: Cypress TTSP G3 MTDEV Core Driver

From: Kevin McNeely <hidden>
Date: 2011-01-05 00:40:39
Also in: lkml

Hello Hong,

The uninitialized use of ts->dev will be fixed in v4.

Thank you,
Kevin

-----Original Message-----
From: Hong Liu [mailto:hong.liu@intel.com]
Sent: Monday, January 03, 2011 5:50 PM
To: Kevin McNeely
Cc: Dmitry Torokhov; David Brown; Trilok Soni; Henrik Rydberg; Samuel
Ortiz; Eric Miao; Mike Frysinger; Alan Cox; linux-
input@vger.kernel.org; linux-kernel@vger.kernel.org
Subject: Re: [v3 1/3] 1/3 Touchscreen: Cypress TTSP G3 MTDEV Core
Driver

On Thu, 2010-12-30 at 03:17 +0800, Kevin McNeely wrote:
[...]
quoted
+
+void *cyttsp_core_init(struct cyttsp_bus_ops *bus_ops, struct device
*dev)
quoted
+{
+       struct input_dev *input_device;
+
+       struct cyttsp *ts = kzalloc(sizeof(*ts), GFP_KERNEL);
+
+       if (!ts) {
+               dev_dbg(ts->dev, "%s: Error, kzalloc\n", __func__);
+               goto error_alloc_data;
+       }
ts->dev is not assigned yet.

Thanks,
Hong
quoted
+
+       if (dev == NULL || bus_ops == NULL) {
+               kfree(ts);
+               goto error_alloc_data;
+       }
+
+       mutex_init(&ts->mutex);
+       ts->dev = dev;
+       ts->platform_data = dev->platform_data;
+       ts->bus_ops = bus_ops;
+       init_completion(&ts->bl_ready);
+
+       if (ts->platform_data->init) {
+               if (ts->platform_data->init()) {
+                       dev_dbg(ts->dev, "%s: Error, platform init
failed!\n",
quoted
+                               __func__);
+                       goto error_init;
+               }
+       }
+
+       ts->irq = gpio_to_irq(ts->platform_data->irq_gpio);
+       if (ts->irq <= 0) {
+               dev_dbg(ts->dev, "%s: Error, failed to allocate
irq\n",
quoted
+                       __func__);
+                       goto error_init;
+       }
+
+       /* Create the input device and register it. */
+       input_device = input_allocate_device();
+       if (!input_device) {
+               dev_dbg(ts->dev, "%s: Error, failed to allocate input
device\n",
quoted
+                       __func__);
+               goto error_input_allocate_device;
+       }
+
+       ts->input = input_device;
+       input_device->name = ts->platform_data->name;
+       snprintf(ts->phys, sizeof(ts->phys), "%s", dev_name(dev));
+       input_device->phys = ts->phys;
+       input_device->dev.parent = ts->dev;
+       ts->bus_type = bus_ops->dev->bus;
+       input_device->open = cyttsp_open;
+       input_device->close = cyttsp_close;
+       input_set_drvdata(input_device, ts);
+
+       __set_bit(EV_SYN, input_device->evbit);
+       __set_bit(EV_KEY, input_device->evbit);
+       __set_bit(EV_ABS, input_device->evbit);
+
+       input_set_abs_params(input_device, ABS_MT_POSITION_X,
+               0, ts->platform_data->maxx, 0, 0);
+       input_set_abs_params(input_device, ABS_MT_POSITION_Y,
+               0, ts->platform_data->maxy, 0, 0);
+       input_set_abs_params(input_device, ABS_MT_TOUCH_MAJOR,
+               0, CY_MAXZ, 0, 0);
+
+       if (input_register_device(input_device)) {
+               dev_dbg(ts->dev, "%s: Error, failed to register input
device\n",
quoted
+                       __func__);
+               goto error_input_register_device;
+       }
+
+       goto no_error;
+
+error_input_register_device:
+       input_unregister_device(input_device);
+error_input_allocate_device:
+       if (ts->platform_data->exit)
+               ts->platform_data->exit();
+error_init:
+       mutex_destroy(&ts->mutex);
+       kfree(ts);
+error_alloc_data:
+no_error:
+       return ts;
+}
+EXPORT_SYMBOL_GPL(cyttsp_core_init);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Cypress TrueTouch(R) Standard touchscreen driver
core");
quoted
+MODULE_AUTHOR("Cypress");

---------------------------------------------------------------
This message and any attachments may contain Cypress (or its
subsidiaries) confidential information. If it has been received
in error, please advise the sender and immediately delete this
message.
---------------------------------------------------------------
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help