media: ov9282: Add external trigger mode support#6954
media: ov9282: Add external trigger mode support#69546by9 merged 2 commits intoraspberrypi:rpi-6.12.yfrom
Conversation
|
Please squash your ov9282 commits into one, then split that in two - one for the driver changes and one for the overlay changes. You can then run With those changes, I presume you are happy with this @6by9? |
|
Any comments or progress on this? |
6by9
left a comment
There was a problem hiding this comment.
Sorry for the delay in reviewing.
| /* Start streaming */ | ||
| ret = ov9282_write_reg(ov9282, OV9282_REG_MODE_SELECT, | ||
| 1, OV9282_MODE_STREAMING); | ||
| 1, OV9282_MODE_STREAMING); |
There was a problem hiding this comment.
Odd whitespace change for no reason
|
|
||
| /* Setup handler will write actual exposure and gain */ | ||
| ret = __v4l2_ctrl_handler_setup(ov9282->sd.ctrl_handler); | ||
| ret = __v4l2_ctrl_handler_setup(ov9282->sd.ctrl_handler); |
There was a problem hiding this comment.
Looking again I'll acknowledge that it's wrong in the original, but changing it should be a separate patch.
|
|
||
| /* 1 frame per trigger */ | ||
| ov9282_write_reg(ov9282, OV9282_REG_NUM_FRAME_ON_TRIG, 1, 0x01); | ||
| if (ret) { |
There was a problem hiding this comment.
You've not saved the result of ov9282_write_reg to ret, so this will never fail.
Ditto subsequent calls.
|
I need external trigger in order to capture laser light reflected from a moving mirror, so I tried this code with:
It works. Tested with CAM-MIPIOV9281V2 (Innomaker) on a Raspberry 5. Thank you. |
Sorry for the latency. @stalinbeltran i am glad it worked for you. |
6by9
left a comment
There was a problem hiding this comment.
Sorry but this seems to be worse than last time.
You haven't address pelwell's comment
Please squash your ov9282 commits into one, then split that in two - one for the driver changes and one for the overlay changes.
We have a number of whitespace changes. One is correct, but whitespace cleanups should never be merged into the same commit as functional changes.
|
|
||
| /* Setup handler will write actual exposure and gain */ | ||
| ret = __v4l2_ctrl_handler_setup(ov9282->sd.ctrl_handler); | ||
| ret = __v4l2_ctrl_handler_setup(ov9282->sd.ctrl_handler); |
There was a problem hiding this comment.
Looking again I'll acknowledge that it's wrong in the original, but changing it should be a separate patch.
be0e8f1 to
9a8ea63
Compare
|
So i think i had made some changes in the original. and didn't squash the commits with the correct changes. i just changed the necessary part for the trigger mode and didn't make any changes on the other parts. |
6by9
left a comment
There was a problem hiding this comment.
One slight nasty here.
Seeing as this won't get upstreamed in this form I am prepared to accept it as is, but it would be nicer if you'd update.
Thanks.
| dev_err(ov9282->dev, "failed to config external trigger mode"); | ||
| return ret; | ||
| } | ||
| return 0; |
There was a problem hiding this comment.
There's a bit of a gotcha here with this early bail out that I hadn't noticed it in the previous review pass.
My preference would be to keep setting OV9282_REG_MODE_SELECT here in both cases, ie.
/* Configure FSIN external trigger mode */
if (ov9282->trigger_mode > 0) {
ret = ov9282_apply_trigger_config(ov9282);
if (ret) {
dev_err(ov9282->dev, "failed to config external trigger mode");
return ret;
}
/* stay in standby mode and wait for trigger signal */
ret = ov9282_write_reg(ov9282, OV9282_REG_MODE_SELECT,
1, OV9282_MODE_STANDBY);
} else {
/* Start streaming */
ret = ov9282_write_reg(ov9282, OV9282_REG_MODE_SELECT,
1, OV9282_MODE_STREAMING);
}
if (ret)
dev_err(ov9282->dev, "fail to start streaming");
return ret;
}
9a8ea63 to
9ecf861
Compare
| return ret; | ||
|
|
||
| /* stay standby mode and wait for trigger signal */ | ||
| ret = ov9282_write_reg(ov9282, OV9282_REG_MODE_SELECT, |
There was a problem hiding this comment.
Sorry I didn't say it explicitly, but we now have a duplication here. Just drop this write.
This patch adds support for external FSIN-triggered snapshot mode to the OmniVision OV9282 sensor driver. It enables frame capture synchronized with an external hardware trigger signal. Signed-off-by: Omer Faruk Edemen <ofedemen@lectrontech.com>
Adds DT property `trigger-mode` to enable FSIN-triggered frame capture. Includes overlay and README update for ov9281_trig. Signed-off-by: Omer Faruk Edemen <ofedemen@lectrontech.com>
9ecf861 to
0604690
Compare
|
FYI we don't (always?) get notifications of branch updates, so adding a comment once you've done so helps to avoid long delays. I think this is good now. Feel free to merge if you agree, @6by9. |
kernel: Add config settings and i2c-sensor support for the TMP117 See: raspberrypi/linux#7083 kernel: Upstream patches for TC358743 colour swap See: raspberrypi/linux#7070 kernel: media: ov9282: Add external trigger mode support See: raspberrypi/linux#6954 kernel: Improve the RP1 DMA channel allocation scheme See: raspberrypi/linux#7089
kernel: Add config settings and i2c-sensor support for the TMP117 See: raspberrypi/linux#7083 kernel: Upstream patches for TC358743 colour swap See: raspberrypi/linux#7070 kernel: media: ov9282: Add external trigger mode support See: raspberrypi/linux#6954 kernel: Improve the RP1 DMA channel allocation scheme See: raspberrypi/linux#7089
Adds DT property
trigger-modeto enable FSIN-triggered frame capture. Includes overlay and README update for ov9281_trig.#5349 (comment)