Loading arch/arm/common/rtctime.c +15 −14 Original line number Diff line number Diff line Loading @@ -141,10 +141,10 @@ void rtc_next_alarm_time(struct rtc_time *next, struct rtc_time *now, struct rtc next->tm_sec = alrm->tm_sec; } static inline void rtc_read_time(struct rtc_ops *ops, struct rtc_time *tm) static inline int rtc_read_time(struct rtc_ops *ops, struct rtc_time *tm) { memset(tm, 0, sizeof(struct rtc_time)); ops->read_time(tm); return ops->read_time(tm); } static inline int rtc_set_time(struct rtc_ops *ops, struct rtc_time *tm) Loading @@ -163,8 +163,7 @@ static inline int rtc_read_alarm(struct rtc_ops *ops, struct rtc_wkalrm *alrm) int ret = -EINVAL; if (ops->read_alarm) { memset(alrm, 0, sizeof(struct rtc_wkalrm)); ops->read_alarm(alrm); ret = 0; ret = ops->read_alarm(alrm); } return ret; } Loading Loading @@ -283,7 +282,9 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, break; case RTC_RD_TIME: rtc_read_time(ops, &tm); ret = rtc_read_time(ops, &tm); if (ret) break; ret = copy_to_user(uarg, &tm, sizeof(tm)); if (ret) ret = -EFAULT; Loading Loading @@ -424,8 +425,7 @@ static int rtc_read_proc(char *page, char **start, off_t off, int count, int *eo struct rtc_time tm; char *p = page; rtc_read_time(ops, &tm); if (rtc_read_time(ops, &tm) == 0) { p += sprintf(p, "rtc_time\t: %02d:%02d:%02d\n" "rtc_date\t: %04d-%02d-%02d\n" Loading @@ -433,6 +433,7 @@ static int rtc_read_proc(char *page, char **start, off_t off, int count, int *eo tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, rtc_epoch); } if (rtc_read_alarm(ops, &alrm) == 0) { p += sprintf(p, "alrm_time\t: "); Loading arch/arm/mach-integrator/time.c +12 −5 Original line number Diff line number Diff line Loading @@ -40,25 +40,32 @@ static int integrator_set_rtc(void) return 1; } static void rtc_read_alarm(struct rtc_wkalrm *alrm) static int rtc_read_alarm(struct rtc_wkalrm *alrm) { rtc_time_to_tm(readl(rtc_base + RTC_MR), &alrm->time); return 0; } static int rtc_set_alarm(struct rtc_wkalrm *alrm) static inline int rtc_set_alarm(struct rtc_wkalrm *alrm) { unsigned long time; int ret; /* * At the moment, we can only deal with non-wildcarded alarm times. */ ret = rtc_valid_tm(&alrm->time); if (ret == 0) ret = rtc_tm_to_time(&alrm->time, &time); if (ret == 0) writel(time, rtc_base + RTC_MR); return ret; } static void rtc_read_time(struct rtc_time *tm) static int rtc_read_time(struct rtc_time *tm) { rtc_time_to_tm(readl(rtc_base + RTC_DR), tm); return 0; } /* Loading @@ -69,7 +76,7 @@ static void rtc_read_time(struct rtc_time *tm) * edge of the 1Hz clock, we must write the time one second * in advance. */ static int rtc_set_time(struct rtc_time *tm) static inline int rtc_set_time(struct rtc_time *tm) { unsigned long time; int ret; Loading arch/arm/mach-pxa/generic.c +25 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,30 @@ static struct platform_device stuart_device = { .id = 2, }; static struct resource i2c_resources[] = { { .start = 0x40301680, .end = 0x403016a3, .flags = IORESOURCE_MEM, }, { .start = IRQ_I2C, .end = IRQ_I2C, .flags = IORESOURCE_IRQ, }, }; static struct platform_device i2c_device = { .name = "pxa2xx-i2c", .id = 0, .resource = i2c_resources, .num_resources = ARRAY_SIZE(i2c_resources), }; void __init pxa_set_i2c_info(struct i2c_pxa_platform_data *info) { i2c_device.dev.platform_data = info; } static struct platform_device *devices[] __initdata = { &pxamci_device, &udc_device, Loading @@ -227,6 +251,7 @@ static struct platform_device *devices[] __initdata = { &ffuart_device, &btuart_device, &stuart_device, &i2c_device, }; static int __init pxa_init(void) Loading drivers/char/s3c2410-rtc.c +6 −2 Original line number Diff line number Diff line Loading @@ -116,7 +116,7 @@ static void s3c2410_rtc_setfreq(int freq) /* Time read/write */ static void s3c2410_rtc_gettime(struct rtc_time *rtc_tm) static int s3c2410_rtc_gettime(struct rtc_time *rtc_tm) { unsigned int have_retried = 0; Loading Loading @@ -151,6 +151,8 @@ static void s3c2410_rtc_gettime(struct rtc_time *rtc_tm) rtc_tm->tm_year += 100; rtc_tm->tm_mon -= 1; return 0; } Loading @@ -171,7 +173,7 @@ static int s3c2410_rtc_settime(struct rtc_time *tm) return 0; } static void s3c2410_rtc_getalarm(struct rtc_wkalrm *alrm) static int s3c2410_rtc_getalarm(struct rtc_wkalrm *alrm) { struct rtc_time *alm_tm = &alrm->time; unsigned int alm_en; Loading Loading @@ -231,6 +233,8 @@ static void s3c2410_rtc_getalarm(struct rtc_wkalrm *alrm) } /* todo - set alrm->enabled ? */ return 0; } static int s3c2410_rtc_setalarm(struct rtc_wkalrm *alrm) Loading include/asm-arm/rtc.h +2 −2 Original line number Diff line number Diff line Loading @@ -18,9 +18,9 @@ struct rtc_ops { void (*release)(void); int (*ioctl)(unsigned int, unsigned long); void (*read_time)(struct rtc_time *); int (*read_time)(struct rtc_time *); int (*set_time)(struct rtc_time *); void (*read_alarm)(struct rtc_wkalrm *); int (*read_alarm)(struct rtc_wkalrm *); int (*set_alarm)(struct rtc_wkalrm *); int (*proc)(char *buf); }; Loading Loading
arch/arm/common/rtctime.c +15 −14 Original line number Diff line number Diff line Loading @@ -141,10 +141,10 @@ void rtc_next_alarm_time(struct rtc_time *next, struct rtc_time *now, struct rtc next->tm_sec = alrm->tm_sec; } static inline void rtc_read_time(struct rtc_ops *ops, struct rtc_time *tm) static inline int rtc_read_time(struct rtc_ops *ops, struct rtc_time *tm) { memset(tm, 0, sizeof(struct rtc_time)); ops->read_time(tm); return ops->read_time(tm); } static inline int rtc_set_time(struct rtc_ops *ops, struct rtc_time *tm) Loading @@ -163,8 +163,7 @@ static inline int rtc_read_alarm(struct rtc_ops *ops, struct rtc_wkalrm *alrm) int ret = -EINVAL; if (ops->read_alarm) { memset(alrm, 0, sizeof(struct rtc_wkalrm)); ops->read_alarm(alrm); ret = 0; ret = ops->read_alarm(alrm); } return ret; } Loading Loading @@ -283,7 +282,9 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, break; case RTC_RD_TIME: rtc_read_time(ops, &tm); ret = rtc_read_time(ops, &tm); if (ret) break; ret = copy_to_user(uarg, &tm, sizeof(tm)); if (ret) ret = -EFAULT; Loading Loading @@ -424,8 +425,7 @@ static int rtc_read_proc(char *page, char **start, off_t off, int count, int *eo struct rtc_time tm; char *p = page; rtc_read_time(ops, &tm); if (rtc_read_time(ops, &tm) == 0) { p += sprintf(p, "rtc_time\t: %02d:%02d:%02d\n" "rtc_date\t: %04d-%02d-%02d\n" Loading @@ -433,6 +433,7 @@ static int rtc_read_proc(char *page, char **start, off_t off, int count, int *eo tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, rtc_epoch); } if (rtc_read_alarm(ops, &alrm) == 0) { p += sprintf(p, "alrm_time\t: "); Loading
arch/arm/mach-integrator/time.c +12 −5 Original line number Diff line number Diff line Loading @@ -40,25 +40,32 @@ static int integrator_set_rtc(void) return 1; } static void rtc_read_alarm(struct rtc_wkalrm *alrm) static int rtc_read_alarm(struct rtc_wkalrm *alrm) { rtc_time_to_tm(readl(rtc_base + RTC_MR), &alrm->time); return 0; } static int rtc_set_alarm(struct rtc_wkalrm *alrm) static inline int rtc_set_alarm(struct rtc_wkalrm *alrm) { unsigned long time; int ret; /* * At the moment, we can only deal with non-wildcarded alarm times. */ ret = rtc_valid_tm(&alrm->time); if (ret == 0) ret = rtc_tm_to_time(&alrm->time, &time); if (ret == 0) writel(time, rtc_base + RTC_MR); return ret; } static void rtc_read_time(struct rtc_time *tm) static int rtc_read_time(struct rtc_time *tm) { rtc_time_to_tm(readl(rtc_base + RTC_DR), tm); return 0; } /* Loading @@ -69,7 +76,7 @@ static void rtc_read_time(struct rtc_time *tm) * edge of the 1Hz clock, we must write the time one second * in advance. */ static int rtc_set_time(struct rtc_time *tm) static inline int rtc_set_time(struct rtc_time *tm) { unsigned long time; int ret; Loading
arch/arm/mach-pxa/generic.c +25 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,30 @@ static struct platform_device stuart_device = { .id = 2, }; static struct resource i2c_resources[] = { { .start = 0x40301680, .end = 0x403016a3, .flags = IORESOURCE_MEM, }, { .start = IRQ_I2C, .end = IRQ_I2C, .flags = IORESOURCE_IRQ, }, }; static struct platform_device i2c_device = { .name = "pxa2xx-i2c", .id = 0, .resource = i2c_resources, .num_resources = ARRAY_SIZE(i2c_resources), }; void __init pxa_set_i2c_info(struct i2c_pxa_platform_data *info) { i2c_device.dev.platform_data = info; } static struct platform_device *devices[] __initdata = { &pxamci_device, &udc_device, Loading @@ -227,6 +251,7 @@ static struct platform_device *devices[] __initdata = { &ffuart_device, &btuart_device, &stuart_device, &i2c_device, }; static int __init pxa_init(void) Loading
drivers/char/s3c2410-rtc.c +6 −2 Original line number Diff line number Diff line Loading @@ -116,7 +116,7 @@ static void s3c2410_rtc_setfreq(int freq) /* Time read/write */ static void s3c2410_rtc_gettime(struct rtc_time *rtc_tm) static int s3c2410_rtc_gettime(struct rtc_time *rtc_tm) { unsigned int have_retried = 0; Loading Loading @@ -151,6 +151,8 @@ static void s3c2410_rtc_gettime(struct rtc_time *rtc_tm) rtc_tm->tm_year += 100; rtc_tm->tm_mon -= 1; return 0; } Loading @@ -171,7 +173,7 @@ static int s3c2410_rtc_settime(struct rtc_time *tm) return 0; } static void s3c2410_rtc_getalarm(struct rtc_wkalrm *alrm) static int s3c2410_rtc_getalarm(struct rtc_wkalrm *alrm) { struct rtc_time *alm_tm = &alrm->time; unsigned int alm_en; Loading Loading @@ -231,6 +233,8 @@ static void s3c2410_rtc_getalarm(struct rtc_wkalrm *alrm) } /* todo - set alrm->enabled ? */ return 0; } static int s3c2410_rtc_setalarm(struct rtc_wkalrm *alrm) Loading
include/asm-arm/rtc.h +2 −2 Original line number Diff line number Diff line Loading @@ -18,9 +18,9 @@ struct rtc_ops { void (*release)(void); int (*ioctl)(unsigned int, unsigned long); void (*read_time)(struct rtc_time *); int (*read_time)(struct rtc_time *); int (*set_time)(struct rtc_time *); void (*read_alarm)(struct rtc_wkalrm *); int (*read_alarm)(struct rtc_wkalrm *); int (*set_alarm)(struct rtc_wkalrm *); int (*proc)(char *buf); }; Loading