Skip to content

Commit 6c6d85b

Browse files
Zhang Yunlongrkhuangtao
authored andcommitted
camera: rockchip: camsys_drv: v0.0x22.8
3399 ISP power management is wrong, correct it. Change-Id: I6aa4e7a0dd941ec9ff02467c0e1e6b15f1771a2b Signed-off-by: Zhang Yunlong <dalon.zhang@rock-chips.com>
1 parent df5711c commit 6c6d85b

2 files changed

Lines changed: 5 additions & 7 deletions

File tree

drivers/media/video/rk_camsys/camsys_internal.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,11 @@
183183
*v0.0x22.7:
184184
1) read MRV_MIPI_FRAME register in camsys_mrv_irq, and pass the value
185185
fs_id and fe_id into isp library.
186+
*v0.0x22.8:
187+
1) 3399 power management is wrong, correct it.
186188
*/
187189

188-
#define CAMSYS_DRIVER_VERSION KERNEL_VERSION(0, 0x22, 7)
190+
#define CAMSYS_DRIVER_VERSION KERNEL_VERSION(0, 0x22, 8)
189191

190192
#define CAMSYS_PLATFORM_DRV_NAME "RockChip-CamSys"
191193
#define CAMSYS_PLATFORM_MARVIN_NAME "Platform_MarvinDev"

drivers/media/video/rk_camsys/camsys_marvin.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -576,14 +576,15 @@ static int camsys_mrv_clkin_cb(void *ptr, unsigned int on)
576576
}
577577

578578
clk->in_on = true;
579-
579+
pm_runtime_get_sync(&camsys_dev->pdev->dev);
580580
camsys_trace(1, "%s clock(f: %ld Hz) in turn on",
581581
dev_name(camsys_dev->miscdev.this_device),
582582
isp_clk);
583583
camsys_mrv_reset_cb(ptr, 1);
584584
udelay(100);
585585
camsys_mrv_reset_cb(ptr, 0);
586586
} else if (!on && clk->in_on) {
587+
pm_runtime_put_sync(&camsys_dev->pdev->dev);
587588
if (strstr(camsys_dev->miscdev.name,
588589
"camsys_marvin1")) {
589590
clk_disable_unprepare(clk->hclk_isp1_noc);
@@ -676,9 +677,6 @@ static int camsys_mrv_clkout_cb(void *ptr, unsigned int on, unsigned int inclk)
676677

677678
mutex_lock(&clk->lock);
678679
if (on && (clk->out_on != on)) {
679-
680-
pm_runtime_get_sync(&camsys_dev->pdev->dev);
681-
682680
clk_set_rate(clk->cif_clk_out, inclk);
683681
clk_prepare_enable(clk->cif_clk_out);
684682
clk->out_on = on;
@@ -695,8 +693,6 @@ static int camsys_mrv_clkout_cb(void *ptr, unsigned int on, unsigned int inclk)
695693
}
696694

697695
clk_disable_unprepare(clk->cif_clk_out);
698-
699-
pm_runtime_disable(&camsys_dev->pdev->dev);
700696
clk->out_on = 0;
701697

702698
camsys_trace(1, "%s clock out turn off",

0 commit comments

Comments
 (0)