@@ -1165,6 +1165,15 @@ static int __devinit mxt_probe(struct i2c_client *client,
error = request_threaded_irq(client->irq, NULL, mxt_interrupt,
IRQF_TRIGGER_FALLING, client->dev.driver->name, data);
+
+ if (error) {
+ /* If registering an interrupt with falling edge didn't work,
+ try any edge. */
+ error = request_threaded_irq(client->irq, NULL, mxt_interrupt,
+ IRQF_TRIGGER_NONE,
+ client->dev.driver->name, data);
+ }
+
if (error) {
dev_err(&client->dev, "Failed to register interrupt\n");
goto err_free_object;