Re: [U-Boot] [PATCH 06/20] dm: rtc: Rename gregorian day function

2015-05-04 Thread Simon Glass
On 20 April 2015 at 23:13, Heiko Schocher h...@denx.de wrote:
 Hello Simon,

 Am 20.04.2015 20:37, schrieb Simon Glass:

 Change this function name to something more descriptive. Also return a
 failure code if it cannot calculate a correct value.

 Signed-off-by: Simon Glass s...@chromium.org
 ---

   common/cmd_date.c|  2 +-
   drivers/rtc/date.c   |  9 +++--
   drivers/rtc/ds1306.c |  2 +-
   include/rtc.h| 12 +++-
   4 files changed, 20 insertions(+), 5 deletions(-)


 Acked-by: Heiko Schocher h...@denx.de

Applied to u-boot-dm.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 06/20] dm: rtc: Rename gregorian day function

2015-04-20 Thread Heiko Schocher

Hello Simon,

Am 20.04.2015 20:37, schrieb Simon Glass:

Change this function name to something more descriptive. Also return a
failure code if it cannot calculate a correct value.

Signed-off-by: Simon Glass s...@chromium.org
---

  common/cmd_date.c|  2 +-
  drivers/rtc/date.c   |  9 +++--
  drivers/rtc/ds1306.c |  2 +-
  include/rtc.h| 12 +++-
  4 files changed, 20 insertions(+), 5 deletions(-)


Acked-by: Heiko Schocher h...@denx.de

bye,
Heiko


diff --git a/common/cmd_date.c b/common/cmd_date.c
index e349166..3b7ac3e 100644
--- a/common/cmd_date.c
+++ b/common/cmd_date.c
@@ -196,7 +196,7 @@ int mk_date (const char *datestr, struct rtc_time *tmp)
tmp-tm_min  = val;

/* calculate day of week */
-   GregorianDay (tmp);
+   rtc_calc_weekday(tmp);

return (0);
default:
diff --git a/drivers/rtc/date.c b/drivers/rtc/date.c
index 15e6db0..2000565 100644
--- a/drivers/rtc/date.c
+++ b/drivers/rtc/date.c
@@ -11,6 +11,7 @@

  #include common.h
  #include command.h
+#include errno.h
  #include rtc.h

  #if defined(CONFIG_CMD_DATE) || defined(CONFIG_TIMESTAMP)
