aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc/rtc-ds1307.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/rtc/rtc-ds1307.c')
-rw-r--r--drivers/rtc/rtc-ds1307.c12
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
758static int mcp794xx_alarm_irq_enable(struct device *dev, unsigned int enabled) 758static int mcp794xx_alarm_irq_enable(struct device *dev, unsigned int enabled)