Use the correct value when writing the Day Of Week byte in the CMOS.
The correct range is [1...7] with Sunday=1, but we have been writing [0...6] with Sunday=0. The Soekris computers flagged the zero, zapped the date, so if you rebooted your soekris on a sunday, it would come up with a wrong date. Bruce has a more extensive rework of this code, but we will stick with the minimalist fix for now. Spotted by: Soren Kristensen <soren@soekris.com> Thanks to: Michael Sierchio <kudzu@tenebras.com>. Confirmed by: bde Approved by: re
This commit is contained in:
parent
fdd44c57ca
commit
7beb8a484e
@ -943,7 +943,7 @@ resettodr()
|
||||
writertc(RTC_HRS, bin2bcd(tm%24)); tm /= 24; /* Write back Hours */
|
||||
|
||||
/* We have now the days since 01-01-1970 in tm */
|
||||
writertc(RTC_WDAY, (tm+4)%7); /* Write back Weekday */
|
||||
writertc(RTC_WDAY, (tm + 4) % 7 + 1); /* Write back Weekday */
|
||||
for (y = 1970, m = DAYSPERYEAR + LEAPYEAR(y);
|
||||
tm >= m;
|
||||
y++, m = DAYSPERYEAR + LEAPYEAR(y))
|
||||
|
@ -943,7 +943,7 @@ resettodr()
|
||||
writertc(RTC_HRS, bin2bcd(tm%24)); tm /= 24; /* Write back Hours */
|
||||
|
||||
/* We have now the days since 01-01-1970 in tm */
|
||||
writertc(RTC_WDAY, (tm+4)%7); /* Write back Weekday */
|
||||
writertc(RTC_WDAY, (tm + 4) % 7 + 1); /* Write back Weekday */
|
||||
for (y = 1970, m = DAYSPERYEAR + LEAPYEAR(y);
|
||||
tm >= m;
|
||||
y++, m = DAYSPERYEAR + LEAPYEAR(y))
|
||||
|
@ -943,7 +943,7 @@ resettodr()
|
||||
writertc(RTC_HRS, bin2bcd(tm%24)); tm /= 24; /* Write back Hours */
|
||||
|
||||
/* We have now the days since 01-01-1970 in tm */
|
||||
writertc(RTC_WDAY, (tm+4)%7); /* Write back Weekday */
|
||||
writertc(RTC_WDAY, (tm + 4) % 7 + 1); /* Write back Weekday */
|
||||
for (y = 1970, m = DAYSPERYEAR + LEAPYEAR(y);
|
||||
tm >= m;
|
||||
y++, m = DAYSPERYEAR + LEAPYEAR(y))
|
||||
|
@ -943,7 +943,7 @@ resettodr()
|
||||
writertc(RTC_HRS, bin2bcd(tm%24)); tm /= 24; /* Write back Hours */
|
||||
|
||||
/* We have now the days since 01-01-1970 in tm */
|
||||
writertc(RTC_WDAY, (tm+4)%7); /* Write back Weekday */
|
||||
writertc(RTC_WDAY, (tm + 4) % 7 + 1); /* Write back Weekday */
|
||||
for (y = 1970, m = DAYSPERYEAR + LEAPYEAR(y);
|
||||
tm >= m;
|
||||
y++, m = DAYSPERYEAR + LEAPYEAR(y))
|
||||
|
@ -943,7 +943,7 @@ resettodr()
|
||||
writertc(RTC_HRS, bin2bcd(tm%24)); tm /= 24; /* Write back Hours */
|
||||
|
||||
/* We have now the days since 01-01-1970 in tm */
|
||||
writertc(RTC_WDAY, (tm+4)%7); /* Write back Weekday */
|
||||
writertc(RTC_WDAY, (tm + 4) % 7 + 1); /* Write back Weekday */
|
||||
for (y = 1970, m = DAYSPERYEAR + LEAPYEAR(y);
|
||||
tm >= m;
|
||||
y++, m = DAYSPERYEAR + LEAPYEAR(y))
|
||||
|
Loading…
Reference in New Issue
Block a user