[PATCH v2 18/21] ds1302: Switch to use %ptR

From: Andy Shevchenko
Date: Tue Feb 20 2018 - 16:46:32 EST


Use %ptR instead of open coded variant to print content of
struct rtc_time in human readable format.

Cc: Arnd Bergmann <arnd@xxxxxxxx>
Acked-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
---
drivers/char/Kconfig | 1 +
drivers/char/ds1302.c | 39 ++++++++++-----------------------------
2 files changed, 11 insertions(+), 29 deletions(-)

diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
index c96e00ebeae9..2bd83d3951c1 100644
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
@@ -350,6 +350,7 @@ config EFI_RTC
config DS1302
tristate "DS1302 RTC support"
depends on M32R && (PLAT_M32700UT || PLAT_OPSPUT)
+ select PRINTK_PEXT_TIMEDATE
help
If you say Y here and create a character special file /dev/rtc with
major number 121 and minor number 0 using mknod ("man mknod"), you
diff --git a/drivers/char/ds1302.c b/drivers/char/ds1302.c
index 8e16ad5d6d89..1e8bd9bf4bc9 100644
--- a/drivers/char/ds1302.c
+++ b/drivers/char/ds1302.c
@@ -5,7 +5,7 @@
*!
*! DESCRIPTION: Implements an interface for the DS1302 RTC
*!
-*! Functions exported: ds1302_readreg, ds1302_writereg, ds1302_init, get_rtc_status
+*! Functions exported: ds1302_readreg, ds1302_writereg, ds1302_init
*!
*! ---------------------------------------------------------------------------
*!
@@ -258,31 +258,6 @@ static long rtc_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
}
}

-int
-get_rtc_status(char *buf)
-{
- char *p;
- struct rtc_time tm;
-
- p = buf;
-
- get_rtc_time(&tm);
-
- /*
- * There is no way to tell if the luser has the RTC set for local
- * time or for Universal Standard Time (GMT). Probably local though.
- */
-
- p += sprintf(p,
- "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);
-
- return p - buf;
-}
-
-
/* The various file operations we support. */

static const struct file_operations rtc_fops = {
@@ -299,6 +274,7 @@ static int __init
ds1302_probe(void)
{
int retval, res, baur;
+ struct rtc_time tm;

baur=(boot_cpu_data.bus_clock/(2*1000*1000));

@@ -317,11 +293,16 @@ ds1302_probe(void)

/* read RAM byte 0 */
if((res = in_byte_rtc(0xc1)) == MAGIC_PATTERN) {
- char buf[100];
ds1302_wdisable();
printk("%s: RTC found.\n", ds1302_name);
- get_rtc_status(buf);
- printk(buf);
+ /*
+ * There is no way to tell if the luser has the RTC set
+ * for local time or for Universal Standard Time (GMT).
+ * Probably local though.
+ */
+ get_rtc_time(&tm);
+ printk("rtc_time\t: %ptRt\n", &tm);
+ printk("rtc_date\t: %ptRd\n", &tm);
retval = 1;
} else {
printk("%s: RTC not found.\n", ds1302_name);
--
2.15.1