};
 
 static void __iomem *g_regs;
-static unsigned int g_cache_line_size = sizeof(CACHE_LINE_SIZE);
+/* This value is the size of the L2 cache lines as understood by the
+ * VPU firmware, which determines the required alignment of the
+ * offsets/sizes in pagelists.
+ *
+ * Modern VPU firmware looks for a DT "cache-line-size" property in
+ * the VCHIQ node and will overwrite it with the actual L2 cache size,
+ * which the kernel must then respect.  That property was rejected
+ * upstream, so we have to use the VPU firmware's compatibility value
+ * of 32.
+ */
+static unsigned int g_cache_line_size = 32;
 static unsigned int g_fragments_size;
 static char *g_fragments_base;
 static char *g_free_fragments;
        if (err < 0)
                return err;
 
-       err = of_property_read_u32(dev->of_node, "cache-line-size",
-                                  &g_cache_line_size);
-
-       if (err) {
-               dev_err(dev, "Missing cache-line-size property\n");
-               return -ENODEV;
-       }
-
        g_fragments_size = 2 * g_cache_line_size;
 
        /* Allocate space for the channels in coherent memory */