RE: [PATCH] watchdog: renesas_wdt: Fix interrupt enable for timer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear Hoan-san,

> From: "グェン・アン・ホァン", Sent: Friday, May 24, 2019 10:14 AM
> 
> Dear Wolfram-san
> Dear Geert- san
> 
> Thank you very much
> Wolfram Sang wrote:
> > Hi,
> >
> > On Thu, May 23, 2019 at 06:29:37PM +0900, Nguyen An Hoan wrote:
> > > From: Hoan Nguyen An <na-hoan@xxxxxxxxxxx>
> > >
> > > Fix setting for bit WOVFE of RWTCSRA. Keep it enable follow hardware document.
> >
> > Hmm, I can't find it in the docs. Which version of the documentation do
> > you use?

Do you have any comment about this question?

> > > -	rwdt_write(priv, priv->cks, RWTCSRA);
> > > +	val |= priv->cks;
> > > +	rwdt_write(priv, val, RWTCSRA);
> >
> > Have you tested this successfully? According to the docs, CKS bits are
> > all 1 by default. So, your |= operation should be a NOP and we can't
> > select a CKS value anymore if I am not mistaken.
> >
> I tested and can confirm WOVFE was be disable by command
> rwdt_write(priv, priv->cks, RWTCSRA);
> I don't understand why this bit is turned off but the watchdog can still reset, but
> according to the document it will be 1.

Your answer doesn't have CKS bits things. As Wolfram-san mentioned, the default CKS bits
value is b'111 and then the code "val |= priv->cks" can be not set to the priv->cks value.
In other words, if the priv->cks is set to 0, the driver should set the CKS bits to 0,
but your code will be set to b'111.

> > >  	rwdt_write(priv, 0, RWTCSRB);
> > >
> > >  	while (readb_relaxed(priv->base + RWTCSRA) & RWTCSRA_WRFLG)
> > >  		cpu_relax();
> > > -
> > > -	rwdt_write(priv, priv->cks | RWTCSRA_TME, RWTCSRA);
> > > +	/* Enable interrupt and timer */
> > > +	rwdt_write(priv, val | RWTCSRA_WOVFE | RWTCSRA_TME, RWTCSRA);
> >
> > What is the use of enabling an interrupt without having an interrupt
> > handler? (And I never understood why there is an interrupt for an
> > overflowing watchdog. We won't have time to serve it, or am I
> > overlooking something obvious?)
> 
> I have added the interrupt node to dtsi and created the interrupt handler to successfully handle the Secure watchdog Gen2,
> but this is not documented.  With Gen 3, I am also thinking whether it is necessary or not.  Thank you!!!
> With Gen3, after reset by WDT, then restart will have an interrupt when probe timer(), but we can do this no reset, after
> this,  timer operate normally.
> Problaly this patch should RFC

I'm afraid I could not understand these comments well, but if you have the interrupt handler for this renesas_wdt driver,
you should contain it on this patch :)  To be honest, I have no idea how to use the interrupt though.

Best regards,
Yoshihiro Shimoda

> Thank you for your helps!!!
> 
> 
> >
> > Kind regards,
> >
> >    Wolfram
> >




[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux