void (*mem_rel_cb)(void);
};
struct cpustat cpustat = {
- .sem = __MUTEX_INITIALIZER(cpustat.sem),
+ .sem = __SEMAPHORE_INIT(cpustat.sem, 1),
.stat = CPUSTAT_RESET,
.icrmask = 0xffff,
};
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);
__dsp_run();
udelay(100); /* to make things stable */
- clk_unuse(api_ck_handle);
+ clk_disable(api_ck_handle);
}
static void dsp_cpu_idle(void)
unsigned char icrh, icrl;
__dsp_reset();
- clk_use(api_ck_handle);
+ clk_enable(api_ck_handle);
/*
* icr settings:
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)
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;
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;
if (cpustat.stat == CPUSTAT_RUN) {
disable_irq(INT_DSP_MMU);
- clk_unuse(api_ck_handle);
+ clk_disable(api_ck_handle);
}
/*
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);