@@ -30,13 +31,15 @@ static int month_days[12] = {
  /*
   * This only works for the Gregorian calendar - i.e. after 1752 (in the UK)
   */
-void GregorianDay(struct rtc_time * tm)
+int rtc_calc_weekday(struct rtc_time *tm)
  {
int leapsToDate;
int lastYear;
int day;
int MonthOffset[] = { 0,31,59,90,120,151,181,212,243,273,304,334 };

+   if (tm-tm_year  1753)
+   return -EINVAL;
lastYear=tm-tm_year-1;

/*
@@ -64,6 +67,8 @@ void GregorianDay(struct rtc_time * tm)
day += lastYear*365 + leapsToDate + MonthOffset[tm-tm_mon-1] + 
tm-tm_mday;

tm-tm_wday=day%7;
+
+   return 0;
  }

  void to_tm(int tim, struct rtc_time * tm)
@@ -101,7 +106,7 @@ void to_tm(int tim, struct rtc_time * tm)
/*
 * Determine the day of week
 */
-   GregorianDay(tm);
+   rtc_calc_weekday(tm);
  }

  /* Converts Gregorian date to seconds since 1970-01-01 00:00:00.
diff --git a/drivers/rtc/ds1306.c b/drivers/rtc/ds1306.c
index 1ec1837..3fe6721 100644
--- a/drivers/rtc/ds1306.c
+++ b/drivers/rtc/ds1306.c
@@ -110,7 +110,7 @@ int rtc_get (struct rtc_time *tmp)
immap-im_cpm.cp_pbdat = ~PB_SPI_CE;/* Disable DS1306 Chip */
udelay (10);

-   GregorianDay (tmp); /* Determine the day of week */
+   rtc_calc_weekday(tmp);  /* Determine the day of week */

debug (Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n,
   tmp-tm_year, tmp-tm_mon, tmp-tm_mday, tmp-tm_wday,
diff --git a/include/rtc.h b/include/rtc.h
index 54e361e..96c696a 100644
--- a/include/rtc.h
+++ b/include/rtc.h
@@ -45,7 +45,6 @@ int rtc_get (struct rtc_time *);
  int rtc_set (struct rtc_time *);
  void rtc_reset (void);

-void GregorianDay (struct rtc_time *);
  void to_tm (int, struct rtc_time *);
  unsigned long mktime (unsigned int, unsigned int, unsigned int,
  unsigned int, unsigned int, unsigned int);
@@ -87,4 +86,15 @@ void rtc_write32(int reg, u32 value);
   */
  void rtc_init(void);

+/**
+ * rtc_calc_weekday() - Work out the weekday from a time
+ *
+ * This only works for the Gregorian calendar - i.e. after 1752 (in the UK).
+ * It sets time-tm_wdaay to the correct day of the week.
+ *
+ * @time:  Time to inspect. tm_wday is updated
+ * @return 0 if OK, -EINVAL if the weekday could not be determined
+ */
+int rtc_calc_weekday(struct rtc_time *time);
+
  #endif/* _RTC_H_ */



--
DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 06/20] dm: rtc: Rename gregorian day function

2015-04-20 Thread Simon Glass
Change this function name to something more descriptive. Also return a
failure code if it cannot calculate a correct value.

Signed-off-by: Simon Glass s...@chromium.org
---

 common/cmd_date.c|  2 +-
 drivers/rtc/date.c   |  9 +++--
 drivers/rtc/ds1306.c |  2 +-
 include/rtc.h| 12 +++-
 4 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/common/cmd_date.c b/common/cmd_date.c
index e349166..3b7ac3e 100644
--- a/common/cmd_date.c
+++ b/common/cmd_date.c
@@ -196,7 +196,7 @@ int mk_date (const char *datestr, struct rtc_time *tmp)
tmp-tm_min  = val;
 
/* calculate day of week */
-   GregorianDay (tmp);
+   rtc_calc_weekday(tmp);
 
return (0);
default:
diff --git a/drivers/rtc/date.c b/drivers/rtc/date.c
index 15e6db0..2000565 100644
--- a/drivers/rtc/date.c
+++ b/drivers/rtc/date.c
@@ -11,6 +11,7 @@
 
 #include common.h
 #include command.h
+#include errno.h
 #include rtc.h
 
 #if defined(CONFIG_CMD_DATE) || defined(CONFIG_TIMESTAMP)
@@ -30,13 +31,15 @@ static int month_days[12] = {
 /*
  * This only works for the Gregorian calendar - i.e. after 1752 (in the UK)
  */
-void GregorianDay(struct rtc_time * tm)
+int rtc_calc_weekday(struct rtc_time *tm)
 {
int leapsToDate;
int lastYear;
int day;
int MonthOffset[] = { 0,31,59,90,120,151,181,212,243,273,304,334 };
 
+   if (tm-tm_year  1753)
+   return -EINVAL;
lastYear=tm-tm_year-1;
 
/*
@@ -64,6 +67,8 @@ void GregorianDay(struct rtc_time * tm)
day += lastYear*365 + leapsToDate + MonthOffset[tm-tm_mon-1] + 
tm-tm_mday;
 
tm-tm_wday=day%7;
+
+   return 0;
 }
 
 void to_tm(int tim, struct rtc_time * tm)
@@ -101,7 +106,7 @@ void to_tm(int tim, struct rtc_time * tm)
/*
 * Determine the day of week
 */
-   GregorianDay(tm);
+   rtc_calc_weekday(tm);
 }
 
 /* Converts Gregorian date to seconds since 1970-01-01 00:00:00.
diff --git a/drivers/rtc/ds1306.c b/drivers/rtc/ds1306.c
index 1ec1837..3fe6721 100644
--- a/drivers/rtc/ds1306.c
+++ b/drivers/rtc/ds1306.c
@@ -110,7 +110,7 @@ int rtc_get (struct rtc_time *tmp)
immap-im_cpm.cp_pbdat = ~PB_SPI_CE;   /* Disable DS1306 Chip */
udelay (10);
 
-   GregorianDay (tmp); /* Determine the day of week */
+   rtc_calc_weekday(tmp);  /* Determine the day of week */
 
debug (Get DATE: %4d-%02d-%02d (wday=%d)  TIME: %2d:%02d:%02d\n,
   tmp-tm_year, tmp-tm_mon, tmp-tm_mday, tmp-tm_wday,
diff --git a/include/rtc.h b/include/rtc.h
index 54e361e..96c696a 100644
--- a/include/rtc.h
+++ b/include/rtc.h
@@ -45,7 +45,6 @@ int rtc_get (struct rtc_time *);
 int rtc_set (struct rtc_time *);
 void rtc_reset (void);
 
-void GregorianDay (struct rtc_time *);
 void to_tm (int, struct rtc_time *);
 unsigned long mktime (unsigned int, unsigned int, unsigned int,
  unsigned int, unsigned int, unsigned int);
@@ -87,4 +86,15 @@ void rtc_write32(int reg, u32 value);
  */
 void rtc_init(void);
 
+/**
+ * rtc_calc_weekday() - Work out the weekday from a time
+ *
+ * This only works for the Gregorian calendar - i.e. after 1752 (in the UK).
+ * It sets time-tm_wdaay to the correct day of the week.
+ *
+ * @time:  Time to inspect. tm_wday is updated
+ * @return 0 if OK, -EINVAL if the weekday could not be determined
+ */
+int rtc_calc_weekday(struct rtc_time *time);
+
 #endif /* _RTC_H_ */
-- 
2.2.0.rc0.207.ga3a616c

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot