diff options
Diffstat (limited to 'drivers/rtc/rtc-ds1307.c')
-rw-r--r-- | drivers/rtc/rtc-ds1307.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c index 4ffabb322a9a..6e76de1856fc 100644 --- a/drivers/rtc/rtc-ds1307.c +++ b/drivers/rtc/rtc-ds1307.c | |||
@@ -742,17 +742,17 @@ static int mcp794xx_set_alarm(struct device *dev, struct rtc_wkalrm *t) | |||
742 | regs[6] &= ~MCP794XX_BIT_ALMX_IF; | 742 | regs[6] &= ~MCP794XX_BIT_ALMX_IF; |
743 | /* Set alarm match: second, minute, hour, day, date, month. */ | 743 | /* Set alarm match: second, minute, hour, day, date, month. */ |
744 | regs[6] |= MCP794XX_MSK_ALMX_MATCH; | 744 | regs[6] |= MCP794XX_MSK_ALMX_MATCH; |
745 | 745 | /* Disable interrupt. We will not enable until completely programmed */ | |
746 | if (t->enabled) | 746 | regs[0] &= ~MCP794XX_BIT_ALM0_EN; |
747 | regs[0] |= MCP794XX_BIT_ALM0_EN; | ||
748 | else | ||
749 | regs[0] &= ~MCP794XX_BIT_ALM0_EN; | ||
750 | 747 | ||
751 | ret = ds1307->write_block_data(client, MCP794XX_REG_CONTROL, 10, regs); | 748 | ret = ds1307->write_block_data(client, MCP794XX_REG_CONTROL, 10, regs); |
752 | if (ret < 0) | 749 | if (ret < 0) |
753 | return ret; | 750 | return ret; |
754 | 751 | ||
755 | return 0; | 752 | if (!t->enabled) |
753 | return 0; | ||
754 | regs[0] |= MCP794XX_BIT_ALM0_EN; | ||
755 | return i2c_smbus_write_byte_data(client, MCP794XX_REG_CONTROL, regs[0]); | ||
756 | } | 756 | } |
757 | 757 | ||
758 | static int mcp794xx_alarm_irq_enable(struct device *dev, unsigned int enabled) | 758 | static int mcp794xx_alarm_irq_enable(struct device *dev, unsigned int enabled) |