Message ID | 20240105082339.1468817-4-claudiu.beznea.uj@bp.renesas.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: ravb: Add suspend to RAM and runtime PM support for RZ/G3S | expand |
Hi Claudiu, On Fri, Jan 5, 2024 at 9:24 AM Claudiu <claudiu.beznea@tuxon.dev> wrote: > From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> > > On the RZ/G3S SoC the reset controller is mandatory for the IP to work. > The device tree binding documentation for the ravb driver specifies that > the resets are mandatory. Based on this, make the resets mandatory also in > driver for all ravb devices. > > Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru> > Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> > Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> > --- a/drivers/net/ethernet/renesas/ravb_main.c > +++ b/drivers/net/ethernet/renesas/ravb_main.c > @@ -2645,7 +2645,7 @@ static int ravb_probe(struct platform_device *pdev) > return -EINVAL; > } > > - rstc = devm_reset_control_get_optional_exclusive(&pdev->dev, NULL); > + rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL); > if (IS_ERR(rstc)) > return dev_err_probe(&pdev->dev, PTR_ERR(rstc), > "failed to get cpg reset\n"); Upon second look, you also have to make config RAVB select RESET_CONTROLLER. Currently, you can build an R-Car Gen[234] kernel with RESET_CONTROLLER disabled, causing devm_reset_control_get_exclusive() to fail unconditionally. Gr{oetje,eeting}s, Geert
Hi, Geert, On 05.01.2024 11:38, Geert Uytterhoeven wrote: > Hi Claudiu, > > On Fri, Jan 5, 2024 at 9:24 AM Claudiu <claudiu.beznea@tuxon.dev> wrote: >> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> >> >> On the RZ/G3S SoC the reset controller is mandatory for the IP to work. >> The device tree binding documentation for the ravb driver specifies that >> the resets are mandatory. Based on this, make the resets mandatory also in >> driver for all ravb devices. >> >> Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru> >> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> >> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> > >> --- a/drivers/net/ethernet/renesas/ravb_main.c >> +++ b/drivers/net/ethernet/renesas/ravb_main.c >> @@ -2645,7 +2645,7 @@ static int ravb_probe(struct platform_device *pdev) >> return -EINVAL; >> } >> >> - rstc = devm_reset_control_get_optional_exclusive(&pdev->dev, NULL); >> + rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL); >> if (IS_ERR(rstc)) >> return dev_err_probe(&pdev->dev, PTR_ERR(rstc), >> "failed to get cpg reset\n"); > > Upon second look, you also have to make config RAVB select > RESET_CONTROLLER. > Currently, you can build an R-Car Gen[234] kernel with RESET_CONTROLLER > disabled, causing devm_reset_control_get_exclusive() to fail > unconditionally. ok, I'll update it. Thanks! > > Gr{oetje,eeting}s, > > Geert >
diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c index 1374dc11a7d1..ce053047a9f2 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -2645,7 +2645,7 @@ static int ravb_probe(struct platform_device *pdev) return -EINVAL; } - rstc = devm_reset_control_get_optional_exclusive(&pdev->dev, NULL); + rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL); if (IS_ERR(rstc)) return dev_err_probe(&pdev->dev, PTR_ERR(rstc), "failed to get cpg reset\n");