lib, rtc: Print rtc_time via %ptR[dt][rv]
Subsystems (17)
Andy Shevchenko
reviewerv3 cover lib, rtc: Print rtc_time via %ptR[dt][rv]
At some point I have noticed too many users of struct rtc_time that printing its content field by field.
In this series I introduce %ptR[dt][rv] specifier to make life a bit easier.
There are still users of detailed output of the struct rtc_time, but we can introduce an additional extension for them in the future if needed, otherwise they might be converted to the proposed output format.
Some of the changes slightly modify the output. In those cases we are on the safe side since they are pure debug. Nevertheless I tried to leave numbers to be the same or quite close: in some cases year is printed + 1900, though month is left in the range [0,11] instead of [1,12].
I didn't compile everything there, though I did a basic smoke test on some x86 hardware. So, I rely on kbuild test robot as well :-)
Most of the users currently are RTC drivers, thus the patch series is assumed to go via RTC tree.
The patch series depends on earlier send clean up of lib/vsprintf [1].
[1]: https://www.mail-archive.com/[email protected]/msg1612716.html
Changelog v3:
- no one supported configuration option for new extension, so it's dropped
- amend documentation (Geert)
- optimize flags checking (Geert)
- drop patch against non-existing anymore drivers
(due to massive architectures removal)
- rebase on top of recent linux-next
Changelog v2:
- split out lib/vsprintf changes to separate series
- build it optionally depending on introduced PRINTK_PEXT_TIMEDATE
- for now support only struct rtc_time
- make an additional letter for different time representations
- make above letter capital to reduce confusion on %ptr vs. %ptR
- drop kdb patch since it's a candidate for time64_t support
Andy Shevchenko (20):
lib/vsprintf: Print time and date in human readable format via %pt
rtc: Switch to use %ptR
rtc: at91rm9200: Switch to use %ptR
rtc: at91sam9: Switch to use %ptR
rtc: m41t80: Switch to use %ptR
rtc: m48t59: Switch to use %ptR
rtc: mcp795: Switch to use %ptR
rtc: pcf50633: Switch to use %ptR
rtc: pic32: Switch to use %ptR
rtc: pm8xxx: Switch to use %ptR
rtc: puv3: Switch to use %ptR
rtc: rk808: Switch to use %ptR
rtc: rx6110: Switch to use %ptR
rtc: rx8025: Switch to use %ptR
rtc: s3c: Switch to use %ptR
rtc: s5m: Switch to use %ptR
rtc: tegra: Switch to use %ptR
Input: hp_sdc_rtc - Switch to use %ptR
mk68/mac: Switch to use %ptR
PM: Switch to use %ptR
Documentation/core-api/printk-formats.rst | 20 ++++ arch/m68k/mac/misc.c | 8 +- drivers/base/power/trace.c | 4 +- drivers/char/rtc.c | 7 +- drivers/input/misc/hp_sdc_rtc.c | 8 +- drivers/rtc/hctosys.c | 8 +- drivers/rtc/interface.c | 8 +- drivers/rtc/rtc-at91rm9200.c | 15 +-- drivers/rtc/rtc-at91sam9.c | 16 +-- drivers/rtc/rtc-m41t80.c | 6 +- drivers/rtc/rtc-m48t59.c | 8 +- drivers/rtc/rtc-mcp795.c | 18 +-- drivers/rtc/rtc-pcf50633.c | 8 +- drivers/rtc/rtc-pic32.c | 18 +-- drivers/rtc/rtc-pm8xxx.c | 16 +-- drivers/rtc/rtc-proc.c | 36 +----- drivers/rtc/rtc-puv3.c | 18 +-- drivers/rtc/rtc-rk808.c | 20 +--- drivers/rtc/rtc-rx6110.c | 12 +- drivers/rtc/rtc-rx8025.c | 19 +-- drivers/rtc/rtc-s3c.c | 20 +--- drivers/rtc/rtc-s5m.c | 27 +---- drivers/rtc/rtc-sysfs.c | 16 +-- drivers/rtc/rtc-tegra.c | 30 +---- lib/test_printf.c | 6 + lib/vsprintf.c | 140 ++++++++++++++++++++++ 26 files changed, 248 insertions(+), 264 deletions(-)
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 1/20 lib/vsprintf: Print time and date in human readable format via %pt
There are users which print time and date represented by content of struct rtc_time in human readable format.
Instead of open coding that each time introduce %ptR[dt][rv] specifier.
Note, users have to select PRINTK_PEXT_TIMEDATE option in a Kconfig.
--- Documentation/core-api/printk-formats.rst | 20 ++++ lib/test_printf.c | 6 + lib/vsprintf.c | 140 ++++++++++++++++++++++ 3 files changed, 166 insertions(+)
Documentation/core-api/printk-formats.rst +20 -0
@@ -412,6 +412,26 @@ Examples:: Passed by reference. +Time and date (struct rtc_time) +------------------------------- + +:: + + %ptR YYYY-mm-dd HH:MM:SS + %ptRd YYYY-mm-dd + %ptRt HH:MM:SS + %ptR[dt][rv] + +For printing date and time as represented by struct rtc_time structure in +human readable format. + +By default year will be incremented by 1900 and month by 1. Use %ptRr (raw) +to suppress this behaviour. On the other hand when %ptRv is applied +validation mechanism will be in use, i.e. numbers out of range will be +replaced by ** or ****. + +Passed by reference. + struct clk ----------
lib/test_printf.c +6 -0
@@ -418,6 +418,11 @@ struct_va_format(void) { } +static void __init +struct_rtc_time (void ) +{ +} +static void __init struct_clk (void ) {
@@ -529,6 +534,7 @@ test_pointer(void)uuid ();dentry ();struct_va_format (); +struct_rtc_time ();struct_clk ();bitmap ();netdev_features ();
lib/vsprintf.c +140 -0
170 lines not on this page · raw message
Signature · 1 line
2.19.1
Re: [PATCH v3 01/20] lib/vsprintf: Print time and date in human readable format via %pt
Quoted 6 lines · Andy Shevchenko
There are users which print time and date represented by content of struct
rtc_timein human readable format.Instead of open coding that each time introduce %ptR[dt][rv] specifier.
Note, users have to select
PRINTK_PEXT_TIMEDATEoption in aKconfig.
This bit should be removed as it's not true anymore.
Re: [PATCH v3 01/20] lib/vsprintf: Print time and date in human readable format via %pt
Quoted 10 lines · Joe Perches
Quoted 6 lines · Andy Shevchenko
There are users which print time and date represented by content of struct
rtc_timein human readable format.Instead of open coding that each time introduce %ptR[dt][rv] specifier.
Note, users have to select
PRINTK_PEXT_TIMEDATEoption in aKconfig.This bit should be removed as it's not true anymore.
Oops, right.
Signature · 2 lines
With Best Regards, Andy Shevchenko
Alexandre Belloni
maintainerRe: [PATCH v3 01/20] lib/vsprintf: Print time and date in human readable format via %pt
In reply to Andy ShevchenkoHello,
(Please update my email address).
Quoted 116 lines · Andy Shevchenko
There are users which print time and date represented by content of struct
rtc_timein human readable format.Instead of open coding that each time introduce %ptR[dt][rv] specifier.
Note, users have to select
PRINTK_PEXT_TIMEDATEoption in aKconfig.Cc Arnd Bergmann <[email protected]>Cc Bartlomiej Zolnierkiewicz <[email protected]>Cc Dmitry Torokhov <[email protected]>Cc Geert Uytterhoeven <[email protected]>Cc Guan Xuetao <[email protected]>Cc Ingo Molnar <[email protected]>Cc Jason Wessel <[email protected]>Cc Jonathan Corbet <[email protected]>Cc Jonathan Hunter <[email protected]>Cc Krzysztof Kozlowski <[email protected]>Cc "Rafael J. Wysocki" <[email protected]>Cc Thierry Reding <[email protected]>Signed-off-by Andy Shevchenko <[email protected]>--- Documentation/core-api/printk-formats.rst | 20 ++++ lib/test_printf.c | 6 + lib/vsprintf.c | 140 ++++++++++++++++++++++ 3 files changed, 166 insertions(+)Documentation/core-api/printk-formats.rst +20
-0@@ -412,6 +412,26 @@ Examples:: Passed by reference. +Time and date (struct rtc_time) +------------------------------- + +:: + + %ptR YYYY-mm-dd HH:MM:SS + %ptRd YYYY-mm-dd + %ptRt HH:MM:SS + %ptR[dt][rv] + +For printing date and time as represented by struct rtc_time structure in +human readable format. + +By default year will be incremented by 1900 and month by 1. Use %ptRr (raw) +to suppress this behaviour. On the other hand when %ptRv is applied +validation mechanism will be in use, i.e. numbers out of range will be +replaced by ** or ****. + +Passed by reference. + struct clk ----------lib/test_printf.c +6
-0@@ -418,6 +418,11 @@ struct_va_format(void) { } +static void __init +struct_rtc_time (void ) +{ +} +static void __init struct_clk (void ) {@@ -529,6 +534,7 @@ test_pointer(void)uuid ();dentry ();struct_va_format (); +struct_rtc_time ();struct_clk ();bitmap ();netdev_features ();lib/vsprintf.c +15
-0@@ -30,6 +30,7 @@#include <linux/ioport.h> #include <linux/dcache.h> #include <linux/cred.h> +#include <linux/rtc.h> #include <linux/uuid.h> #include <linux/of.h> #include <net/addrconf.h> @@ -822,6 +823,20 @@ static const struct printf_spec default_dec_spec = { .precision = -1, }; +static const struct printf_spec default_dec02_spec = { + .base =10 , + .field_width =2 , + .precision =-1 , + .flags =ZEROPAD , +}; + +static const struct printf_spec default_dec04_spec = { + .base =10 , + .field_width =4 , + .precision =-1 , + .flags =ZEROPAD , +}; +static noinline_for_stack char *resource_string(char *buf, char *end, struct resource *res,struct printf_spec spec,const char *fmt)@@ -1549,6 +1564,127 @@ char *address_val(char *buf, char *end, const void *addr, const char *fmt)return special_hex_number (buf, end, num, size);
lib/vsprintf.c char *address_val(char *buf, char *end, const void *addr, const char *fmt) · line 1574
Quoted 10 lines
lib/vsprintf.c +8
-0} +static noinline_for_stack +char *date_str(char *buf, char *end, const struct rtc_time *tm, bool v, bool r) +{ +int year = tm->tm_year + (r ?0 :1900 ); +int mon = tm->tm_mon + (r ?0 :1 ); + +if (unlikely (v && (unsigned int )tm->tm_year >200 )) + buf =string (buf, end,"****" , default_str_spec);
I think you should drop the validation option. This is only used in a deprecated ABI and is mostly wrong as many RTCs will still be valid after 2100.
Quoted 8 lines
lib/vsprintf.c +8
-0+else + buf =number (buf, end, year, default_dec04_spec); + +if (buf < end) + *buf ='-' ; + buf++; + +if (unlikely (v && (unsigned int )tm->tm_mon >11 ))
lib/vsprintf.c char *address_val(char *buf, char *end, const void *addr, const char *fmt) · line 1592
Quoted 10 lines
lib/vsprintf.c +10
-0+ buf =string (buf, end,"**" , default_str_spec); + else + buf =number (buf, end, mon, default_dec02_spec); + +if (buf < end) + *buf ='-' ; + buf++; + +if (unlikely (v && (unsigned int )tm->tm_mday >31 )) + buf =string (buf, end,"**" , default_str_spec);
Same here, this doesn't protect February, April, June, September and November. There is one RTC that think that 31st of November is valid.
Quoted 19 lines
lib/vsprintf.c +19
-0+else + buf =number (buf, end, tm->tm_mday, default_dec02_spec); + +return buf; +} + +static noinline_for_stack +char *time_str(char *buf, char *end, const struct rtc_time *tm, bool v, bool r) +{ +if (unlikely (v && (unsigned int )tm->tm_hour >24 )) + buf =string (buf, end,"**" , default_str_spec); +else + buf =number (buf, end, tm->tm_hour, default_dec02_spec); + +if (buf < end) + *buf =':' ; + buf++; + +if (unlikely (v && (unsigned int )tm->tm_min >59 ))
lib/vsprintf.c char *address_val(char *buf, char *end, const void *addr, const char *fmt) · line 1621
Quoted 10 lines
lib/vsprintf.c +10
-0+ buf =string (buf, end,"**" , default_str_spec); + else + buf =number (buf, end, tm->tm_min, default_dec02_spec); + +if (buf < end) + *buf =':' ; + buf++; + +if (unlikely (v && (unsigned int )tm->tm_sec >59 )) + buf =string (buf, end,"**" , default_str_spec);
Some RTCs will consider 60 valid. So, really, instead of fixing all of those, I'd just get rid of the validation option.
Quoted 36 lines
lib/vsprintf.c +36
-0+else + buf =number (buf, end, tm->tm_sec, default_dec02_spec); + +return buf; +} + +static noinline_for_stack +char *rtc_str(char *buf, char *end, const struct rtc_time *tm, const char *fmt) +{ +bool have_t = true, have_d = true; +bool validate = false; +bool raw = false; +int count =2 ; +bool found; + +switch (fmt[count]) { +case 'd' : + have_t = false; + count++; +break ; +case 't' : + have_d = false; + count++; +break ; + } + + found = true; + do { + switch (fmt[count++]) { + case 'r': + raw = true; + break; + case 'v': + validate = true; + break; + default:
lib/vsprintf.c char *address_val(char *buf, char *end, const void *addr, const char *fmt) · line 1667
Quoted 10 lines
lib/vsprintf.c +10
-0+ found = false; +break ; + } + }while (found); + +if (have_d) + buf =date_str (buf, end, tm, validate, raw); +if (have_d && have_t) { +if (buf < end) + *buf =' ' ;
I'd go for ISO 8601 and use a 'T' here.
Quoted 44 lines
lib/vsprintf.c +24
-0+ buf++; + } +if (have_t) + buf =time_str (buf, end, tm, validate, raw); + +return buf; +} + +static noinline_for_stack +char *timeanddate(char *buf, char *end, void *ptr, struct printf_spec spec, +const char *fmt) +{ +switch (fmt[1 ]) { +case 'R' : +return rtc_str (buf, end, (const struct rtc_time *)ptr, fmt); +default : +return ptr_to_id (buf, end, ptr, spec); + } +} +static noinline_for_stack char *clock(char *buf, char *end, struct clk *clk, struct printf_spec spec,const char *fmt)@@ -1828,6 +1964,8 @@ char *device_node_string(char *buf, char *end, struct device_node *dn,* - 'd[234]' For a dentry name (optionally 2-4 last components) * - 'D[234]' Same as 'd' but for a struct file * - 'g' For block_device name (gendisk + partition number) +* - 't[R][dt][rv]' For time and date as represented: +* R struct rtc_time * - 'C' For a clock, it prints the name (Common Clock Framework) or address * (legacy clock framework) of the clock * - 'Cn' For a clock, it prints the name (Common Clock Framework) or address @@ -1952,6 +2090,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,return address_val (buf, end, ptr, fmt);case 'd' :return dentry_name (buf, end, ptr, spec, fmt); +case 't' : +return timeanddate (buf, end, ptr, spec, fmt);case 'C' :return clock (buf, end, ptr, spec, fmt);case 'D' :Signature · 1 line
2.19.1
Signature · 3 lines
Alexandre Belloni, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
Andy Shevchenko
reviewerRe: [PATCH v3 01/20] lib/vsprintf: Print time and date in human readable format via %pt
Quoted 3 lines · Alexandre Belloni
Hello,
(Please update my email address).
I will follow all recommendations.
New version coming soon...
Thanks for review!
Quoted 286 lines · Andy Shevchenko
Quoted 116 lines
There are users which print time and date represented by content of struct
rtc_timein human readable format.Instead of open coding that each time introduce %ptR[dt][rv] specifier.
Note, users have to select
PRINTK_PEXT_TIMEDATEoption in aKconfig.Cc Arnd Bergmann <[email protected]>Cc Bartlomiej Zolnierkiewicz <[email protected]>Cc Dmitry Torokhov <[email protected]>Cc Geert Uytterhoeven <[email protected]>Cc Guan Xuetao <[email protected]>Cc Ingo Molnar <[email protected]>Cc Jason Wessel <[email protected]>Cc Jonathan Corbet <[email protected]>Cc Jonathan Hunter <[email protected]>Cc Krzysztof Kozlowski <[email protected]>Cc "Rafael J. Wysocki" <[email protected]>Cc Thierry Reding <[email protected]>Signed-off-by Andy Shevchenko <[email protected]>--- Documentation/core-api/printk-formats.rst | 20 ++++ lib/test_printf.c | 6 + lib/vsprintf.c | 140 ++++++++++++++++++++++ 3 files changed, 166 insertions(+)Documentation/core-api/printk-formats.rst +20
-0@@ -412,6 +412,26 @@ Examples:: Passed by reference. +Time and date (struct rtc_time) +------------------------------- + +:: + + %ptR YYYY-mm-dd HH:MM:SS + %ptRd YYYY-mm-dd + %ptRt HH:MM:SS + %ptR[dt][rv] + +For printing date and time as represented by struct rtc_time structure in +human readable format. + +By default year will be incremented by 1900 and month by 1. Use %ptRr (raw) +to suppress this behaviour. On the other hand when %ptRv is applied +validation mechanism will be in use, i.e. numbers out of range will be +replaced by ** or ****. + +Passed by reference. + struct clk ----------lib/test_printf.c +6
-0@@ -418,6 +418,11 @@ struct_va_format(void) { } +static void __init +struct_rtc_time (void ) +{ +} +static void __init struct_clk (void ) {@@ -529,6 +534,7 @@ test_pointer(void)uuid ();dentry ();struct_va_format (); +struct_rtc_time ();struct_clk ();bitmap ();netdev_features ();lib/vsprintf.c +15
-0@@ -30,6 +30,7 @@#include <linux/ioport.h> #include <linux/dcache.h> #include <linux/cred.h> +#include <linux/rtc.h> #include <linux/uuid.h> #include <linux/of.h> #include <net/addrconf.h> @@ -822,6 +823,20 @@ static const struct printf_spec default_dec_spec = { .precision = -1, }; +static const struct printf_spec default_dec02_spec = { + .base =10 , + .field_width =2 , + .precision =-1 , + .flags =ZEROPAD , +}; + +static const struct printf_spec default_dec04_spec = { + .base =10 , + .field_width =4 , + .precision =-1 , + .flags =ZEROPAD , +}; +static noinline_for_stack char *resource_string(char *buf, char *end, struct resource *res,struct printf_spec spec,const char *fmt)@@ -1549,6 +1564,127 @@ char *address_val(char *buf, char *end, const void *addr, const char *fmt)return special_hex_number (buf, end, num, size);lib/vsprintf.c char *address_val(char *buf, char *end, const void *addr, const char *fmt) · line 1574
Quoted 10 lines
lib/vsprintf.c +8
-0} +static noinline_for_stack +char *date_str(char *buf, char *end, const struct rtc_time *tm, bool v, bool r) +{ +int year = tm->tm_year + (r ?0 :1900 ); +int mon = tm->tm_mon + (r ?0 :1 ); + +if (unlikely (v && (unsigned int )tm->tm_year >200 )) + buf =string (buf, end,"****" , default_str_spec);I think you should drop the validation option. This is only used in a deprecated ABI and is mostly wrong as many RTCs will still be valid after 2100.
Quoted 8 lines
lib/vsprintf.c +8
-0+else + buf =number (buf, end, year, default_dec04_spec); + +if (buf < end) + *buf ='-' ; + buf++; + +if (unlikely (v && (unsigned int )tm->tm_mon >11 ))lib/vsprintf.c char *address_val(char *buf, char *end, const void *addr, const char *fmt) · line 1592
Quoted 10 lines
lib/vsprintf.c +10
-0+ buf =string (buf, end,"**" , default_str_spec); + else + buf =number (buf, end, mon, default_dec02_spec); + +if (buf < end) + *buf ='-' ; + buf++; + +if (unlikely (v && (unsigned int )tm->tm_mday >31 )) + buf =string (buf, end,"**" , default_str_spec);Same here, this doesn't protect February, April, June, September and November. There is one RTC that think that 31st of November is valid.
Quoted 19 lines
lib/vsprintf.c +19
-0+else + buf =number (buf, end, tm->tm_mday, default_dec02_spec); + +return buf; +} + +static noinline_for_stack +char *time_str(char *buf, char *end, const struct rtc_time *tm, bool v, bool r) +{ +if (unlikely (v && (unsigned int )tm->tm_hour >24 )) + buf =string (buf, end,"**" , default_str_spec); +else + buf =number (buf, end, tm->tm_hour, default_dec02_spec); + +if (buf < end) + *buf =':' ; + buf++; + +if (unlikely (v && (unsigned int )tm->tm_min >59 ))lib/vsprintf.c char *address_val(char *buf, char *end, const void *addr, const char *fmt) · line 1621
Quoted 10 lines
lib/vsprintf.c +10
-0+ buf =string (buf, end,"**" , default_str_spec); + else + buf =number (buf, end, tm->tm_min, default_dec02_spec); + +if (buf < end) + *buf =':' ; + buf++; + +if (unlikely (v && (unsigned int )tm->tm_sec >59 )) + buf =string (buf, end,"**" , default_str_spec);Some RTCs will consider 60 valid. So, really, instead of fixing all of those, I'd just get rid of the validation option.
Quoted 36 lines
lib/vsprintf.c +36
-0+else + buf =number (buf, end, tm->tm_sec, default_dec02_spec); + +return buf; +} + +static noinline_for_stack +char *rtc_str(char *buf, char *end, const struct rtc_time *tm, const char *fmt) +{ +bool have_t = true, have_d = true; +bool validate = false; +bool raw = false; +int count =2 ; +bool found; + +switch (fmt[count]) { +case 'd' : + have_t = false; + count++; +break ; +case 't' : + have_d = false; + count++; +break ; + } + + found = true; + do { + switch (fmt[count++]) { + case 'r': + raw = true; + break; + case 'v': + validate = true; + break; + default:lib/vsprintf.c char *address_val(char *buf, char *end, const void *addr, const char *fmt) · line 1667
Quoted 10 lines
lib/vsprintf.c +10
-0+ found = false; +break ; + } + }while (found); + +if (have_d) + buf =date_str (buf, end, tm, validate, raw); +if (have_d && have_t) { +if (buf < end) + *buf =' ' ;I'd go for ISO 8601 and use a 'T' here.
Quoted 44 lines
lib/vsprintf.c +24
-0+ buf++; + } +if (have_t) + buf =time_str (buf, end, tm, validate, raw); + +return buf; +} + +static noinline_for_stack +char *timeanddate(char *buf, char *end, void *ptr, struct printf_spec spec, +const char *fmt) +{ +switch (fmt[1 ]) { +case 'R' : +return rtc_str (buf, end, (const struct rtc_time *)ptr, fmt); +default : +return ptr_to_id (buf, end, ptr, spec); + } +} +static noinline_for_stack char *clock(char *buf, char *end, struct clk *clk, struct printf_spec spec,const char *fmt)@@ -1828,6 +1964,8 @@ char *device_node_string(char *buf, char *end, struct device_node *dn,* - 'd[234]' For a dentry name (optionally 2-4 last components) * - 'D[234]' Same as 'd' but for a struct file * - 'g' For block_device name (gendisk + partition number) +* - 't[R][dt][rv]' For time and date as represented: +* R struct rtc_time * - 'C' For a clock, it prints the name (Common Clock Framework) or address * (legacy clock framework) of the clock * - 'Cn' For a clock, it prints the name (Common Clock Framework) or address @@ -1952,6 +2090,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,return address_val (buf, end, ptr, fmt);case 'd' :return dentry_name (buf, end, ptr, spec, fmt); +case 't' : +return timeanddate (buf, end, ptr, spec, fmt);case 'C' :return clock (buf, end, ptr, spec, fmt);case 'D' :Signature · 1 line
2.19.1Signature · 3 lines
Alexandre Belloni, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
Signature · 2 lines
With Best Regards, Andy Shevchenko
Andy Shevchenko
reviewerPATCH v3 2/20 rtc: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/char/rtc.c | 7 +++---- drivers/rtc/hctosys.c | 8 ++------ drivers/rtc/interface.c | 8 ++------ drivers/rtc/rtc-proc.c | 36 +++++------------------------------- drivers/rtc/rtc-sysfs.c | 16 ++++++---------- 5 files changed, 18 insertions(+), 57 deletions(-)
drivers/char/rtc.c +3 -4
@@ -1125,11 +1125,10 @@ static int rtc_proc_show(struct seq_file *seq, void *v)* time or for Universal Standard Time (GMT). Probably local though. */ seq_printf (seq, -"rtc_time\t: %02d:%02d:%02d\n" -"rtc_date\t: %04d-%02d-%02d\n" +"rtc_time\t: %ptRt\n" +"rtc_date\t: %ptRd\n" "rtc_epoch\t: %04lu\n" , - tm.tm_hour, tm.tm_min, tm.tm_sec, - tm.tm_year +1900 , tm.tm_mon +1 , tm.tm_mday, epoch); + &tm, &tm, epoch);get_rtc_alm_time (&tm);
drivers/rtc/hctosys.c +2 -6
@@ -58,12 +58,8 @@ static int __init rtc_hctosys(void) err =do_settimeofday64 (&tv64); -dev_info (rtc->dev.parent, -"setting system clock to " -"%d-%02d-%02d %02d:%02d:%02d UTC (%lld)\n" , - tm.tm_year +1900 , tm.tm_mon +1 , tm.tm_mday, - tm.tm_hour, tm.tm_min, tm.tm_sec, - (long long ) tv64.tv_sec); +dev_info (rtc->dev.parent,"setting system clock to %ptR UTC (%lld)\n" , + &tm, (long long )tv64.tv_sec); err_read:rtc_class_close (rtc);
drivers/rtc/interface.c +2 -6
@@ -368,12 +368,8 @@ int __rtc_read_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm) err =rtc_valid_tm (&alarm->time); done: -if (err) { -dev_warn (&rtc->dev,"invalid alarm value: %d-%d-%d %d:%d:%d\n" , - alarm->time.tm_year +1900 , alarm->time.tm_mon +1 , - alarm->time.tm_mday, alarm->time.tm_hour, alarm->time.tm_min, - alarm->time.tm_sec); - } +if (err) +dev_warn (&rtc->dev,"invalid alarm value: %ptR\n" , &alarm->time);return err; }
drivers/rtc/rtc-proc.c +5 -31
@@ -50,41 +50,15 @@ static int rtc_proc_show(struct seq_file *seq, void *offset) err =rtc_read_time (rtc, &tm);if (err ==0 ) {seq_printf (seq, -"rtc_time\t: %02d:%02d:%02d\n" -"rtc_date\t: %04d-%02d-%02d\n" , - tm.tm_hour, tm.tm_min, tm.tm_sec, - tm.tm_year +1900 , tm.tm_mon +1 , tm.tm_mday); +"rtc_time\t: %ptRt\n" +"rtc_date\t: %ptRd\n" , + &tm, &tm); } err =rtc_read_alarm (rtc, &alrm);if (err ==0 ) { -seq_printf (seq,"alrm_time\t: " ); -if ((unsigned int )alrm.time.tm_hour <=24 ) -seq_printf (seq,"%02d:" , alrm.time.tm_hour); -else -seq_printf (seq,"**:" ); -if ((unsigned int )alrm.time.tm_min <=59 ) -seq_printf (seq,"%02d:" , alrm.time.tm_min); -else -seq_printf (seq,"**:" ); -if ((unsigned int )alrm.time.tm_sec <=59 ) -seq_printf (seq,"%02d\n" , alrm.time.tm_sec); -else -seq_printf (seq,"**\n" ); - -seq_printf (seq,"alrm_date\t: " ); -if ((unsigned int )alrm.time.tm_year <=200 ) -seq_printf (seq,"%04d-" , alrm.time.tm_year +1900 ); -else -seq_printf (seq,"****-" ); -if ((unsigned int )alrm.time.tm_mon <=11 ) -seq_printf (seq,"%02d-" , alrm.time.tm_mon +1 ); -else -seq_printf (seq,"**-" ); -if (alrm.time.tm_mday && (unsigned int )alrm.time.tm_mday <=31 ) -seq_printf (seq,"%02d\n" , alrm.time.tm_mday); -else -seq_printf (seq,"**\n" ); +seq_printf (seq,"alrm_time\t: %ptRtv\n" , &alrm.time); +seq_printf (seq,"alrm_date\t: %ptRdv\n" , &alrm.time);seq_printf (seq,"alarm_IRQ\t: %s\n" , alrm.enabled ?"yes" :"no" ); seq_printf(seq, "alrm_pending\t: %s\n",
drivers/rtc/rtc-sysfs.c +6 -10
@@ -39,12 +39,10 @@ date_show(struct device *dev, struct device_attribute *attr, char *buf)struct rtc_time tm; retval =rtc_read_time (to_rtc_device (dev), &tm); -if (retval ==0 ) { - retval =sprintf (buf,"%04d-%02d-%02d\n" , - tm.tm_year +1900 , tm.tm_mon +1 , tm.tm_mday); - } +if (retval) +return retval; -return retval; +return sprintf (buf,"%ptRd\n" , &tm); }static DEVICE_ATTR_RO (date);
@@ -55,12 +53,10 @@ time_show(struct device *dev, struct device_attribute *attr, char *buf)struct rtc_time tm; retval =rtc_read_time (to_rtc_device (dev), &tm); -if (retval ==0 ) { - retval =sprintf (buf,"%02d:%02d:%02d\n" , - tm.tm_hour, tm.tm_min, tm.tm_sec); - } +if (retval) +return retval; -return retval; +return sprintf (buf,"%ptRt\n" , &tm); }static DEVICE_ATTR_RO (time);
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 3/20 rtc: at91rm9200: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-at91rm9200.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-)
drivers/rtc/rtc-at91rm9200.c +4 -11
@@ -147,9 +147,7 @@ static int at91_rtc_readtime(struct device *dev, struct rtc_time *tm) tm->tm_yday =rtc_year_days (tm->tm_mday, tm->tm_mon, tm->tm_year); tm->tm_year = tm->tm_year -1900 ; -dev_dbg (dev,"%s(): %4d-%02d-%02d %02d:%02d:%02d\n" , __func__, -1900 + tm->tm_year, tm->tm_mon, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"%s(): %ptR\n" , __func__, tm);return 0 ; }
@@ -161,9 +159,7 @@ static int at91_rtc_settime(struct device *dev, struct rtc_time *tm) {unsigned long cr; -dev_dbg (dev,"%s(): %4d-%02d-%02d %02d:%02d:%02d\n" , __func__, -1900 + tm->tm_year, tm->tm_mon, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"%s(): %ptR\n" , __func__, tm);wait_for_completion (&at91_rtc_upd_rdy);
@@ -209,8 +205,7 @@ static int at91_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm) alrm->enabled = (at91_rtc_read_imr () &AT91_RTC_ALARM ) ?1 :0 ; -dev_dbg (dev,"%s(): %02d-%02d %02d:%02d:%02d %sabled\n" , __func__, - tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, +dev_dbg (dev,"%s(): %ptR %sabled\n" , __func__, tm, alrm->enabled ?"en" :"dis" );return 0 ;
@@ -247,9 +242,7 @@ static int at91_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)at91_rtc_write_ier (AT91_RTC_ALARM ); } -dev_dbg (dev,"%s(): %4d-%02d-%02d %02d:%02d:%02d\n" , __func__, - tm.tm_year, tm.tm_mon, tm.tm_mday, tm.tm_hour, - tm.tm_min, tm.tm_sec); +dev_dbg (dev,"%s(): %ptR\n" , __func__, &tm);return 0 ; }
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 4/20 rtc: at91sam9: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-at91sam9.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-)
drivers/rtc/rtc-at91sam9.c +4 -12
@@ -124,9 +124,7 @@ static int at91_rtc_readtime(struct device *dev, struct rtc_time *tm)rtc_time_to_tm (offset + secs, tm); -dev_dbg (dev,"%s: %4d-%02d-%02d %02d:%02d:%02d\n" ,"readtime" , -1900 + tm->tm_year, tm->tm_mon, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"%s: %ptR\n" , __func__, tm);return 0 ; }
@@ -141,9 +139,7 @@ static int at91_rtc_settime(struct device *dev, struct rtc_time *tm)u32 offset, alarm, mr;unsigned long secs; -dev_dbg (dev,"%s: %4d-%02d-%02d %02d:%02d:%02d\n" ,"settime" , -1900 + tm->tm_year, tm->tm_mon, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"%s: %ptR\n" , __func__, tm); err =rtc_tm_to_time (tm, &secs);if (err !=0 )
@@ -199,9 +195,7 @@ static int at91_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm)if (alarm !=ALARM_DISABLED && offset !=0 ) {rtc_time_to_tm (offset + alarm, tm); -dev_dbg (dev,"%s: %4d-%02d-%02d %02d:%02d:%02d\n" ,"readalarm" , -1900 + tm->tm_year, tm->tm_mon, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"%s: %ptR\n" , __func__, tm);if (rtt_readl (rtc,MR ) &AT91_RTT_ALMIEN ) alrm->enabled =1 ;
@@ -242,9 +236,7 @@ static int at91_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)if (alrm->enabled)rtt_writel (rtc,MR , mr |AT91_RTT_ALMIEN ); -dev_dbg (dev,"%s: %4d-%02d-%02d %02d:%02d:%02d\n" ,"setalarm" , - tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour, - tm->tm_min, tm->tm_sec); +dev_dbg (dev,"%s: %ptR\n" , __func__, tm);return 0 ; }
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 5/20 rtc: m41t80: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-m41t80.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
drivers/rtc/rtc-m41t80.c +1 -5
@@ -939,11 +939,7 @@ static int m41t80_probe(struct i2c_client *client,if (m41t80_data->features &M41T80_FEATURE_HT ) {m41t80_rtc_read_time (&client->dev, &tm);dev_info (&client->dev,"HT bit was set!\n" ); -dev_info (&client->dev, -"Power Down at %04i-%02i-%02i %02i:%02i:%02i\n" , - tm.tm_year +1900 , - tm.tm_mon +1 , tm.tm_mday, tm.tm_hour, - tm.tm_min, tm.tm_sec); +dev_info (&client->dev,"Power Down at %ptR\n" , &tm); } rc =i2c_smbus_write_byte_data (client,M41T80_REG_ALARM_HOUR , rc & ~M41T80_ALHOUR_HT );
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 6/20 rtc: m48t59: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-m48t59.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
drivers/rtc/rtc-m48t59.c +2 -6
@@ -99,9 +99,7 @@ static int m48t59_rtc_read_time(struct device *dev, struct rtc_time *tm)M48T59_CLEAR_BITS (M48T59_CNTL_READ ,M48T59_CNTL );spin_unlock_irqrestore (&m48t59->lock, flags); -dev_dbg (dev,"RTC read time %04d-%02d-%02d %02d/%02d/%02d\n" , - tm->tm_year +1900 , tm->tm_mon, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"RTC read time %ptR\n" , tm);return 0 ; }
@@ -188,9 +186,7 @@ static int m48t59_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm)M48T59_CLEAR_BITS (M48T59_CNTL_READ ,M48T59_CNTL );spin_unlock_irqrestore (&m48t59->lock, flags); -dev_dbg (dev,"RTC read alarm time %04d-%02d-%02d %02d/%02d/%02d\n" , - tm->tm_year +1900 , tm->tm_mon, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"RTC read alarm time %ptR\n" , tm);return rtc_valid_tm (tm); }
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 7/20 rtc: mcp795: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-mcp795.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-)
drivers/rtc/rtc-mcp795.c +6 -12
@@ -233,9 +233,7 @@ static int mcp795_set_time(struct device *dev, struct rtc_time *tim)if (ret)return ret; -dev_dbg (dev,"Set mcp795: %04d-%02d-%02d(%d) %02d:%02d:%02d\n" , - tim->tm_year +1900 , tim->tm_mon, tim->tm_mday, - tim->tm_wday, tim->tm_hour, tim->tm_min, tim->tm_sec); +dev_dbg (dev,"Set mcp795: %ptR\n" , tim);return 0 ; }
@@ -258,9 +256,7 @@ static int mcp795_read_time(struct device *dev, struct rtc_time *tim) tim->tm_mon =bcd2bin (data[5 ] &0x1F ) -1 ; tim->tm_year =bcd2bin (data[6 ]) +100 ;/* Assume we are in 20xx */ -dev_dbg (dev,"Read from mcp795: %04d-%02d-%02d(%d) %02d:%02d:%02d\n" , - tim->tm_year +1900 , tim->tm_mon, tim->tm_mday, - tim->tm_wday, tim->tm_hour, tim->tm_min, tim->tm_sec); +dev_dbg (dev,"Read from mcp795: %ptR\n" , tim);return 0 ; }
@@ -319,9 +315,8 @@ static int mcp795_set_alarm(struct device *dev, struct rtc_wkalrm *alm)return ret;dev_dbg (dev,"Alarm IRQ armed\n" ); } -dev_dbg (dev,"Set alarm: %02d-%02d(%d) %02d:%02d:%02d\n" , - alm->time.tm_mon, alm->time.tm_mday, alm->time.tm_wday, - alm->time.tm_hour, alm->time.tm_min, alm->time.tm_sec); +dev_dbg (dev,"Set alarm: %ptRdr(%d) %ptRt\n" , + &alm->time, alm->time.tm_wday, &alm->time);return 0 ; }
@@ -345,9 +340,8 @@ static int mcp795_read_alarm(struct device *dev, struct rtc_wkalrm *alm) alm->time.tm_isdst =-1 ; alm->time.tm_yday =-1 ; -dev_dbg (dev,"Read alarm: %02d-%02d(%d) %02d:%02d:%02d\n" , - alm->time.tm_mon, alm->time.tm_mday, alm->time.tm_wday, - alm->time.tm_hour, alm->time.tm_min, alm->time.tm_sec); +dev_dbg (dev,"Read alarm: %ptRdr(%d) %ptRt\n" , + &alm->time, alm->time.tm_wday, &alm->time);return 0 ; }
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 8/20 rtc: pcf50633: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-pcf50633.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
drivers/rtc/rtc-pcf50633.c +2 -6
@@ -131,9 +131,7 @@ static int pcf50633_rtc_read_time(struct device *dev, struct rtc_time *tm)pcf2rtc_time (tm, &pcf_tm); -dev_dbg (dev,"RTC_TIME: %u.%u.%u %u:%u:%u\n" , - tm->tm_mday, tm->tm_mon, tm->tm_year, - tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"RTC_TIME: %ptRr\n" , tm);return 0 ; }
@@ -146,9 +144,7 @@ static int pcf50633_rtc_set_time(struct device *dev, struct rtc_time *tm) rtc =dev_get_drvdata (dev); -dev_dbg (dev,"RTC_TIME: %u.%u.%u %u:%u:%u\n" , - tm->tm_mday, tm->tm_mon, tm->tm_year, - tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"RTC_TIME: %ptRr\n" , tm);rtc2pcf_time (&pcf_tm, tm);
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 9/20 rtc: pic32: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-pic32.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-)
drivers/rtc/rtc-pic32.c +4 -14
@@ -170,9 +170,7 @@ static int pic32_rtc_gettime(struct device *dev, struct rtc_time *rtc_tm) rtc_tm->tm_year +=100 ; -dev_dbg (dev,"read time %04d.%02d.%02d %02d:%02d:%02d\n" , -1900 + rtc_tm->tm_year, rtc_tm->tm_mon, rtc_tm->tm_mday, - rtc_tm->tm_hour, rtc_tm->tm_min, rtc_tm->tm_sec); +dev_dbg (dev,"read time %ptR\n" , rtc_tm);clk_disable (pdata->clk);return 0 ;
@@ -184,9 +182,7 @@ static int pic32_rtc_settime(struct device *dev, struct rtc_time *tm)void __iomem *base = pdata->reg_base;int year = tm->tm_year -100 ; -dev_dbg (dev,"set time %04d.%02d.%02d %02d:%02d:%02d\n" , -1900 + tm->tm_year, tm->tm_mon, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"set time %ptR\n" , tm);if (year <0 || year >=100 ) {dev_err (dev,"rtc only supports 100 years\n" );
@@ -224,10 +220,7 @@ static int pic32_rtc_getalarm(struct device *dev, struct rtc_wkalrm *alrm) alrm->enabled = (alm_en &PIC32_RTCALRM_ALRMEN ) ?1 :0 ; -dev_dbg (dev,"getalarm: %d, %04d.%02d.%02d %02d:%02d:%02d\n" , - alm_en, -1900 + alm_tm->tm_year, alm_tm->tm_mon, alm_tm->tm_mday, - alm_tm->tm_hour, alm_tm->tm_min, alm_tm->tm_sec); +dev_dbg (dev,"getalarm: %d, %ptR\n" , alm_en, alm_tm); alm_tm->tm_sec =bcd2bin (alm_tm->tm_sec); alm_tm->tm_min =bcd2bin (alm_tm->tm_min);
@@ -247,10 +240,7 @@ static int pic32_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)void __iomem *base = pdata->reg_base;clk_enable (pdata->clk); -dev_dbg (dev,"setalarm: %d, %04d.%02d.%02d %02d:%02d:%02d\n" , - alrm->enabled, -1900 + tm->tm_year, tm->tm_mon +1 , tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"setalarm: %d, %ptR\n" , alrm->enabled, tm);writel (0x00 , base +PIC32_ALRMTIME );writel (0x00 , base +PIC32_ALRMDATE );
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 10/20 rtc: pm8xxx: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-pm8xxx.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-)
drivers/rtc/rtc-pm8xxx.c +5 -11
@@ -217,9 +217,7 @@ static int pm8xxx_rtc_read_time(struct device *dev, struct rtc_time *tm)rtc_time_to_tm (secs, tm); -dev_dbg (dev,"secs = %lu, h:m:s == %d:%d:%d, d/m/y = %d/%d/%d\n" , - secs, tm->tm_hour, tm->tm_min, tm->tm_sec, - tm->tm_mday, tm->tm_mon, tm->tm_year); +dev_dbg (dev,"secs = %lu, h:m:s == %ptRt, y-m-d = %ptRdr\n" , secs, tm, tm);return 0 ; }
@@ -264,10 +262,8 @@ static int pm8xxx_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alarm) goto rtc_rw_fail; } -dev_dbg (dev,"Alarm Set for h:r:s=%d:%d:%d, d/m/y=%d/%d/%d\n" , - alarm->time.tm_hour, alarm->time.tm_min, - alarm->time.tm_sec, alarm->time.tm_mday, - alarm->time.tm_mon, alarm->time.tm_year); +dev_dbg (dev,"Alarm Set for h:m:s=%ptRt, y-m-d=%ptRdr\n" , + &alarm->time, &alarm->time); rtc_rw_fail:spin_unlock_irqrestore (&rtc_dd->ctrl_reg_lock, irq_flags);return rc;
@@ -298,10 +294,8 @@ static int pm8xxx_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alarm)return rc; } -dev_dbg (dev,"Alarm set for - h:r:s=%d:%d:%d, d/m/y=%d/%d/%d\n" , - alarm->time.tm_hour, alarm->time.tm_min, - alarm->time.tm_sec, alarm->time.tm_mday, - alarm->time.tm_mon, alarm->time.tm_year); +dev_dbg (dev,"Alarm set for - h:m:s=%ptRt, y-m-d=%ptRdr\n" , + &alarm->time, &alarm->time);return 0 ; }
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 11/20 rtc: puv3: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-puv3.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-)
drivers/rtc/rtc-puv3.c +4 -14
@@ -90,9 +90,7 @@ static int puv3_rtc_gettime(struct device *dev, struct rtc_time *rtc_tm) {rtc_time_to_tm (readl (RTC_RCNR ), rtc_tm); -dev_dbg (dev,"read time %02x.%02x.%02x %02x/%02x/%02x\n" , - rtc_tm->tm_year, rtc_tm->tm_mon, rtc_tm->tm_mday, - rtc_tm->tm_hour, rtc_tm->tm_min, rtc_tm->tm_sec); +dev_dbg (dev,"read time %ptRr\n" , rtc_tm);return 0 ; }
@@ -101,9 +99,7 @@ static int puv3_rtc_settime(struct device *dev, struct rtc_time *tm) {unsigned long rtc_count =0 ; -dev_dbg (dev,"set time %02d.%02d.%02d %02d/%02d/%02d\n" , - tm->tm_year, tm->tm_mon, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"set time %ptRr\n" , tm);rtc_tm_to_time (tm, &rtc_count);writel (rtc_count,RTC_RCNR );
@@ -119,10 +115,7 @@ static int puv3_rtc_getalarm(struct device *dev, struct rtc_wkalrm *alrm) alrm->enabled =readl (RTC_RTSR ) &RTC_RTSR_ALE ; -dev_dbg (dev,"read alarm %02x %02x.%02x.%02x %02x/%02x/%02x\n" , - alrm->enabled, - alm_tm->tm_year, alm_tm->tm_mon, alm_tm->tm_mday, - alm_tm->tm_hour, alm_tm->tm_min, alm_tm->tm_sec); +dev_dbg (dev,"read alarm: %d, %ptRr\n" , alrm->enabled, alm_tm);return 0 ; }
@@ -132,10 +125,7 @@ static int puv3_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)struct rtc_time *tm = &alrm->time;unsigned long rtcalarm_count =0 ; -dev_dbg (dev,"puv3_rtc_setalarm: %d, %02x/%02x/%02x %02x.%02x.%02x\n" , - alrm->enabled, - tm->tm_mday &0xff , tm->tm_mon &0xff , tm->tm_year &0xff , - tm->tm_hour &0xff , tm->tm_min &0xff , tm->tm_sec); +dev_dbg (dev,"set alarm: %d, %ptRr\n" , alrm->enabled, tm);rtc_tm_to_time (tm, &rtcalarm_count);writel (rtcalarm_count,RTC_RTAR );
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 12/20 rtc: rk808: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-rk808.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-)
drivers/rtc/rtc-rk808.c +6 -14
@@ -138,9 +138,7 @@ static int rk808_rtc_readtime(struct device *dev, struct rtc_time *tm) tm->tm_year = (bcd2bin (rtc_data[5 ] &YEARS_REG_MSK )) +100 ; tm->tm_wday =bcd2bin (rtc_data[6 ] &WEEKS_REG_MSK );rockchip_to_gregorian (tm); -dev_dbg (dev,"RTC date/time %4d-%02d-%02d(%d) %02d:%02d:%02d\n" , -1900 + tm->tm_year, tm->tm_mon +1 , tm->tm_mday, - tm->tm_wday, tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"RTC date/time %ptRd(%d) %ptRt\n" , tm, tm->tm_wday, tm);return ret; }
@@ -153,9 +151,7 @@ static int rk808_rtc_set_time(struct device *dev, struct rtc_time *tm)u8 rtc_data[NUM_TIME_REGS ];int ret; -dev_dbg (dev,"set RTC date/time %4d-%02d-%02d(%d) %02d:%02d:%02d\n" , -1900 + tm->tm_year, tm->tm_mon +1 , tm->tm_mday, - tm->tm_wday, tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"set RTC date/time %ptRd(%d) %ptRt\n" , tm, tm->tm_wday, tm);gregorian_to_rockchip (tm); rtc_data[0 ] =bin2bcd (tm->tm_sec); rtc_data[1 ] =bin2bcd (tm->tm_min);
@@ -216,10 +212,8 @@ static int rk808_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm)return ret; } -dev_dbg (dev,"alrm read RTC date/time %4d-%02d-%02d(%d) %02d:%02d:%02d\n" , -1900 + alrm->time.tm_year, alrm->time.tm_mon +1 , - alrm->time.tm_mday, alrm->time.tm_wday, alrm->time.tm_hour, - alrm->time.tm_min, alrm->time.tm_sec); +dev_dbg (dev,"alrm read RTC date/time %ptRd(%d) %ptRt\n" , + &alrm->time, alrm->time.tm_wday, &alrm->time); alrm->enabled = (int_reg &BIT_RTC_INTERRUPTS_REG_IT_ALARM_M ) ?1 :0 ;
@@ -261,10 +255,8 @@ static int rk808_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)dev_err (dev,"Failed to stop alarm: %d\n" , ret);return ret; } -dev_dbg (dev,"alrm set RTC date/time %4d-%02d-%02d(%d) %02d:%02d:%02d\n" , -1900 + alrm->time.tm_year, alrm->time.tm_mon +1 , - alrm->time.tm_mday, alrm->time.tm_wday, alrm->time.tm_hour, - alrm->time.tm_min, alrm->time.tm_sec); +dev_dbg (dev,"alrm set RTC date/time %ptRd(%d) %ptRt\n" , + &alrm->time, alrm->time.tm_wday, &alrm->time);gregorian_to_rockchip (&alrm->time); alrm_data[0 ] =bin2bcd (alrm->time.tm_sec);
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 13/20 rtc: rx6110: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-rx6110.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-)
drivers/rtc/rtc-rx6110.c +3 -9
@@ -114,9 +114,7 @@ struct rx6110_data {*/ static int rx6110_rtc_tm_to_data (struct rtc_time *tm,u8 *data) { -pr_debug ("%s: date %ds %dm %dh %dmd %dm %dy\n" , __func__, - tm->tm_sec, tm->tm_min, tm->tm_hour, - tm->tm_mday, tm->tm_mon, tm->tm_year); +pr_debug ("%s: date %ptRr\n" , __func__, tm);/* * The year in the RTC is a value between 0 and 99.
@@ -154,9 +152,7 @@ static int rx6110_data_to_rtc_tm(u8 *data, struct rtc_time *tm) tm->tm_mon =bcd2bin (data[RTC_MONTH ] &0x1f ) -1 ; tm->tm_year =bcd2bin (data[RTC_YEAR ]) +100 ; -pr_debug ("%s: date %ds %dm %dh %dmd %dm %dy\n" , __func__, - tm->tm_sec, tm->tm_min, tm->tm_hour, - tm->tm_mday, tm->tm_mon, tm->tm_year); +pr_debug ("%s: date %ptRr\n" , __func__, tm);/* * The year in the RTC is a value between 0 and 99.
@@ -248,9 +244,7 @@ static int rx6110_get_time(struct device *dev, struct rtc_time *tm)if (ret)return ret; -dev_dbg (dev,"%s: date %ds %dm %dh %dmd %dm %dy\n" , __func__, - tm->tm_sec, tm->tm_min, tm->tm_hour, - tm->tm_mday, tm->tm_mon, tm->tm_year); +dev_dbg (dev,"%s: date %ptRr\n" , __func__, tm);return 0 ; }
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 14/20 rtc: rx8025: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-rx8025.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-)
drivers/rtc/rtc-rx8025.c +4 -15
@@ -193,10 +193,7 @@ static int rx8025_get_time(struct device *dev, struct rtc_time *dt)if (err)return err; -dev_dbg (dev,"%s: read 0x%02x 0x%02x " -"0x%02x 0x%02x 0x%02x 0x%02x 0x%02x\n" , __func__, - date[0 ], date[1 ], date[2 ], date[3 ], date[4 ], - date[5 ], date[6 ]); +dev_dbg (dev,"%s: read %7ph\n" , __func__, date); dt->tm_sec =bcd2bin (date[RX8025_REG_SEC ] &0x7f ); dt->tm_min =bcd2bin (date[RX8025_REG_MIN ] &0x7f );
@@ -210,9 +207,7 @@ static int rx8025_get_time(struct device *dev, struct rtc_time *dt) dt->tm_mon =bcd2bin (date[RX8025_REG_MONTH ] &0x1f ) -1 ; dt->tm_year =bcd2bin (date[RX8025_REG_YEAR ]) +100 ; -dev_dbg (dev,"%s: date %ds %dm %dh %dmd %dm %dy\n" , __func__, - dt->tm_sec, dt->tm_min, dt->tm_hour, - dt->tm_mday, dt->tm_mon, dt->tm_year); +dev_dbg (dev,"%s: date %ptRr\n" , __func__, dt);return 0 ; }
@@ -243,10 +238,7 @@ static int rx8025_set_time(struct device *dev, struct rtc_time *dt) date[RX8025_REG_MONTH ] =bin2bcd (dt->tm_mon +1 ); date[RX8025_REG_YEAR ] =bin2bcd (dt->tm_year -100 ); -dev_dbg (dev, -"%s: write 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x\n" , - __func__, - date[0 ], date[1 ], date[2 ], date[3 ], date[4 ], date[5 ], date[6 ]); +dev_dbg (dev,"%s: write %7ph\n" , __func__, date); ret =rx8025_write_regs (rx8025->client,RX8025_REG_SEC ,7 , date);if (ret <0 )
@@ -319,10 +311,7 @@ static int rx8025_read_alarm(struct device *dev, struct rtc_wkalrm *t) t->time.tm_hour =bcd2bin (ald[1 ] &0x1f ) %12 + (ald[1 ] &0x20 ?12 :0 ); -dev_dbg (dev,"%s: date: %ds %dm %dh %dmd %dm %dy\n" , - __func__, - t->time.tm_sec, t->time.tm_min, t->time.tm_hour, - t->time.tm_mday, t->time.tm_mon, t->time.tm_year); +dev_dbg (dev,"%s: date: %ptRr\n" , __func__, t); t->enabled = !!(rx8025->ctrl1 &RX8025_BIT_CTRL1_DALE ); t->pending = (ctrl2 &RX8025_BIT_CTRL2_DAFG ) && t->enabled;
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 15/20 rtc: s3c: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-s3c.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-)
drivers/rtc/rtc-s3c.c +4 -16
@@ -225,13 +225,9 @@ static int s3c_rtc_gettime(struct device *dev, struct rtc_time *rtc_tm)s3c_rtc_disable_clk (info); rtc_tm->tm_year +=100 ; - -dev_dbg (dev,"read time %04d.%02d.%02d %02d:%02d:%02d\n" , -1900 + rtc_tm->tm_year, rtc_tm->tm_mon, rtc_tm->tm_mday, - rtc_tm->tm_hour, rtc_tm->tm_min, rtc_tm->tm_sec); - rtc_tm->tm_mon -=1 ; +dev_dbg (dev,"read time %ptR\n" , rtc_tm);return 0 ; }
@@ -241,9 +237,7 @@ static int s3c_rtc_settime(struct device *dev, struct rtc_time *tm)int year = tm->tm_year -100 ;int ret; -dev_dbg (dev,"set time %04d.%02d.%02d %02d:%02d:%02d\n" , -1900 + tm->tm_year, tm->tm_mon, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"set time %ptR\n" , tm);/* we get around y2k by simply not supporting it */
@@ -292,10 +286,7 @@ static int s3c_rtc_getalarm(struct device *dev, struct rtc_wkalrm *alrm) alrm->enabled = (alm_en &S3C2410_RTCALM_ALMEN ) ?1 :0 ; -dev_dbg (dev,"read alarm %d, %04d.%02d.%02d %02d:%02d:%02d\n" , - alm_en, -1900 + alm_tm->tm_year, alm_tm->tm_mon, alm_tm->tm_mday, - alm_tm->tm_hour, alm_tm->tm_min, alm_tm->tm_sec); +dev_dbg (dev,"read alarm %d, %ptR\n" , alm_en, alm_tm);/* decode the alarm enable field */ if (alm_en &S3C2410_RTCALM_SECEN )
@@ -329,10 +320,7 @@ static int s3c_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)int ret;int year = tm->tm_year -100 ; -dev_dbg (dev,"s3c_rtc_setalarm: %d, %04d.%02d.%02d %02d:%02d:%02d\n" , - alrm->enabled, -1900 + tm->tm_year, tm->tm_mon +1 , tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); +dev_dbg (dev,"s3c_rtc_setalarm: %d, %ptR\n" , alrm->enabled, tm); ret =s3c_rtc_enable_clk (info);if (ret)
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 16/20 rtc: s5m: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-s5m.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-)
drivers/rtc/rtc-s5m.c +6 -21
@@ -406,9 +406,7 @@ static int s5m_rtc_read_time(struct device *dev, struct rtc_time *tm)return -EINVAL ; } -dev_dbg (dev,"%s: %d/%d/%d %d:%d:%d(%d)\n" , __func__, -1900 + tm->tm_year,1 + tm->tm_mon, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec, tm->tm_wday); +dev_dbg (dev,"%s: %ptR(%d)\n" , __func__, tm, tm->tm_wday);return 0 ; }
@@ -436,9 +434,7 @@ static int s5m_rtc_set_time(struct device *dev, struct rtc_time *tm)if (ret <0 )return ret; -dev_dbg (dev,"%s: %d/%d/%d %d:%d:%d(%d)\n" , __func__, -1900 + tm->tm_year,1 + tm->tm_mon, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec, tm->tm_wday); +dev_dbg (dev,"%s: %ptR(%d)\n" , __func__, tm, tm->tm_wday); ret =regmap_raw_write (info->regmap, info->regs->time, data, info->regs->regs_count);
@@ -490,11 +486,7 @@ static int s5m_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)return -EINVAL ; } -dev_dbg (dev,"%s: %d/%d/%d %d:%d:%d(%d)\n" , __func__, -1900 + alrm->time.tm_year,1 + alrm->time.tm_mon, - alrm->time.tm_mday, alrm->time.tm_hour, - alrm->time.tm_min, alrm->time.tm_sec, - alrm->time.tm_wday); +dev_dbg (dev,"%s: %ptR(%d)\n" , __func__, &alrm->time, alrm->time.tm_wday); ret =s5m_check_peding_alarm_interrupt (info, alrm);
@@ -513,9 +505,7 @@ static int s5m_rtc_stop_alarm(struct s5m_rtc_info *info)return ret;s5m8767_data_to_tm (data, &tm, info->rtc_24hr_mode); -dev_dbg (info->dev,"%s: %d/%d/%d %d:%d:%d(%d)\n" , __func__, -1900 + tm.tm_year,1 + tm.tm_mon, tm.tm_mday, - tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_wday); +dev_dbg (info->dev,"%s: %ptR(%d)\n" , __func__, &tm, tm.tm_wday);switch (info->device_type) {case S5M8763X :
@@ -558,9 +548,7 @@ static int s5m_rtc_start_alarm(struct s5m_rtc_info *info)return ret;s5m8767_data_to_tm (data, &tm, info->rtc_24hr_mode); -dev_dbg (info->dev,"%s: %d/%d/%d %d:%d:%d(%d)\n" , __func__, -1900 + tm.tm_year,1 + tm.tm_mon, tm.tm_mday, - tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_wday); +dev_dbg (info->dev,"%s: %ptR(%d)\n" , __func__, &tm, tm.tm_wday);switch (info->device_type) {case S5M8763X :
@@ -620,10 +608,7 @@ static int s5m_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)return -EINVAL ; } -dev_dbg (dev,"%s: %d/%d/%d %d:%d:%d(%d)\n" , __func__, -1900 + alrm->time.tm_year,1 + alrm->time.tm_mon, - alrm->time.tm_mday, alrm->time.tm_hour, alrm->time.tm_min, - alrm->time.tm_sec, alrm->time.tm_wday); +dev_dbg (dev,"%s: %ptR(%d)\n" , __func__, &alrm->time, alrm->time.tm_wday); ret =s5m_rtc_stop_alarm (info);if (ret <0 )
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 17/20 rtc: tegra: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/rtc/rtc-tegra.c | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-)
drivers/rtc/rtc-tegra.c +3 -27
@@ -125,15 +125,7 @@ static int tegra_rtc_read_time(struct device *dev, struct rtc_time *tm)rtc_time_to_tm (sec, tm); -dev_vdbg (dev,"time read as %lu. %d/%d/%d %d:%02u:%02u\n" , - sec, - tm->tm_mon +1 , - tm->tm_mday, - tm->tm_year +1900 , - tm->tm_hour, - tm->tm_min, - tm->tm_sec - ); +dev_vdbg (dev,"time read as %lu. %ptR\n" , sec, tm);return 0 ; }
@@ -147,15 +139,7 @@ static int tegra_rtc_set_time(struct device *dev, struct rtc_time *tm)/* convert tm to seconds. */ rtc_tm_to_time (tm, &sec); -dev_vdbg (dev,"time set to %lu. %d/%d/%d %d:%02u:%02u\n" , - sec, - tm->tm_mon+1 , - tm->tm_mday, - tm->tm_year+1900 , - tm->tm_hour, - tm->tm_min, - tm->tm_sec - ); +dev_vdbg (dev,"time set to %lu. %ptR\n" , sec, tm);/* seconds only written if wait succeeded. */ ret =tegra_rtc_wait_while_busy (dev);
@@ -232,15 +216,7 @@ static int tegra_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alarm)/* if successfully written and alarm is enabled ... */ if (sec) {tegra_rtc_alarm_irq_enable (dev,1 ); - -dev_vdbg (dev,"alarm set as %lu. %d/%d/%d %d:%02u:%02u\n" , - sec, - alarm->time.tm_mon+1 , - alarm->time.tm_mday, - alarm->time.tm_year+1900 , - alarm->time.tm_hour, - alarm->time.tm_min, - alarm->time.tm_sec); +dev_vdbg (dev,"alarm set as %lu. %ptR\n" , sec, &alarm->time); }else {/* disable alarm if 0 or write error. */ dev_vdbg (dev,"alarm disabled\n" );
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 18/20 Input: hp_sdc_rtc - Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/input/misc/hp_sdc_rtc.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
drivers/input/misc/hp_sdc_rtc.c +3 -5
@@ -441,12 +441,10 @@ static int hp_sdc_rtc_proc_show(struct seq_file *m, void *v)seq_puts (m,"BBRTC\t\t: READ FAILED!\n" ); }else {seq_printf (m, -"rtc_time\t: %02d:%02d:%02d\n" -"rtc_date\t: %04d-%02d-%02d\n" +"rtc_time\t: %ptRt\n" +"rtc_date\t: %ptRd\n" "rtc_epoch\t: %04lu\n" , - tm.tm_hour, tm.tm_min, tm.tm_sec, - tm.tm_year +1900 , tm.tm_mon +1 , - tm.tm_mday, epoch); + &tm, &tm, epoch); }if (hp_sdc_rtc_read_rt (&tv)) {
Signature · 1 line
2.19.1
Re: [PATCH v3 18/20] Input: hp_sdc_rtc - Switch to use %ptR
Quoted 5 lines · Andy Shevchenko
Use %ptR instead of open coded variant to print content of struct
rtc_timein human readable format.Cc Dmitry Torokhov <[email protected]>Signed-off-by Andy Shevchenko <[email protected]>
Please feel free to merge with the rest of the series.
Quoted 27 lines
--- drivers/input/misc/hp_sdc_rtc.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)drivers/input/misc/hp_sdc_rtc.c +3
-5@@ -441,12 +441,10 @@ static int hp_sdc_rtc_proc_show(struct seq_file *m, void *v)seq_puts (m,"BBRTC\t\t: READ FAILED!\n" ); }else {seq_printf (m, -"rtc_time\t: %02d:%02d:%02d\n" -"rtc_date\t: %04d-%02d-%02d\n" +"rtc_time\t: %ptRt\n" +"rtc_date\t: %ptRd\n" "rtc_epoch\t: %04lu\n" , - tm.tm_hour, tm.tm_min, tm.tm_sec, - tm.tm_year +1900 , tm.tm_mon +1 , - tm.tm_mday, epoch); + &tm, &tm, epoch); }if (hp_sdc_rtc_read_rt (&tv)) {Signature · 1 line
2.19.1
Signature · 1 line
Dmitry
Andy Shevchenko
reviewerPATCH v3 19/20 mk68/mac: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- arch/m68k/mac/misc.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
arch/m68k/mac/misc.c +2 -6
@@ -605,13 +605,9 @@ int mac_hwclk(int op, struct rtc_time *t)unmktime (now,0 , &t->tm_year, &t->tm_mon, &t->tm_mday, &t->tm_hour, &t->tm_min, &t->tm_sec); -pr_debug ("%s: read %04d-%02d-%-2d %02d:%02d:%02d\n" , - __func__, t->tm_year +1900 , t->tm_mon +1 , t->tm_mday, - t->tm_hour, t->tm_min, t->tm_sec); +pr_debug ("%s: read %ptR\n" , __func__, t); }else {/* write */ -pr_debug ("%s: tried to write %04d-%02d-%-2d %02d:%02d:%02d\n" , - __func__, t->tm_year +1900 , t->tm_mon +1 , t->tm_mday, - t->tm_hour, t->tm_min, t->tm_sec); +pr_debug ("%s: tried to write %ptR\n" , __func__, t);switch (macintosh_config->adb_type) {case MAC_ADB_IOP :
Signature · 1 line
2.19.1
Andy Shevchenko
reviewerPATCH v3 20/20 PM: Switch to use %ptR
In reply to Andy ShevchenkoUse %ptR instead of open coded variant to print content of struct rtc_time in human readable format.
--- drivers/base/power/trace.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/base/power/trace.c +1 -3
@@ -118,9 +118,7 @@ static unsigned int read_magic_time(void)unsigned int val;mc146818_get_time (&time); -pr_info ("RTC time: %2d:%02d:%02d, date: %02d/%02d/%02d\n" , - time.tm_hour, time.tm_min, time.tm_sec, - time.tm_mon +1 , time.tm_mday, time.tm_year %100 ); +pr_info ("RTC time: %ptRt, date: %ptRd\n" , &time, &time); val = time.tm_year;/* 100 years */ if (val >100 ) val -=100 ;
Signature · 1 line
2.19.1