On 12/08/2024 15:41, Depeng Shao wrote:
+void camss_reg_update(struct camss *camss, int hw_id, int port_id, bool is_clear)
+{
+ struct csid_device *csid;
+
+ if (hw_id < camss->res->csid_num) {
+ csid = &(camss->csid[hw_id]);
+
+ csid->res->hw_ops->reg_update(csid, port_id, is_clear);
+ }
+}
The naming here doesn't make the action clear
hw_ops->rup_update(csid, port, clear);
"is_clear" is not required since the type is a bool the "is" is implied
in the the logical state so just "clear" will do.
But re: my previous comment on having the ISR do the clear as is done in
the VFE 480, I don't think this is_clear parameter is warranted.
We want the calling function to request the rup_update() for the
rup_update() function to wait on completion and the ISR() to do the
clear once the RUP interrupt has been raised.
At least I think that's how it should work - could you please experiment
with your code for the flow - as it appears to match the VFE 480 logic.
---
bod