Hi Enric, On Wed, Apr 3, 2019 at 6:54 AM Enric Balletbo i Serra <enric.balle...@collabora.com> wrote: > > From: Guenter Roeck <gro...@chromium.org> > > The CrOS USB PD logging feature is logically separate functionality of > the charge manager, hence has its own driver. The driver logs the event > data for the USB PD charger available in some ChromeOS Embedded > Controllers. > > Signed-off-by: Guenter Roeck <gro...@chromium.org> > [remove APPEND_STRING macro and minor cleanups] > Signed-off-by: Enric Balletbo i Serra <enric.balle...@collabora.com> > --- > [ ... ]
> + > +static void cros_usbpd_print_log_entry(struct ec_response_pd_log *r, > + ktime_t tstamp) > +{ [ ... ] > + > + pr_info("PDLOG %d/%02d/%02d %02d:%02d:%02d.%03lld P%d %s\n", > + rt.tm_year + 1900, rt.tm_mon + 1, rt.tm_mday, > + rt.tm_hour, rt.tm_min, rt.tm_sec, > + ktime_to_ms(tstamp) % MSEC_PER_SEC, 0day rightfully complains that this introduces a 64-bit divide operation. I don't know if do_div() works here since it tries to modify the first parameter. Maybe we need an interim variable to store ktime_to_ms(tstamp). Something like s64 temp = ktime_to_ms(tstamp); ... do_div(temp, MSEC_PER_SEC), Guenter