|
@@ -635,23 +635,6 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
|
|
if (isl1208_i2c_validate_client(client) < 0)
|
|
|
return -ENODEV;
|
|
|
|
|
|
- if (client->irq > 0) {
|
|
|
- rc = devm_request_threaded_irq(&client->dev, client->irq, NULL,
|
|
|
- isl1208_rtc_interrupt,
|
|
|
- IRQF_SHARED | IRQF_ONESHOT,
|
|
|
- isl1208_driver.driver.name,
|
|
|
- client);
|
|
|
- if (!rc) {
|
|
|
- device_init_wakeup(&client->dev, 1);
|
|
|
- enable_irq_wake(client->irq);
|
|
|
- } else {
|
|
|
- dev_err(&client->dev,
|
|
|
- "Unable to request irq %d, no alarm support\n",
|
|
|
- client->irq);
|
|
|
- client->irq = 0;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
rtc = devm_rtc_device_register(&client->dev, isl1208_driver.driver.name,
|
|
|
&isl1208_rtc_ops,
|
|
|
THIS_MODULE);
|
|
@@ -674,6 +657,23 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
|
|
if (rc)
|
|
|
return rc;
|
|
|
|
|
|
+ if (client->irq > 0) {
|
|
|
+ rc = devm_request_threaded_irq(&client->dev, client->irq, NULL,
|
|
|
+ isl1208_rtc_interrupt,
|
|
|
+ IRQF_SHARED | IRQF_ONESHOT,
|
|
|
+ isl1208_driver.driver.name,
|
|
|
+ client);
|
|
|
+ if (!rc) {
|
|
|
+ device_init_wakeup(&client->dev, 1);
|
|
|
+ enable_irq_wake(client->irq);
|
|
|
+ } else {
|
|
|
+ dev_err(&client->dev,
|
|
|
+ "Unable to request irq %d, no alarm support\n",
|
|
|
+ client->irq);
|
|
|
+ client->irq = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|