Age | Commit message (Collapse) | Author |
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
As V4L2 subdevice nodes use the V4L2 video device nodes major number,
there is no 1:1 correspondance between video device nodes numbers and
video device nodes minors. The video output device localization code
will thus fail if the omap3_isp driver is loaded before the omap_vout
driver.
Fix this by reading the video output device major and minor numbers from
sysfs and match them against the device node.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Pass a struct v4l2_pix_format * instead of width and height.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Setting the crop rectangle on the video output device isn't needed
(especially as the code forgot to set crop->type to
V4L2_BUF_TYPE_VIDEO_OUTPUT anyway).
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Commit e0c7399fc26ebb0df66e114a71702d5e6c387e44 ("Add
omap3_isp_pipeline_try_format()") wrongfully removed pipeline
configuration from omap3_isp_viewfinder_set_scaler(). Add it back.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Instead of retrieving the sensor default format and propagating through
the pipeline, configure the sensor with the previously selected format
(resulting from the scaler choice) and propagate it.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Instead of setting the struct omap3_isp_video running and queued fields
manually before or after calling omap3_isp_video_start() and
omap3_isp_video_stop(), handle those fields in the functions directly.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
This will avoid forward declarations when introducing viewfinder timeout
recovery.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Those functions currently just encapsulate v4l2_stream_on() and
v4l2_stream_off(). They will later handle timeout timers.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The dequeued field is used to track buffers that have been dequeued from
the viewfinder and owned by the display. Those buffers will be handed
back by the display, so they must not be requeued on the spot when the
viewfinder is paused and resumed. Pools don't suffer from that problem,
so don't use the dequeued field.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Add a function to modify the black level DC offset for the OMAP3 ISP
CCDC.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The -b argument can be used to set the number of video display buffers.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
When the sensor delivers a frame rate higher than what the display can
process, the OMAP3 ISP continuously runs out of buffers. The new --skip
command line option can be used to avoid that situation by skipping
display of n frames out of n+1.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Iterate through the omap_vout video nodes and use the one with the
lowest minor as the video output device.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
This removes dependencies on the specific sensor.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Allocate buffers and start/stop pools.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
v4l2_queue_buffer() already returns -errno, don't compute that again but
return the function's return value directly.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The field isn't needed anymore, remove it.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
To support buffer pools, configure video node formats automatically in
omap3_isp_pipeline_try_format() instead of manually in the viewfinder
and snapshot setup functions.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Don't stop pipeline formats configuration at the first video device
node, but go through pools until the end of the pipeline.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Buffers pools can be inserted in a pipeline between a video capture
device and a video output device. They will automatically relay buffers
from the capture device to the output device in a transparent way.
One use case of buffer pools is to work around hardware issues. When the
CCDC is directly connected to the preview engine, any ESD-induce noise
on the HS or VS signals will make the preview engine loose sync, is it
only relies on line counts. Introducing a buffer pool between the CCDC
and preview engine work around the issue.
This patch only implements buffer pool creation during pipeline build.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Open video devices right away when they're added to the pipeline. This
will help pools implementation.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The output video node already has an entity associated with it. Make
that entity an instance of struct omap3_isp_video.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The field isn't used anymore, remove it.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
And remove the omap3_isp_pipeline_set_format() function.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Move omap3_isp_pipeline_activate() call from
omap3_isp_snapshot_restore_pipeline() to
omap3_isp_viewfinder_setup_pipeline() and remove
omap3_isp_snapshot_restore_pipeline().
Remove the setup_link() calls from omap3_isp_open(), pre-setup of the
pipeline isn't required anymore now that trying formats doesn't rely on
active links.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The function tries formats on pipeline pads to achieve the requested
output format, and saves the format at each pad in the oamp3_isp_pad
structure for later use.
Replace the snapshot format try code by a call to
omap3_isp_pipeline_try_format().
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The function activates all links in the given pipeline. Replace manual
link activation by calls to omap3_isp_pipeline_activate().
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Add a omap3_isp_pipeline_build() function to build a pipeline from a
list of entity names.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
The structure will be used to handle pipelines. For now it only contains
the video output node structure.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|