[PATCH v6 00/20] lib, rtc: Print rtc_time via %ptR[dt][r]

From: Andy Shevchenko
Date: Tue Dec 04 2018 - 16:25:22 EST


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][r] 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 was printed
+1900, though month was 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.

Cc: Petr Mladek <pmladek@xxxxxxxx>

Changelog v6:
- add few test cases (Petr)
- timeanddate -> time_and_date (Petr)
- drop while loop for finding raw parameter (Petr)
- drop first patch as seems to go via nvmem tree, though I didn't see it there

Changelog v5: - remove leftover from pointer() comment in vsprintf.c
- fix indentation in rtc-proc.c
- fix patch 1 as suggested by Joe and Alexandre
- add Thierry's Ab tag
- update Alexandre's email and Cc to Petr

Changelog v4:
- drop mention of PRINTK_PEXT_TIMEDATE (Joe)
- drop deprecated validation (Alexandre)
- add patch 1 to fix compilation warning (may be applied independently)

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
m68k/mac: Switch to use %ptR
PM: Switch to use %ptR

Documentation/core-api/printk-formats.rst | 18 ++++
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 | 61 ++++++++++++-
lib/vsprintf.c | 100 ++++++++++++++++++++++
26 files changed, 258 insertions(+), 267 deletions(-)

--
2.19.2