]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/plat-omap/dsp/dsp_common.c
[PATCH] ARM: OMAP: patch-dsp_ckfix3
[linux-2.6-omap-h63xx.git] / arch / arm / plat-omap / dsp / dsp_common.c
index a8b72ee81d1130bff136255a0926cd8864afab17..0c22a6b237d7a73e8b10bd549001e19b9500d643 100644 (file)
@@ -58,7 +58,7 @@ struct cpustat {
        void (*mem_rel_cb)(void);
 };
 struct cpustat cpustat = {
-       .sem = __MUTEX_INITIALIZER(cpustat.sem),
+       .sem = __SEMAPHORE_INIT(cpustat.sem, 1),
        .stat = CPUSTAT_RESET,
        .icrmask = 0xffff,
 };
@@ -171,7 +171,7 @@ static void dsp_gbl_idle(void)
        unsigned char idle_text[GBL_IDLE_TEXT_SIZE] = GBL_IDLE_TEXT_INIT;
 
        __dsp_reset();
-       clk_use(api_ck_handle);
+       clk_enable(api_ck_handle);
 
 #if 0
        omap_writew(MPUI_DSP_BOOT_CONFIG_IDLE, MPUI_DSP_BOOT_CONFIG);
@@ -185,7 +185,7 @@ static void dsp_gbl_idle(void)
 
        __dsp_run();
        udelay(100);    /* to make things stable */
-       clk_unuse(api_ck_handle);
+       clk_disable(api_ck_handle);
 }
 
 static void dsp_cpu_idle(void)
@@ -194,7 +194,7 @@ static void dsp_cpu_idle(void)
        unsigned char icrh, icrl;
 
        __dsp_reset();
-       clk_use(api_ck_handle);
+       clk_enable(api_ck_handle);
 
        /*
         * icr settings:
@@ -216,7 +216,7 @@ static void dsp_cpu_idle(void)
                dsp_set_rstvect(idle_boot_base);
        __dsp_run();
        udelay(100);    /* to make things stable */
-       clk_unuse(api_ck_handle);
+       clk_disable(api_ck_handle);
 }
 
 void dsp_set_idle_boot_base(unsigned long adr, size_t size)
@@ -238,50 +238,12 @@ void dsp_set_idle_boot_base(unsigned long adr, size_t size)
                dsp_cpu_idle();
 }
 
-static unsigned short save_dsp_idlect2;
-
-/*
- * note: if we are in pm_suspend / pm_resume function,
- * we are out of clk_use() management.
- */
-void omap_dsp_pm_suspend(void)
-{
-       unsigned short save_arm_idlect2;
-
-       /* Reset DSP */
-       __dsp_reset();
-
-       clk_disable(dsp_ck_handle);
-
-       /* Stop any DSP domain clocks */
-       save_arm_idlect2 = omap_readw(ARM_IDLECT2); // api_ck is in ARM_IDLECT2
-       clk_enable(api_ck_handle);
-       save_dsp_idlect2 = __raw_readw(DSP_IDLECT2);
-       __raw_writew(0, DSP_IDLECT2);
-       omap_writew(save_arm_idlect2, ARM_IDLECT2);
-}
-
-void omap_dsp_pm_resume(void)
-{
-       unsigned short save_arm_idlect2;
-
-       /* Restore DSP domain clocks */
-       save_arm_idlect2 = omap_readw(ARM_IDLECT2); // api_ck is in ARM_IDLECT2
-       clk_enable(api_ck_handle);
-       __raw_writew(save_dsp_idlect2, DSP_IDLECT2);
-       omap_writew(save_arm_idlect2, ARM_IDLECT2);
-
-       /* Run DSP, if it was running */
-       if (cpustat.stat != CPUSTAT_RESET)
-               __dsp_run();
-}
-
 static int init_done;
 
 static int __init omap_dsp_init(void)
 {
        dspmem_size = 0;
-#ifdef CONFIG_ARCH_OMAP1510
+#ifdef CONFIG_ARCH_OMAP15XX
        if (cpu_is_omap1510()) {
                dspmem_base = OMAP1510_DSP_BASE;
                dspmem_size = OMAP1510_DSP_SIZE;
@@ -335,7 +297,7 @@ static void dsp_cpustat_update(void)
        if (cpustat.req == CPUSTAT_RUN) {
                if (cpustat.stat < CPUSTAT_RUN) {
                        __dsp_reset();
-                       clk_use(api_ck_handle);
+                       clk_enable(api_ck_handle);
                        udelay(10);
                        __dsp_run();
                        cpustat.stat = CPUSTAT_RUN;
@@ -348,7 +310,7 @@ static void dsp_cpustat_update(void)
 
        if (cpustat.stat == CPUSTAT_RUN) {
                disable_irq(INT_DSP_MMU);
-               clk_unuse(api_ck_handle);
+               clk_disable(api_ck_handle);
        }
 
        /*
@@ -525,8 +487,6 @@ void dsp_unregister_mem_cb(void)
 
 arch_initcall(omap_dsp_init);
 
-EXPORT_SYMBOL(omap_dsp_pm_suspend);
-EXPORT_SYMBOL(omap_dsp_pm_resume);
 EXPORT_SYMBOL(omap_dsp_request_mpui);
 EXPORT_SYMBOL(omap_dsp_release_mpui);
 EXPORT_SYMBOL(omap_dsp_request_mem);