Re: V4L2 and framebuffer for the same controller

2010-11-02 Thread Guennadi Liakhovetski
Hi Jun

On Fri, 29 Oct 2010, Jun Nie wrote:

> Hi Guennadi,
> I find that your idea of "provide a generic framebuffer driver
> that could sit on top of a v4l output driver", which may be a good
> solution of our LCD controller driver, or maybe much more other SOC
> LCD drivers. V4L2 interface support many features than framebuffer for
> video playback usage, such as buffer queue/dequeue, quality control,
> etc. However, framebuffer is common for UI display. Implement two
> drivers for one controller is a challenge for current architecture.
> I am interested in your idea. Could you elaborate it? Or do you
> think multifunction driver is the right solution for this the
> scenario?

Right, we have discussed this idea at the V4L2/MC mini-summit earlier this 
year, there the outcome was, that the idea is not bad, but it is easy 
enough to create such framebuffer additions on top of specific v4l2 output 
drivers anyway, so, noone was interested enough to start designing and 
implementing such a generic wrapper driver. However, I've heard, that this 
topic has also been scheduled for discussion at another v4l / kernel 
meeting (plumbers?), so, someone might be looking into implementing 
this... If you yourself would like to do that - feel free to propose a 
design on both mailing lists (fbdev added to cc), then we can discuss it, 
and you can implement it;)

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Webcam driver not working: drivers/media/video/gspca/ov519.c device 05a9:4519

2010-11-02 Thread Jean-Francois Moine
On Tue, 2 Nov 2010 00:23:23 +0200
Anca Emanuel  wrote:

> This file is stream.ulz compressed
> http://rapidshare.com/files/428384860/stream.zip
> 
> To see the data, you need: http://www.usblyzer.com/download.htm
> And a windows machine.
> Sorry for the trouble.

I got the ms-windows program, and I can see the lacking information,
but only on clicking on each exchange. It could take one month to
move all information into a readable format!

May you redo traces with one of the free SniffUSB's? You may find links
in:

https://groups.google.com/group/microdia/web/usb-sniffing-on-windows

Thanks.

-- 
Ken ar c'hentañ | ** Breizh ha Linux atav! **
Jef |   http://moinejf.free.fr/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [libdvben50221] stack leaks resources on non-MMI session reconnect.

2010-11-02 Thread DUBOST Brice

On 08/08/2010 23:53, DUBOST Brice wrote:

On 15/07/2010 15:20, Stephan Trebels wrote:


The issue was, that LIBDVBEN50221 did not allow a CAM to re-establish
the session holding non-MMI resources if using the lowlevel interface.
The session_number was recorded on open, but not freed on close (which
IMO is an bug in the code, I attach the scaled down hg changeset). With
this change, the SMIT CAM with a showtime card works fine according to
tests so far.

The effect was, that the CAM tried to constantly close and re-open the
session and the LIBDVBEN50221 kept telling it, that the resource is
already allocated to a different session. Additionally this caused the
library to use the _old_ session number in communications with the CAM,
which did not even exist anymore, so caused all writes of CA PMTs to
fail with EINTR.

Stephan



Hello

Just to inform that this patch solves problems with CAM PowerCAM v4.3,
so I think it can interest more people.

Before gnutv -cammenu (and other applications using libdvben50221) was
returning ti;eout (-3) errors constantly after the display of the system
IDs.

Now, the menu is working flawlessly

I cannot test the descrambling for the moment but it improved quite a
lot the situation (communication with th CAM is now possible).

One note concerning the patch itself, the last "else if (resource_id ==
EN50221_APP_MMI_RESOURCEID)" is useless.

Best regards





Hello


After more testing this Patches allow several CAM models to work and 
don't seem to make any regression.


Is there anything to be improved/tested for having it included upstream ?

Thank you

Regards

--
Brice

A: Yes.
>Q: Are you sure?
>>A: Because it reverses the logical flow of conversation.
>>>Q: Why is top posting annoying in email?
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: New media framework user space usage

2010-11-02 Thread Bastian Hecht
Hello Laurent,

>> I am the first guy needing a 12 bit-bus?
>
> Yes you are :-) You will need to implement 12 bit support in the ISP driver,
> or start by hacking the sensor driver to report a 10 bit format (2 bits will
> be lost but you should still be able to capture an image).

