|
@@ -170,7 +170,7 @@ static int stk17ta8_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
|
|
|
struct platform_device *pdev = to_platform_device(dev);
|
|
|
struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
|
|
|
|
|
|
- if (pdata->irq < 0)
|
|
|
+ if (pdata->irq <= 0)
|
|
|
return -EINVAL;
|
|
|
pdata->alrm_mday = alrm->time.tm_mday;
|
|
|
pdata->alrm_hour = alrm->time.tm_hour;
|
|
@@ -187,7 +187,7 @@ static int stk17ta8_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
|
|
|
struct platform_device *pdev = to_platform_device(dev);
|
|
|
struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
|
|
|
|
|
|
- if (pdata->irq < 0)
|
|
|
+ if (pdata->irq <= 0)
|
|
|
return -EINVAL;
|
|
|
alrm->time.tm_mday = pdata->alrm_mday < 0 ? 0 : pdata->alrm_mday;
|
|
|
alrm->time.tm_hour = pdata->alrm_hour < 0 ? 0 : pdata->alrm_hour;
|
|
@@ -221,7 +221,7 @@ static int stk17ta8_rtc_ioctl(struct device *dev, unsigned int cmd,
|
|
|
struct platform_device *pdev = to_platform_device(dev);
|
|
|
struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
|
|
|
|
|
|
- if (pdata->irq < 0)
|
|
|
+ if (pdata->irq <= 0)
|
|
|
return -ENOIOCTLCMD; /* fall back into rtc-dev's emulation */
|
|
|
switch (cmd) {
|
|
|
case RTC_AIE_OFF:
|
|
@@ -303,7 +303,6 @@ static int __init stk17ta8_rtc_probe(struct platform_device *pdev)
|
|
|
pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
|
|
|
if (!pdata)
|
|
|
return -ENOMEM;
|
|
|
- pdata->irq = -1;
|
|
|
if (!request_mem_region(res->start, RTC_REG_SIZE, pdev->name)) {
|
|
|
ret = -EBUSY;
|
|
|
goto out;
|
|
@@ -329,13 +328,13 @@ static int __init stk17ta8_rtc_probe(struct platform_device *pdev)
|
|
|
if (readb(ioaddr + RTC_FLAGS) & RTC_FLAGS_PF)
|
|
|
dev_warn(&pdev->dev, "voltage-low detected.\n");
|
|
|
|
|
|
- if (pdata->irq >= 0) {
|
|
|
+ if (pdata->irq > 0) {
|
|
|
writeb(0, ioaddr + RTC_INTERRUPTS);
|
|
|
if (request_irq(pdata->irq, stk17ta8_rtc_interrupt,
|
|
|
IRQF_DISABLED | IRQF_SHARED,
|
|
|
pdev->name, pdev) < 0) {
|
|
|
dev_warn(&pdev->dev, "interrupt not available.\n");
|
|
|
- pdata->irq = -1;
|
|
|
+ pdata->irq = 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -355,7 +354,7 @@ static int __init stk17ta8_rtc_probe(struct platform_device *pdev)
|
|
|
out:
|
|
|
if (pdata->rtc)
|
|
|
rtc_device_unregister(pdata->rtc);
|
|
|
- if (pdata->irq >= 0)
|
|
|
+ if (pdata->irq > 0)
|
|
|
free_irq(pdata->irq, pdev);
|
|
|
if (ioaddr)
|
|
|
iounmap(ioaddr);
|
|
@@ -371,7 +370,7 @@ static int __devexit stk17ta8_rtc_remove(struct platform_device *pdev)
|
|
|
|
|
|
sysfs_remove_bin_file(&pdev->dev.kobj, &stk17ta8_nvram_attr);
|
|
|
rtc_device_unregister(pdata->rtc);
|
|
|
- if (pdata->irq >= 0) {
|
|
|
+ if (pdata->irq > 0) {
|
|
|
writeb(0, pdata->ioaddr + RTC_INTERRUPTS);
|
|
|
free_irq(pdata->irq, pdev);
|
|
|
}
|