mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 14:44:10 +08:00
media: imx: imx-mipi-csis: Protect mipi_csis_dump_regs()
The mipi_csis_dump_regs() function accesses the interface registers in order to printout their values for debug purposes. As the function access the registers, it requires the interface to be powered up. Currently this is only enforced in one of the function's callers (mipi_csis_log_status)() but not when the function is called by the debugfs attribute handler. Make sure to access registers only if the interface is powered up and remove the same check from the caller. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Acked-by: Rui Miguel Silva <rmfrfs@gmail.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
parent
e273454c50
commit
851b270bc4
@ -873,6 +873,9 @@ static int mipi_csis_dump_regs(struct mipi_csis_device *csis)
|
||||
unsigned int i;
|
||||
u32 cfg;
|
||||
|
||||
if (!pm_runtime_get_if_in_use(csis->dev))
|
||||
return 0;
|
||||
|
||||
dev_info(csis->dev, "--- REGISTERS ---\n");
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(registers); i++) {
|
||||
@ -880,6 +883,8 @@ static int mipi_csis_dump_regs(struct mipi_csis_device *csis)
|
||||
dev_info(csis->dev, "%14s: 0x%08x\n", registers[i].name, cfg);
|
||||
}
|
||||
|
||||
pm_runtime_put(csis->dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1163,10 +1168,8 @@ static int mipi_csis_log_status(struct v4l2_subdev *sd)
|
||||
struct mipi_csis_device *csis = sd_to_mipi_csis_device(sd);
|
||||
|
||||
mipi_csis_log_counters(csis, true);
|
||||
if (csis->debug.enable && pm_runtime_get_if_in_use(csis->dev)) {
|
||||
if (csis->debug.enable)
|
||||
mipi_csis_dump_regs(csis);
|
||||
pm_runtime_put(csis->dev);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user