diff --git a/arch/arm/mach-msm/devices-iommu.c b/arch/arm/mach-msm/devices-iommu.c index 14329025b64..ae8a8fe3b4a 100644 --- a/arch/arm/mach-msm/devices-iommu.c +++ b/arch/arm/mach-msm/devices-iommu.c @@ -1011,7 +1011,7 @@ static int __init iommu_init(void) ARRAY_SIZE(msm_iommu_gfx2d_devs)); } - if (cpu_is_apq8064()) { + if (cpu_is_apq8064() || cpu_is_msm8960ab()) { platform_add_devices(msm_iommu_jpegd_devs, ARRAY_SIZE(msm_iommu_jpegd_devs)); platform_add_devices(msm_iommu_8064_devs, @@ -1030,7 +1030,7 @@ static int __init iommu_init(void) ARRAY_SIZE(msm_iommu_gfx2d_ctx_devs)); } - if (cpu_is_apq8064()) { + if (cpu_is_apq8064() || cpu_is_msm8960ab()) { platform_add_devices(msm_iommu_jpegd_ctx_devs, ARRAY_SIZE(msm_iommu_jpegd_ctx_devs)); platform_add_devices(msm_iommu_8064_ctx_devs, @@ -1069,7 +1069,7 @@ static void __exit iommu_exit(void) platform_device_unregister(msm_iommu_jpegd_devs[i]); } - if (cpu_is_apq8064()) { + if (cpu_is_apq8064() || cpu_is_msm8960ab()) { for (i = 0; i < ARRAY_SIZE(msm_iommu_8064_ctx_devs); i++) platform_device_unregister(msm_iommu_8064_ctx_devs[i]); diff --git a/arch/arm/mach-msm/msm_xo.c b/arch/arm/mach-msm/msm_xo.c index 9825ce53565..825450215a0 100644 --- a/arch/arm/mach-msm/msm_xo.c +++ b/arch/arm/mach-msm/msm_xo.c @@ -235,7 +235,8 @@ static int __msm_xo_mode_vote(struct msm_xo_voter *xo_voter, unsigned mode) int is_d0 = xo == &msm_xo_sources[MSM_XO_TCXO_D0]; int needs_workaround = cpu_is_msm8960() || cpu_is_apq8064() || cpu_is_msm8930() || cpu_is_msm8930aa() || - cpu_is_msm9615() || cpu_is_msm8627(); + cpu_is_msm9615() || cpu_is_msm8627() || + cpu_is_msm8960ab(); if (xo_voter->mode == mode) return 0; diff --git a/arch/arm/mach-msm/platsmp.c b/arch/arm/mach-msm/platsmp.c index 48a236f5276..5e063a1db76 100644 --- a/arch/arm/mach-msm/platsmp.c +++ b/arch/arm/mach-msm/platsmp.c @@ -143,7 +143,7 @@ static int __cpuinit release_secondary(unsigned int cpu) return krait_release_secondary_sim(0xf9088000, cpu); if (cpu_is_msm8960() || cpu_is_msm8930() || cpu_is_msm8930aa() || - cpu_is_apq8064() || cpu_is_msm8627()) + cpu_is_apq8064() || cpu_is_msm8627() || cpu_is_msm8960ab()) return krait_release_secondary(0x02088000, cpu); WARN(1, "unknown CPU case in release_secondary\n"); diff --git a/arch/arm/mach-msm/rpm_resources.c b/arch/arm/mach-msm/rpm_resources.c index 667ede0d71e..a88e42e078b 100644 --- a/arch/arm/mach-msm/rpm_resources.c +++ b/arch/arm/mach-msm/rpm_resources.c @@ -1106,7 +1106,7 @@ static struct msm_pm_sleep_ops msm_rpmrs_ops = { static int __init msm_rpmrs_l2_init(void) { if (cpu_is_msm8960() || cpu_is_msm8930() || cpu_is_msm8930aa() || - cpu_is_apq8064() || cpu_is_msm8627()) { + cpu_is_apq8064() || cpu_is_msm8627() || cpu_is_msm8960ab()) { msm_pm_set_l2_flush_flag(0); diff --git a/arch/arm/mach-msm/spm_devices.c b/arch/arm/mach-msm/spm_devices.c index 9d2aedcf1b9..9e9b6617c33 100644 --- a/arch/arm/mach-msm/spm_devices.c +++ b/arch/arm/mach-msm/spm_devices.c @@ -137,7 +137,7 @@ int msm_spm_turn_on_cpu_rail(unsigned int cpu) reg = saw_bases[cpu]; if (cpu_is_msm8960() || cpu_is_msm8930() || cpu_is_msm8930aa() || - cpu_is_apq8064() || cpu_is_msm8627()) { + cpu_is_apq8064() || cpu_is_msm8627() || cpu_is_msm8960ab()) { val = 0xA4; reg += 0x14; timeout = 512; diff --git a/arch/arm/mach-msm/subsystem_restart.c b/arch/arm/mach-msm/subsystem_restart.c index a9a25b3fb22..0b6f225e010 100644 --- a/arch/arm/mach-msm/subsystem_restart.c +++ b/arch/arm/mach-msm/subsystem_restart.c @@ -569,7 +569,8 @@ static int __init ssr_init_soc_restart_orders(void) } if (cpu_is_msm8960() || cpu_is_msm8930() || cpu_is_msm8930aa() || - cpu_is_msm9615() || cpu_is_apq8064() || cpu_is_msm8627()) { + cpu_is_msm9615() || cpu_is_apq8064() || cpu_is_msm8627() || + cpu_is_msm8960ab()) { if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_SGLTE) { restart_orders = restart_orders_8960_sglte; n_restart_orders = diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c index 8d31683531d..668f4cc936f 100644 --- a/arch/arm/mach-msm/timer.c +++ b/arch/arm/mach-msm/timer.c @@ -965,7 +965,8 @@ int __cpuinit local_timer_setup(struct clock_event_device *evt) return 0; if (cpu_is_msm8x60() || cpu_is_msm8960() || cpu_is_apq8064() || - cpu_is_msm8930() || cpu_is_msm8930aa() || cpu_is_msm8627()) + cpu_is_msm8930() || cpu_is_msm8930aa() || cpu_is_msm8627() || + cpu_is_msm8960ab()) __raw_writel(DGT_CLK_CTL_DIV_4, MSM_TMR_BASE + DGT_CLK_CTL); if (__get_cpu_var(first_boot)) { @@ -1062,7 +1063,8 @@ static void __init msm_timer_init(void) gpt->flags |= MSM_CLOCK_FLAGS_UNSTABLE_COUNT; dgt->flags |= MSM_CLOCK_FLAGS_UNSTABLE_COUNT; } else if (cpu_is_msm8960() || cpu_is_apq8064() || cpu_is_msm8930() || - cpu_is_msm8930aa() || cpu_is_msm8627()) { + cpu_is_msm8930aa() || cpu_is_msm8627() || + cpu_is_msm8960ab()) { global_timer_offset = MSM_TMR0_BASE - MSM_TMR_BASE; dgt->freq = 6750000; __raw_writel(DGT_CLK_CTL_DIV_4, MSM_TMR_BASE + DGT_CLK_CTL); @@ -1072,7 +1074,7 @@ static void __init msm_timer_init(void) gpt_hz = 32765; sclk_hz = 32765; if (!cpu_is_msm8930() && !cpu_is_msm8930aa() && - !cpu_is_msm8627()) { + !cpu_is_msm8627() && !cpu_is_msm8960ab()) { gpt->flags |= MSM_CLOCK_FLAGS_UNSTABLE_COUNT; dgt->flags |= MSM_CLOCK_FLAGS_UNSTABLE_COUNT; } @@ -1123,8 +1125,9 @@ static void __init msm_timer_init(void) ce->irq = clock->irq; if (cpu_is_msm8x60() || cpu_is_msm8960() || cpu_is_apq8064() || - cpu_is_msm8930() || cpu_is_msm8930aa() || - cpu_is_msm9615() || cpu_is_msm8625() || cpu_is_msm8627()) { + cpu_is_msm8930() || cpu_is_msm9615() || cpu_is_msm8625() || + cpu_is_msm8627() || cpu_is_msm8930aa() || + cpu_is_msm8960ab()) { clock->percpu_evt = alloc_percpu(struct clock_event_device *); if (!clock->percpu_evt) { pr_err("msm_timer_init: memory allocation " diff --git a/drivers/char/diag/diagfwd.c b/drivers/char/diag/diagfwd.c index f9c50065fdc..384c1bf87d0 100644 --- a/drivers/char/diag/diagfwd.c +++ b/drivers/char/diag/diagfwd.c @@ -129,6 +129,7 @@ int chk_config_get_id(void) case MSM_CPU_8X60: return APQ8060_TOOLS_ID; case MSM_CPU_8960: + case MSM_CPU_8960AB: return AO8960_TOOLS_ID; case MSM_CPU_8064: return APQ8064_TOOLS_ID; @@ -156,6 +157,7 @@ int chk_apps_only(void) switch (socinfo_get_msm_cpu()) { case MSM_CPU_8960: + case MSM_CPU_8960AB: case MSM_CPU_8064: case MSM_CPU_8930: case MSM_CPU_8930AA: @@ -178,7 +180,8 @@ int chk_apps_master(void) if (driver->use_device_tree) return 1; else if (cpu_is_msm8960() || cpu_is_msm8930() || cpu_is_msm8930aa() || - cpu_is_msm9615() || cpu_is_apq8064() || cpu_is_msm8627()) + cpu_is_msm9615() || cpu_is_apq8064() || cpu_is_msm8627() || + cpu_is_msm8960ab()) return 1; else return 0; diff --git a/sound/soc/msm/msm8960.c b/sound/soc/msm/msm8960.c index 38ff34cfd96..5f8a63eb85b 100644 --- a/sound/soc/msm/msm8960.c +++ b/sound/soc/msm/msm8960.c @@ -1688,7 +1688,7 @@ static int __init msm8960_audio_init(void) { int ret; - if (!cpu_is_msm8960()) { + if (!cpu_is_msm8960() && !cpu_is_msm8960ab()) { pr_debug("%s: Not the right machine type\n", __func__); return -ENODEV ; } @@ -1753,7 +1753,7 @@ module_init(msm8960_audio_init); static void __exit msm8960_audio_exit(void) { - if (!cpu_is_msm8960()) { + if (!cpu_is_msm8960() && !cpu_is_msm8960ab()) { pr_debug("%s: Not the right machine type\n", __func__); return ; }