On 12/14/23 2:31 PM, Claudiu wrote: > From: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx> > > Hardware manual specifies the following for GCCR.LTI bit: > 0: Setting completed > 1: When written: Issue a configuration request. > When read: Completion of settings is pending > > Thus, check the completion status when setting 1 to GCCR.LTI. But do we really need to? Seems quite dubious... currently we just let it the loading complete asynchronously... > Fixes: 7e09a052dc4e ("ravb: Exclude gPTP feature support for RZ/G2L") > Fixes: 568b3ce7a8ef ("ravb: factor out register bit twiddling code") > Fixes: 0184165b2f42 ("ravb: add sleep PM suspend/resume support") > Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx> > --- > drivers/net/ethernet/renesas/ravb_main.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c > index ce95eb5af354..1c253403a297 100644 > --- a/drivers/net/ethernet/renesas/ravb_main.c > +++ b/drivers/net/ethernet/renesas/ravb_main.c > @@ -2819,6 +2819,10 @@ static int ravb_probe(struct platform_device *pdev) > > /* Request GTI loading */ > ravb_modify(ndev, GCCR, GCCR_LTI, GCCR_LTI); > + /* Check completion status. */ > + error = ravb_wait(ndev, GCCR, GCCR_LTI, 0); > + if (error) > + goto out_disable_refclk; > } > > if (info->internal_delay) { > @@ -3041,6 +3045,10 @@ static int __maybe_unused ravb_resume(struct device *dev) > > /* Request GTI loading */ > ravb_modify(ndev, GCCR, GCCR_LTI, GCCR_LTI); > + /* Check completion status. */ > + ret = ravb_wait(ndev, GCCR, GCCR_LTI, 0); > + if (ret) > + return ret; > } > > if (info->internal_delay) > BTW, seems worth factoring out into a separate function... MBR, Sergey