diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
index 9e2aad68f96da5f0b560d979f021dac9007b04d3..f739be96cbc090a292c1cee095702978cf9d3a77 100644
--- a/drivers/rtc/rtc-ds1307.c
+++ b/drivers/rtc/rtc-ds1307.c
@@ -927,6 +927,7 @@ static int ds1307_probe(struct i2c_client *client,
 				bin2bcd(tmp));
 	}
 
+	device_set_wakeup_capable(&client->dev, want_irq);
 	ds1307->rtc = devm_rtc_device_register(&client->dev, client->name,
 				&ds13xx_rtc_ops, THIS_MODULE);
 	if (IS_ERR(ds1307->rtc)) {
@@ -941,7 +942,6 @@ static int ds1307_probe(struct i2c_client *client,
 			dev_err(&client->dev, "unable to request IRQ!\n");
 		} else {
 
-			device_set_wakeup_capable(&client->dev, 1);
 			set_bit(HAS_ALARM, &ds1307->flags);
 			dev_dbg(&client->dev, "got IRQ %d\n", client->irq);
 		}