.dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power3,
+               .oprofile_cpu_type      = "ppc64/power3",
        },
        {       /* Power3+ */
                .pvr_mask               = 0xffff0000,
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power3,
+               .oprofile_cpu_type      = "ppc64/power3",
        },
        {       /* Northstar */
                .pvr_mask               = 0xffff0000,
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power3,
+               .oprofile_cpu_type      = "ppc64/rs64",
        },
        {       /* Pulsar */
                .pvr_mask               = 0xffff0000,
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power3,
+               .oprofile_cpu_type      = "ppc64/rs64",
        },
        {       /* I-star */
                .pvr_mask               = 0xffff0000,
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power3,
+               .oprofile_cpu_type      = "ppc64/rs64",
        },
        {       /* S-star */
                .pvr_mask               = 0xffff0000,
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power3,
+               .oprofile_cpu_type      = "ppc64/rs64",
        },
        {       /* Power4 */
                .pvr_mask               = 0xffff0000,
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power4,
+               .oprofile_cpu_type      = "ppc64/power4",
        },
        {       /* Power4+ */
                .pvr_mask               = 0xffff0000,
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_power4,
+               .oprofile_cpu_type      = "ppc64/power4",
        },
        {       /* PPC970 */
                .pvr_mask               = 0xffff0000,
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_ppc970,
+               .oprofile_cpu_type      = "ppc64/970",
        },
        {       /* PPC970FX */
                .pvr_mask               = 0xffff0000,
                .dcache_bsize           = 128,
                .num_pmcs               = 8,
                .cpu_setup              = __setup_cpu_ppc970,
+               .oprofile_cpu_type      = "ppc64/970",
        },
        {       /* PPC970MP */
                .pvr_mask               = 0xffff0000,
                .icache_bsize           = 128,
                .dcache_bsize           = 128,
                .cpu_setup              = __setup_cpu_ppc970,
+               .oprofile_cpu_type      = "ppc64/970",
        },
        {       /* Power5 */
                .pvr_mask               = 0xffff0000,
                .dcache_bsize           = 128,
                .num_pmcs               = 6,
                .cpu_setup              = __setup_cpu_power4,
+               .oprofile_cpu_type      = "ppc64/power5",
        },
        {       /* Power5 */
                .pvr_mask               = 0xffff0000,
                .dcache_bsize           = 128,
                .num_pmcs               = 6,
                .cpu_setup              = __setup_cpu_power4,
+               .oprofile_cpu_type      = "ppc64/power5",
        },
        {       /* BE DD1.x */
                .pvr_mask               = 0xffff0000,
 
                case PV_630:
                case PV_630p:
                        model = &op_model_rs64;
-                       ops->cpu_type = "ppc64/power3";
                        break;
 
                case PV_NORTHSTAR:
                case PV_ICESTAR:
                case PV_SSTAR:
                        model = &op_model_rs64;
-                       ops->cpu_type = "ppc64/rs64";
                        break;
 
                case PV_POWER4:
                case PV_POWER4p:
                        model = &op_model_power4;
-                       ops->cpu_type = "ppc64/power4";
                        break;
 
                case PV_970:
                case PV_970FX:
                case PV_970MP:
                        model = &op_model_power4;
-                       ops->cpu_type = "ppc64/970";
                        break;
 
                case PV_POWER5:
                case PV_POWER5p:
                        model = &op_model_power4;
-                       ops->cpu_type = "ppc64/power5";
                        break;
 
                default:
                        return -ENODEV;
        }
 
+       ops->cpu_type = cur_cpu_spec->oprofile_cpu_type;
        model->num_counters = cur_cpu_spec->num_pmcs;
        ops->create_files = op_ppc64_create_files;
        ops->setup = op_ppc64_setup;