return false;
 #elif defined(CONFIG_MIPS) && defined(CONFIG_CPU_LOONGSON3)
        return false;
+#elif defined(CONFIG_ARM) || defined(CONFIG_ARM64)
+       /*
+        * The DRM driver stack is designed to work with cache coherent devices
+        * only, but permits an optimization to be enabled in some cases, where
+        * for some buffers, both the CPU and the GPU use uncached mappings,
+        * removing the need for DMA snooping and allocation in the CPU caches.
+        *
+        * The use of uncached GPU mappings relies on the correct implementation
+        * of the PCIe NoSnoop TLP attribute by the platform, otherwise the GPU
+        * will use cached mappings nonetheless. On x86 platforms, this does not
+        * seem to matter, as uncached CPU mappings will snoop the caches in any
+        * case. However, on ARM and arm64, enabling this optimization on a
+        * platform where NoSnoop is ignored results in loss of coherency, which
+        * breaks correct operation of the device. Since we have no way of
+        * detecting whether NoSnoop works or not, just disable this
+        * optimization entirely for ARM and arm64.
+        */
+       return false;
 #else
        return true;
 #endif