Upgrade to 4.4.50-rt62
[kvmfornfv.git] / kernel / drivers / rtc / rtc-hym8563.c
index 0f710e9..b1b4746 100644 (file)
@@ -144,7 +144,7 @@ static int hym8563_rtc_set_time(struct device *dev, struct rtc_time *tm)
         * it does not seem to carry it over a subsequent write/read.
         * So we'll limit ourself to 100 years, starting at 2000 for now.
         */
-       buf[6] = tm->tm_year - 100;
+       buf[6] = bin2bcd(tm->tm_year - 100);
 
        /*
         * CTL1 only contains TEST-mode bits apart from stop,
@@ -548,14 +548,16 @@ static int hym8563_probe(struct i2c_client *client,
                return ret;
        }
 
-       ret = devm_request_threaded_irq(&client->dev, client->irq,
-                                       NULL, hym8563_irq,
-                                       IRQF_TRIGGER_LOW | IRQF_ONESHOT,
-                                       client->name, hym8563);
-       if (ret < 0) {
-               dev_err(&client->dev, "irq %d request failed, %d\n",
-                       client->irq, ret);
-               return ret;
+       if (client->irq > 0) {
+               ret = devm_request_threaded_irq(&client->dev, client->irq,
+                                               NULL, hym8563_irq,
+                                               IRQF_TRIGGER_LOW | IRQF_ONESHOT,
+                                               client->name, hym8563);
+               if (ret < 0) {
+                       dev_err(&client->dev, "irq %d request failed, %d\n",
+                               client->irq, ret);
+                       return ret;
+               }
        }
 
        /* check state of calendar information */
@@ -597,7 +599,6 @@ MODULE_DEVICE_TABLE(of, hym8563_dt_idtable);
 static struct i2c_driver hym8563_driver = {
        .driver         = {
                .name   = "rtc-hym8563",
-               .owner  = THIS_MODULE,
                .pm     = &hym8563_pm_ops,
                .of_match_table = hym8563_dt_idtable,
        },