diff options
Diffstat (limited to 'drivers/rtc')
| -rw-r--r-- | drivers/rtc/rtc-pcf2123.c | 2 | ||||
| -rw-r--r-- | drivers/rtc/rtc-rs5c348.c | 7 | 
2 files changed, 7 insertions, 2 deletions
diff --git a/drivers/rtc/rtc-pcf2123.c b/drivers/rtc/rtc-pcf2123.c index 836118795c0b..13e4df63974f 100644 --- a/drivers/rtc/rtc-pcf2123.c +++ b/drivers/rtc/rtc-pcf2123.c @@ -43,6 +43,7 @@  #include <linux/rtc.h>  #include <linux/spi/spi.h>  #include <linux/module.h> +#include <linux/sysfs.h>  #define DRV_VERSION "0.6" @@ -292,6 +293,7 @@ static int __devinit pcf2123_probe(struct spi_device *spi)  	pdata->rtc = rtc;  	for (i = 0; i < 16; i++) { +		sysfs_attr_init(&pdata->regs[i].attr.attr);  		sprintf(pdata->regs[i].name, "%1x", i);  		pdata->regs[i].attr.attr.mode = S_IRUGO | S_IWUSR;  		pdata->regs[i].attr.attr.name = pdata->regs[i].name; diff --git a/drivers/rtc/rtc-rs5c348.c b/drivers/rtc/rtc-rs5c348.c index 77074ccd2850..fd5c7af04ae5 100644 --- a/drivers/rtc/rtc-rs5c348.c +++ b/drivers/rtc/rtc-rs5c348.c @@ -122,9 +122,12 @@ rs5c348_rtc_read_time(struct device *dev, struct rtc_time *tm)  	tm->tm_min = bcd2bin(rxbuf[RS5C348_REG_MINS] & RS5C348_MINS_MASK);  	tm->tm_hour = bcd2bin(rxbuf[RS5C348_REG_HOURS] & RS5C348_HOURS_MASK);  	if (!pdata->rtc_24h) { -		tm->tm_hour %= 12; -		if (rxbuf[RS5C348_REG_HOURS] & RS5C348_BIT_PM) +		if (rxbuf[RS5C348_REG_HOURS] & RS5C348_BIT_PM) { +			tm->tm_hour -= 20; +			tm->tm_hour %= 12;  			tm->tm_hour += 12; +		} else +			tm->tm_hour %= 12;  	}  	tm->tm_wday = bcd2bin(rxbuf[RS5C348_REG_WDAY] & RS5C348_WDAY_MASK);  	tm->tm_mday = bcd2bin(rxbuf[RS5C348_REG_DAY] & RS5C348_DAY_MASK);  |