Compensate for Rockchip calendar deviation on November 31st
git.kernel.org
git.kernel.org
Also if you've ever actually used a Rockchip device you'll know they're absolute shit. Pirated Android phone images on incomplete Android device frameworks. They do bullshit like displaying on the TV at 1080p but the Netflix app displays at 720p in the top left corner. How unsurprising they fucked the calendar up too.
Before you go defend the brave embeddded developers from the mean nasty LKML, just think of all the consumers who've paid $100 for TV sticks which advertised an experience and didn't even come close to fulfilling that promise, with absolutely zero after-sales support or updates coming out of Rockchip. Fuck those guys.
If you are any form of hacker who takes pride in your work, you'll recognise this for the colossal fuck-up it actually is.
http://bit-player.org/2009/the-zune-bug
This was in software, not hardware, more serious than just the date being wrong, and they didn't even provide a fix other than "wait until the day passes":
http://gizmodo.com/5121822/official-fix-for-the-zune-30-fail
They perform quite well there if I may say so, when a proper amount of effort has been put into the software running on them.
The chips from Chinese manufacturers aren't really better or worse than most of the others out there, it's just that they often take shortcuts on the software side -- or rather, in particular the low-cost system OEM/ODMs do.
Basically it's extremely rare to find third-party software that is completely trustworthy, even when you pay a bunch of money to ensure that this is the case. Hence why IEC62304 speaks directly to third-party software as enhancing risk. The best thing you can hope for is that the bugs are fairly benign or are easy to work around.
This would certainly explain the weird date issue I had in Android last year, though.
This is probably tangential but when it comes to code and context and everything (e.g. commit messages) I like to be as dry and clear as possible. Just the facts, ma'am.
if (tm->tm_mon == 10 && tm->tm_mday == 31) { dev_warn(dev, "correcting Nov 31st to Dec 1st (HW bug)\n"); tm->tm_mon = 11; tm->tm_mday = 1; rk808_rtc_set_time(dev, tm); }
Member Type Meaning Range
tm_sec int seconds after the minute 0-61*
tm_min int minutes after the hour 0-59
tm_hour int hours since midnight 0-23
tm_mday int day of the month 1-31
tm_mon int months since January 0-11
tm_year int years since 1900
tm_wday int days since Sunday 0-6
tm_yday int days since January 1 0-365
tm_isdst int Daylight Saving Time flagOr Rockchip could have simply implemented a linear seconds counter, which would have worked fine and not required crazy workarounds.
Welcome to firmware, folks!
Hence why the patch submitter was upvoted and the commenter was downvoted.