media: renesas: fdp1: Identify R-Car Gen2 versions
authorGeert Uytterhoeven <geert+renesas@glider.be>
Wed, 26 Apr 2023 10:18:24 +0000 (12:18 +0200)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Thu, 25 May 2023 14:21:23 +0000 (16:21 +0200)
On R-Car M2-W:

    rcar_fdp1 fe940000.fdp1: FDP1 Unidentifiable (0x02010101)
    rcar_fdp1 fe944000.fdp1: FDP1 Unidentifiable (0x02010101)

Although the IP Internal Data Register on R-Car Gen2 is documented to
contain all zeros, the actual register contents seem to match the FDP1
version ID of R-Car H3 ES1.*, which has just been removed.
Fortunately this version is not used for any other purposes yet.

Fix this by re-adding the ID, now using an R-Car Gen2-specific name.

Fixes: af4273b43f2b ("media: renesas: fdp1: remove R-Car H3 ES1.* handling")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/platform/renesas/rcar_fdp1.c

index f43e458..ab39cd2 100644 (file)
@@ -254,6 +254,8 @@ MODULE_PARM_DESC(debug, "activate debug info");
 
 /* Internal Data (HW Version) */
 #define FD1_IP_INTDATA                 0x0800
+/* R-Car Gen2 HW manual says zero, but actual value matches R-Car H3 ES1.x */
+#define FD1_IP_GEN2                    0x02010101
 #define FD1_IP_M3W                     0x02010202
 #define FD1_IP_H3                      0x02010203
 #define FD1_IP_M3N                     0x02010204
@@ -2360,6 +2362,9 @@ static int fdp1_probe(struct platform_device *pdev)
 
        hw_version = fdp1_read(fdp1, FD1_IP_INTDATA);
        switch (hw_version) {
+       case FD1_IP_GEN2:
+               dprintk(fdp1, "FDP1 Version R-Car Gen2\n");
+               break;
        case FD1_IP_M3W:
                dprintk(fdp1, "FDP1 Version R-Car M3-W\n");
                break;