static int rtc_ops_set_time(struct device *dev, struct rtc_time *tm) { // printk("mtk_rtc_set_time\n"); #if defined(CONFIG_RTC_INTF_SECCLK) secclk_rtc_changed(rtc_ops_read_time, dev, tm); #endif // unsigned long time, flags; rtc_tm_to_time(tm, &time); if (time > (unsigned long)LONG_MAX) return -EINVAL; tm->tm_year -= RTC_MIN_YEAR_OFFSET; tm->tm_mon++; rtc_xinfo("set tc time = %04d/%02d/%02d %02d:%02d:%02d\n", tm->tm_year + RTC_MIN_YEAR, tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); spin_lock_irqsave(&rtc_lock, flags); hal_rtc_set_tick_time(tm); spin_unlock_irqrestore(&rtc_lock, flags); return 0; }
static int rtc_ops_set_time(struct device *dev, struct rtc_time *tm) { unsigned long time, flags; rtc_tm_to_time(tm, &time); if (time > (unsigned long)LONG_MAX) return -EINVAL; tm->tm_year -= RTC_MIN_YEAR_OFFSET; tm->tm_mon++; rtc_xinfo("set tc time = %04d/%02d/%02d %02d:%02d:%02d\n", tm->tm_year + RTC_MIN_YEAR, tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); spin_lock_irqsave(&rtc_lock, flags); hal_rtc_set_tick_time(tm); spin_unlock_irqrestore(&rtc_lock, flags); return 0; }