Commit 851b270b authored by Jacopo Mondi's avatar Jacopo Mondi Committed by Mauro Carvalho Chehab

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: default avatarJacopo Mondi <jacopo@jmondi.org>
Acked-by: default avatarRui Miguel Silva <rmfrfs@gmail.com>
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent e273454c
...@@ -873,6 +873,9 @@ static int mipi_csis_dump_regs(struct mipi_csis_device *csis) ...@@ -873,6 +873,9 @@ static int mipi_csis_dump_regs(struct mipi_csis_device *csis)
unsigned int i; unsigned int i;
u32 cfg; u32 cfg;
if (!pm_runtime_get_if_in_use(csis->dev))
return 0;
dev_info(csis->dev, "--- REGISTERS ---\n"); dev_info(csis->dev, "--- REGISTERS ---\n");
for (i = 0; i < ARRAY_SIZE(registers); i++) { for (i = 0; i < ARRAY_SIZE(registers); i++) {
...@@ -880,6 +883,8 @@ static int mipi_csis_dump_regs(struct mipi_csis_device *csis) ...@@ -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); dev_info(csis->dev, "%14s: 0x%08x\n", registers[i].name, cfg);
} }
pm_runtime_put(csis->dev);
return 0; return 0;
} }
...@@ -1163,10 +1168,8 @@ static int mipi_csis_log_status(struct v4l2_subdev *sd) ...@@ -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); struct mipi_csis_device *csis = sd_to_mipi_csis_device(sd);
mipi_csis_log_counters(csis, true); 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); mipi_csis_dump_regs(csis);
pm_runtime_put(csis->dev);
}
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment