Workaround for imx5x M4IF burst len errata when armv7 neon enabled, use
pgprot_writecombine instead of pgprot_noncached, to avoid burst len > 8.
Signed-off-by: Sammy He <r62914@freescale.com>
As a side effect of not doing this, the V4L driver would happily go off and touch a framebuffer address that was invalid, and there may have been a slight SNAFU with a divide by zero on the VPU framebuffer.
Arnaud Patard from Mandriva noticed these a long while ago, but now here they are.
BUG: these are temporary hacks, let's try and work out why line_length is 0..
If set both double buffer ready for VDI case, there will come out
NFB4EOF error.
Signed-off-by: Jason Chen <b02280@freescale.com>
(cherry picked from commit 24c1d799767732a7d654c1acd526c63acbe397fe)
If do input right-side crop and input/output are in the same size, v4l2
driver will enable ic_bypass, but after enable it, the output is not
correct.
Signed-off-by: Jason Chen <b02280@freescale.com>
1) Add OV3640 camera QXGA configuration at 7.5fps support.
2) Use double buffer to workaround tearing issue when capturing
still image.
Signed-off-by: Liu Ying <b17645@freescale.com>
1)Medium motion and low motion:
Frame(n)'s even field is used for Previous channel,
Frame(n+1)'s odd field is used for Current channel and
Frame(n+1)'s even field is used for Next channel to generate
de-interlaced Frame(n+1).
2)High motion:
Frame(n)'s odd field is used for Current channel to generate
de-interlaced Frame(n).
Signed-off-by: Liu Ying <b17645@freescale.com>
If set crop for input image, and ic bypass mode enabled (after crop,
input and output video have the same size), video will play uncorrect if
input is non-interleaving format. Need set u/v offset for this case.
Signed-off-by: Jason Chen <b02280@freescale.com>
If play a video by using ic bypass mode, and the resolution is
bigger than IC limitation(1024x720), will come out DQUEUE timeout issue.
Signed-off-by: Jason Chen <b02280@freescale.com>
1) Support YUYV for CSI->MEM capture.
2) Support YUYV and UYVY for CSI->PRP_ENC->MEM capture.
3) Support YUYV for still capture.
Signed-off-by: Liu Ying <b17645@freescale.com>
During v4l2 output playback, there is performance issue after below
commit:
UBUNTU: SAUCE: (upstream) netdev/fec: fix performance impact from
mdio poll operation
Use common workqueue cause this issue, so create an own workqueue for
v4l2 output.
Signed-off-by: Jason Chen <b02280@freescale.com>
Uncorrect bits_per_pixel will make wrong fb memaloc size, which will
cause Oops for filling black color operation.
Signed-off-by: Jason Chen <b02280@freescale.com>
Enable fb display channel before buffer select, it avoid display frame
lost for small windows between timming of buffer select and channel
enalbe.
Signed-off-by: Jason Chen <b02280@freescale.com>
For MX23, the maximum down scaling factor is 1/2.
For MX28, it's 1/4.
If the scaling factor is below the factor, PxP may not function as expected.
Signed-off-by: Robby Cai <R63905@freescale.com>
As CSI->MEM channel keeps on writing the buffer which is set to
ready latestly and raising up end of frame interrupts, the current
v4l2 capture realization mechanism is not appropriate for this channel.
This patch will update the idmac buffer to a dummy buffer whenever
there is no buffers queued by the user.
Signed-off-by: Liu Ying <b17645@freescale.com>
To preview with V4L2 overlay and capture at the same time may fail.
This patch implements workaround for this issue by enabling CSI after
PRP channels are setup.
Signed-off-by: Liu Ying <b17645@freescale.com>
There is a short show of previous played frame if not fill black color
to display fb.
Because fb device will unblank ahead of real data come.
Signed-off-by: Jason Chen <b02280@freescale.com>
This change makes us get rid of DIx_SYNC_DISP_ERR. The error sometimes
causes the backgound framebuffer reinitialized automatically, even if
we preview captured video on overlay framebuffer.
Signed-off-by: Liu Ying <b17645@freescale.com>
After TV/LCD switch, PXP uses wrong old FB info to set RGBBUF/RGBSIZE.
This patch fixes this problem by notifying PXP to adjust when FB changed.
Signed-off-by: Robby Cai <R63905@freescale.com>
blank/unblank fb during v4l2 playback, unblank will cause current buffer
of display channel to be 1. This patch make the sequence of select
display buffer correct.
Signed-off-by: Jason Chen <b02280@freescale.com>
To use manually buffer select instead of channel link, which resolve fb
blank during v4l2 running issue.
Signed-off-by: Jason Chen <b02280@freescale.com>
Use DP to do CSC for preview on DPFG instead of using IC channel
so that we can get better performance. This change can make us
get rid of IC channel bandwidth limitation when using IC channel
to do upsizing from low resolution to high resolution and CSC.
This change doesn't touch V4L2 overlay for DPBG, because using DP
to do CSC will change the pixel format for DPBG(usually for GUI).
This change doesn't touch V4L2 capture, because users rarely do
upsizing with high multiple in this case.
Signed-off-by: Liu Ying <b17645@freescale.com>
Some kernel resource can be accessed in interrupt handler and user
controlled V4L2 ioctrls, so there is a race condition which makes
the kernel malfunction potentially.
Signed-off-by: Liu Ying <b17645@freescale.com>
There is one CSI crop improvement (engr117261) in v4l2 capture.
But the improvement is not suitable for tvin module since the
ACT_FRM_SIZE wouldn't be the same with the SENSOR_SIZE.
Signed-off-by: Miao Yu <r65093@freescale.com>