On 3/3/26 10:25 AM, Igor Mammedov wrote:
> Signed-off-by: Igor Mammedov <[email protected]>
Reviewed-by: Eric Auger <[email protected]>

Eric
> ---
>  hw/watchdog/sbsa_gwdt.c | 38 ++++++++++++++++++++------------------
>  1 file changed, 20 insertions(+), 18 deletions(-)
> 
> diff --git a/hw/watchdog/sbsa_gwdt.c b/hw/watchdog/sbsa_gwdt.c
> index 40d80f7f2b..91f9a4202c 100644
> --- a/hw/watchdog/sbsa_gwdt.c
> +++ b/hw/watchdog/sbsa_gwdt.c
> @@ -105,25 +105,27 @@ static void sbsa_gwdt_update_timer(SBSA_GWDTState *s, 
> WdtRefreshType rtype)
>  
>      timer_del(s->timer);
>  
> -    if (s->wcs & SBSA_GWDT_WCS_EN) {
> -        /*
> -         * Extract the upper 16 bits from woru & 32 bits from worl
> -         * registers to construct the 48 bit offset value
> -         */
> -        timeout = s->woru;
> -        timeout <<= 32;
> -        timeout |= s->worl;
> -        timeout = muldiv64(timeout, NANOSECONDS_PER_SECOND, s->freq);
> -        timeout += qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
> -
> -        if ((rtype == EXPLICIT_REFRESH) || ((rtype == TIMEOUT_REFRESH) &&
> -                (!(s->wcs & SBSA_GWDT_WCS_WS0)))) {
> -            /* store the current timeout value into compare registers */
> -            s->wcvu = timeout >> 32;
> -            s->wcvl = timeout;
> -        }
> -        timer_mod(s->timer, timeout);
> +    if (!(s->wcs & SBSA_GWDT_WCS_EN)) {
> +        return;
> +    }
> +
> +    /*
> +     * Extract the upper 16 bits from woru & 32 bits from worl
> +     * registers to construct the 48 bit offset value
> +     */
> +    timeout = s->woru;
> +    timeout <<= 32;
> +    timeout |= s->worl;
> +    timeout = muldiv64(timeout, NANOSECONDS_PER_SECOND, s->freq);
> +    timeout += qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
> +
> +    if ((rtype == EXPLICIT_REFRESH) || ((rtype == TIMEOUT_REFRESH) &&
> +            (!(s->wcs & SBSA_GWDT_WCS_WS0)))) {
> +        /* store the current timeout value into compare registers */
> +        s->wcvu = timeout >> 32;
> +        s->wcvl = timeout;
>      }
> +    timer_mod(s->timer, timeout);
>  }
>  
>  static void sbsa_gwdt_rwrite(void *opaque, hwaddr offset, uint64_t data,


Reply via email to