diff options
Diffstat (limited to 'drivers/gpu/ipu-v3/ipu-pre.c')
| -rw-r--r-- | drivers/gpu/ipu-v3/ipu-pre.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/gpu/ipu-v3/ipu-pre.c b/drivers/gpu/ipu-v3/ipu-pre.c index c55563379e2e..c35f74c83065 100644 --- a/drivers/gpu/ipu-v3/ipu-pre.c +++ b/drivers/gpu/ipu-v3/ipu-pre.c | |||
| @@ -131,8 +131,6 @@ int ipu_pre_get(struct ipu_pre *pre) | |||
| 131 | if (pre->in_use) | 131 | if (pre->in_use) |
| 132 | return -EBUSY; | 132 | return -EBUSY; |
| 133 | 133 | ||
| 134 | clk_prepare_enable(pre->clk_axi); | ||
| 135 | |||
| 136 | /* first get the engine out of reset and remove clock gating */ | 134 | /* first get the engine out of reset and remove clock gating */ |
| 137 | writel(0, pre->regs + IPU_PRE_CTRL); | 135 | writel(0, pre->regs + IPU_PRE_CTRL); |
| 138 | 136 | ||
| @@ -149,12 +147,7 @@ int ipu_pre_get(struct ipu_pre *pre) | |||
| 149 | 147 | ||
| 150 | void ipu_pre_put(struct ipu_pre *pre) | 148 | void ipu_pre_put(struct ipu_pre *pre) |
| 151 | { | 149 | { |
| 152 | u32 val; | 150 | writel(IPU_PRE_CTRL_SFTRST, pre->regs + IPU_PRE_CTRL); |
| 153 | |||
| 154 | val = IPU_PRE_CTRL_SFTRST | IPU_PRE_CTRL_CLKGATE; | ||
| 155 | writel(val, pre->regs + IPU_PRE_CTRL); | ||
| 156 | |||
| 157 | clk_disable_unprepare(pre->clk_axi); | ||
| 158 | 151 | ||
| 159 | pre->in_use = false; | 152 | pre->in_use = false; |
| 160 | } | 153 | } |
| @@ -249,6 +242,8 @@ static int ipu_pre_probe(struct platform_device *pdev) | |||
| 249 | if (!pre->buffer_virt) | 242 | if (!pre->buffer_virt) |
| 250 | return -ENOMEM; | 243 | return -ENOMEM; |
| 251 | 244 | ||
| 245 | clk_prepare_enable(pre->clk_axi); | ||
| 246 | |||
| 252 | pre->dev = dev; | 247 | pre->dev = dev; |
| 253 | platform_set_drvdata(pdev, pre); | 248 | platform_set_drvdata(pdev, pre); |
| 254 | mutex_lock(&ipu_pre_list_mutex); | 249 | mutex_lock(&ipu_pre_list_mutex); |
| @@ -268,6 +263,8 @@ static int ipu_pre_remove(struct platform_device *pdev) | |||
| 268 | available_pres--; | 263 | available_pres--; |
| 269 | mutex_unlock(&ipu_pre_list_mutex); | 264 | mutex_unlock(&ipu_pre_list_mutex); |
| 270 | 265 | ||
| 266 | clk_disable_unprepare(pre->clk_axi); | ||
| 267 | |||
| 271 | if (pre->buffer_virt) | 268 | if (pre->buffer_virt) |
| 272 | gen_pool_free(pre->iram, (unsigned long)pre->buffer_virt, | 269 | gen_pool_free(pre->iram, (unsigned long)pre->buffer_virt, |
| 273 | IPU_PRE_MAX_WIDTH * IPU_PRE_NUM_SCANLINES * 4); | 270 | IPU_PRE_MAX_WIDTH * IPU_PRE_NUM_SCANLINES * 4); |