Isn't that an "officially" supported procedure to drop the least
significant bits?
You gave me the isp configuration
.bus = { .parallel = {
   .data_lane_shift= 1,
...
that instructs the isp to use 10 of the 12 bits.

>> Second thing is, the yavta app now gets stuck while dequeuing a buffer.
>>
>> strace ./yavta -f SGRBG10 -s 2592x1944 -n 4 --capture=4 --skip 3 -F
>> /dev/video2 ...
>> ioctl(3, VIDIOC_QBUF, 0xbec111cc)       = 0
>> ioctl(3, VIDIOC_QBUF, 0xbec111cc)       = 0
>> ioctl(3, VIDIOC_QBUF, 0xbec111cc)       = 0
>> ioctl(3, VIDIOC_QBUF, 0xbec111cc)       = 0
>> ioctl(3, VIDIOC_STREAMON, 0xbec11154)   = 0
>> ioctl(3, VIDIOC_DQBUF
>>
>> strace gets stuck in mid of this line.

Somehow the ISP_ENABLE_IRQ register was reset at some point that is
unclear to me. When I put it on again manually yavta succeeds to read
the frames. Unfortunately the image consists of black pixels only. We
found out that the 2.8V voltage regulator got broken in the course of
development - the 1.8V logic still worked but the ADC did not...

But the heck - I was never that close :)

bye,

 Bastian
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Webcam driver not working: drivers/media/video/gspca/ov519.c device 05a9:4519

2010-11-02 Thread Anca Emanuel
On Tue, Nov 2, 2010 at 10:26 AM, Jean-Francois Moine  wrote:
> On Tue, 2 Nov 2010 00:23:23 +0200
> Anca Emanuel  wrote:
>
>> This file is stream.ulz compressed
>> http://rapidshare.com/files/428384860/stream.zip
>>
>> To see the data, you need: http://www.usblyzer.com/download.htm
>> And a windows machine.
>> Sorry for the trouble.
>
> I got the ms-windows program, and I can see the lacking information,
> but only on clicking on each exchange. It could take one month to
> move all information into a readable format!
>
> May you redo traces with one of the free SniffUSB's? You may find links
> in:
>
> https://groups.google.com/group/microdia/web/usb-sniffing-on-windows
>
> Thanks.

I am using http://www.pcausa.com/Utilities/UsbSnoop/SniffUSB-x86-2.0.0006.zip
now.

The data:
http://rapidshare.com/files/428460107/log4.zip

please let me know if this is what you ask for.

Thank you.

P.S.: the file is ... 69MB uncompressed.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[RFC/PATCH v2 2/4] MFC: Add MFC 5.1 driver to plat-s5p

2010-11-02 Thread Kamil Debski
Add platform support for Multi Format Codec 5.1 is a module available
on S5PC110 and S5PC210 Samsung SoCs. Hardware is capable of handling
a range of video codecs and this driver provides V4L2 interface for
video decoding.

Signed-off-by: Kamil Debski 
Signed-off-by: Kyungmin Park 
---
 arch/arm/mach-s5pv210/clock.c |6 
 arch/arm/mach-s5pv210/include/mach/map.h  |4 +++
 arch/arm/plat-s5p/Kconfig |5 
 arch/arm/plat-s5p/Makefile|1 +
 arch/arm/plat-s5p/dev-mfc5.c  |   37 +
 arch/arm/plat-samsung/include/plat/devs.h |2 +
 6 files changed, 55 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/plat-s5p/dev-mfc5.c

diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c
index d562670..0717a07 100644
--- a/arch/arm/mach-s5pv210/clock.c
+++ b/arch/arm/mach-s5pv210/clock.c
@@ -294,6 +294,12 @@ static struct clk init_clocks_disable[] = {
.enable = s5pv210_clk_ip0_ctrl,
.ctrlbit= (1 << 26),
}, {
+   .name   = "mfc",
+   .id = -1,
+   .parent = &clk_pclk_psys.clk,
+   .enable = s5pv210_clk_ip0_ctrl,
+   .ctrlbit= (1 << 16),
+   }, {
.name   = "otg",
.id = -1,
.parent = &clk_hclk_psys.clk,
diff --git a/arch/arm/mach-s5pv210/include/mach/map.h 
b/arch/arm/mach-s5pv210/include/mach/map.h
index 586652f..9960d50 100644
--- a/arch/arm/mach-s5pv210/include/mach/map.h
+++ b/arch/arm/mach-s5pv210/include/mach/map.h
@@ -104,6 +104,9 @@
 #define S5PV210_PA_DMC0(0xF000)
 #define S5PV210_PA_DMC1(0xF140)
 
+/* MFC */
+#define S5PV210_PA_MFC (0xF170)
+
 /* compatibiltiy defines. */
 #define S3C_PA_UARTS5PV210_PA_UART
 #define S3C_PA_HSMMC0  S5PV210_PA_HSMMC(0)
@@ -120,6 +123,7 @@
 #define S5P_PA_FIMC0   S5PV210_PA_FIMC0
 #define S5P_PA_FIMC1   S5PV210_PA_FIMC1
 #define S5P_PA_FIMC2   S5PV210_PA_FIMC2
+#define S5P_PA_MFC S5PV210_PA_MFC
 
 #define SAMSUNG_PA_ADC S5PV210_PA_ADC
 #define SAMSUNG_PA_CFCON   S5PV210_PA_CFCON
diff --git a/arch/arm/plat-s5p/Kconfig b/arch/arm/plat-s5p/Kconfig
index 65dbfa8..a1918fc 100644
--- a/arch/arm/plat-s5p/Kconfig
+++ b/arch/arm/plat-s5p/Kconfig
@@ -5,6 +5,11 @@
 #
 # Licensed under GPLv2
 
+config S5P_DEV_MFC
+   bool
+   help
+ Compile in platform device definitions for MFC 
+ 
 config PLAT_S5P
bool
depends on (ARCH_S5P64X0 || ARCH_S5P6442 || ARCH_S5PC100 || 
ARCH_S5PV210 || ARCH_S5PV310)
diff --git a/arch/arm/plat-s5p/Makefile b/arch/arm/plat-s5p/Makefile
index de65238..d1d1ea9 100644
--- a/arch/arm/plat-s5p/Makefile
+++ b/arch/arm/plat-s5p/Makefile
@@ -23,6 +23,7 @@ obj-$(CONFIG_PM)  += pm.o
 obj-$(CONFIG_PM)   += irq-pm.o
 
 # devices
+obj-$(CONFIG_S5P_DEV_MFC)  += dev-mfc5.o
 
 obj-$(CONFIG_S5P_DEV_FIMC0)+= dev-fimc0.o
 obj-$(CONFIG_S5P_DEV_FIMC1)+= dev-fimc1.o
diff --git a/arch/arm/plat-s5p/dev-mfc5.c b/arch/arm/plat-s5p/dev-mfc5.c
new file mode 100644
index 000..c06ea97
--- /dev/null
+++ b/arch/arm/plat-s5p/dev-mfc5.c
@@ -0,0 +1,37 @@
+/* Base S3C64XX mfc resource and device definitions */
+
+
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+
+/* MFC controller */
+static struct resource s5p_mfc_resource[] = {
+   [0] = {
+   .start  = S5P_PA_MFC,
+   .end= S5P_PA_MFC + SZ_64K - 1,
+   .flags  = IORESOURCE_MEM,
+   },
+   [1] = {
+   .start  = IRQ_MFC,
+   .end= IRQ_MFC,
+   .flags  = IORESOURCE_IRQ,
+   }
+};
+
+struct platform_device s5p_device_mfc5 = {
+   .name  = "s5p-mfc5",
+   .id= -1,
+   .num_resources = ARRAY_SIZE(s5p_mfc_resource),
+   .resource  = s5p_mfc_resource,
+};
+
+EXPORT_SYMBOL(s5p_device_mfc5);
+
+
diff --git a/arch/arm/plat-samsung/include/plat/devs.h 
b/arch/arm/plat-samsung/include/plat/devs.h
index 71bcc0f..39948de 100644
--- a/arch/arm/plat-samsung/include/plat/devs.h
+++ b/arch/arm/plat-samsung/include/plat/devs.h
@@ -118,6 +118,8 @@ extern struct platform_device s5p_device_fimc0;
 extern struct platform_device s5p_device_fimc1;
 extern struct platform_device s5p_device_fimc2;
 
+extern struct platform_device s5p_device_mfc5;
+
 /* s3c2440 specific devices */
 
 #ifdef CONFIG_CPU_S3C2440
-- 
1.6.3.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[RFC/PATCH v2 4/4] s5pc110: Enable MFC 5.1 on Goni

2010-11-02 Thread Kamil Debski
Multi Format Codec 5.1 is a module available on S5PC110 and S5PC210
Samsung SoCs. Hardware is capable of handling a range of video codecs.

Signed-off-by: Kamil Debski 
Signed-off-by: Kyungmin Park 
---
 arch/arm/mach-s5pv210/Kconfig |1 +
 arch/arm/mach-s5pv210/mach-goni.c |1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
index 862f239..b5e3a39 100644
--- a/arch/arm/mach-s5pv210/Kconfig
+++ b/arch/arm/mach-s5pv210/Kconfig
@@ -85,6 +85,7 @@ config MACH_GONI
select S3C_DEV_I2C1
select S3C_DEV_I2C2
select S3C_DEV_USB_HSOTG
+   select S5P_DEV_MFC
select S5P_DEV_ONENAND
select SAMSUNG_DEV_KEYPAD
select S5PV210_SETUP_FB_24BPP
diff --git a/arch/arm/mach-s5pv210/mach-goni.c 
b/arch/arm/mach-s5pv210/mach-goni.c
index 3602d16..cc5cdad 100644
--- a/arch/arm/mach-s5pv210/mach-goni.c
+++ b/arch/arm/mach-s5pv210/mach-goni.c
@@ -648,6 +648,7 @@ static struct platform_device *goni_devices[] __initdata = {
&goni_i2c_gpio_pmic,
&mmc2_fixed_voltage,
&goni_device_gpiokeys,
+   &s5p_device_mfc5,
&s5p_device_fimc0,
&s5p_device_fimc1,
&s5p_device_fimc2,
-- 
1.6.3.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[RFC/PATCH v2 1/4] MFC: Changes in include/linux/videodev2.h for MFC 5.1 codec

2010-11-02 Thread Kamil Debski
Add fourcc values for compressed video stream formats and
V4L2_CTRL_CLASS_CODEC. Also adds controls used by MFC driver.


Signed-off-by: Kamil Debski 
Signed-off-by: Kyungmin Park 
---
 include/linux/videodev2.h |   48 +
 1 files changed, 48 insertions(+), 0 deletions(-)

diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index dd3d93d..2614a62 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -349,6 +349,14 @@ struct v4l2_pix_format {
 /* three non-contiguous planes -- Y, Cb, Cr */
 #define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12  YUV420 
planar */
 
+/* two non contiguous planes -- one Y, one Cr + Cb interleaved  */
+#define V4L2_PIX_FMT_NV12M   v4l2_fourcc('N', 'M', '1', '2') /* 12  Y/CbCr 
4:2:0  */
+/* 12  Y/CbCr 4:2:0 64x32 macroblocks */
+#define V4L2_PIX_FMT_NV12MT  v4l2_fourcc('T', 'M', '1', '2')
+
+/* three non contiguous planes -- Y, Cb, Cr */
+#define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12  YUV420 
planar */
+
 /* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
 #define V4L2_PIX_FMT_SBGGR8  v4l2_fourcc('B', 'A', '8', '1') /*  8  BGBG.. 
GRGR.. */
 #define V4L2_PIX_FMT_SGBRG8  v4l2_fourcc('G', 'B', 'R', 'G') /*  8  GBGB.. 
RGRG.. */
@@ -372,6 +380,21 @@ struct v4l2_pix_format {
 #define V4L2_PIX_FMT_DV   v4l2_fourcc('d', 'v', 's', 'd') /* 1394  
*/
 #define V4L2_PIX_FMT_MPEG v4l2_fourcc('M', 'P', 'E', 'G') /* MPEG-1/2/4
*/
 
+
+#define V4L2_PIX_FMT_H264 v4l2_fourcc('H', '2', '6', '4') /* H264*/
+#define V4L2_PIX_FMT_H263 v4l2_fourcc('H', '2', '6', '3') /* H263*/
+#define V4L2_PIX_FMT_MPEG12   v4l2_fourcc('M', 'P', '1', '2') /* MPEG-1/2  */
+#define V4L2_PIX_FMT_MPEG4v4l2_fourcc('M', 'P', 'G', '4') /* MPEG-4  */
+#define V4L2_PIX_FMT_DIVX v4l2_fourcc('D', 'I', 'V', 'X') /* DivX  */
+#define V4L2_PIX_FMT_DIVX3v4l2_fourcc('D', 'I', 'V', '3') /* DivX 3.11  */
+#define V4L2_PIX_FMT_DIVX4v4l2_fourcc('D', 'I', 'V', '4') /* DivX 4.12  */
+#define V4L2_PIX_FMT_DIVX500v4l2_fourcc('D', 'X', '5', '2') /* DivX 5.00 - 
5.02  */
+#define V4L2_PIX_FMT_DIVX503v4l2_fourcc('D', 'X', '5', '3') /* DivX 5.03 - 
x  */
+#define V4L2_PIX_FMT_XVID v4l2_fourcc('X', 'V', 'I', 'D') /* Xvid */
+#define V4L2_PIX_FMT_VC1  v4l2_fourcc('V', 'C', '1', 'A') /* VC-1 */
+#define V4L2_PIX_FMT_VC1_RCV  v4l2_fourcc('V', 'C', '1', 'R') /* VC-1 RCV 
*/
+
+
 /*  Vendor-specific formats   */
 #define V4L2_PIX_FMT_CPIA1v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */
 #define V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A') /* Winnov hw 
compress */
@@ -980,6 +1003,7 @@ struct v4l2_output {
 #define V4L2_OUTPUT_TYPE_ANALOG2
 #define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY  3
 
+
 /* capabilities flags */
 #define V4L2_OUT_CAP_PRESETS   0x0001 /* Supports S_DV_PRESET */
 #define V4L2_OUT_CAP_CUSTOM_TIMINGS0x0002 /* Supports S_DV_TIMINGS */
@@ -1017,6 +1041,7 @@ struct v4l2_ext_controls {
 #define V4L2_CTRL_CLASS_MPEG 0x0099/* MPEG-compression controls */
 #define V4L2_CTRL_CLASS_CAMERA 0x009a  /* Camera class controls */
 #define V4L2_CTRL_CLASS_FM_TX 0x009b   /* FM Modulator control class */
+#define V4L2_CTRL_CLASS_CODEC 0x009c   /* Codec control class */
 
 #define V4L2_CTRL_ID_MASK(0x0fff)
 #define V4L2_CTRL_ID2CLASS(id)((id) & 0x0fffUL)
@@ -1347,6 +1372,29 @@ enum v4l2_mpeg_cx2341x_video_median_filter_type {
 #define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP   
(V4L2_CID_MPEG_CX2341X_BASE+10)
 #define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS
(V4L2_CID_MPEG_CX2341X_BASE+11)
 
+/* For codecs */
+
+#define V4L2_CID_CODEC_BASE(V4L2_CTRL_CLASS_CODEC | 0x900)
+#define V4L2_CID_CODEC_CLASS   (V4L2_CTRL_CLASS_CODEC | 1)
+
+/* For both decoding and encoding */
+
+/* For encoding */
+#define V4L2_CID_CODEC_LOOP_FILTER_H264(V4L2_CID_CODEC_BASE + 
9)
+enum v4l2_cid_codec_loop_filter_h264 {
+   V4L2_CID_CODEC_LOOP_FILTER_H264_ENABLE = 0,
+   V4L2_CID_CODEC_LOOP_FILTER_H264_DISABLE = 1,
+   V4L2_CID_CODEC_LOOP_FILTER_H264_DISABLE_AT_BOUNDARY = 2,
+};
+
+/* For decoding */
+
+#define V4L2_CID_CODEC_LOOP_FILTER_MPEG4_ENABLE(V4L2_CID_CODEC_BASE + 
110)
+#define V4L2_CID_CODEC_DISPLAY_DELAY   (V4L2_CID_CODEC_BASE + 137)
+#define V4L2_CID_CODEC_REQ_NUM_BUFS(V4L2_CID_CODEC_BASE + 140)
+#define V4L2_CID_CODEC_SLICE_INTERFACE (V4L2_CID_CODEC_BASE + 141)
+#define V4L2_CID_CODEC_PACKED_PB   (V4L2_CID_CODEC_BASE + 142)
+
 /*  Camera class control IDs */
 #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)
 #define V4L2_CID_CAMERA_CLASS  (V4L2_CTRL_CLASS_CAMERA | 1)
-- 
1.6.3.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message

[RFC/PATCH v2 0/4] Multi Format Codec 5.0 driver for S5PC110 SoC

2010-11-02 Thread Kamil Debski
Hello,

On the 13th October I have posted the first version of the driver. 
Now I post the second version which includes modifications as suggested in
the comments (Thank you, Peter). 

The driver will be changed to use final videobuf2 implementation after
the Linux Plumbers conference. As I know there will be some discussion
about videobuf2 and there still may be some changes in the framework.

Below I have attached the original cover letter and the patch summary.

I would be grateful for further comments.

Best reagrds,
Kamil Debski


Original cover letter:

Hello,

==
 Introduction
==

The purpose of this RFC is to discuss the driver for a hw video codec
embedded in the new Samusng's SoCs. Multi Format Codec 5.0 is able to
handle video decoding of in a range of formats.

So far no hardware codec was supported in V4L2 and this would be the
first one. I guess there are more similar device that would benefit from
a V4L2 unified interface. I suggest a separate control class for codec
devices - V4L2_CTRL_CLASS_CODEC. 

Internally the driver uses videobuf2 framework and CMA memory allocator.
I am aware that those have not yet been merged, but I wanted to start
discussion about the driver earlier so it could be merged sooner. The
driver posted here is the initial version, so I suppose it will require
more work.

==
 Device interface
==

In principle the driver bases on the idea of memory-to-memory devices:
it provides a single video node and each opened file handle gets its own
private context with separate buffer queues. Each context consist of 2
buffer queues: OUTPUT (for source buffers, i.e. encoded video frames)
and CAPTURE (for destination buffers, i.e. decoded raw video frames).
The process of decoding video data from stream is a bit more complicated
than typical memory-to-memory processing, that's why the m2m framework
is not directly used (it is too limited for this case). The main reason
for this is the fact that the CAPTURE buffers can be dequeued in a
different order than they queued. The hw block decides which buffer has
been completely processed. This is due to the structure of most
compressed video streams - use of B frames causes that decoding and
display order may be different.

==
 Decoding initialization path
==

First the OUTPUT queue is initialized. With S_FMT the application
chooses which video format to decode and what size should be the input
buffer. Fourcc values have been defined for different codecs e.g.
V4L2_PIX_FMT_H264 for h264. Then the OUTPUT buffers are requested and
mmaped. The stream header frame is loaded into the first buffer, queued
and streaming is enabled. At this point the hardware is able to start
processing the stream header and afterwards it will have information
about the video dimensions and the size of the buffers with raw video
data.

The next step is setting up the CAPTURE queue and buffers. The width,
height, buffer size and minimum number of buffers can be read with G_FMT
call. The application can request more output buffer if necessary. After
requesting and mmaping buffers the device is ready to decode video
stream.

The stream frames (ES frames) are written to the OUTPUT buffers, and
decoded video frames can be read from the CAPTURE buffers. When no more
source frames are present a single buffer with bytesused set to 0 should
be queued. This will inform the driver that processing should be
finished and it can dequeue all video frames that are still left. The
number of such frames is dependent on the stream and its internal
structure (how many frames had to be kept as reference frames for
decoding, etc).

===
 Usage summary
===

This is a step by step summary of the video decoding (from user
application point of view, with 2 treads and blocking api):

01. S_FMT(OUTPUT, V4L2_PIX_FMT_H264, ...)
02. REQ_BUFS(OUTPUT, n)
03. for i=1..n MMAP(OUTPUT, i)
04. put stream header to buffer #1
05. QBUF(OUTPUT, #1)
06. STREAM_ON(OUTPUT)
07. G_FMT(CAPTURE)
08. REQ_BUFS(CAPTURE, m)
09. for j=1..m MMAP(CAPTURE, j)
10. for j=1..m QBUF(CAPTURE, #j)
11. STREAM_ON(CAPTURE)

display thread:
12. DQBUF(CAPTURE) -> got decoded video data in buffer #j
13. display buffer #j
14. QBUF(CAPTURE, #j)
15. goto 12

parser thread:
16. put next ES frame to buffer #i
17. QBUF(OUTPUT, #i)
18. DQBUF(OUTPUT) -> get next empty buffer #i 19. goto 16

...

Similar usage sequence can be achieved with single threaded application
and non-blocking api with poll() call.

Branch with MFC, CMA and videobuf2 will be soon available at
http://git.infradead.org/users/kmpark/linux-2.6-samsung/shortlog/refs/heads/mfc
This tree is based on kgene/for-next (Samsung S5P platform 'next' tree).

Please have a look at the code and the idea of how to introduce codec
devices to V4L2. Comments will be very much appreciated.

Patch summary:

Kamil Debski (4):
  MFC: Changes in include/linux/v

Re: [libdvben50221] stack leaks resources on non-MMI session reconnect.

2010-11-02 Thread Stephan Trebels
Hi Brice,

I did not find more things to be changed, and it works fine for me now.
Given, that the responsiveness on this list is a bit underwhelming, I
wonder whether we can find someone with commit privileges, to push this
change.

Stephan

On Tue, 2010-11-02 at 11:15 +0100, DUBOST Brice wrote: 
> On 08/08/2010 23:53, DUBOST Brice wrote:
> > On 15/07/2010 15:20, Stephan Trebels wrote:
> >>
> >> The issue was, that LIBDVBEN50221 did not allow a CAM to re-establish
> >> the session holding non-MMI resources if using the lowlevel interface.
> >> The session_number was recorded on open, but not freed on close (which
> >> IMO is an bug in the code, I attach the scaled down hg changeset). With
> >> this change, the SMIT CAM with a showtime card works fine according to
> >> tests so far.
> >>
> >> The effect was, that the CAM tried to constantly close and re-open the
> >> session and the LIBDVBEN50221 kept telling it, that the resource is
> >> already allocated to a different session. Additionally this caused the
> >> library to use the _old_ session number in communications with the CAM,
> >> which did not even exist anymore, so caused all writes of CA PMTs to
> >> fail with EINTR.
> >>
> >> Stephan
> >>
> >
> > Hello
> >
> > Just to inform that this patch solves problems with CAM PowerCAM v4.3,
> > so I think it can interest more people.
> >
> > Before gnutv -cammenu (and other applications using libdvben50221) was
> > returning ti;eout (-3) errors constantly after the display of the system
> > IDs.
> >
> > Now, the menu is working flawlessly
> >
> > I cannot test the descrambling for the moment but it improved quite a
> > lot the situation (communication with th CAM is now possible).
> >
> > One note concerning the patch itself, the last "else if (resource_id ==
> > EN50221_APP_MMI_RESOURCEID)" is useless.
> >
> > Best regards
> >
> >
> 
> 
> Hello
> 
> 
> After more testing this Patches allow several CAM models to work and 
> don't seem to make any regression.
> 
> Is there anything to be improved/tested for having it included upstream ?
> 
> Thank you
> 
> Regards
> 



signature.asc
Description: This is a digitally signed message part


Re: rtl2832u support

2010-11-02 Thread poma

Antti Palosaari wrote:

On 10/19/2010 10:33 PM, Damjan Marion wrote:


On Oct 19, 2010, at 9:10 PM, Antti Palosaari wrote:

On 10/19/2010 08:42 PM, Damjan Marion wrote:
Is there any special reason why driver for rtl2832u DVB-T receiver 
chipset is not included into v4l-dvb?


It is due to lack of developer making driver suitable for Kernel. I 
have done some work and have knowledge what is needed, but no time 
nor interest enough currently. It should be implement as one 
USB-interface driver and two demod drivers (RTL2830, RTL2832) to 
support for both RTL2831U and RTL2832U.


Can you share what you done so far?


Look LinuxTV.org HG trees. There is Jan and my trees, both for RTL2831U. 
I split driver logically correct parts. Also I have some RTL2832U hacks 
here in my computer, I can give those for the person really continuing 
development.


Antti



Hi there,

Jack, is Realtek Interested?

Kind regards,
poma
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Warnings from latest -git

2010-11-02 Thread Mauro Carvalho Chehab
Em 30-10-2010 04:17, Chris Clayton escreveu:
> Hi,
> 
> Please cc me on any reply as I'm not subscribed.
> 
> Building v2.6.36-9452-g2d10d87 pulled this morning, I get:
> 
> warning: (DVB_USB_DIB0700 && MEDIA_SUPPORT && DVB_CAPTURE_DRIVERS && DVB_CORE 
> && 
> DVB_USB && !DVB_FE_CUSTOMISE) selects DVB_DIB8000 which has unmet direct 
> dependencies (MEDIA_SUPPORT && DVB_CAPTURE_DRIVERS && DVB_FE_CUSTOMISE && 
> DVB_CORE && I2C)

It certainly requires further investigation. From your config file, we have,
for dib0700:

CONFIG_DVB_USB_DIB0700=m
CONFIG_MEDIA_SUPPORT=m
CONFIG_DVB_CAPTURE_DRIVERS=y
CONFIG_DVB_CORE=m
CONFIG_DVB_USB=m
# CONFIG_DVB_FE_CUSTOMISE is not set

And, for dib8000:

CONFIG_MEDIA_SUPPORT=m
CONFIG_DVB_CAPTURE_DRIVERS=y
# CONFIG_DVB_FE_CUSTOMISE is not set
CONFIG_DVB_CORE=m
CONFIG_I2C=y

Both dib0700 and dib8000 were marked as m:

CONFIG_DVB_DIB8000=m
CONFIG_DVB_USB_DIB0700=m

So, in this specific example, it actually worked, but we need to find a fix
for this bug.

Cheers,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2.6.37-rc1] SoC Camera: OMAP1: update for recent framework changes

2010-11-02 Thread Janusz Krzysztofik
The recently added OMAP1 camera driver was not ready for one video queue per 
device framework changes. Fix it.

Created and tested against linux-2.6.37-rc1.

Signed-off-by: Janusz Krzysztofik 
---

 drivers/media/video/omap1_camera.c |8 
 1 file changed, 4 insertions(+), 4 deletions(-)

--- linux-2.6.37-rc1/drivers/media/video/omap1_camera.c.orig2010-11-01 
22:41:59.0 +0100
+++ linux-2.6.37-rc1/drivers/media/video/omap1_camera.c 2010-11-01 
23:55:26.0 +0100
@@ -1386,7 +1386,7 @@ static void omap1_cam_init_videobuf(stru
}
 }
 
-static int omap1_cam_reqbufs(struct soc_camera_file *icf,
+static int omap1_cam_reqbufs(struct soc_camera_device *icd,
  struct v4l2_requestbuffers *p)
 {
int i;
@@ -1398,7 +1398,7 @@ static int omap1_cam_reqbufs(struct soc_
 * it hadn't triggered
 */
for (i = 0; i < p->count; i++) {
-   struct omap1_cam_buf *buf = container_of(icf->vb_vidq.bufs[i],
+   struct omap1_cam_buf *buf = container_of(icd->vb_vidq.bufs[i],
  struct omap1_cam_buf, vb);
buf->inwork = 0;
INIT_LIST_HEAD(&buf->vb.queue);
@@ -1485,10 +1485,10 @@ static int omap1_cam_set_bus_param(struc
 
 static unsigned int omap1_cam_poll(struct file *file, poll_table *pt)
 {
-   struct soc_camera_file *icf = file->private_data;
+   struct soc_camera_device *icd = file->private_data;
struct omap1_cam_buf *buf;
 
-   buf = list_entry(icf->vb_vidq.stream.next, struct omap1_cam_buf,
+   buf = list_entry(icd->vb_vidq.stream.next, struct omap1_cam_buf,
 vb.stream);
 
poll_wait(file, &buf->vb.done, pt);
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2.6.37-rc1] SoC Camera: OMAP1: update for recent videobuf changes

2010-11-02 Thread Janusz Krzysztofik
Recent locking related videobuf changes has not been incorporated into the new 
OMAP1 camera driver. Fix it.

Created and tested against linux-2.6.37-rc1.

Signed-off-by: Janusz Krzysztofik 
---

 drivers/media/video/omap1_camera.c |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- linux-2.6.37-rc1/drivers/media/video/omap1_camera.c.orig2010-11-01 
22:41:59.0 +0100
+++ linux-2.6.37-rc1/drivers/media/video/omap1_camera.c 2010-11-01 
23:55:26.0 +0100
@@ -235,7 +235,7 @@ static void free_buffer(struct videobuf_
 
BUG_ON(in_interrupt());
 
-   videobuf_waiton(vb, 0, 0);
+   videobuf_waiton(vq, vb, 0, 0);
 
if (vb_mode == OMAP1_CAM_DMA_CONTIG) {
videobuf_dma_contig_free(vq, vb);
@@ -1365,12 +1365,12 @@ static void omap1_cam_init_videobuf(stru
videobuf_queue_dma_contig_init(q, &omap1_videobuf_ops,
icd->dev.parent, &pcdev->lock,
V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_FIELD_NONE,
-   sizeof(struct omap1_cam_buf), icd);
+   sizeof(struct omap1_cam_buf), icd, NULL);
else
videobuf_queue_sg_init(q, &omap1_videobuf_ops,
icd->dev.parent, &pcdev->lock,
V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_FIELD_NONE,
-   sizeof(struct omap1_cam_buf), icd);
+   sizeof(struct omap1_cam_buf), icd, NULL);
 
/* use videobuf mode (auto)selected with the module parameter */
pcdev->vb_mode = sg_mode ? OMAP1_CAM_DMA_SG : OMAP1_CAM_DMA_CONTIG;
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] SOC Camera: OMAP1: typo fix

2010-11-02 Thread Janusz Krzysztofik
Fix an outstanding typo in the recently added driver, as requested by 
the subsystem maintainer.

Created against linux-2.6.37-rc1.

Signed-off-by: Janusz Krzysztofik 
---

 drivers/media/video/omap1_camera.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-2.6.37-rc1/drivers/media/video/omap1_camera.c.orig2010-11-01 
23:55:26.0 +0100
+++ linux-2.6.37-rc1/drivers/media/video/omap1_camera.c 2010-11-02 
01:48:55.0 +0100
@@ -504,7 +504,7 @@ static void omap1_videobuf_queue(struct 
 * empty. Since the transfer of the DMA programming register set
 * content to the DMA working register set is done automatically
 * by the DMA hardware, this can pretty well happen while we
-* are keeping the lock here. Levae fetching it from the queue
+* are keeping the lock here. Leave fetching it from the queue
 * to be done when a next DMA interrupt occures instead.
 */
return;
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/7] ir-core: convert drivers/media/video/cx88 to ir-core

2010-11-02 Thread Jarod Wilson
On Fri, Oct 29, 2010 at 3:08 PM, David Härdeman  wrote:
> This patch converts the cx88 driver (for sampling hw) to use the
> decoders provided by ir-core instead of the separate ones provided
> by ir-functions (and gets rid of those).
>
> The value for MO_DDS_IO had a comment saying it corresponded to
> a 4kHz samplerate. That comment was unfortunately misleading. The
> actual samplerate was something like 3250Hz.
>
> The current value has been derived by analyzing the elapsed time
> between interrupts for different values (knowing that each interrupt
> corresponds to 32 samples).
>
> Thanks to Mariusz Bialonczyk  for testing my patches
> (about one a day for two weeks!) on actual hardware.
>
> Signed-off-by: David Härdeman 

Acked-by: Jarod Wilson 

-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/7] ir-core: remove remaining users of the ir-functions keyhandlers

2010-11-02 Thread Jarod Wilson
On Fri, Oct 29, 2010 at 3:08 PM, David Härdeman  wrote:
> This patch removes the remaining usages of the ir_input_nokey() and
> ir_input_keydown() functions provided by drivers/media/IR/ir-functions.c
> by using the corresponding functionality in ir-core instead.
>
> Signed-off-by: David Härdeman 

Acked-by: Jarod Wilson 

Also tested the imon bits, at least as part of the whole series.

-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/7] ir-core: more cleanups of ir-functions.c

2010-11-02 Thread Jarod Wilson
On Fri, Oct 29, 2010 at 3:08 PM, David Härdeman  wrote:
> cx88 only depends on VIDEO_IR because it needs ir_extract_bits().
> Move that function to ir-core.h and make it inline.
>
> Lots of drivers had dependencies on VIDEO_IR when they really
> wanted IR_CORE.
>
> The only remaining drivers to depend on VIDEO_IR are bt8xx and
> saa7134 (ir_rc5_timer_end is the only function exported by
> ir-functions).
>
> Rename VIDEO_IR -> IR_LEGACY to give a hint to anyone writing or
> converting drivers to IR_CORE that they do not want a dependency
> on IR_LEGACY.
>
> Signed-off-by: David Härdeman 

Acked-by: Jarod Wilson 

-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 5/7] ir-core: merge and rename to rc-core

2010-11-02 Thread Jarod Wilson
On Fri, Oct 29, 2010 at 3:08 PM, David Härdeman  wrote:
> This patch merges the files which makes up ir-core and renames the
> resulting module to rc-core. ir-raw-event.c is still kept as a separate
> file (but renamed to rc-raw.c) as suggested by Mauro.
>
> Signed-off-by: David Härdeman 


Acked-by: Jarod Wilson 

This also gets a...

Tested-by: Jarod Wilson 

...as I've tested the merged core w/mceusb, streamzap, imon and nuvoton-cir.

-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 6/7] ir-core: make struct rc_dev the primary interface

2010-11-02 Thread Jarod Wilson
On Fri, Oct 29, 2010 at 3:08 PM, David Härdeman  wrote:
> This patch merges the ir_input_dev and ir_dev_props structs into a single
> struct called rc_dev. The drivers and various functions in rc-core used
> by the drivers are also changed to use rc_dev as the primary interface
> when dealing with rc-core.
>
> This means that the input_dev is abstracted away from the drivers which
> is necessary if we ever want to support multiple input devs per rc device.
>
> The new API is similar to what the input subsystem uses, i.e:
> rc_device_alloc()
> rc_device_free()
> rc_device_register()
> rc_device_unregister()
>
> Signed-off-by: David Härdeman 

Acked-by: Jarod Wilson 
Tested-by: Jarod Wilson 

Tested mceusb, streamzap, imon and nuvonton-cir.

-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 7/7] rc-core: convert winbond-cir

2010-11-02 Thread Jarod Wilson
On Fri, Oct 29, 2010 at 3:08 PM, David Härdeman  wrote:
> Move winbond-cir from drivers/input/misc/ into drivers/media/IR/
> and convert it to use rc-core.
>
> Signed-off-by: David Härdeman 

Acked-by: Jarod Wilson 

-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: drivers/media/IR/ir-keytable.c::ir_getkeycode - 'retval' may be used uninitialized

2010-11-02 Thread Jarod Wilson
On Sun, Oct 31, 2010 at 6:18 PM, Dmitry Torokhov
 wrote:
> On Sunday, October 31, 2010 10:51:21 am Stefan Richter wrote:
>> Commit 9f470095068e "Input: media/IR - switch to using new keycode
>> interface" added the following build warning:
>>
>> drivers/media/IR/ir-keytable.c: In function 'ir_getkeycode':
>> drivers/media/IR/ir-keytable.c:363: warning: 'retval' may be used 
>> uninitialized in this function
>>
>> It is due to an actual bug but I don't know the fix.
>>
>
> The patch below should fix it. I wonder if Linus released -rc1 yet...

Looks like it missed rc1.

> Input: ir-keytable - fix uninitialized variable warning
>
> From: Dmitry Torokhov 
>
> We were forgetting to set up proper return value in success path causing
> ir_getkeycode() to fail intermittently:
>
> drivers/media/IR/ir-keytable.c: In function 'ir_getkeycode':
> drivers/media/IR/ir-keytable.c:363: warning: 'retval' may be used
> uninitialized in this function
>
> Reported-by: Stefan Richter 
> Signed-off-by: Dmitry Torokhov 

Acked-by: Jarod Wilson 


-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] SoC Camera: ov6650: minor cleanups

2010-11-02 Thread Janusz Krzysztofik
This is a followup patch that addresses two minor issues left in the recently 
added ov6650 sensor driver, as I've promised to the subsystem maintainer:
- remove a pair of extra brackets,
- drop useless case for not possible v4l2_mbus_pixelcode enum value of 0.

Created against linux-2.6.37-rc1.

Signed-off-by: Janusz Krzysztofik 
---

 drivers/media/video/ov6650.c |4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

--- linux-2.6.37-rc1/drivers/media/video/ov6650.c.orig  2010-11-01 
22:41:59.0 +0100
+++ linux-2.6.37-rc1/drivers/media/video/ov6650.c   2010-11-02 
16:56:49.0 +0100
@@ -754,7 +754,7 @@ static int ov6650_g_fmt(struct v4l2_subd
 
 static bool is_unscaled_ok(int width, int height, struct v4l2_rect *rect)
 {
-   return (width > rect->width >> 1 || height > rect->height >> 1);
+   return width > rect->width >> 1 || height > rect->height >> 1;
 }
 
 static u8 to_clkrc(struct v4l2_fract *timeperframe,
@@ -840,8 +840,6 @@ static int ov6650_s_fmt(struct v4l2_subd
coma_mask |= COMA_BW | COMA_BYTE_SWAP | COMA_WORD_SWAP;
coma_set |= COMA_RAW_RGB | COMA_RGB;
break;
-   case 0:
-   break;
default:
dev_err(&client->dev, "Pixel format not handled: 0x%x\n", code);
return -EINVAL;
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [libdvben50221] stack leaks resources on non-MMI session reconnect.

2010-11-02 Thread pierre.gronlier
Stephan Trebels wrote, On 11/02/2010 11:38 AM:
> Hi Brice,
> 
> I did not find more things to be changed, and it works fine for me now.
> Given, that the responsiveness on this list is a bit underwhelming, I
> wonder whether we can find someone with commit privileges, to push this
> change.
> 

Hi,

I've tested this patch too and it solves problems with two different
cams. (powercam v4 and cryptoworks by philips)

Commiting it would be great.

-- 
Pierre

> Stephan
> 
> On Tue, 2010-11-02 at 11:15 +0100, DUBOST Brice wrote: 
>> On 08/08/2010 23:53, DUBOST Brice wrote:
>>> On 15/07/2010 15:20, Stephan Trebels wrote:

 The issue was, that LIBDVBEN50221 did not allow a CAM to re-establish
 the session holding non-MMI resources if using the lowlevel interface.
 The session_number was recorded on open, but not freed on close (which
 IMO is an bug in the code, I attach the scaled down hg changeset). With
 this change, the SMIT CAM with a showtime card works fine according to
 tests so far.

 The effect was, that the CAM tried to constantly close and re-open the
 session and the LIBDVBEN50221 kept telling it, that the resource is
 already allocated to a different session. Additionally this caused the
 library to use the _old_ session number in communications with the CAM,
 which did not even exist anymore, so caused all writes of CA PMTs to
 fail with EINTR.

 Stephan

>>>
>>> Hello
>>>
>>> Just to inform that this patch solves problems with CAM PowerCAM v4.3,
>>> so I think it can interest more people.
>>>
>>> Before gnutv -cammenu (and other applications using libdvben50221) was
>>> returning ti;eout (-3) errors constantly after the display of the system
>>> IDs.
>>>
>>> Now, the menu is working flawlessly
>>>
>>> I cannot test the descrambling for the moment but it improved quite a
>>> lot the situation (communication with th CAM is now possible).
>>>
>>> One note concerning the patch itself, the last "else if (resource_id ==
>>> EN50221_APP_MMI_RESOURCEID)" is useless.
>>>
>>> Best regards
>>>
>>>
>>
>>
>> Hello
>>
>>
>> After more testing this Patches allow several CAM models to work and 
>> don't seem to make any regression.
>>
>> Is there anything to be improved/tested for having it included upstream ?
>>
>> Thank you
>>
>> Regards
>>
> 


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: drivers/media/IR/ir-keytable.c::ir_getkeycode - 'retval' may be used uninitialized

2010-11-02 Thread Dmitry Torokhov
On Tue, Nov 02, 2010 at 12:04:56PM -0400, Jarod Wilson wrote:
> On Sun, Oct 31, 2010 at 6:18 PM, Dmitry Torokhov
>  wrote:
> > On Sunday, October 31, 2010 10:51:21 am Stefan Richter wrote:
> >> Commit 9f470095068e "Input: media/IR - switch to using new keycode
> >> interface" added the following build warning:
> >>
> >> drivers/media/IR/ir-keytable.c: In function 'ir_getkeycode':
> >> drivers/media/IR/ir-keytable.c:363: warning: 'retval' may be used 
> >> uninitialized in this function
> >>
> >> It is due to an actual bug but I don't know the fix.
> >>
> >
> > The patch below should fix it. I wonder if Linus released -rc1 yet...
> 
> Looks like it missed rc1.
> 

Nope, I see it there, 47c5ba53bc5e5f88b5d1bbb97acd25afc27f74eb ;)

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


media-ctl header patch

2010-11-02 Thread Michael Jones
Hi Sergio & Laurent,

Back in July, Sergio submitted a patch "Just include kernel headers" 
(http://www.mail-archive.com/linux-media%40vger.kernel.org/msg20397.html) which 
Laurent didn't yet want to apply.

Now I'm using Laurent's branch "new-api" (and the new media API to match), and 
w/o Sergio's patch, I get a warning:

types.h:13: warning: #warning "Attempt to use kernel headers from user space, 
see http://kernelnewbies.org/KernelHeaders";

With Sergio's patch and setting HDIR, I get rid of this warning.  Laurent, what 
do you think about applying the patch now?  I would ack it if I could, but I 
don't know how to resurrect an old patch.

-- 
Michael Jones

MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[cron job] v4l-dvb daily build: WARNINGS

2010-11-02 Thread Hans Verkuil
This message is generated daily by a cron job that builds v4l-dvb for
the kernels and architectures in the list below.

Results of the daily build of v4l-dvb:

date:Tue Nov  2 19:00:12 CET 2010
path:http://www.linuxtv.org/hg/v4l-dvb
changeset:   15167:abd3aac6644e
git master:   3e6dce76d99b328716b43929b9195adfee1de00c
git media-master: a348e9110ddb5d494e060d989b35dd1f35359d58
gcc version:  i686-linux-gcc (GCC) 4.5.1
host hardware:x86_64
host os:  2.6.32.5

linux-git-armv5: WARNINGS
linux-git-armv5-davinci: WARNINGS
linux-git-armv5-ixp: WARNINGS
linux-git-armv5-omap2: WARNINGS
linux-git-i686: WARNINGS
linux-git-m32r: WARNINGS
linux-git-mips: WARNINGS
linux-git-powerpc64: WARNINGS
linux-git-x86_64: WARNINGS
spec-git: OK
sparse: ERRORS

Detailed results are available here:

http://www.xs4all.nl/~hverkuil/logs/Tuesday.log

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Tuesday.tar.bz2

The V4L-DVB specification from this daily build is here:

http://www.xs4all.nl/~hverkuil/spec/media.html
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PULL] http://www.kernellabs.com/hg/~dheitmueller/v4l-dvb-950q-final

2010-11-02 Thread Devin Heitmueller
On Sat, Oct 9, 2010 at 2:40 PM, Devin Heitmueller
 wrote:
> Hello,
>
> Please pull from the following for some basic fixes related to
> applications such as tvtime hanging when no video is present, as well
> as some quality improvements for analog.
>
> http://www.kernellabs.com/hg/~dheitmueller/v4l-dvb-950q-final
>
> Please let me know if there are any questions/problems.




-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Warnings from latest -git

2010-11-02 Thread Chris Clayton
Thanks for the reply, Mauro.

On Tuesday 02 November 2010, Mauro Carvalho Chehab wrote:
> Em 30-10-2010 04:17, Chris Clayton escreveu:
> > Hi,
> >
> > Please cc me on any reply as I'm not subscribed.
> >
> > Building v2.6.36-9452-g2d10d87 pulled this morning, I get:
> >
> > warning: (DVB_USB_DIB0700 && MEDIA_SUPPORT && DVB_CAPTURE_DRIVERS &&
> > DVB_CORE && DVB_USB && !DVB_FE_CUSTOMISE) selects DVB_DIB8000 which has
> > unmet direct dependencies (MEDIA_SUPPORT && DVB_CAPTURE_DRIVERS &&
> > DVB_FE_CUSTOMISE && DVB_CORE && I2C)
>
> It certainly requires further investigation. From your config file, we
> have, for dib0700:
>
> CONFIG_DVB_USB_DIB0700=m
> CONFIG_MEDIA_SUPPORT=m
> CONFIG_DVB_CAPTURE_DRIVERS=y
> CONFIG_DVB_CORE=m
> CONFIG_DVB_USB=m
> # CONFIG_DVB_FE_CUSTOMISE is not set
>
> And, for dib8000:
>
> CONFIG_MEDIA_SUPPORT=m
> CONFIG_DVB_CAPTURE_DRIVERS=y
> # CONFIG_DVB_FE_CUSTOMISE is not set
> CONFIG_DVB_CORE=m
> CONFIG_I2C=y
>
> Both dib0700 and dib8000 were marked as m:
>
> CONFIG_DVB_DIB8000=m
> CONFIG_DVB_USB_DIB0700=m
>
> So, in this specific example, it actually worked, but we need to find a fix
> for this bug.
>

I may be wrong, but I don't see why DVB_FE_CUSTOMISE is a dependency in these 
two cases. When it is not set, all the FE drivers are built. When it is set, 
the user selects, which drivers are to be built, but what I think the  select 
statements are doing is select drivers without which other selections the user 
has made make little sense. If that's correct, the DVB_FE_CUSTOMISE can simply 
be removed as dependencies.

Let me know if that makes sense and, if it does, I'll bake a patch.

I've now customised anyway, so teh warnings have gone away, but can soon revert 
that to test a fix.

Thanks
Chris

> Cheers,
> Mauro

-- 
The more I see, the more I know. The more I know, the less I understand. 
Changing Man - Paul Weller
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Webcam driver not working: drivers/media/video/gspca/ov519.c device 05a9:4519

2010-11-02 Thread Jean-Francois Moine
On Tue, 2 Nov 2010 12:33:10 +0200
Anca Emanuel  wrote:

> I am using
> http://www.pcausa.com/Utilities/UsbSnoop/SniffUSB-x86-2.0.0006.zip
> now.
> 
> The data:
> http://rapidshare.com/files/428460107/log4.zip
> 
> please let me know if this is what you ask for.

Hi,

Thanks, that's what I wanted. Looking at the trace, I saw that the
capture stopped and restarted 3 or 4 times. May you tell me what
occured?

Anyway, I will try to code your sensor tomorrow. I'll e-mail you when
done.

Best regards.

-- 
Ken ar c'hentañ | ** Breizh ha Linux atav! **
Jef |   http://moinejf.free.fr/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Webcam driver not working: drivers/media/video/gspca/ov519.c device 05a9:4519

2010-11-02 Thread Anca Emanuel
> Hi,
>
> Thanks, that's what I wanted. Looking at the trace, I saw that the
> capture stopped and restarted 3 or 4 times. May you tell me what
> occured?

Just open and close some capture programs.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: New media framework user space usage

2010-11-02 Thread Eino-Ville Talvala

On 11/2/2010 3:31 AM, Bastian Hecht wrote:

Hello Laurent,


I am the first guy needing a 12 bit-bus?

Yes you are :-) You will need to implement 12 bit support in the ISP driver,
or start by hacking the sensor driver to report a 10 bit format (2 bits will
be lost but you should still be able to capture an image).

Isn't that an "officially" supported procedure to drop the least
significant bits?
You gave me the isp configuration
.bus = { .parallel = {
.data_lane_shift= 1,
...
that instructs the isp to use 10 of the 12 bits.



I suspect what Laurent means is that there's no way to send out 12-bit 
raw data to memory without ISP code changes. You can connect up a 12-bit 
sensor and just decimate to 10 bits, but that's not the same as the ISP 
driver supporting the 12-bit data paths that are possible in hardware.


That is, the OMAP3 ISP _is_ capable of writing out raw data to memory 
that's 12 bits per pixel, but the current ISP code hardcodes the data 
lane shift value in the ISP configuration, instead of making it depend 
on format - you'd want GRBG12 to set the data lane shift to 0, and 
GRBG10 or UYVY  (enum names approximate) to set the data lane shift to 
1.  We had a hack deep in the ISP code for a bit that did this, but it 
was hardcoded for the MT9P031, and we abandoned the idea pretty quickly.



Eino-Ville Talvala
Stanford University

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/6] rc-core: ir-core to rc-core conversion

2010-11-02 Thread David Härdeman
This is my current patch queue, the main change is to make struct rc_dev
the primary interface for rc drivers and to abstract away the fact that
there's an input device lurking in there somewhere.

In addition, the cx88 and winbond-cir drivers are converted to use rc-core.

The patchset is now based on current linux-2.6 upstream git tree since it
carries both the v4l patches from the staging/for_v2.6.37-rc1 branch, large
scancode support and bugfixes.

Given the changes, these patches touch every single driver. Obviously I
haven't tested them all due to a lack of hardware (I have made sure that
all drivers compile without any warnings and I have tested the end result
on mceusb and winbond-cir hardware, Jarod Wilson has tested nuvoton-cir,
imon and several mceusb devices).

---

David Härdeman (6):
  ir-core: convert drivers/media/video/cx88 to ir-core
  ir-core: remove remaining users of the ir-functions keyhandlers
  ir-core: more cleanups of ir-functions.c
  ir-core: merge and rename to rc-core
  ir-core: make struct rc_dev the primary interface
  rc-core: convert winbond-cir


 drivers/input/misc/Kconfig  |   18 
 drivers/input/misc/Makefile |1 
 drivers/input/misc/winbond-cir.c| 1608 ---
 drivers/media/IR/Kconfig|   19 
 drivers/media/IR/Makefile   |7 
 drivers/media/IR/ene_ir.c   |  129 +-
 drivers/media/IR/ene_ir.h   |3 
 drivers/media/IR/imon.c |   67 -
 drivers/media/IR/ir-core-priv.h |   26 
 drivers/media/IR/ir-functions.c |  254 
 drivers/media/IR/ir-jvc-decoder.c   |   13 
 drivers/media/IR/ir-keytable.c  |  710 
 drivers/media/IR/ir-lirc-codec.c|  121 +-
 drivers/media/IR/ir-nec-decoder.c   |   15 
 drivers/media/IR/ir-raw-event.c |  382 --
 drivers/media/IR/ir-rc5-decoder.c   |   13 
 drivers/media/IR/ir-rc5-sz-decoder.c|   13 
 drivers/media/IR/ir-rc6-decoder.c   |   17 
 drivers/media/IR/ir-sony-decoder.c  |   11 
 drivers/media/IR/ir-sysfs.c |  362 --
 drivers/media/IR/mceusb.c   |  105 +-
 drivers/media/IR/nuvoton-cir.c  |   85 +
 drivers/media/IR/nuvoton-cir.h  |3 
 drivers/media/IR/rc-main.c  | 1135 +++
 drivers/media/IR/rc-map.c   |  107 --
 drivers/media/IR/rc-raw.c   |  371 ++
 drivers/media/IR/streamzap.c|   66 -
 drivers/media/IR/winbond-cir.c  |  932 
 drivers/media/dvb/dm1105/Kconfig|3 
 drivers/media/dvb/dm1105/dm1105.c   |   42 -
 drivers/media/dvb/dvb-usb/af9015.c  |   16 
 drivers/media/dvb/dvb-usb/anysee.c  |2 
 drivers/media/dvb/dvb-usb/dib0700.h |2 
 drivers/media/dvb/dvb-usb/dib0700_core.c|8 
 drivers/media/dvb/dvb-usb/dib0700_devices.c |  144 +-
 drivers/media/dvb/dvb-usb/dvb-usb-remote.c  |   77 +
 drivers/media/dvb/dvb-usb/dvb-usb.h |   12 
 drivers/media/dvb/dvb-usb/lmedm04.c |   42 -
 drivers/media/dvb/mantis/mantis_common.h|4 
 drivers/media/dvb/mantis/mantis_input.c |   71 +
 drivers/media/dvb/siano/smscoreapi.c|2 
 drivers/media/dvb/siano/smsir.c |   52 -
 drivers/media/dvb/siano/smsir.h |3 
 drivers/media/dvb/ttpci/Kconfig |3 
 drivers/media/dvb/ttpci/budget-ci.c |   49 -
 drivers/media/video/Kconfig |2 
 drivers/media/video/bt8xx/Kconfig   |4 
 drivers/media/video/bt8xx/bttv-input.c  |   73 -
 drivers/media/video/bt8xx/bttvp.h   |1 
 drivers/media/video/cx18/Kconfig|3 
 drivers/media/video/cx231xx/Kconfig |4 
 drivers/media/video/cx23885/cx23885-input.c |   64 +
 drivers/media/video/cx23885/cx23885.h   |3 
 drivers/media/video/cx88/Kconfig|3 
 drivers/media/video/cx88/cx88-input.c   |  233 +---
 drivers/media/video/em28xx/Kconfig  |4 
 drivers/media/video/em28xx/em28xx-input.c   |   72 +
 drivers/media/video/ir-kbd-i2c.c|   28 
 drivers/media/video/ivtv/Kconfig|3 
 drivers/media/video/saa7134/Kconfig |2 
 drivers/media/video/saa7134/saa7134-input.c |  121 +-
 drivers/media/video/tlg2300/Kconfig |4 
 drivers/staging/cx25821/Kconfig |4 
 drivers/staging/go7007/Kconfig  |4 
 drivers/staging/tm6000/tm6000-input.c   |   98 +-
 include/media/ir-common.h   |   38 -
 include/media/ir-core.h |  201 ++-
 include/media/ir-kbd-i2c.h  |7 
 68 files changed, 3410 insertions(+), 4691 deletions(-)
 delete mode 100644 drivers/input/misc/winbond-cir.c
 delete mode 100644 drivers/media/

[PATCH 1/6] ir-core: convert drivers/media/video/cx88 to ir-core

2010-11-02 Thread David Härdeman
This patch converts the cx88 driver (for sampling hw) to use the
decoders provided by ir-core instead of the separate ones provided
by ir-functions (and gets rid of those).

The value for MO_DDS_IO had a comment saying it corresponded to
a 4kHz samplerate. That comment was unfortunately misleading. The
actual samplerate was something like 3250Hz.

The current value has been derived by analyzing the elapsed time
between interrupts for different values (knowing that each interrupt
corresponds to 32 samples).

Thanks to Mariusz Bialonczyk  for testing my patches
(about one a day for two weeks!) on actual hardware.

Signed-off-by: David Härdeman 
Acked-by: Jarod Wilson 
---
 drivers/media/IR/ir-functions.c   |  134 ---
 drivers/media/video/cx88/Kconfig  |2 
 drivers/media/video/cx88/cx88-input.c |  163 +++--
 include/media/ir-common.h |3 -
 4 files changed, 37 insertions(+), 265 deletions(-)

diff --git a/drivers/media/IR/ir-functions.c b/drivers/media/IR/ir-functions.c
index db591e4..f4c4115 100644
--- a/drivers/media/IR/ir-functions.c
+++ b/drivers/media/IR/ir-functions.c
@@ -111,140 +111,6 @@ u32 ir_extract_bits(u32 data, u32 mask)
 }
 EXPORT_SYMBOL_GPL(ir_extract_bits);
 
-static int inline getbit(u32 *samples, int bit)
-{
-   return (samples[bit/32] & (1 << (31-(bit%32 ? 1 : 0;
-}
-
-/* sump raw samples for visual debugging ;) */
-int ir_dump_samples(u32 *samples, int count)
-{
-   int i, bit, start;
-
-   printk(KERN_DEBUG "ir samples: ");
-   start = 0;
-   for (i = 0; i < count * 32; i++) {
-   bit = getbit(samples,i);
-   if (bit)
-   start = 1;
-   if (0 == start)
-   continue;
-   printk("%s", bit ? "#" : "_");
-   }
-   printk("\n");
-   return 0;
-}
-EXPORT_SYMBOL_GPL(ir_dump_samples);
-
-/* decode raw samples, pulse distance coding used by NEC remotes */
-int ir_decode_pulsedistance(u32 *samples, int count, int low, int high)
-{
-   int i,last,bit,len;
-   u32 curBit;
-   u32 value;
-
-   /* find start burst */
-   for (i = len = 0; i < count * 32; i++) {
-   bit = getbit(samples,i);
-   if (bit) {
-   len++;
-   } else {
-   if (len >= 29)
-   break;
-   len = 0;
-   }
-   }
-
-   /* start burst to short */
-   if (len < 29)
-   return 0x;
-
-   /* find start silence */
-   for (len = 0; i < count * 32; i++) {
-   bit = getbit(samples,i);
-   if (bit) {
-   break;
-   } else {
-   len++;
-   }
-   }
-
-   /* silence to short */
-   if (len < 7)
-   return 0x;
-
-   /* go decoding */
-   len   = 0;
-   last = 1;
-   value = 0; curBit = 1;
-   for (; i < count * 32; i++) {
-   bit  = getbit(samples,i);
-   if (last) {
-   if(bit) {
-   continue;
-   } else {
-   len = 1;
-   }
-   } else {
-   if (bit) {
-   if (len > (low + high) /2)
-   value |= curBit;
-   curBit <<= 1;
-   if (curBit == 1)
-   break;
-   } else {
-   len++;
-   }
-   }
-   last = bit;
-   }
-
-   return value;
-}
-EXPORT_SYMBOL_GPL(ir_decode_pulsedistance);
-
-/* decode raw samples, biphase coding, used by rc5 for example */
-int ir_decode_biphase(u32 *samples, int count, int low, int high)
-{
-   int i,last,bit,len,flips;
-   u32 value;
-
-   /* find start bit (1) */
-   for (i = 0; i < 32; i++) {
-   bit = getbit(samples,i);
-   if (bit)
-   break;
-   }
-
-   /* go decoding */
-   len   = 0;
-   flips = 0;
-   value = 1;
-   for (; i < count * 32; i++) {
-   if (len > high)
-   break;
-   if (flips > 1)
-   break;
-   last = bit;
-   bit  = getbit(samples,i);
-   if (last == bit) {
-   len++;
-   continue;
-   }
-   if (len < low) {
-   len++;
-   flips++;
-   continue;
-   }
-   value <<= 1;
-   value |= bit;
-   flips = 0;
-   len   = 1;
-   }
-   return value;
-}
-EXPORT_SYMBOL_GPL(ir_decode_biphase);
-

[PATCH 2/6] ir-core: remove remaining users of the ir-functions keyhandlers

2010-11-02 Thread David Härdeman
This patch removes the remaining usages of the ir_input_nokey() and
ir_input_keydown() functions provided by drivers/media/IR/ir-functions.c
by using the corresponding functionality in ir-core instead.

Signed-off-by: David Härdeman 
Acked-by: Jarod Wilson 
---
 drivers/media/IR/imon.c |9 --
 drivers/media/IR/ir-functions.c |  101 ++---
 drivers/media/IR/ir-keytable.c  |  110 ---
 drivers/media/video/bt8xx/bttv-input.c  |   32 ++--
 drivers/media/video/bt8xx/bttvp.h   |1 
 drivers/media/video/cx88/cx88-input.c   |   11 ++-
 drivers/media/video/ir-kbd-i2c.c|3 -
 drivers/media/video/saa7134/saa7134-input.c |   49 ++--
 drivers/staging/tm6000/tm6000-input.c   |   15 +---
 include/media/ir-common.h   |   31 +---
 include/media/ir-core.h |3 -
 include/media/ir-kbd-i2c.h  |4 -
 12 files changed, 133 insertions(+), 236 deletions(-)

diff --git a/drivers/media/IR/imon.c b/drivers/media/IR/imon.c
index bc11806..79f4f58 100644
--- a/drivers/media/IR/imon.c
+++ b/drivers/media/IR/imon.c
@@ -1479,17 +1479,12 @@ static void imon_incoming_packet(struct imon_context 
*ictx,
bool norelease = false;
int i;
u64 scancode;
-   struct input_dev *rdev = NULL;
-   struct ir_input_dev *irdev = NULL;
int press_type = 0;
int msec;
struct timeval t;
static struct timeval prev_time = { 0, 0 };
u8 ktype;
 
-   rdev = ictx->rdev;
-   irdev = input_get_drvdata(rdev);
-
/* filter out junk data on the older 0xffdc imon devices */
if ((buf[0] == 0xff) && (buf[1] == 0xff) && (buf[2] == 0xff))
return;
@@ -1570,9 +1565,9 @@ static void imon_incoming_packet(struct imon_context 
*ictx,
 
if (ktype != IMON_KEY_PANEL) {
if (press_type == 0)
-   ir_keyup(irdev);
+   ir_keyup(ictx->rdev);
else {
-   ir_keydown(rdev, ictx->rc_scancode, ictx->rc_toggle);
+   ir_keydown(ictx->rdev, ictx->rc_scancode, 
ictx->rc_toggle);
spin_lock_irqsave(&ictx->kc_lock, flags);
ictx->last_keycode = ictx->kc;
spin_unlock_irqrestore(&ictx->kc_lock, flags);
diff --git a/drivers/media/IR/ir-functions.c b/drivers/media/IR/ir-functions.c
index f4c4115..fca734c 100644
--- a/drivers/media/IR/ir-functions.c
+++ b/drivers/media/IR/ir-functions.c
@@ -1,7 +1,7 @@
 /*
- *
- * some common structs and functions to handle infrared remotes via
- * input layer ...
+ * some common functions to handle infrared remote protocol decoding for
+ * drivers which have not yet been (or can't be) converted to use the
+ * regular protocol decoders...
  *
  * (c) 2003 Gerd Knorr  [SuSE Labs]
  *
@@ -31,67 +31,6 @@
 MODULE_AUTHOR("Gerd Knorr  [SuSE Labs]");
 MODULE_LICENSE("GPL");
 
-static int repeat = 1;
-module_param(repeat, int, 0444);
-MODULE_PARM_DESC(repeat,"auto-repeat for IR keys (default: on)");
-
-/* -- 
*/
-
-static void ir_input_key_event(struct input_dev *dev, struct ir_input_state 
*ir)
-{
-   if (KEY_RESERVED == ir->keycode) {
-   printk(KERN_INFO "%s: unknown key: key=0x%02x down=%d\n",
-  dev->name, ir->ir_key, ir->keypressed);
-   return;
-   }
-   IR_dprintk(1,"%s: key event code=%d down=%d\n",
-   dev->name,ir->keycode,ir->keypressed);
-   input_report_key(dev,ir->keycode,ir->keypressed);
-   input_sync(dev);
-}
-
-/* -- 
*/
-
-int ir_input_init(struct input_dev *dev, struct ir_input_state *ir,
- const u64 ir_type)
-{
-   ir->ir_type = ir_type;
-
-   if (repeat)
-   set_bit(EV_REP, dev->evbit);
-
-   return 0;
-}
-EXPORT_SYMBOL_GPL(ir_input_init);
-
-
-void ir_input_nokey(struct input_dev *dev, struct ir_input_state *ir)
-{
-   if (ir->keypressed) {
-   ir->keypressed = 0;
-   ir_input_key_event(dev,ir);
-   }
-}
-EXPORT_SYMBOL_GPL(ir_input_nokey);
-
-void ir_input_keydown(struct input_dev *dev, struct ir_input_state *ir,
- u32 ir_key)
-{
-   u32 keycode = ir_g_keycode_from_table(dev, ir_key);
-
-   if (ir->keypressed && ir->keycode != keycode) {
-   ir->keypressed = 0;
-   ir_input_key_event(dev,ir);
-   }
-   if (!ir->keypressed) {
-   ir->ir_key  = ir_key;
-   ir->keycode = keycode;
-   ir->keypressed = 1;
-   ir_input_key_event(dev,ir);
-   }
-}
-EXPORT_SYMBOL_GPL(ir_input_keydown);
-
 /* -- 
*/
 /* extract

[PATCH 3/6] ir-core: more cleanups of ir-functions.c

2010-11-02 Thread David Härdeman
cx88 only depends on VIDEO_IR because it needs ir_extract_bits().
Move that function to ir-core.h and make it inline.

Lots of drivers had dependencies on VIDEO_IR when they really
wanted IR_CORE.

The only remaining drivers to depend on VIDEO_IR are bt8xx and
saa7134 (ir_rc5_timer_end is the only function exported by
ir-functions).

Rename VIDEO_IR -> IR_LEGACY to give a hint to anyone writing or
converting drivers to IR_CORE that they do not want a dependency
on IR_LEGACY.

Signed-off-by: David Härdeman 
Acked-by: Jarod Wilson 
---
 drivers/media/IR/Kconfig  |2 +-
 drivers/media/IR/Makefile |2 +-
 drivers/media/IR/ir-functions.c   |   19 ---
 drivers/media/dvb/dm1105/Kconfig  |3 +--
 drivers/media/dvb/ttpci/Kconfig   |3 +--
 drivers/media/video/Kconfig   |2 +-
 drivers/media/video/bt8xx/Kconfig |4 ++--
 drivers/media/video/cx18/Kconfig  |3 +--
 drivers/media/video/cx231xx/Kconfig   |4 ++--
 drivers/media/video/cx88/Kconfig  |3 +--
 drivers/media/video/cx88/cx88-input.c |1 -
 drivers/media/video/em28xx/Kconfig|4 ++--
 drivers/media/video/ivtv/Kconfig  |3 +--
 drivers/media/video/saa7134/Kconfig   |2 +-
 drivers/media/video/tlg2300/Kconfig   |4 ++--
 drivers/staging/cx25821/Kconfig   |4 ++--
 drivers/staging/go7007/Kconfig|4 ++--
 include/media/ir-common.h |1 -
 include/media/ir-core.h   |   19 +++
 19 files changed, 40 insertions(+), 47 deletions(-)

diff --git a/drivers/media/IR/Kconfig b/drivers/media/IR/Kconfig
index aa4163e..20e02a0 100644
--- a/drivers/media/IR/Kconfig
+++ b/drivers/media/IR/Kconfig
@@ -10,7 +10,7 @@ menuconfig IR_CORE
  if you don't need IR, as otherwise, you may not be able to
  compile the driver for your adapter.
 
-config VIDEO_IR
+config IR_LEGACY
tristate
depends on IR_CORE
default IR_CORE
diff --git a/drivers/media/IR/Makefile b/drivers/media/IR/Makefile
index f9574ad..38873cf 100644
--- a/drivers/media/IR/Makefile
+++ b/drivers/media/IR/Makefile
@@ -4,7 +4,7 @@ ir-core-objs:= ir-keytable.o ir-sysfs.o ir-raw-event.o 
rc-map.o
 obj-y += keymaps/
 
 obj-$(CONFIG_IR_CORE) += ir-core.o
-obj-$(CONFIG_VIDEO_IR) += ir-common.o
+obj-$(CONFIG_IR_LEGACY) += ir-common.o
 obj-$(CONFIG_LIRC) += lirc_dev.o
 obj-$(CONFIG_IR_NEC_DECODER) += ir-nec-decoder.o
 obj-$(CONFIG_IR_RC5_DECODER) += ir-rc5-decoder.o
diff --git a/drivers/media/IR/ir-functions.c b/drivers/media/IR/ir-functions.c
index fca734c..ec021c9 100644
--- a/drivers/media/IR/ir-functions.c
+++ b/drivers/media/IR/ir-functions.c
@@ -31,25 +31,6 @@
 MODULE_AUTHOR("Gerd Knorr  [SuSE Labs]");
 MODULE_LICENSE("GPL");
 
-/* -- 
*/
-/* extract mask bits out of data and pack them into the result */
-u32 ir_extract_bits(u32 data, u32 mask)
-{
-   u32 vbit = 1, value = 0;
-
-   do {
-   if (mask&1) {
-   if (data&1)
-   value |= vbit;
-   vbit<<=1;
-   }
-   data>>=1;
-   } while (mask>>=1);
-
-   return value;
-}
-EXPORT_SYMBOL_GPL(ir_extract_bits);
-
 /* RC5 decoding stuff, moved from bttv-input.c to share it with
  * saa7134 */
 
diff --git a/drivers/media/dvb/dm1105/Kconfig b/drivers/media/dvb/dm1105/Kconfig
index a6ceb08..576f3b7 100644
--- a/drivers/media/dvb/dm1105/Kconfig
+++ b/drivers/media/dvb/dm1105/Kconfig
@@ -1,7 +1,6 @@
 config DVB_DM1105
tristate "SDMC DM1105 based PCI cards"
depends on DVB_CORE && PCI && I2C
-   depends on INPUT
select DVB_PLL if !DVB_FE_CUSTOMISE
select DVB_STV0299 if !DVB_FE_CUSTOMISE
select DVB_STV0288 if !DVB_FE_CUSTOMISE
@@ -9,7 +8,7 @@ config DVB_DM1105
select DVB_CX24116 if !DVB_FE_CUSTOMISE
select DVB_SI21XX if !DVB_FE_CUSTOMISE
select DVB_DS3000 if !DVB_FE_CUSTOMISE
-   depends on VIDEO_IR
+   depends on IR_CORE
help
  Support for cards based on the SDMC DM1105 PCI chip like
  DvbWorld 2002
diff --git a/drivers/media/dvb/ttpci/Kconfig b/drivers/media/dvb/ttpci/Kconfig
index debea8d..0ffd694 100644
--- a/drivers/media/dvb/ttpci/Kconfig
+++ b/drivers/media/dvb/ttpci/Kconfig
@@ -89,7 +89,6 @@ config DVB_BUDGET
 config DVB_BUDGET_CI
tristate "Budget cards with onboard CI connector"
depends on DVB_BUDGET_CORE && I2C
-   depends on INPUT # due to IR
select DVB_STV0297 if !DVB_FE_CUSTOMISE
select DVB_STV0299 if !DVB_FE_CUSTOMISE
select DVB_TDA1004X if !DVB_FE_CUSTOMISE
@@ -98,7 +97,7 @@ config DVB_BUDGET_CI
select DVB_LNBP21 if !DVB_FE_CUSTOMISE
select DVB_TDA10023 if !DVB_FE_CUSTOMISE
select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMISE
-   depends on VIDEO_IR
+   depends on IR_CORE
help
  Support for simple SAA7146 based DVB

Re: drivers/media/IR/ir-keytable.c::ir_getkeycode - 'retval' may be used uninitialized

2010-11-02 Thread Jarod Wilson
On Tue, Nov 2, 2010 at 12:24 PM, Dmitry Torokhov
 wrote:
> On Tue, Nov 02, 2010 at 12:04:56PM -0400, Jarod Wilson wrote:
>> On Sun, Oct 31, 2010 at 6:18 PM, Dmitry Torokhov
>>  wrote:
>> > On Sunday, October 31, 2010 10:51:21 am Stefan Richter wrote:
>> >> Commit 9f470095068e "Input: media/IR - switch to using new keycode
>> >> interface" added the following build warning:
>> >>
>> >> drivers/media/IR/ir-keytable.c: In function 'ir_getkeycode':
>> >> drivers/media/IR/ir-keytable.c:363: warning: 'retval' may be used 
>> >> uninitialized in this function
>> >>
>> >> It is due to an actual bug but I don't know the fix.
>> >>
>> >
>> > The patch below should fix it. I wonder if Linus released -rc1 yet...
>>
>> Looks like it missed rc1.
>>
>
> Nope, I see it there, 47c5ba53bc5e5f88b5d1bbb97acd25afc27f74eb ;)

Oh, damn. Sorry for the noise... I blame it on my cold... :)

-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/6] rc-core: ir-core to rc-core conversion

2010-11-02 Thread Jarod Wilson
On Tue, Nov 2, 2010 at 4:17 PM, David Härdeman  wrote:
> This is my current patch queue, the main change is to make struct rc_dev
> the primary interface for rc drivers and to abstract away the fact that
> there's an input device lurking in there somewhere.
>
> In addition, the cx88 and winbond-cir drivers are converted to use rc-core.
>
> The patchset is now based on current linux-2.6 upstream git tree since it
> carries both the v4l patches from the staging/for_v2.6.37-rc1 branch, large
> scancode support and bugfixes.
>
> Given the changes, these patches touch every single driver. Obviously I
> haven't tested them all due to a lack of hardware (I have made sure that
> all drivers compile without any warnings and I have tested the end result
> on mceusb and winbond-cir hardware, Jarod Wilson has tested nuvoton-cir,
> imon and several mceusb devices).

And streamzap! :)

Mauro's at the kernel summit, but I had a brief moment to talk to him
earlier today. He had a few issues he wanted to give feedback on, but
I didn't get any specifics yet, other than him not liking the rc-map.c
bits merged into rc-main.c, mainly because part of the plan is to
remove in-kernel maps entirely in 2.6.38. It doesn't make a big
difference to me either way, and rc-main.c is still only 1300-ish
lines, and would be even less once rc-map.c bits are ripped out...

-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC PATCH 0/2] Apple remote support

2010-11-02 Thread Jarod Wilson
On Mon, Nov 1, 2010 at 5:56 PM, David Härdeman  wrote:
> On Sat, Oct 30, 2010 at 10:32:14PM -0400, Jarod Wilson wrote:
>> On Sat, Oct 30, 2010 at 7:36 PM, David Härdeman  wrote:
>> > In that case, one solution would be:
>> >
>> > * using the full 32 bit scancode
>> > * add a module parameter to squash the ID byte to zero
>> > * default the module parameter to true
>> > * create a keymap suitable for ID = 0x00
>> >
>> > Users who really want to distinguish remotes can then change the module
>> > parameter and generate a keymap for their particular ID. Most others
>> > will be blissfully unaware of this feature.
>>
>> I was thinking something similar but slightly different. I think ID =
>> 0x00 is a valid ID byte, so I was thinking static int pair_id = -1; to
>> start out. This would be a stand-alone apple-only decoder, so we'd
>> look for the apple identifier bytes, bail if not found. We'd also look
>> at the ID byte, and if pair_id is 0-255, we'd bail if the ID byte
>> didn't match it. The scancode we'd actually use to match the key table
>> would be just the one command byte. It seems to make sense in my head,
>> at least.
>
> But you'd lose the ability to support two different remotes with
> different ID's (if you want different mappings in the keymap).

Hm, true. How likely are people to want to do that, I wonder?

So alternatively, rather than a pair_id param, could use a
check_pair_byte param. If 0, then just & 0xff the pair byte, and have
0xff there in the default keymap (using all 32 bits for each code) or
just don't make it part of the scancode and use 24 bits. If
check_pair_byte = 1, pass the pair byte along unmodified, using all 32
bits for the scancode. Would also require the user to add the
remote-specific 32-bit codes though. But we're moving towards keymaps
being uploaded from userspace anyway, so perhaps that's not a big
deal. Would rather avoid the default keymap having 256 entries for
every key for every pair id variant.

-- 
Jarod Wilson
ja...@wilsonet.com
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH][UPDATE_for_2.6.37] DM04/QQBOX Corrected Firmware Information.

2010-11-02 Thread Malcolm Priestley
Corrected Firmware Information for LG on LME2510.


Signed-off-by: Malcolm Priestley 






diff --git a/Documentation/dvb/lmedm04.txt b/Documentation/dvb/lmedm04.txt
old mode 100755
new mode 100644
index e175784..6418865
--- a/Documentation/dvb/lmedm04.txt
+++ b/Documentation/dvb/lmedm04.txt
@@ -46,7 +46,7 @@ and run
 Other LG firmware can be extracted manually from US280D.sys
 only found in windows/system32/driver.
 
-dd if=US280D.sys ibs=1 skip=42616 count=3668 of=dvb-usb-lme2510-lg.fw
+dd if=US280D.sys ibs=1 skip=42360 count=3924 of=dvb-usb-lme2510-lg.fw
 
 for DM04 LME2510C (LG Tuner)
 ---

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/3] mceusb: fix up reporting of trailing space

2010-11-02 Thread Jarod Wilson
On Fri, Oct 29, 2010 at 09:21:21PM +0200, David Härdeman wrote:
> On Thu, Oct 28, 2010 at 11:08:10PM -0400, Jarod Wilson wrote:
> > We were storing a bunch of spaces at the end of each signal, rather than
> > a single long space. The in-kernel decoders were actually okay with
> > this, but lirc isn't. Both are happy again with this change, which
> > starts accumulating data upon seeing an 0x7f space, and then stores it
> > when we see the next non-space, non-0x7f space, or an 0x80 end of signal
> > command. To get to that final 0x80 properly, we also need to support
> > proper parsing of 0x9f 0x01 commands, support for which is also added.
> 
> I think the driver could be further simplified by using 
> ir_raw_event_store_with_filter(), right?

And in fact, it is. I've got a new series of patches redone atop your
rc-core patch series that includes usage of _with_filter in mceusb.

http://git.kernel.org/?p=linux/kernel/git/jarod/linux-2.6-ir.git;a=shortlog;h=refs/heads/staging

And more specifically, the update of this patch:

http://git.kernel.org/?p=linux/kernel/git/jarod/linux-2.6-ir.git;a=commitdiff;h=bc3d1300cd2d51dc8d877be343382d8932320dfc

Still a bit of testing to do before I send v2 off to the list, plus I'd
like to know where we're at w/your patches first wrt getting them
committed, just in case I need to rework them slightly.

-- 
Jarod Wilson
ja...@redhat.com

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [Ksummit-2010-discuss] [v2] Remaining BKL users, what to do

2010-11-02 Thread Pavel Machek
Hi!

> @@ -79,6 +79,10 @@ static struct drm_driver driver = {
>  
>  static int __init i810_init(void)
>  {
> + if (num_present_cpus() > 1) {
> + pr_err("drm/i810 does not support SMP\n");
> + return -EINVAL;
> + }
>   driver.num_ioctls = i810_max_ioctl;
>   return drm_init(&driver);

Umm, and now someone onlines second cpu?

Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html