]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
media: ti-vpe: cal: Print revision and hwinfo in a more readable format
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Mon, 6 Jul 2020 18:36:32 +0000 (20:36 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Sun, 19 Jul 2020 08:33:26 +0000 (10:33 +0200)
Print the hardware revision in the X.Y.R format, which is more readable
that the 32-bit hex value. For the hardware info register, only print
its value if it doesn't contain what we expect.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Benoit Parrot <bparrot@ti.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/platform/ti-vpe/cal.c

index fca591a94aca99b1a370ee373ba087803d515546..ec52cb7f3039c53624bf384ee7fb816ddced59c4 100644 (file)
@@ -2342,21 +2342,36 @@ static const struct of_device_id cal_of_match[] = {
 };
 MODULE_DEVICE_TABLE(of, cal_of_match);
 
-/*
- * Get Revision and HW info
- */
+/* Get hardware revision and info. */
+
+#define CAL_HL_HWINFO_VALUE            0xa3c90469
+
 static void cal_get_hwinfo(struct cal_dev *cal)
 {
        u32 revision;
        u32 hwinfo;
 
        revision = reg_read(cal, CAL_HL_REVISION);
-       cal_dbg(3, cal, "CAL_HL_REVISION = 0x%08x (expecting 0x40000200)\n",
-               revision);
+       switch (FIELD_GET(CAL_HL_REVISION_SCHEME_MASK, revision)) {
+       case CAL_HL_REVISION_SCHEME_H08:
+               cal_dbg(3, cal, "CAL HW revision %lu.%lu.%lu (0x%08x)\n",
+                       FIELD_GET(CAL_HL_REVISION_MAJOR_MASK, revision),
+                       FIELD_GET(CAL_HL_REVISION_MINOR_MASK, revision),
+                       FIELD_GET(CAL_HL_REVISION_RTL_MASK, revision),
+                       revision);
+               break;
+
+       case CAL_HL_REVISION_SCHEME_LEGACY:
+       default:
+               cal_info(cal, "Unexpected CAL HW revision 0x%08x\n",
+                        revision);
+               break;
+       }
 
        hwinfo = reg_read(cal, CAL_HL_HWINFO);
-       cal_dbg(3, cal, "CAL_HL_HWINFO = 0x%08x (expecting 0xA3C90469)\n",
-               hwinfo);
+       if (hwinfo != CAL_HL_HWINFO_VALUE)
+               cal_info(cal, "CAL_HL_HWINFO = 0x%08x, expected 0x%08x\n",
+                        hwinfo, CAL_HL_HWINFO_VALUE);
 }
 
 static int cal_probe(struct platform_device *pdev)