Re: [PATCH 1/2] platform/chrome: Add CrOS USB PD logging driver

From: Guenter Roeck
Date: Fri Apr 05 2019 - 15:55:03 EST


Hi Enric,

On Wed, Apr 3, 2019 at 6:54 AM Enric Balletbo i Serra
<enric.balletbo@xxxxxxxxxxxxx> wrote:
>
> From: Guenter Roeck <groeck@xxxxxxxxxxxx>
>
> 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 <groeck@xxxxxxxxxxxx>
> [remove APPEND_STRING macro and minor cleanups]
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@xxxxxxxxxxxxx>
> ---
>
[ ... ]

> +
> +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