static int mxr_runtime_resume(struct device *dev) { struct mxr_device *mdev = to_mdev(dev); struct mxr_resources *res = &mdev->res; mxr_dbg(mdev, "resume - start\n"); mutex_lock(&mdev->mutex); /* turn clocks on */ clk_enable(res->mixer); #if defined(CONFIG_ARCH_EXYNOS4) clk_enable(res->vp); #endif #if defined(CONFIG_CPU_EXYNOS4210) clk_enable(res->sclk_mixer); #endif mdev->mif_handle = exynos5_bus_mif_min(800000); if (!mdev->mif_handle) dev_err(dev, "failed to request min_freq for mif\n"); /* enable system mmu for tv. It must be enabled after enabling * mixer's clock. Because of system mmu limitation. */ mdev->vb2->resume(mdev->alloc_ctx); /* apply default configuration */ mxr_reg_reset(mdev); mxr_dbg(mdev, "resume - finished\n"); mutex_unlock(&mdev->mutex); return 0; }
static int mxr_runtime_resume(struct device *dev) { struct mxr_device *mdev = to_mdev(dev); struct mxr_resources *res = &mdev->res; struct s5p_mxr_platdata *pdata = mdev->pdata; mxr_dbg(mdev, "resume - start\n"); mutex_lock(&mdev->mutex); /* turn clocks on */ if (is_ip_ver_5a || is_ip_ver_5s || is_ip_ver_5s2) clk_prepare_enable(res->axi_disp1); clk_prepare_enable(res->mixer); #if defined(CONFIG_ARCH_EXYNOS4) clk_prepare_enable(res->vp); #endif /* enable system mmu for tv. It must be enabled after enabling * mixer's clock. Because of system mmu limitation. */ mdev->vb2->resume(mdev->alloc_ctx); /* apply default configuration */ mxr_reg_reset(mdev); mxr_dbg(mdev, "resume - finished\n"); mutex_unlock(&mdev->mutex); return 0; }
static int mxr_runtime_resume(struct device *dev) { struct mxr_device *mdev = to_mdev(dev); struct mxr_resources *res = &mdev->res; mxr_dbg(mdev, "resume - start\n"); mutex_lock(&mdev->mutex); /* turn clocks on */ clk_enable(res->mixer); clk_enable(res->vp); clk_enable(res->sclk_mixer); /* apply default configuration */ mxr_reg_reset(mdev); mxr_dbg(mdev, "resume - finished\n"); mutex_unlock(&mdev->mutex); return 0; }
static int mxr_runtime_resume(struct device *dev) { struct mxr_device *mdev = to_mdev(dev); struct mxr_resources *res = &mdev->res; int ret; mxr_dbg(mdev, "resume - start\n"); mutex_lock(&mdev->mutex); /* turn clocks on */ ret = clk_prepare_enable(res->mixer); if (ret < 0) { dev_err(mdev->dev, "clk_prepare_enable(mixer) failed\n"); goto fail; } ret = clk_prepare_enable(res->vp); if (ret < 0) { dev_err(mdev->dev, "clk_prepare_enable(vp) failed\n"); goto fail_mixer; } ret = clk_prepare_enable(res->sclk_mixer); if (ret < 0) { dev_err(mdev->dev, "clk_prepare_enable(sclk_mixer) failed\n"); goto fail_vp; } /* apply default configuration */ mxr_reg_reset(mdev); mxr_dbg(mdev, "resume - finished\n"); mutex_unlock(&mdev->mutex); return 0; fail_vp: clk_disable_unprepare(res->vp); fail_mixer: clk_disable_unprepare(res->mixer); fail: mutex_unlock(&mdev->mutex); dev_err(mdev->dev, "resume failed\n"); return ret; }