Hi Laurent, On Tue, Sep 26, 2017 at 12:06 PM, Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> wrote: > The FCPV has a selectable number of outstanding read transactions. > According to the documentation the value must be set based on the type > of the VSP the FCPV is connected to. Set the register accordingly at > probe time. > > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> > @@ -228,12 +236,29 @@ static int rcar_fcp_setup(struct rcar_fcp_device *fcp) > dev_dbg(fcp->dev, "%s %s device found\n", models[fcp->type], > versions[i].name); > > + /* Set the processing mode (needed for FCPV only). */ > + switch (fcp->type) { > + case RCAR_FCPV: > + /* 64 outstanding read transactions */ > + rcar_fcp_write(fcp, FCP_CFG0, 0); > + break; > + > + case RCAR_FCPVI: > + /* 16 outstanding read transactions */ > + rcar_fcp_write(fcp, FCP_CFG0, FCP_CFG0_FCPVSEL); > + break; > + > + default: > + break; > + } > + > return 0; > } > > static const struct of_device_id rcar_fcp_of_match[] = { > { .compatible = "renesas,fcpf", .data = (void *)RCAR_FCPF }, > { .compatible = "renesas,fcpv", .data = (void *)RCAR_FCPV }, > + { .compatible = "renesas,fcpvi", .data = (void *)RCAR_FCPVI }, > { }, As you use "renesas,fcpv" as a fallback value, you may want to insert the new and more specific "renesas,fvpci" handling above it, for clarity. I believe it will return the RCAR_FCPVI match data anyway, based on a higher match score for the more specific compatible value? 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