PUBLIC void GSP_Init(void) { int ret = 0; ret = clk_enable(g_gsp_emc_clk); if(ret) { printk(KERN_ERR "%s: enable emc clock failed!\n",__FUNCTION__); return; } else { pr_debug(KERN_INFO "%s: enable emc clock ok!\n",__FUNCTION__); } #ifndef GSP_IOMMU_WORKAROUND1 GSP_HWMODULE_SOFTRESET();//workaround gsp-iommu bug #endif GSP_IRQMODE_SET(GSP_IRQ_MODE_LEVEL); }
PUBLIC int GSP_Init(gsp_context_t *gspCtx) { int ret = 0; GSP_module_enable(gspCtx); ret = clk_prepare_enable(gspCtx->gsp_emc_clk); //GSP_AUTO_GATE_ENABLE();//gsp driver take charge of auto_gate bit instead of pm if(ret) { printk(KERN_ERR "%s: enable emc clock failed!\n",__FUNCTION__); return GSP_KERNEL_CLOCK_ERR; } else { pr_debug(KERN_INFO "%s: enable emc clock ok!\n",__FUNCTION__); } //GSP_HWMODULE_SOFTRESET();//sharkL bug 350028 GSP_IRQMODE_SET(GSP_IRQ_MODE_LEVEL); ret = GSP_ClocksCheckPhase0(); return ret; }