media: platform: raspberrypi: rp1_cfe: Add more debug registers#7338
Conversation
Dump ISP-FE registers FE_DEBUG_FIFO_FULLNESS and FE_DEBUG_STATUS2. The latter gives an atomic snapshot of state and frames completed. Dump a CSI-2 Host register which shows which lanes are in LP11. Dump some sticky error registers from the D-PHY and CSI-2 Host; note that they will be cleared on every read. This is harmless, since they are not used for any purpose other than debug. Signed-off-by: Nick Hollinghurst <nick.hollinghurst@raspberrypi.com>
6by9
left a comment
There was a problem hiding this comment.
Just the one query, otherwise looks fine.
| struct dphy_data *dphy = s->private; | ||
| int ret; | ||
|
|
||
| ret = pm_runtime_resume_and_get(dphy->dev); |
There was a problem hiding this comment.
I might question whether it is better to use pm_runtime_get_if_in_use so that if the hardware isn't powered up you get told that rather than just getting the hardware defaults.
There was a problem hiding this comment.
Quite possibly. I copied and pasted similar code from pisp_fe.c.
BTW I did also wonder about using debugfs_create_regset32() instead; but it wasn't clear how that might interact with the read-to-clear registers. Not sure what if anything it does for power management.
There was a problem hiding this comment.
I've just found the same in csi2.c as well. All might benefit from it, assuming that pm_runtime counting is actually correct.
Using regset only really gives a benefit if already using regset, and the CFE driver isn't.
There was a problem hiding this comment.
It's unclear whether or not those registers retain useful debug information about the previous session, while the CFE driver is not in use. However, I'm fairly sure the ISP-FE and CSI2AXI ones do, and we might still benefit from being able to read them. I will do some tests to check this...
There was a problem hiding this comment.
Yes, those sticky flags do persist between sessions.
We don't strictly seem to need pm_runtime_resume_and_get() here either (as we're not doing any PHY config bus transactions, and no other part of the MIPI block is getting de-clocked or powered down), but it feels safer to leave it in for now.
Dump ISP-FE registers FE_DEBUG_FIFO_FULLNESS and FE_DEBUG_STATUS2. The latter gives an atomic snapshot of state and frames completed.
Dump a CSI-2 Host register which shows which lanes are in LP11.
Dump some sticky error registers from the D-PHY and CSI-2 Host; note that they will be cleared on every read. This is harmless, since they are not used for any purpose other than debug.