On 01.06.2016 10:40, Geert Uytterhoeven wrote:
Hi Dirk,
On Wed, Jun 1, 2016 at 10:36 AM, Dirk Behme <dirk.behme@xxxxxxxxxxxx> wrote:
On 01.06.2016 10:26, Geert Uytterhoeven wrote:
On Wed, Jun 1, 2016 at 9:38 AM, Dirk Behme <dirk.behme@xxxxxxxxxxxx>
wrote:
Sorry, if that was unclear. I took the example and transferred it to
R-Car3
where we have ES1 - ES3.
So, taking this example, on R-Car3 we might end up with
{
.compatible = "renesas,sata-r8a7795",
.data = (void *)RCAR_GEN2_SATA
},
{
.compatible = "renesas,sata-r8a7795-es1",
.data = (void *)RCAR_R8A7795_ES1_SATA
},
{
.compatible = "renesas,sata-r8a7795-es2",
.data = (void *)RCAR_R8A7795_ES2_SATA
},
{
.compatible = "renesas,sata-r8a7795-es3",
.data = (void *)RCAR_R8A7795_ES3_SATA
},
Are there known differences in the SATA implementations on R-Car H3 ES1,
ES2,
and ES3?
It's just an *example* what *might* happen.
BTW having different compatible values in the driver makes it much easier
to
audit kernel sources for support for ESx deviations.
Why?
Having these compatible values in the driver doesn't tell you if the drivers
uses them at all. No?
The clue is that we do not add "renesas,*-es%u" compatible values to
drivers, unless ES%u needs to be handled specially.
So you have to look into the driver code (not the compatible values) if and
how the ESx are handled. And there, I don't think it makes any difference if
you look for
if (priv->type == RCAR_R8A7790_ES1_SATA)
ap->flags |= ATA_FLAG_NO_DIPM;
or
if (revision_is_rcar2_es1)
ap->flags |= ATA_FLAG_NO_DIPM;
?
... so 'git grep "renesas,.*-es[0-9]"' is all you need.
'git grep "revision_is_rcar2_es[0-9]"'
;)