Age | Commit message (Collapse) | Author |
|
into imx_3.10.y_android
|
|
In VDOA PP mode, the input resolution would be changed to be VDOA's output
for PP to use as its input resolution to go on to do resizing or color space
conversion. The input resolution will be different from the original one
when VDOA input cropping is enabled. And, this finally causes a wrong input
resolution being used if the users do rotation by calling the S_CTRL ioctrl
in runtime. In order to fix this issue, this patch sets the original input
resolution back after PP task check and process. The issue can be reproduced
by the following command line(enable VDOA mode in the gst plugin configuration
file first):
gplay AVC_MP30_854x356_23.976_679_AACLC_44.1_96_2_TRON_LEGACY.flv
(Enter 't 90' to change to rotate 90 degrees in runtime.)
In this case, VDOA input cropping(854x356 -> 848x352) is enabled because VDOA
input resolution should align to macro block size.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 4c732ad69265d8e441e6c15a2e87f5aeef234624)
|
|
when queue buffer, just compare input size with cam->v2f.fmt.pix.sizeimage,
don't with PAGE_ALIGN(cam->v2f.fmt.pix.sizeimage).
Signed-off-by: Fang Hui <b31070@freescale.com>
|
|
Enable vadc function.
That can work at PAL 720x576 and NTSC 720x480 mode.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
-Add v4l2 capture ioctl VIDIOC_S_INPUT, VIDIOC_G_INPUT,VIDIOC_ENUMINPUT,
VIDIOC_S_STD,VIDIOC_G_STD support.
-Add NTSC, PAL format define.
-Add parameter cam_input_fmt to save camera sensor format.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
-Add csi control register 18 define.
-Add csi_tvdec_enable and csi_deinterlace_mode for vadc.
-Add csi_set_32bit_imagpara function to support YUV444 format.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
Some V4L2 apps require that playing rotated fullscreen video on
the screen. In recent PXP driver, this is not supported yet. So
this patch adds it on through combining rotation and resize together.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
|
|
address.
Add absolute physical address report by V4L2 driver after
this buffer has been mapped, which is requested by some
multimedia applications.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
|
|
This patch uses strncmp() to replace strcmp() to weaken framebuffer
id check so that the mxs framebuffer driver may use different names
for standalone framebuffers.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
|
|
According to IC team, DCIC1 clock is used in the IPSYNC for CSI1 and
DCIC2 clock is used in the IPSYNC for the CSI2. So dcic clock is needed for CSI.
The display axi clock is a clock gating newly added on imx6sx.
It needs to be enabled for lcdif/pxp/csi/pcie to work.
CSI clock seems to be implemented different other than other SoCs.
It needs also to be enabled before access the registers, otherwise
the system will hang.
Signed-off-by: Robby Cai <R63905@freescale.com>
|
|
on imx6sx, a new bit CSI_ENABLE is added in IC design.
This patch adds this support for CSI control.
Signed-off-by: Robby Cai <R63905@freescale.com>
|
|
The mipi csi2 code is ugly present in the capture pipeline setup/disable
routions with '#ifdef CONFIG_MXC_MIPI_CSI2/#endif' protected. Whenever
it finds mipi_csi2_info is not gotten correctly, it will return error to
callers. This breaks the normally routines in which mipi csi2 is not used
and mipi csi2 driver is disabled in its devicetree node(but with the
Kconfig CONFIG_MXC_MIPI_CSI2 defined). A real example is the capture
feature on the MX6 Sabreauto platforms. We have only parallel CSI input
on it and the mipi csi2 driver is disabled in its devicetree node but with
the Kconfig CONFIG_MXC_MIPI_CSI2 defined. So, a reasonable choice at present
is not to return error if mipi_csi2_info cannot be gotten, though we could
eventually re-organize the capture code for a better total solution in the
future.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
|
|
commit f8e1a3bb62eecf93a31a51c4dbe08a0214fa1d57 introduced an
annoying kernel log by changing a pure debug info to error level.
This patch reverts that change.
Conflicts:
drivers/media/video/mxc/capture/mxc_v4l2_capture.c
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 289cc885ae097bbf9849cb266679a2969e5c39a9)
|
|
commit f8e1a3bb62eecf93a31a51c4dbe08a0214fa1d57 added a hard
coding for csi_parma.mclk setting to 27MHz. The comment added by
that commit is totally wrong by telling that csi_param.mclk
would be a kind of 'pixel clock' set in 'csi_data_dest' register.
This patch removes the unnecessary mclk setting for csi_param.mclk
variable, since it is only valid for CSI test mode.
Conflicts:
drivers/media/video/mxc/capture/mxc_v4l2_capture.c
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit 5fed1e3fde2d63c80f414f204734d35ceecef561)
|
|
This patch adds internal v4l2 enum_frameintervals ioctrl support for
the ov5640 mipi camera driver.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
|
|
This patch adds VIDIOC_ENUM_FRAMEINTERVALS ioctl support for the
mxc v4l2 capture driver.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
|
|
Previously, the framebuffer for UI display may only be restored after
STREAMOFF ioctl is called. But sometimes the application may exit abnormally
(without call STREAMOFF) for some reason. Now restore previously-saved
smem_start in release function to make sure it's set correctly, to avoid some
video frame remain.
Signed-off-by: Robby Cai <R63905@freescale.com>
|
|
In previous implementation, the memory allocation/free for PxP output buffer is
done each time v4l2 output device is opened/closed. This is not necessary and
may cause memory fragmentation issue after running many many times. Now we
re-allocate the memory for it only if the existing memory size is not sufficent
for new case.
Signed-off-by: Robby Cai <R63905@freescale.com>
|
|
After dynamically alloc/free tx descriptors enabled, the descriptors
will be freed in PXP ISR which happens before pxp_buf_free() is called.
Signed-off-by: Fancy Fang <B47543@freescale.com>
|
|
Users may call VIDIOC_S_CTRL and VIDIOC_S_CROP ioctrls
to change rotation and cropping settings when streaming.
The driver should restore the original settings if new
configuration fails, otherwise, it might break the
present pipeline.
This patch fixes the issue which can be reproduced by
this test case with a 1080P HDMI primary display:
gplay Mpeg4_SP1_480x260_24_1200_aac_48_128_2_terminator3.mp4
Type 't' to set rotation to 90.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
|
|
This patch fixes the following build warning by allocating
a block of virtual memory to cache an instance of the structure
mxc_vout_output instead of using the stack frame.
drivers/media/platform/mxc/output/mxc_vout.c: In function ‘mxc_vidioc_s_crop’:
drivers/media/platform/mxc/output/mxc_vout.c:1529:1: warning: the frame size of 1040 bytes is larger than 1024 bytes [-Wframe-larger-than=]
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
|
|
This feature is easy for gstreamer to pipeline v4lsrc and v4lsink, since
camera output format can be set as UYVY in v4l2 capture driver, and PxP
will do the CSC from UYVY to RGB565 in v4l2 output driver for LCD display.
Signed-off-by: Robby Cai <R63905@freescale.com>
(cherry picked from commit d8f47ca83385f3e96ce457f35b69c4a7ac733a6e)
|
|
Need to remove the following warning:
warning: array subscript is above array bounds
Summary of changes:
Moved MXC_SENSOR_NUM definition to mxc_v4l2_capture.h.
all_sensors[] now uses MXC_SENSOR_NUM in definition.
MXC_SENSOR_NUM is now used for bounds checking the array.
Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
|
|
The overlay framebuffer's position and resolution are
set with two different APIs. They depend on each other to
make sure the overlay framebuffer window will not go out
of the background framebuffer window. Potentially, this
causes the overlay framebuffer's position or resolution
of the current video pipeline be impacted by the settings
of the last time. To setup the overlay fb from scratch
correctly, this patch takes the following steps:
- blank framebuffer
- set framebuffer position to the starting point
- reconfigure framebuffer
- set framebuffer position to a specific point
- unblank framebuffer
This procedure applies to non-overlay framebuffers as well.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
|
|
Users may call VIDIOC_S_CTRL or VIDIOC_S_CROP ioctrls
to update streaming parameters on-the-fly after video
has been streamed on, such as for rotation/output
resolution/overlay output position change. Any
unnecessary frame buffer reconfiguration would cause
a pair of frame buffer blank/unblank events happen and
even makes the background framebuffer show up for a
short period of time if the video is rendered on an
overlay framebuffer. This patch compares the last time
video output pipe line settings with the current ones
to determine whether frame buffer reconfiguration is
necessary or not.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
|
|
After finish video playback, the last frame remains on the display.
It's because the UI display start address (smem_start) has been changed when
do video playback but not changed back again after the playback finishes.
From the function call point of view,
pxp_set_fbinfo() // pxp->fb.base tracks right addr for UI framebuffer
pxp_show_buf(toshow) // smem_start changed to v4l2 display addr
pxp_set_fbinfo() // pxp->fb.base changed to v4l2 display addr
pxp_show_buf(not toshow) // smem_start still equal to v4l2 display addr
// for pan_display
This patch fixes it by calling pxp_set_fbinfo once in open function.
Signed-off-by: Robby Cai <R63905@freescale.com>
|
|
This patch handles downsize ratio overflow error by doing
input cropping with 8 pixel step.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
|
|
This patch makes mmapped video buffers bufferable so that software
decoders may render the video buffers efficiently.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
|
|
Previously the driver gets the framebuffer start address at probe time.
But this address might be changed if the framebuffer drivers re-allocate
the frame buffers due to the application changes the yres_virtual.
As a result, some garbage data can be observed on display.
This patch adjusts the way to detect the start address at run time to
fix this problem.
Signed-off-by: Robby Cai <R63905@freescale.com>
|
|
Since commit 43829731d (workqueue: deprecate flush[_delayed]_work_sync()),
flush_work() should be used instead of flush_work_sync().
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
|
|
The following commit introduced a wrong sanity check for
the io_regulator which is intended to be got from device tree.
a364635a535705a8c16df49ff9bc7b9362b083ec
This patch corrects the sanity check.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
(cherry picked from commit a0ff4d112dcd8a71547f2b95731f2fedb21a77e4)
|
|
Copied file from 3.5.7 Kernel
commit de6459732a23402cbe520812bf4202299330fd68
Author: Oliver Brown <oliver.brown@freescale.com>
Date: Mon Jun 24 16:41:17 2013 -0500
Added missing call to clk_disable_unprepare() in adv7180_probe.
Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
|
|
Copied file from 3.5.7 Kernel:
commit 0682e12bf9a3b5085fe5dd70574fe856340894d0
Author: Liu Ying <Ying.Liu@freescale.com>
Date: Thu May 16 12:02:14 2013 +0800
-Added function and file name to some error messages that are
in multiple places.
-Added calls to clk_prepare_enable() and clk_disable_unprepare()
in ov5640_probe() to manage the sensor clock.
-Added missing sanity check for "io_regulator"
-Fixed several whitespace errors
Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
|
|
By later initialization for camera dev (to call int_dev_init), the driver
works well whether the master (csi_v4l2_capture) or the slave (ov5640)
has been attached first. In this way, the driver can stick to the philosophy
for the V4L2_INT_DEVICE framework (the attach sequence shouldn't matter).
The following way to insert modules should work:
$ insmod fsl_csi.ko
$ insmod ov5640_camera.ko
$ insmod csi_v4l2_capture.ko
or,
$ insmod fsl_csi.ko
$ insmod csi_v4l2_capture.ko
$ insmod ov5640_camera.ko
Signed-off-by: Robby Cai <R63905@freescale.com>
|
|
When the camera driver is built as module and done 'insmod' command,
the camera will not be detected. The error message is as follows.
$ insmod ov5640_camera.ko
ov5640 2-003c: cannot get io voltage
ov5640_read_reg:write reg error:reg=300a
camera ov5640 is not found
The reason is the mclk need to be enabled before read camera registers.
This patch fixes it.
To balance the usecount for the mclk, we need disable the mclk afterwards.
Signed-off-by: Robby Cai <R63905@freescale.com>
|
|
Copied file from 3.5.7 Kernel:
commit 0682e12bf9a3b5085fe5dd70574fe856340894d0
Author: Liu Ying <Ying.Liu@freescale.com>
Date: Thu May 16 12:02:14 2013 +0800
-Added calls to clk_prepare_enable() and clk_disable_unprepare()
in ov5642_probe() to manage the sensor clock.
-Fixed whitespace errors
Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
|
|
fix error for 'make modules':
ENROR: "csi_dmareq_rff_enable"
[drivers/media/platform/mxc/capture/csi_v4l2_capture.ko] undefined!
ERROR: "csi_dmareq_rff_disable"
[drivers/media/platform/mxc/capture/csi_v4l2_capture.ko] undefined!
ERROR: "csi_regbase"
[drivers/media/platform/mxc/capture/csi_v4l2_capture.ko] undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2
Signed-off-by: Robby Cai <R63905@freescale.com>
|
|
Copied files from
commit 0339bfd7164324c5c0208cf6467ef244f714c43a
Author: Liu Ying <Ying.Liu@freescale.com>
Date: Wed Sep 4 13:21:21 2013 +0800
-Added function and file names to error messages that are similar
-Changed mxc_v4l_open to use clk_prepare_enable()
-Changed mxc_v4l_open to use clk_disable_unprepare()
Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
|
|
from commit 9293d3aaef4886eae9a500f0dabdcd2b679422b4
and commit cb1d78fc935fa00be03ae1a7b66477ad518a09dc, branch imx_3.5.7
This patch also does
- use module_i2c_driver() instead of module_init/exit.
- set the regulator reference pointer to NULL if it's not found in DT.
Otherwise call regulator_enable/disable() on it will cause dump
since the codes only check the regulator against NULL before the call
and it's not NULL but still invalid.
- drop gpo regulator definition and operations since it's of no use
Signed-off-by: Robby Cai <R63905@freescale.com>
|
|
- change the includes
<asm/uaccess.h> to <linux/uaccess.h>
<mach/ipu-v3.h> to <linux/ipu-v3.h>
<mach/dma.h> to <linux/platform_data/dma-imx.h>
- add an extra parameter for device_prep_slave_sg() as the prototype's changed.
- drop csi_mclk_recalc() func since there's no divider in CSI module
- drop deprecated __devinit, __devexit and __devexit_p
- use module_platform_driver()
- use of_match_table()
- replace ioremap() with devm_ioremap()
- replace clk_get() with devm_clk_get()
- replace clk_enable/disable() with clk_prepare_enable/clk_disable_unprepare()
- add check for no camera attached on board
- drop function csi_mclk_enable(), csi_mclk_enable() in fsl_csi.c,
and move clock enable/disable to csi_v4l2_capture.c
Signed-off-by: Robby Cai <R63905@freescale.com>
|
|
port v4l2 output driver to 3.10 kernel
- replace .ioctl with .unlocked_ioctl
- add .vfl_dir flag - VFL_DIR_TX (newly introduced) for video_device
- drop __devinit, __devexit, __exit and __exit_p
- replace mxc_elcdif_frame_addr_setup() with pxp_show_buf(), where pan_display
be called due to the adoption of mxsfb.c from community
- change the fb id to be compared due to use new mxsfb.c
- mark the s_crop() and s_fbuf() third parameter const
- move local fbi variable to struct pxps
- use module_platform_driver()
Signed-off-by: Robby Cai <R63905@freescale.com>
|
|
This is porting mxc vout driver from imx_3.5.7 kernel to
imx_3.10 kernel.
* Put the driver in drivers/media/platform/ directory instead
of drivers/media/video/ directory, since the later one is
renamed to the former one in 3.10 kernel.
* Change the ipu-v3.h header file from <mach/ipu-v3.h> to
<linux/ipu-v3.h>.
* Change the mxc_vidioc_s_crop() function's implementation since
the definition of the vidioc_s_crop() function is modified to
make the last argument be constant.
* Set vfl_dir to be VFL_DIR_TX since the ioctrl validity checks
are improved in 3.10 kernel.
* Remove 'defaut y' setting for VIDEO_MXC_OUTPUT and
VIDEO_MXC_IPU_OUTPUT Kconfigs. They may be configured by kernel
default configure or by user.
* Make VIDEO_MXC_OUTPUT Kconfig depend on FB_MXC Kconfig since
we need framebuffers to be rendered.
* Make VIDEO_MXC_IPU_OUTPUT Kconfig be tristate.
* Split <linux/mxc_v4l2.h> header file up into include/linux/
and include/uapi/linux/ directories so that the userspace may
include the mxc_v4l2.h header file.
Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
|
|
commit 13e1b87c986100169b0695aeb26970943665eda9 upstream.
Fix the following build error:
drivers/media/usb/dvb-usb-v2/
mxl111sf-tuner.h:72:9: error: expected ‘;’, ‘,’ or ‘)’ before ‘struct’
struct mxl111sf_tuner_config *cfg)
Signed-off-by: Dave Jones <davej@fedoraproject.org>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
commit f2e4c5e004691dfe37d0e4b363296f28abdb9bc7 upstream.
Add USB ID [2040:f900] for Hauppauge WinTV-MiniStick 2.
Device is build upon IT9135 chipset.
Tested-by: Stefan Becker <schtefan@gmx.net>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
commit dd4491dfb9eb4fa3bfa7dc73ba989e69fbce2e10 upstream.
Current setting of symbol rate is not very actuate causing
loss of lock.
Covert temp to u64 and use mclk to calculate from big number.
Calculate symbol rate by dividing symbol rate by 1000 times
1 << 24 and dividing sum by mclk.
Add other symbol rate settings to function registers 0xa0-0xa3.
In set_frontend add changes to register 0xf1 this must be done
prior call to fe_reset. Register 0x00 doesn't need a second
write of 0x1
Applied after patch
m88rs2000: add m88rs2000_set_carrieroffset
Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
commit 06af15d1b6f45c60358feab88004472e5428f01c upstream.
Set the carrier offset correctly using the default mclk values.
Add function m88rs2000_get_mclk to calculate the mclk value
against crystal frequency which will later be used for
other functions.
Add function m88rs2000_set_carrieroffset to calculate
and set the offset value.
variable offset becomes a signed value.
Register 0x86 is set the appropriate value according to
remainder value of frequency % 192857 calculation as
shown.
Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
commit d67350f8c4e67f5eba627e1fd111f16257ca9c95 upstream.
Commit 173a64cb3fcf broke support for some dib807x versions.
Fix it by providing backward compatibility with the older versions.
[mkrufky@linuxtv.org: conflict handling and CodingStyle fixes]
Signed-off-by: Olivier Grenie <olivier.grenie@parrot.com>
Acked-by: Patrick Boettcher <pboettcher@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
commit fa1e1de6bb679f2c86da3311bbafee7eaf78f125 upstream.
The buffer size on nxt200x is not enough:
...
> Dec 20 10:52:04 rich kernel: [ 31.747949] nxt200x: nxt200x_writebytes: i2c wr reg=002c: len=255 is too big!
...
Increase it to 256 bytes.
Reported-by: Rich Freeman <rich0@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
commit b80cb8dc4162bc954cc71efec192ed89f2061573 upstream.
s5p_mfc_get_node_type() relies on get_index() helper function, which in
turn relies on video_device index numbers assigned on driver
registration. All this code is not really needed, because there is
already access to respective video_device structures via common
s5p_mfc_dev structure. This fixes the issues introduced by patch
1056e4388b0454917a512618c8416a98628fc9ce ("v4l2-dev: Fix race condition
on __video_register_device"), which has been merged in v3.12-rc1.
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
commit 5ac64ba12aca3bef18e61c866583155a3bbf81c4 upstream.
As the dvb-frontend kthread can be called anytime, it can race
with some get status ioctl. So, it seems better to avoid one to
race with the other while reading a 32 bits register.
I can't see any other reason for having a mutex there at I2C, except
to provide such kind of protection, as the I2C core already has a
mutex to protect I2C transfers.
Note: instead of this approach, it could eventually remove the dib8000
specific mutex for it, and either group the 4 ops into one xfer or
to manually control the I2C mutex. The main advantage of the current
approach is that the changes are smaller and more puntual.
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Acked-by: Patrick Boettcher <pboettcher@kernellabs.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|