Hi Sergey, On Wed, Jun 19, 2024 at 9:01 PM Sergey Shtylyov <s.shtylyov@xxxxxx> wrote: > On 6/14/24 6:25 PM, Geert Uytterhoeven wrote: > > All EtherAVB instances on R-Car Gen3/Gen4 SoCs support the RGMII > > interface. In addition, the first two EtherAVB instances on R-Car V4M > > also support the MII interface, but this is not yet supported by the > > driver. > > > > Add support for MII to the R-Car Gen3/Gen4-specific EMAC initialization > > function, by selecting the MII clock instead of the RGMII clock when the > > But why are you adding such code to the ge3 function? According to the gen3 > manual I have, gen3 SoCs don't have MII support... I wanted to limit the number of changes, and avoid the need to add an additional ravb_hw_info structure. The bit is documented to be zero on R-Car Gen3 (but writing one to it seems to stick on some of the later Gen3 variants, so perhaps these do support MII?). > > PHY interface is MII. Note that all implementations of EtherAVB on > > R-Car Gen3/Gen4 SoCs have the APSR register, but only MII-capable > > instances are documented to have the MIISELECT bit, which has a > > documented value of zero when reserved. > > > > Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > > [...] > > diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c > > index c1546b916e4ef581..cbe2709e0ace871f 100644 > > --- a/drivers/net/ethernet/renesas/ravb_main.c > > +++ b/drivers/net/ethernet/renesas/ravb_main.c > > @@ -579,6 +579,16 @@ static void ravb_emac_init_rcar(struct net_device *ndev) > > ravb_write(ndev, ECSIPR_ICDIP | ECSIPR_MPDIP | ECSIPR_LCHNGIP, ECSIPR); > > } > > > > +static void ravb_emac_init_rcar_apsr(struct net_device *ndev) > > No, this name doesn't match the currently used naming scheme (which > has the SoC type as a last word... I'm suggesting something like ravb_emac_init_rcar_gen4() instead. > > [...] > > @@ -2657,7 +2667,7 @@ static const struct ravb_hw_info ravb_gen3_hw_info = { > > .set_rate = ravb_set_rate_rcar, > > .set_feature = ravb_set_features_rcar, > > .dmac_init = ravb_dmac_init_rcar, > > - .emac_init = ravb_emac_init_rcar, > > + .emac_init = ravb_emac_init_rcar_apsr, > > I'm afraid we'll have to add the new ravb_gen4_hw_info variable. We already > have the gen4-specific compatible in ravb_match_table[]... If you insist, I will make a v2 doing so... Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds