return has_sre;
 }
 
-static bool has_no_hw_prefetch(const struct arm64_cpu_capabilities *entry, int __unused)
-{
-       u32 midr = read_cpuid_id();
-
-       /* Cavium ThunderX pass 1.x and 2.x */
-       return midr_is_cpu_model_range(midr, MIDR_THUNDERX,
-               MIDR_CPU_VAR_REV(0, 0),
-               MIDR_CPU_VAR_REV(1, MIDR_REVISION_MASK));
-}
-
 static bool has_cache_idc(const struct arm64_cpu_capabilities *entry,
                          int scope)
 {
                ARM64_CPUID_FIELDS(ID_AA64ISAR0_EL1, ATOMIC, IMP)
        },
 #endif /* CONFIG_ARM64_LSE_ATOMICS */
-       {
-               .desc = "Software prefetching using PRFM",
-               .capability = ARM64_HAS_NO_HW_PREFETCH,
-               .type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE,
-               .matches = has_no_hw_prefetch,
-       },
        {
                .desc = "Virtualization Host Extensions",
                .capability = ARM64_HAS_VIRT_HOST_EXTN,
 
  *     x1 - src
  */
 SYM_FUNC_START(__pi_copy_page)
-alternative_if ARM64_HAS_NO_HW_PREFETCH
-       // Prefetch three cache lines ahead.
-       prfm    pldl1strm, [x1, #128]
-       prfm    pldl1strm, [x1, #256]
-       prfm    pldl1strm, [x1, #384]
-alternative_else_nop_endif
-
        ldp     x2, x3, [x1]
        ldp     x4, x5, [x1, #16]
        ldp     x6, x7, [x1, #32]
 1:
        tst     x0, #(PAGE_SIZE - 1)
 
-alternative_if ARM64_HAS_NO_HW_PREFETCH
-       prfm    pldl1strm, [x1, #384]
-alternative_else_nop_endif
-
        stnp    x2, x3, [x0, #-256]
        ldp     x2, x3, [x1]
        stnp    x4, x5, [x0, #16 - 256]