Re: [PATCH 3/4] soc-camera: add support for camera-host controls

2009-06-12 Thread Guennadi Liakhovetski
On Fri, 12 Jun 2009, Dongsoo, Nathaniel Kim wrote:

 Hello Guennadi,
 
 So let's assume that camera interface device can process
 V4L2_CID_SHARPNESS and even external camera device can process that,
 then according to your patch both of camera interface and external
 camera device can be issued to process V4L2_CID_SHARPNESS which I
 guess will make image sharpened twice. Am I getting the patch right?

Please, do not top-post!

I am sorry, is it really so difficult to understand

   +               ret = ici-ops-set_ctrl(icd, ctrl);
   +               if (ret != -ENOIOCTLCMD)
   +                       return ret;

which means just one thing: the camera host (interface if you like) driver 
decides, whether it wants client's control to be called, in which case it 
has to return -ENOIOCTLCMD, or it returns any other code (0 or a negative 
error code), then the client will not be called.

 If I'm getting right, it might be better to give user make a choice
 through platform data or some sort of variable which can make a choice
 between camera interface and camera device to process the CID. It
 could be just in aspect of manufacturer mind, we do love to make a
 choice between same features in different devices in easy way. So
 never mind if my idea is not helpful making your driver elegant :-)

So far it seems too much to me. Let's wait until we get a case where it 
really makes sense for platform code to decide who processes certain 
controls. I think giving the host driver the power to decide should be ok 
for now.

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: GPL code for Omnivision USB video camera available.

2009-06-12 Thread Hans de Goede



On 06/12/2009 03:02 AM, Erik de Castro Lopo wrote:

Hi all,

I have a driver for a USB video camera that I'd like to see added to
the mainline kernel, mainly so I don't have to fix breakage due to
constant changes in the kernel :-).

The code is GPL and is available here:

 http://stage.bcode.com/erikd/ovcamchip

and the history of this code is here:

 http://stage.bcode.com/erikd/ovcamchip/README

My problem is that I am way too busy to sheperd this into the kernel
myself. If someone is willing to work on getting this in, I can send
them a camera to keep. If getting paid is more likely to help someone
focus on the task then that is also a possibility.

Any takers? Please email me privately.



This looks to me like its just ov51x-jpeg made to compile with the
latest kernel. Did you make any functional changes?

Note that ov51x-jpeg is not acceptable as is as it does in kernel
decompression of the ov51x jpeg-like compression format.

I'm currently finishing up adding ov511(+) and ov518(+) support
to the gspca ov519 subdriver. And I've already added support for
decompressing their format in userspace to libv4l.

Also I wonder if you're subscribed to the (low trafic) ov51x-jpeg
mailinglist, that seems to be the right thing todo for someone who tries
to get that driver in to the mainline. I've already announced my
work on getting the ov511(+) and ov518(+) supported properly in the
mainline kernel there.

May I ask what cam you have? I could certainly use more people testing
this.

Regards,

Hans
--
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


[PULL] http://www.linuxtv.org/hg/~hverkuil/v4l-dvb

2009-06-12 Thread Hans Verkuil
Hi Mauro,

Please pull from http://www.linuxtv.org/hg/~hverkuil/v4l-dvb for the following:

- v4l: i2c modules must be linked before the v4l2 drivers

This fixes the linking bug introduced in 2.6.30.

I've also attached a diff with the same changes that applies directly to the
2.6.30 release.

Thanks,

Hans

diffstat:
 Makefile |   70 +--
 saa7134/Makefile |3 --
 2 files changed, 38 insertions(+), 35 deletions(-)

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom
diff -ur linux/drivers/media/video.org/Makefile linux/drivers/media/video/Makefile
--- linux/drivers/media/video.org/Makefile	2009-06-12 08:42:20.0 +0200
+++ linux/drivers/media/video/Makefile	2009-06-12 00:45:46.0 +0200
@@ -12,6 +12,8 @@
 
 videodev-objs	:=	v4l2-dev.o v4l2-ioctl.o v4l2-device.o
 
+# V4L2 core modules
+
 obj-$(CONFIG_VIDEO_DEV) += videodev.o v4l2-int-device.o
 ifeq ($(CONFIG_COMPAT),y)
   obj-$(CONFIG_VIDEO_DEV) += v4l2-compat-ioctl32.o
@@ -23,21 +25,15 @@
   obj-$(CONFIG_VIDEO_DEV) += v4l1-compat.o
 endif
 
-obj-$(CONFIG_VIDEO_TUNER) += tuner.o
+# All i2c modules must come first:
 
-obj-$(CONFIG_VIDEO_BT848) += bt8xx/
-obj-$(CONFIG_VIDEO_IR_I2C)  += ir-kbd-i2c.o
+obj-$(CONFIG_VIDEO_TUNER) += tuner.o
 obj-$(CONFIG_VIDEO_TVAUDIO) += tvaudio.o
 obj-$(CONFIG_VIDEO_TDA7432) += tda7432.o
 obj-$(CONFIG_VIDEO_TDA9875) += tda9875.o
-
 obj-$(CONFIG_VIDEO_SAA6588) += saa6588.o
 obj-$(CONFIG_VIDEO_SAA5246A) += saa5246a.o
 obj-$(CONFIG_VIDEO_SAA5249) += saa5249.o
-obj-$(CONFIG_VIDEO_CQCAM) += c-qcam.o
-obj-$(CONFIG_VIDEO_BWQCAM) += bw-qcam.o
-obj-$(CONFIG_VIDEO_W9966) += w9966.o
-
 obj-$(CONFIG_VIDEO_TDA9840) += tda9840.o
 obj-$(CONFIG_VIDEO_TEA6415C) += tea6415c.o
 obj-$(CONFIG_VIDEO_TEA6420) += tea6420.o
@@ -54,11 +50,40 @@
 obj-$(CONFIG_VIDEO_BT856) += bt856.o
 obj-$(CONFIG_VIDEO_BT866) += bt866.o
 obj-$(CONFIG_VIDEO_KS0127) += ks0127.o
+obj-$(CONFIG_VIDEO_VINO) += indycam.o
+obj-$(CONFIG_VIDEO_TVP5150) += tvp5150.o
+obj-$(CONFIG_VIDEO_TVP514X) += tvp514x.o
+obj-$(CONFIG_VIDEO_MSP3400) += msp3400.o
+obj-$(CONFIG_VIDEO_CS5345) += cs5345.o
+obj-$(CONFIG_VIDEO_CS53L32A) += cs53l32a.o
+obj-$(CONFIG_VIDEO_M52790) += m52790.o
+obj-$(CONFIG_VIDEO_TLV320AIC23B) += tlv320aic23b.o
+obj-$(CONFIG_VIDEO_WM8775) += wm8775.o
+obj-$(CONFIG_VIDEO_WM8739) += wm8739.o
+obj-$(CONFIG_VIDEO_VP27SMPX) += vp27smpx.o
+obj-$(CONFIG_VIDEO_CX25840) += cx25840/
+obj-$(CONFIG_VIDEO_UPD64031A) += upd64031a.o
+obj-$(CONFIG_VIDEO_UPD64083) += upd64083.o
+obj-$(CONFIG_VIDEO_OV7670) 	+= ov7670.o
+obj-$(CONFIG_VIDEO_TCM825X) += tcm825x.o
+obj-$(CONFIG_VIDEO_TVEEPROM) += tveeprom.o
 
-obj-$(CONFIG_VIDEO_ZORAN) += zoran/
+obj-$(CONFIG_SOC_CAMERA_MT9M001)	+= mt9m001.o
+obj-$(CONFIG_SOC_CAMERA_MT9M111)	+= mt9m111.o
+obj-$(CONFIG_SOC_CAMERA_MT9T031)	+= mt9t031.o
+obj-$(CONFIG_SOC_CAMERA_MT9V022)	+= mt9v022.o
+obj-$(CONFIG_SOC_CAMERA_OV772X)		+= ov772x.o
+obj-$(CONFIG_SOC_CAMERA_TW9910)		+= tw9910.o
 
+# And now the v4l2 drivers:
+
+obj-$(CONFIG_VIDEO_BT848) += bt8xx/
+obj-$(CONFIG_VIDEO_ZORAN) += zoran/
+obj-$(CONFIG_VIDEO_CQCAM) += c-qcam.o
+obj-$(CONFIG_VIDEO_BWQCAM) += bw-qcam.o
+obj-$(CONFIG_VIDEO_W9966) += w9966.o
 obj-$(CONFIG_VIDEO_PMS) += pms.o
-obj-$(CONFIG_VIDEO_VINO) += vino.o indycam.o
+obj-$(CONFIG_VIDEO_VINO) += vino.o
 obj-$(CONFIG_VIDEO_STRADIS) += stradis.o
 obj-$(CONFIG_VIDEO_CPIA) += cpia.o
 obj-$(CONFIG_VIDEO_CPIA_PP) += cpia_pp.o
@@ -69,17 +94,7 @@
 obj-$(CONFIG_VIDEO_EM28XX) += em28xx/
 obj-$(CONFIG_VIDEO_CX231XX) += cx231xx/
 obj-$(CONFIG_VIDEO_USBVISION) += usbvision/
-obj-$(CONFIG_VIDEO_TVP5150) += tvp5150.o
-obj-$(CONFIG_VIDEO_TVP514X) += tvp514x.o
 obj-$(CONFIG_VIDEO_PVRUSB2) += pvrusb2/
-obj-$(CONFIG_VIDEO_MSP3400) += msp3400.o
-obj-$(CONFIG_VIDEO_CS5345) += cs5345.o
-obj-$(CONFIG_VIDEO_CS53L32A) += cs53l32a.o
-obj-$(CONFIG_VIDEO_M52790) += m52790.o
-obj-$(CONFIG_VIDEO_TLV320AIC23B) += tlv320aic23b.o
-obj-$(CONFIG_VIDEO_WM8775) += wm8775.o
-obj-$(CONFIG_VIDEO_WM8739) += wm8739.o
-obj-$(CONFIG_VIDEO_VP27SMPX) += vp27smpx.o
 obj-$(CONFIG_VIDEO_OVCAMCHIP) += ovcamchip/
 obj-$(CONFIG_VIDEO_CPIA2) += cpia2/
 obj-$(CONFIG_VIDEO_MXB) += mxb.o
@@ -92,19 +107,12 @@
 obj-$(CONFIG_VIDEOBUF_VMALLOC) += videobuf-vmalloc.o
 obj-$(CONFIG_VIDEOBUF_DVB) += videobuf-dvb.o
 obj-$(CONFIG_VIDEO_BTCX)  += btcx-risc.o
-obj-$(CONFIG_VIDEO_TVEEPROM) += tveeprom.o
 
 obj-$(CONFIG_VIDEO_M32R_AR_M64278) += arv.o
 
-obj-$(CONFIG_VIDEO_CX25840) += cx25840/
-obj-$(CONFIG_VIDEO_UPD64031A) += upd64031a.o
-obj-$(CONFIG_VIDEO_UPD64083) += upd64083.o
 obj-$(CONFIG_VIDEO_CX2341X) += cx2341x.o
 
 obj-$(CONFIG_VIDEO_CAFE_CCIC) += cafe_ccic.o
-obj-$(CONFIG_VIDEO_OV7670) 	+= ov7670.o
-
-obj-$(CONFIG_VIDEO_TCM825X) += tcm825x.o
 
 obj-$(CONFIG_USB_DABUSB)+= dabusb.o
 obj-$(CONFIG_USB_OV511) += ov511.o
@@ -134,24 +142,21 @@
 obj-$(CONFIG_VIDEO_VIVI) += vivi.o
 obj-$(CONFIG_VIDEO_CX23885) += cx23885/
 
+obj-$(CONFIG_VIDEO_OMAP2)		+= omap2cam.o
+obj-$(CONFIG_SOC_CAMERA)		

[PULL] http://linuxtv.org/hg/~jfrancois/v4l-dvb/

2009-06-12 Thread Jean-Francois Moine
Hi Mauro,

Please pull from http://linuxtv.org/hg/~jfrancois/v4l-dvb

for the following 5 changesets:

01/05: gspca - spca505: Reinitialize the webcam at resume time.
http://linuxtv.org/hg/~jfrancois/v4l-dvb?cmd=changeset;node=61038fe967ba

02/05: gspca - ov519: Add support for the ov518 bridge.
http://linuxtv.org/hg/~jfrancois/v4l-dvb?cmd=changeset;node=1deebaddcd75

03/05: gspca - doc: Add the 05a9:a518 webcam to the Documentation.
http://linuxtv.org/hg/~jfrancois/v4l-dvb?cmd=changeset;node=fad82d75076a

04/05: gspca - main: Skip disabled controls.
http://linuxtv.org/hg/~jfrancois/v4l-dvb?cmd=changeset;node=e86acef4fcfe

05/05: gspca - ov534: Do the ov772x work again.
http://linuxtv.org/hg/~jfrancois/v4l-dvb?cmd=changeset;node=42367b10eb99


 Documentation/video4linux/gspca.txt |5 
 drivers/media/video/gspca/gspca.c   |  122 
 drivers/media/video/gspca/ov519.c   |  520 +---
 drivers/media/video/gspca/ov534.c   |4 
 drivers/media/video/gspca/spca505.c |   14 
 include/linux/videodev2.h   |3 
 6 files changed, 562 insertions(+), 106 deletions(-)

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: [PATCH 3/4] soc-camera: add support for camera-host controls

2009-06-12 Thread Dongsoo, Nathaniel Kim
On Fri, Jun 12, 2009 at 3:30 PM, Guennadi
Liakhovetskig.liakhovet...@gmx.de wrote:
 On Fri, 12 Jun 2009, Dongsoo, Nathaniel Kim wrote:

 Hello Guennadi,

 So let's assume that camera interface device can process
 V4L2_CID_SHARPNESS and even external camera device can process that,
 then according to your patch both of camera interface and external
 camera device can be issued to process V4L2_CID_SHARPNESS which I
 guess will make image sharpened twice. Am I getting the patch right?

 Please, do not top-post!

Sorry for top-posting. just forgot the netiquette.


 I am sorry, is it really so difficult to understand

   +               ret = ici-ops-set_ctrl(icd, ctrl);
   +               if (ret != -ENOIOCTLCMD)
   +                       return ret;

 which means just one thing: the camera host (interface if you like) driver
 decides, whether it wants client's control to be called, in which case it
 has to return -ENOIOCTLCMD, or it returns any other code (0 or a negative
 error code), then the client will not be called.


yes I understand what you intended. but what I wanted to tell you was
with this way, user should modify the camera host driver if they want
to make camera host to return -ENOIOCTLCMD.

 If I'm getting right, it might be better to give user make a choice
 through platform data or some sort of variable which can make a choice
 between camera interface and camera device to process the CID. It
 could be just in aspect of manufacturer mind, we do love to make a
 choice between same features in different devices in easy way. So
 never mind if my idea is not helpful making your driver elegant :-)

 So far it seems too much to me. Let's wait until we get a case where it
 really makes sense for platform code to decide who processes certain
 controls. I think giving the host driver the power to decide should be ok
 for now.


I totally understand. you are already doing a great job. I won't push you.
Cheers,

Nate

 Thanks
 Guennadi
 ---
 Guennadi Liakhovetski, Ph.D.
 Freelance Open-Source Software Developer
 http://www.open-technology.de/




-- 
=
DongSoo, Nathaniel Kim
Engineer
Mobile S/W Platform Lab.
Digital Media  Communications RD Centre
Samsung Electronics CO., LTD.
e-mail : dongsoo@gmail.com
  dongsoo45@samsung.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: [v4l-dvb-maintainer] 2.6.30: missing audio device in bttv

2009-06-12 Thread Jean Delvare
On Fri, 12 Jun 2009 01:18:20 +0200, Hans Verkuil wrote:
 On Friday 12 June 2009 01:07:46 Mauro Carvalho Chehab wrote:
  I suspect that we'll need to work with the initialization order after the 
  new
  i2c binding model to avoid such troubles.
  
  I remember that we had a similar issue with alsa and saa7134. At the end, 
  Linus [1]
  had to do add this, as a quick hack (unfortunately, it is still there - it
  seems that alsa guys forgot about that issue):
  
  late_initcall(saa7134_alsa_init);
  
  On that time, he suggested the usage of subsys_initcall() for alsa. I 
  suspect
  that we'll need to do the same for I2C and for V4L core. I'm not sure what
  would be the alternative to be done with i2c ancillary drivers.
  
  Maybe one alternative would be to use fs_initcall, that seems to be already
  used by some non-fs related calls, like cpu governor [2].
 
 As long as the i2c modules come first there shouldn't be any problem. That's
 pretty easy to arrange. So the i2c core inits first, then i2c drivers, then
 v4l2 drivers. That's the proper order.

This is already what we have in 2.6.30 as far as I can see.

 The ir-kbd-i2c module needed to be after the v4l2 modules since that still
 relies on autoprobing. If it comes first, then it seems to mess up tveeprom
 for some reason. Once ir-kbd-i2c no longer does autoprobing, then it probably
 should move back to the other i2c modules.

Hopefully this will happen in the next few days :)

-- 
Jean Delvare
--
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: [linux-dvb] SDMC DM1105N not being detected

2009-06-12 Thread Igor M. Liplianin
On 6 June 2009 23:37:47 Simon Kenyon wrote:
 Igor M. Liplianin wrote:
  On 5 June 2009 21:41:46 Simon Kenyon wrote:
  Simon Kenyon wrote:
  Simon Kenyon wrote:
  the picture seems to be breaking up badly
  will revert to my version and see if that fixes it
 
  [sorry for the delay. i was away on business]
 
  i've checked and your original code, modified to compile and including
  my changes to control the LNB works very well; the patch you posted
  does not. i have swapped between the two and rebooted several times to
  make sure.
 
  i will do a diff and see what the differences are
 
  regards
  --
  simon
 
  the main changes seem to be a reworking of the interrupt handling and
  some i2c changes
  --
  simon
 
  How fast is your system?

 reasonably fast
 it is a dual core AMD64 X2 running at 3.1GHz


Main change is to move demuxing from interrupt to work handler.
So I prepaired another patch, with separate work queue.
May be you find some time to test.

I wonder CPU usage and interrupts count(cat /proc/interrupts) while viewing 
DVB. 
I guess your card generates a lot of unnecessary(unknown ?) irq's.

Another idea is to increase dma buffer.
# HG changeset patch
# User Igor M. Liplianin liplia...@me.by
# Date 1244794252 -10800
# Node ID cd2cbde46892c2ad8258dd3162c5585e542afd50
# Parent  bff77ec331161c660be7a60bf6139df000758480
Add support for yet another SDMC DM1105 based DVB-S card.

From: Igor M. Liplianin liplia...@me.by

Add support for SDMC DM1105 based DVB-S cards with PCI ID 195d:1105

Signed-off-by: Igor M. Liplianin liplia...@me.by

diff -r bff77ec33116 -r cd2cbde46892 linux/drivers/media/dvb/dm1105/dm1105.c
--- a/linux/drivers/media/dvb/dm1105/dm1105.c	Thu Jun 11 18:44:23 2009 -0300
+++ b/linux/drivers/media/dvb/dm1105/dm1105.c	Fri Jun 12 11:10:52 2009 +0300
@@ -51,6 +51,9 @@
 #ifndef PCI_VENDOR_ID_TRIGEM
 #define PCI_VENDOR_ID_TRIGEM	0x109f
 #endif
+#ifndef PCI_VENDOR_ID_AXESS
+#define PCI_VENDOR_ID_AXESS	0x195d
+#endif
 #ifndef PCI_DEVICE_ID_DM1105
 #define PCI_DEVICE_ID_DM1105	0x036f
 #endif
@@ -60,6 +63,9 @@
 #ifndef PCI_DEVICE_ID_DW2004
 #define PCI_DEVICE_ID_DW2004	0x2004
 #endif
+#ifndef PCI_DEVICE_ID_DM05
+#define PCI_DEVICE_ID_DM05	0x1105
+#endif
 /* --- */
 /* sdmc dm1105 registers */
 
@@ -150,6 +156,11 @@
 #define DM1105_LNB_13V0x00010100
 #define DM1105_LNB_18V0x0100
 
+/* GPIO's for LNB power control for Axess DM05 */
+#define DM05_LNB_MASK0x
+#define DM05_LNB_13V0x0002
+#define DM05_LNB_18V0x0003
+
 static int ir_debug;
 module_param(ir_debug, int, 0644);
 MODULE_PARM_DESC(ir_debug, enable debugging information for IR decoding);
@@ -188,6 +199,8 @@
 
 	/* irq */
 	struct work_struct work;
+	struct workqueue_struct *wq;
+	char wqn[16];
 
 	/* dma */
 	dma_addr_t dma_addr;
@@ -316,15 +329,25 @@
 static int dm1105dvb_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
 {
 	struct dm1105dvb *dm1105dvb = frontend_to_dm1105dvb(fe);
+	u32 lnb_mask, lnb_13v, lnb_18v;
 
-		if (voltage == SEC_VOLTAGE_18) {
-			outl(DM1105_LNB_MASK, dm_io_mem(DM1105_GPIOCTR));
-			outl(DM1105_LNB_18V, dm_io_mem(DM1105_GPIOVAL));
-		} else	{
-		/*LNB ON-13V by default!*/
-			outl(DM1105_LNB_MASK, dm_io_mem(DM1105_GPIOCTR));
-			outl(DM1105_LNB_13V, dm_io_mem(DM1105_GPIOVAL));
-		}
+	switch (dm1105dvb-pdev-subsystem_device) {
+	case PCI_DEVICE_ID_DM05:
+		lnb_mask = DM05_LNB_MASK;
+		lnb_13v = DM05_LNB_13V;
+		lnb_18v = DM05_LNB_18V;
+		break;
+	default:
+		lnb_mask = DM1105_LNB_MASK;
+		lnb_13v = DM1105_LNB_13V;
+		lnb_18v = DM1105_LNB_18V;
+	}
+
+	outl(lnb_mask, dm_io_mem(DM1105_GPIOCTR));
+	if (voltage == SEC_VOLTAGE_18)
+		outl(lnb_18v , dm_io_mem(DM1105_GPIOVAL));
+	else
+		outl(lnb_13v, dm_io_mem(DM1105_GPIOVAL));
 
 	return 0;
 }
@@ -463,7 +486,7 @@
 	case (INTSTS_TSIRQ | INTSTS_IR):
 		dm1105dvb-nextwrp = inl(dm_io_mem(DM1105_WRP)) -
 	inl(dm_io_mem(DM1105_STADR));
-		schedule_work(dm1105dvb-work);
+		queue_work(dm1105dvb-wq, dm1105dvb-work);
 		break;
 	case INTSTS_IR:
 		dm1105dvb-ir.ir_command = inl(dm_io_mem(DM1105_IRCODE));
@@ -599,46 +622,44 @@
 	int ret;
 
 	switch (dm1105dvb-pdev-subsystem_device) {
-	case PCI_DEVICE_ID_DW2002:
-		dm1105dvb-fe = dvb_attach(
-			stv0299_attach, sharp_z0194a_config,
-			dm1105dvb-i2c_adap);
-
-		if (dm1105dvb-fe) {
-			dm1105dvb-fe-ops.set_voltage =
-			dm1105dvb_set_voltage;
-			dvb_attach(dvb_pll_attach, dm1105dvb-fe, 0x60,
-	dm1105dvb-i2c_adap, DVB_PLL_OPERA1);
-		}
-
-		if (!dm1105dvb-fe) {
-			dm1105dvb-fe = dvb_attach(
-stv0288_attach, earda_config,
-dm1105dvb-i2c_adap);
-			if (dm1105dvb-fe) {
-dm1105dvb-fe-ops.set_voltage =
-			dm1105dvb_set_voltage;
-dvb_attach(stb6000_attach, dm1105dvb-fe, 0x61,
-		dm1105dvb-i2c_adap);
-			}
-		}
-
-		if (!dm1105dvb-fe) {
-			dm1105dvb-fe = dvb_attach(
-si21xx_attach, serit_config,
-dm1105dvb-i2c_adap);
-			if (dm1105dvb-fe)
-dm1105dvb-fe-ops.set_voltage =
-			

Re: [PATCH] adding support for setting bus parameters in sub device

2009-06-12 Thread Guennadi Liakhovetski
On Wed, 10 Jun 2009, Hans Verkuil wrote:

 On Wednesday 10 June 2009 23:30:55 Guennadi Liakhovetski wrote:
  On Wed, 10 Jun 2009, Hans Verkuil wrote:
   My view of this would be that the board specification specifies the
   sensor (and possibly other chips) that are on the board. And to me it
   makes sense that that also supplies the bus settings. I agree that it
   is not complex code, but I think it is also unnecessary code. Why
   negotiate if you can just set it?
 
  Why force all platforms to set it if the driver is perfectly capable do
  this itself? As I said - this is not a platform-specific feature, it's
  chip-specific. What good would it make to have all platforms using
  mt9t031 to specify, that yes, the chip can use both falling and rising
  pclk edge, but only active high vsync and hsync?
 
 ???
 
 You will just tell the chip what to use. So you set 'use falling edge' and 
 either set 'active high vsync/hsync' or just leave that out since you know 
 the mt9t031 has that fixed. You don't specify in the platform data what the 
 chip can support, that's not relevant. You know what the host expects and 
 you pass that information on to the chip.
 
 A board designer knows what the host supports, knows what the sensor 
 supports, and knows if he added any inverters on the board, and based on 
 all that information he can just setup these parameters for the sensor 
 chip. Settings that are fixed on the sensor chip he can just ignore, he 
 only need to specify those settings that the sensor really needs.

I'd like to have this resolved somehow (preferably my way of ourse:-)), 
here once again (plus some new) my main arguments:

1. it is very unusual that the board designer has to mandate what signal 
polarity has to be used - only when there's additional logic between the 
capture device and the host. So, we shouldn't overload all boards with 
this information. Board-code authors will be grateful to us!

2. what if you do have an inverter between the two? You'd have to tell the 
sensor to use active high, and the host to use active low, i.e., you need 
two sets of flags.

3. all soc-camera boards rely on this autonegotiation. Do we really want 
(and have) to add this useless information back to them? Back - because, 
yes, we've been there we've done that before, but then we switched to the 
current autonegotiation, which we are perfectly happy with so far (anyone 
dares to object?:-)).

4. the autonegiation code is simple and small, so, I really don't see a 
reason to hardcode something, that we can perfectly autoconfigure.

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: [PATCH] adding support for setting bus parameters in sub device

2009-06-12 Thread Hans Verkuil

 On Wed, 10 Jun 2009, Hans Verkuil wrote:

 On Wednesday 10 June 2009 23:30:55 Guennadi Liakhovetski wrote:
  On Wed, 10 Jun 2009, Hans Verkuil wrote:
   My view of this would be that the board specification specifies the
   sensor (and possibly other chips) that are on the board. And to me
 it
   makes sense that that also supplies the bus settings. I agree that
 it
   is not complex code, but I think it is also unnecessary code. Why
   negotiate if you can just set it?
 
  Why force all platforms to set it if the driver is perfectly capable
 do
  this itself? As I said - this is not a platform-specific feature, it's
  chip-specific. What good would it make to have all platforms using
  mt9t031 to specify, that yes, the chip can use both falling and rising
  pclk edge, but only active high vsync and hsync?

 ???

 You will just tell the chip what to use. So you set 'use falling edge'
 and
 either set 'active high vsync/hsync' or just leave that out since you
 know
 the mt9t031 has that fixed. You don't specify in the platform data what
 the
 chip can support, that's not relevant. You know what the host expects
 and
 you pass that information on to the chip.

 A board designer knows what the host supports, knows what the sensor
 supports, and knows if he added any inverters on the board, and based on
 all that information he can just setup these parameters for the sensor
 chip. Settings that are fixed on the sensor chip he can just ignore, he
 only need to specify those settings that the sensor really needs.

 I'd like to have this resolved somehow (preferably my way of ourse:-)),
 here once again (plus some new) my main arguments:

 1. it is very unusual that the board designer has to mandate what signal
 polarity has to be used - only when there's additional logic between the
 capture device and the host. So, we shouldn't overload all boards with
 this information. Board-code authors will be grateful to us!

I talked to my colleague who actually designs boards like that about what
he would prefer. His opinion is that he wants to set this himself, rather
than leave it as the result of a software negotiation. It simplifies
verification and debugging the hardware, and in addition there may be
cases where subtle timing differences between e.g. sampling on a falling
edge vs rising edge can actually become an important factor, particularly
on high frequencies.

 2. what if you do have an inverter between the two? You'd have to tell the
 sensor to use active high, and the host to use active low, i.e., you need
 two sets of flags.

You obviously need to set this for both the host and for the sub-device.
The s_bus op in v4l2_subdev is meant to set the sub-device. Setting this
up for the host is a platform/board issue.


 3. all soc-camera boards rely on this autonegotiation. Do we really want
 (and have) to add this useless information back to them? Back - because,
 yes, we've been there we've done that before, but then we switched to the
 current autonegotiation, which we are perfectly happy with so far (anyone
 dares to object?:-)).

Well, I do :-) This is not useless information and particularly at high
clock frequencies (e.g. 74.25 MHz or higher) you do want to have full
control over this. Remember that this API is not only meant for sensor
devices, but also for HDTV video receivers.

 4. the autonegiation code is simple and small, so, I really don't see a
 reason to hardcode something, that we can perfectly autoconfigure.

The fact that that code exists doesn't mean that we also have to use it.
While I am not a hardware engineer myself, I do work closely together with
them. And having seen some of the tricky things that can go wrong with
timings I think there is a very good case against autoconfiguring these
things. For simple designs where the timings aren't critical I am sure
that autoconfiguring works fine, but when you get to HD quality video
streaming then it does become an issue. And this will become ever more
important in the future as the pixel clock frequencies keep increasing.

Regards,

  Hans

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG

--
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] adding support for setting bus parameters in sub device

2009-06-12 Thread Guennadi Liakhovetski
On Fri, 12 Jun 2009, Hans Verkuil wrote:

  1. it is very unusual that the board designer has to mandate what signal
  polarity has to be used - only when there's additional logic between the
  capture device and the host. So, we shouldn't overload all boards with
  this information. Board-code authors will be grateful to us!
 
 I talked to my colleague who actually designs boards like that about what
 he would prefer. His opinion is that he wants to set this himself, rather
 than leave it as the result of a software negotiation. It simplifies
 verification and debugging the hardware, and in addition there may be
 cases where subtle timing differences between e.g. sampling on a falling
 edge vs rising edge can actually become an important factor, particularly
 on high frequencies.

I'd say this is different. You're talking about cases where you _want_ to 
be able to configure it explicitly, I am saying you do not have to _force_ 
all to do this. Now, this selection only makes sense if both are 
configurable, right? In this case, e.g., pxa270 driver does support 
platform-specified preference. So, if both the host and the client can 
configure either polarity in the software you _can_ still specify the 
preferred one in platform data and it will be used.

I think, the ability to specify inverters and the preferred polarity 
should cover all possible cases.

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: [linux-dvb] ASUS 'My Cinema Europa Hybrid' (P7131 DVB-T) [SAA7134] Firmware oddities

2009-06-12 Thread chatura

Sam Spilsbury wrote:

Hi everyone,

So It's my first time to LinuxTV hacking, debugging etc, so I
apologize if I've failed to provide anything essential.

Anyways, I've just bought a ASUS 'My Cinema Europa Hybrid' (P7131
DVB-T) which has the Phillips saa7131 chipset in it (supported by the
saa7131 module et al). There is a problem getting the firmware in this
card to boot correctly - I may have the wrong card number and I cannot
use i2c because it detects it as UNKNOWN/GENERIC (i.e type 0) which
doesn't work.

According to /usr/share/doc/linux/video4linux etc my card number
should be either 78, 111 or 112. Specifying card=x seems to make the
module somewhat recognize the card, and even though I have the
firmware - it won't actually boot. This is shown by the fact that all
dvb operations essentially just time out and the fact that I cannot
scan channels in software like tvtime. I might be wrong though.

Here is relevant output which might assist in helping the problem:

 dmesg log c

saa7130/34: v4l2 driver version 0.2.14 loaded
saa7134[0]: found at :00:09.0, rev: 1, irq: 18, latency: 32, mmio:
0xeb007000
saa7134[0]: subsystem: 1043:4847, board: ASUSTeK P7131 Dual
[card=78,insmod option]
saa7134[0]: board init: gpio is 20
input: saa7134 IR (ASUSTeK P7131 Dual) as
/devices/pci:00/:00:09.0/input/input7
tuner' 3-0043: chip found @ 0x86 (saa7134[0])
tda9887 3-0043: creating new instance
tda9887 3-0043: tda988[5/6/7] found
saa7134[0]: i2c eeprom 00: 43 10 47 48 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
saa7134[0]: i2c eeprom 10: 00 ff 82 0e ff 20 ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom 20: 01 40 01 02 03 ff 03 04 08 ff 00 2a ff ff ff ff
saa7134[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom 40: ff 02 00 c2 86 10 ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7134[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7134[0]: registered device video0 [v4l2]
saa7134[0]: registered device vbi0
saa7134[0]: registered device radio0
DVB: registering new adapter (saa7134[0])
DVB: registering frontend 0 (Philips TDA10046H DVB-T)...
tda1004x: setting up plls for 48MHz sampling clock
tda1004x: timeout waiting for DSP ready
tda1004x: found firmware revision 0 -- invalid
tda1004x: trying to boot from eeprom
tda1004x: found firmware revision 26 -- ok
saa7134[0]/dvb: could not access tda8290 I2C gate
tda827x_probe_version: could not read from tuner at addr: 0xc2

= Relevant bits of lspci =

00:09.0 Multimedia controller: Philips Semiconductors
SAA7134/SAA7135HL Video Broadcast Decoder (rev 01)
Subsystem: ASUSTeK Computer Inc. Device 4847
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium TAbort-
TAbort- MAbort- SERR- PERR- INTx-
Latency: 32 (21000ns min, 8000ns max)
Interrupt: pin A routed to IRQ 18
Region 0: Memory at eb007000 (32-bit, non-prefetchable) [size=1K]
Capabilities: [40] Power Management version 1
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA 
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=1 PME-
Kernel driver in use: saa7134
Kernel modules: saa7134


Any help would be greatly appreciated however I understand if this
isn't a fixable issue. If so it would be nice to know where I could
buy (online) TV Tuner cards with a composite input, are the old PCI
type and of course work well with Linux (Fedora 10 at least).

Thanks in advance,

Sam


Hi Sam and everyone

First off I'm new to the LinuxTV mailing list and just like Sam this is my 
first time hacking, debugging etc.

I also have an ASUS 'My Cinema Europa Hybrid' and it is currently unsupported 
right now.
However looking over the hardware component's on the card itself, it seems that 
the individual components seem to be supported
and we merely have to get all the components interacting with each other.

The card has a:
* Philips SAA7134HL video decoder, which is supported by the saa7134 
driver
* Philips TDA10046A digital demodulator, which is supported by the 
tda1004x driver
* Philips 

USERPTR buffer exchange mechanism

2009-06-12 Thread Karicheri, Muralidharan
Hi,

I would like to explore what level of support is available in the v4l buffer 
exchange mechanism for USERPTR buffer exchange.

In our internal release, we had a hack to support this feature. We use 
contiguous buffers in our user ptr hack implementation. The buffers are 
allocated in a kernel module that export api to pass the physical address of 
the allocated buffer to the user application. In the v4l2 driver, USERPTR IO 
mechanism will be requested, and in QBUF, the ptr passed to the driver is the 
above physical address. One thing we observed was that even in this case, we 
had to use index in the buffer structure without which it doesn't work.

Anyone has any insight into how to port this capability to the open source 
kernel v4l2 driver? In other words, can I use userptr IO mechanism and pass 
contigous buffer address like above? If so, Is there a driver example I can 
refer to port this to my vpfe capture driver?  

Thanks in advance.

Murali Karicheri
Software Design Engineer
Texas Instruments Inc.
Germantown, MD 20874
email: m-kariche...@ti.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/10 - v2] ARM: DaVinci: Video: DM355/DM6446 VPFE Capture driver

2009-06-12 Thread Karicheri, Muralidharan



 This is the version v2 of the patch series. This is the reworked
 version of the driver based on comments received against the last
 version of the patch.

I'll be glad to see this get to mainline ... it's seeming closer
and closer!

What's the merge plan though?  I had hopes for 2.6.31.real-soon
but several of the later patches comment

Not sure if it can go in 2.6.31, but this has less comments to 
address then I can send a updated version next week. 2.6.32 is
the targeted release.
   Applies to Davinci GIT Tree

which implies not -next.  DM355 patches are in the -next tree.

Is this just an oversight (tracking -next can be a PITA!) or is
there some other dependency?

One dependency is the tvp514x sub device patch migration patch from Vaibhav. 
This is put for review, but couldn't see any comments.

I have split the patches such that v4l2 part can applies independently followed 
by platform part. All of the platform part has Applies to Davinci GIT tree in 
the patch description and v4l2 part has Applies to v4l-dvb. The v4l2 part can 
go with out the platform changes, but platform part is dependent on the v4l2 
part.

I am not sure if I have answered your question.
-


--
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] adding support for setting bus parameters in sub device

2009-06-12 Thread Hans Verkuil
On Friday 12 June 2009 14:59:03 Guennadi Liakhovetski wrote:
 On Fri, 12 Jun 2009, Hans Verkuil wrote:
 
   1. it is very unusual that the board designer has to mandate what signal
   polarity has to be used - only when there's additional logic between the
   capture device and the host. So, we shouldn't overload all boards with
   this information. Board-code authors will be grateful to us!
  
  I talked to my colleague who actually designs boards like that about what
  he would prefer. His opinion is that he wants to set this himself, rather
  than leave it as the result of a software negotiation. It simplifies
  verification and debugging the hardware, and in addition there may be
  cases where subtle timing differences between e.g. sampling on a falling
  edge vs rising edge can actually become an important factor, particularly
  on high frequencies.
 
 I'd say this is different. You're talking about cases where you _want_ to 
 be able to configure it explicitly, I am saying you do not have to _force_ 
 all to do this. Now, this selection only makes sense if both are 
 configurable, right? In this case, e.g., pxa270 driver does support 
 platform-specified preference. So, if both the host and the client can 
 configure either polarity in the software you _can_ still specify the 
 preferred one in platform data and it will be used.
 
 I think, the ability to specify inverters and the preferred polarity 
 should cover all possible cases.

In my opinion you should always want to set this explicitly. This is not
something you want to leave to chance. Say you autoconfigure this. Now
someone either changes the autoconf algorithm, or a previously undocumented
register was discovered for the i2c device and it can suddenly configure the
polarity of some signal that was previously thought to be fixed, or something
else happens causing a different polarity to be negotiated. Suddenly the board
doesn't work because it was never verified or tested with that different
polarity. Or worse: it glitches only 0.001% of the time. That's going to be a
nasty bug to find.

You generally verify your board with specific bus settings, and that's what
should also be configured explicitly. Sure, it is nice not to have to think
about this. The problem is that I believe that you *have* to think about it.

The longer I think about this, the more convinced I am that relying on
autoconfiguration is a bad design.

Regards,

Hans

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom
--
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: [linux-dvb] ASUS 'My Cinema Europa Hybrid' (P7131 DVB-T) [SAA7134] Firmware oddities

2009-06-12 Thread hermann pitton
Hi,

Am Samstag, den 13.06.2009, 00:23 +1000 schrieb chatura:
 Sam Spilsbury wrote:
  Hi everyone,
  
  So It's my first time to LinuxTV hacking, debugging etc, so I
  apologize if I've failed to provide anything essential.
  
  Anyways, I've just bought a ASUS 'My Cinema Europa Hybrid' (P7131
  DVB-T) which has the Phillips saa7131 chipset in it (supported by the
  saa7131 module et al). There is a problem getting the firmware in this
  card to boot correctly - I may have the wrong card number and I cannot
  use i2c because it detects it as UNKNOWN/GENERIC (i.e type 0) which
  doesn't work.
  
  According to /usr/share/doc/linux/video4linux etc my card number
  should be either 78, 111 or 112. Specifying card=x seems to make the
  module somewhat recognize the card, and even though I have the
  firmware - it won't actually boot. This is shown by the fact that all
  dvb operations essentially just time out and the fact that I cannot
  scan channels in software like tvtime. I might be wrong though.
  
  Here is relevant output which might assist in helping the problem:
  
   dmesg log c
  
  saa7130/34: v4l2 driver version 0.2.14 loaded
  saa7134[0]: found at :00:09.0, rev: 1, irq: 18, latency: 32, mmio:
  0xeb007000
  saa7134[0]: subsystem: 1043:4847, board: ASUSTeK P7131 Dual
  [card=78,insmod option]
  saa7134[0]: board init: gpio is 20
  input: saa7134 IR (ASUSTeK P7131 Dual) as
  /devices/pci:00/:00:09.0/input/input7
  tuner' 3-0043: chip found @ 0x86 (saa7134[0])
  tda9887 3-0043: creating new instance
  tda9887 3-0043: tda988[5/6/7] found
  saa7134[0]: i2c eeprom 00: 43 10 47 48 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
  saa7134[0]: i2c eeprom 10: 00 ff 82 0e ff 20 ff ff ff ff ff ff ff ff ff ff
  saa7134[0]: i2c eeprom 20: 01 40 01 02 03 ff 03 04 08 ff 00 2a ff ff ff ff
  saa7134[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  saa7134[0]: i2c eeprom 40: ff 02 00 c2 86 10 ff ff ff ff ff ff ff ff ff ff
  saa7134[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  saa7134[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  saa7134[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  saa7134[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  saa7134[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  saa7134[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  saa7134[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  saa7134[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  saa7134[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  saa7134[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  saa7134[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  saa7134[0]: registered device video0 [v4l2]
  saa7134[0]: registered device vbi0
  saa7134[0]: registered device radio0
  DVB: registering new adapter (saa7134[0])
  DVB: registering frontend 0 (Philips TDA10046H DVB-T)...
  tda1004x: setting up plls for 48MHz sampling clock
  tda1004x: timeout waiting for DSP ready
  tda1004x: found firmware revision 0 -- invalid
  tda1004x: trying to boot from eeprom
  tda1004x: found firmware revision 26 -- ok
  saa7134[0]/dvb: could not access tda8290 I2C gate
  tda827x_probe_version: could not read from tuner at addr: 0xc2
  
  = Relevant bits of lspci =
  
  00:09.0 Multimedia controller: Philips Semiconductors
  SAA7134/SAA7135HL Video Broadcast Decoder (rev 01)
  Subsystem: ASUSTeK Computer Inc. Device 4847
  Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
  Stepping- SERR- FastB2B- DisINTx-
  Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium TAbort-
  TAbort- MAbort- SERR- PERR- INTx-
  Latency: 32 (21000ns min, 8000ns max)
  Interrupt: pin A routed to IRQ 18
  Region 0: Memory at eb007000 (32-bit, non-prefetchable) [size=1K]
  Capabilities: [40] Power Management version 1
  Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA 
  PME(D0-,D1-,D2-,D3hot-,D3cold-)
  Status: D0 PME-Enable- DSel=0 DScale=1 PME-
  Kernel driver in use: saa7134
  Kernel modules: saa7134
  
  
  Any help would be greatly appreciated however I understand if this
  isn't a fixable issue. If so it would be nice to know where I could
  buy (online) TV Tuner cards with a composite input, are the old PCI
  type and of course work well with Linux (Fedora 10 at least).
  
  Thanks in advance,
  
  Sam
 
 Hi Sam and everyone
 
 First off I'm new to the LinuxTV mailing list and just like Sam this is my 
 first time hacking, debugging etc.
 
 I also have an ASUS 'My Cinema Europa Hybrid' and it is currently unsupported 
 right now.
 However looking over the hardware component's on the card itself, it seems 
 that the individual components seem to be supported
 and we merely have to get all the components interacting with each other.
 
 The 

Re: [PATCH (V2)] TVP514x: Migration to sub-device framework - Is it approved ???

2009-06-12 Thread Hans Verkuil
On Friday 12 June 2009 18:04:34 Karicheri, Muralidharan wrote:
 Hi,

 This patch is sent for review last month. I have posted a vpfe capture
 driver patch that is dependent on this one. Is this one close to approval
 or what is the plan?

 I see some updates required to this patch based on my patch for
 supporting bus parameter which is being reviewed currently.

I'll review this tomorrow. I'm planning to go through my pending reviews 
this weekend. It's been piling up the last few weeks due to travel and a 
very busy period at work.

Regards,

Hans

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom
--
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 (V2)] TVP514x: Migration to sub-device framework - Is it approved ???

2009-06-12 Thread Karicheri, Muralidharan
Hans,

Greatly appreciated, given the ton of issues you are currently busy with!

Let me know, after review, your feel about possible merge plan for these 
patches. 2.6.31 or 2.6.32

Regards,
Murali Karicheri
Software Design Engineer
Texas Instruments Inc.
Germantown, MD 20874
email: m-kariche...@ti.com

-Original Message-
From: Hans Verkuil [mailto:hverk...@xs4all.nl]
Sent: Friday, June 12, 2009 12:18 PM
To: Karicheri, Muralidharan
Cc: linux-media@vger.kernel.org
Subject: Re: [PATCH (V2)] TVP514x: Migration to sub-device framework - Is
it approved ???

On Friday 12 June 2009 18:04:34 Karicheri, Muralidharan wrote:
 Hi,

 This patch is sent for review last month. I have posted a vpfe capture
 driver patch that is dependent on this one. Is this one close to approval
 or what is the plan?

 I see some updates required to this patch based on my patch for
 supporting bus parameter which is being reviewed currently.

I'll review this tomorrow. I'm planning to go through my pending reviews
this weekend. It's been piling up the last few weeks due to travel and a
very busy period at work.

Regards,

   Hans

--
Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom

--
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


Fwd: [PATCH 2/2] uvc: Added two webcams with 'No FID' quirk.

2009-06-12 Thread Robert Krakora
From: Robert Krakora rob.krak...@messagenetsystems.com

Added two webcams with 'No FID' quirk.

Priority: normal

Signed-off-by: Robert Krakora rob.krak...@messagenetsystems.com

diff -r bff77ec33116 linux/drivers/media/video/uvc/uvc_driver.c
--- a/linux/drivers/media/video/uvc/uvc_driver.cThu Jun 11
18:44:23 2009 -0300
+++ b/linux/drivers/media/video/uvc/uvc_driver.cFri Jun 12
11:35:04 2009 -0400
@@ -1919,6 +1919,24 @@
  .bInterfaceSubClass   = 1,
  .bInterfaceProtocol   = 0,
  .driver_info  = UVC_QUIRK_STREAM_NO_FID },
+   /* Suyin Corp. HP Webcam */
+   { .match_flags  = USB_DEVICE_ID_MATCH_DEVICE
+   | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = 0x064e,
+ .idProduct= 0xa110,
+ .bInterfaceClass  = USB_CLASS_VIDEO,
+ .bInterfaceSubClass   = 1,
+ .bInterfaceProtocol   = 0,
+ .driver_info  = UVC_QUIRK_STREAM_NO_FID },
+   /* Creative Live! Cam Optia AF */
+   { .match_flags  = USB_DEVICE_ID_MATCH_DEVICE
+   | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = 0x041e,
+ .idProduct= 0x406d,
+ .bInterfaceClass  = USB_CLASS_VIDEO,
+ .bInterfaceSubClass   = 1,
+ .bInterfaceProtocol   = 0,
+ .driver_info  = UVC_QUIRK_STREAM_NO_FID },
/* Aveo Technology USB 2.0 Camera */
{ .match_flags  = USB_DEVICE_ID_MATCH_DEVICE
| USB_DEVICE_ID_MATCH_INT_INFO,
--
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


[PATCHv7 1/9] v4l2-subdev.h: Add g_modulator callbacks to subdev api

2009-06-12 Thread Eduardo Valentin
Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com
---
 linux/include/media/v4l2-subdev.h |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/linux/include/media/v4l2-subdev.h 
b/linux/include/media/v4l2-subdev.h
index 5dcb367..4dc3788 100644
--- a/linux/include/media/v4l2-subdev.h
+++ b/linux/include/media/v4l2-subdev.h
@@ -137,6 +137,8 @@ struct v4l2_subdev_tuner_ops {
int (*g_frequency)(struct v4l2_subdev *sd, struct v4l2_frequency *freq);
int (*g_tuner)(struct v4l2_subdev *sd, struct v4l2_tuner *vt);
int (*s_tuner)(struct v4l2_subdev *sd, struct v4l2_tuner *vt);
+   int (*g_modulator)(struct v4l2_subdev *sd, struct v4l2_modulator *vm);
+   int (*s_modulator)(struct v4l2_subdev *sd, struct v4l2_modulator *vm);
int (*s_type_addr)(struct v4l2_subdev *sd, struct tuner_setup *type);
int (*s_config)(struct v4l2_subdev *sd, const struct 
v4l2_priv_tun_config *config);
int (*s_standby)(struct v4l2_subdev *sd);
-- 
1.6.2.GIT

--
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


[PATCHv7 2/9] v4l2: video device: Add V4L2_CTRL_CLASS_FM_TX controls

2009-06-12 Thread Eduardo Valentin
This patch adds a new class of extended controls. This class
is intended to support FM Radio Modulators properties such as:
rds, audio limiters, audio compression, pilot tone generation,
tuning power levels and preemphasis properties.

Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com
---
 linux/include/linux/videodev2.h |   34 ++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/linux/include/linux/videodev2.h b/linux/include/linux/videodev2.h
index b8cffc9..9733435 100644
--- a/linux/include/linux/videodev2.h
+++ b/linux/include/linux/videodev2.h
@@ -806,6 +806,7 @@ struct v4l2_ext_controls {
 #define V4L2_CTRL_CLASS_USER 0x0098/* Old-style 'user' 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_ID_MASK(0x0fff)
 #define V4L2_CTRL_ID2CLASS(id)((id)  0x0fffUL)
@@ -1144,6 +1145,39 @@ enum  v4l2_exposure_auto_type {
 
 #define V4L2_CID_PRIVACY   (V4L2_CID_CAMERA_CLASS_BASE+16)
 
+/* FM Modulator class control IDs */
+#define V4L2_CID_FM_TX_CLASS_BASE  (V4L2_CTRL_CLASS_FM_TX | 0x900)
+#define V4L2_CID_FM_TX_CLASS   (V4L2_CTRL_CLASS_FM_TX | 1)
+
+#define V4L2_CID_RDS_ENABLED   (V4L2_CID_FM_TX_CLASS_BASE + 1)
+#define V4L2_CID_RDS_PI
(V4L2_CID_FM_TX_CLASS_BASE + 2)
+#define V4L2_CID_RDS_PTY   (V4L2_CID_FM_TX_CLASS_BASE + 3)
+#define V4L2_CID_RDS_PS_NAME   (V4L2_CID_FM_TX_CLASS_BASE + 4)
+#define V4L2_CID_RDS_RADIO_TEXT
(V4L2_CID_FM_TX_CLASS_BASE + 5)
+
+#define V4L2_CID_AUDIO_LIMITER_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 6)
+#define V4L2_CID_AUDIO_LIMITER_RELEASE_TIME(V4L2_CID_FM_TX_CLASS_BASE + 7)
+#define V4L2_CID_AUDIO_LIMITER_DEVIATION   (V4L2_CID_FM_TX_CLASS_BASE + 8)
+
+#define V4L2_CID_AUDIO_COMPRESSION_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 9)
+#define V4L2_CID_AUDIO_COMPRESSION_GAIN
(V4L2_CID_FM_TX_CLASS_BASE + 10)
+#define V4L2_CID_AUDIO_COMPRESSION_THRESHOLD   (V4L2_CID_FM_TX_CLASS_BASE + 11)
+#define V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (V4L2_CID_FM_TX_CLASS_BASE + 12)
+#define V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME
(V4L2_CID_FM_TX_CLASS_BASE + 13)
+
+#define V4L2_CID_PILOT_TONE_ENABLED(V4L2_CID_FM_TX_CLASS_BASE + 14)
+#define V4L2_CID_PILOT_TONE_DEVIATION  (V4L2_CID_FM_TX_CLASS_BASE + 15)
+#define V4L2_CID_PILOT_TONE_FREQUENCY  (V4L2_CID_FM_TX_CLASS_BASE + 16)
+
+#define V4L2_CID_PREEMPHASIS   (V4L2_CID_FM_TX_CLASS_BASE + 17)
+enum v4l2_fm_tx_preemphasis {
+   V4L2_FM_TX_PREEMPHASIS_DISABLED = 0,
+   V4L2_FM_TX_PREEMPHASIS_50_uS= 1,
+   V4L2_FM_TX_PREEMPHASIS_75_uS= 2,
+};
+#define V4L2_CID_TUNE_POWER_LEVEL  (V4L2_CID_FM_TX_CLASS_BASE + 18)
+#define V4L2_CID_TUNE_ANTENNA_CAPACITOR
(V4L2_CID_FM_TX_CLASS_BASE + 19)
+
 /*
  * T U N I N G
  */
-- 
1.6.2.GIT

--
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


[PATCHv7 8/9] FMTx: si4713: Add Kconfig and Makefile entries

2009-06-12 Thread Eduardo Valentin
Simple add Makefile and Kconfig entries.

Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com
---
 linux/drivers/media/radio/Kconfig  |   22 ++
 linux/drivers/media/radio/Makefile |2 ++
 2 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/linux/drivers/media/radio/Kconfig 
b/linux/drivers/media/radio/Kconfig
index 3315cac..6c6a409 100644
--- a/linux/drivers/media/radio/Kconfig
+++ b/linux/drivers/media/radio/Kconfig
@@ -339,6 +339,28 @@ config RADIO_ZOLTRIX_PORT
help
  Enter the I/O port of your Zoltrix radio card.
 
+config I2C_SI4713
+   tristate I2C driver for Silicon Labs Si4713 device
+   depends on I2C  VIDEO_V4L2
+   ---help---
+ Say Y here if you want support to Si4713 I2C device.
+ This device driver supports only i2c bus.
+
+ To compile this driver as a module, choose M here: the
+ module will be called si4713.
+
+config RADIO_SI4713
+   tristate Silicon Labs Si4713 FM Radio Transmitter support
+   depends on I2C  VIDEO_V4L2
+   ---help---
+ Say Y here if you want support to Si4713 FM Radio Transmitter.
+ This device can transmit audio through FM. It can transmit
+ EDS and EBDS signals as well. This module is the v4l2 radio
+ interface for the i2c driver of this device.
+
+ To compile this driver as a module, choose M here: the
+ module will be called radio-si4713.
+
 config USB_DSBR
tristate D-Link/GemTek USB FM radio support
depends on USB  VIDEO_V4L2
diff --git a/linux/drivers/media/radio/Makefile 
b/linux/drivers/media/radio/Makefile
index 0f2b35b..34ae761 100644
--- a/linux/drivers/media/radio/Makefile
+++ b/linux/drivers/media/radio/Makefile
@@ -15,6 +15,8 @@ obj-$(CONFIG_RADIO_ZOLTRIX) += radio-zoltrix.o
 obj-$(CONFIG_RADIO_GEMTEK) += radio-gemtek.o
 obj-$(CONFIG_RADIO_GEMTEK_PCI) += radio-gemtek-pci.o
 obj-$(CONFIG_RADIO_TRUST) += radio-trust.o
+obj-$(CONFIG_I2C_SI4713) += si4713-i2c.o
+obj-$(CONFIG_RADIO_SI4713) += radio-si4713.o
 obj-$(CONFIG_RADIO_MAESTRO) += radio-maestro.o
 obj-$(CONFIG_USB_DSBR) += dsbr100.o
 obj-$(CONFIG_USB_SI470X) += radio-si470x.o
-- 
1.6.2.GIT

--
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


[PATCHv7 4/9] v4l2-ctl: Add support for FM TX controls

2009-06-12 Thread Eduardo Valentin
This patch adds simple support for FM TX extended controls
on v4l2-ctl utility.

Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com
---
 v4l2-apps/util/v4l2-ctl.cpp |   36 
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/v4l2-apps/util/v4l2-ctl.cpp b/v4l2-apps/util/v4l2-ctl.cpp
index 2c7290f..45a2310 100644
--- a/v4l2-apps/util/v4l2-ctl.cpp
+++ b/v4l2-apps/util/v4l2-ctl.cpp
@@ -148,6 +148,7 @@ typedef std::vectorstruct v4l2_ext_control ctrl_list;
 static ctrl_list user_ctrls;
 static ctrl_list mpeg_ctrls;
 static ctrl_list camera_ctrls;
+static ctrl_list fm_tx_ctrls;
 
 typedef std::mapstd::string, unsigned ctrl_strmap;
 static ctrl_strmap ctrl_str2id;
@@ -2166,6 +2167,8 @@ set_vid_fmt_error:
mpeg_ctrls.push_back(ctrl);
else if (V4L2_CTRL_ID2CLASS(ctrl.id) == 
V4L2_CTRL_CLASS_CAMERA)
camera_ctrls.push_back(ctrl);
+   else if (V4L2_CTRL_ID2CLASS(ctrl.id) == 
V4L2_CTRL_CLASS_FM_TX)
+   fm_tx_ctrls.push_back(ctrl);
else
user_ctrls.push_back(ctrl);
}
@@ -2212,6 +2215,22 @@ set_vid_fmt_error:
}
}
}
+   if (fm_tx_ctrls.size()) {
+   ctrls.ctrl_class = V4L2_CTRL_CLASS_FM_TX;
+   ctrls.count = fm_tx_ctrls.size();
+   ctrls.controls = fm_tx_ctrls[0];
+   if (doioctl(fd, VIDIOC_S_EXT_CTRLS, ctrls, 
VIDIOC_S_EXT_CTRLS)) {
+   if (ctrls.error_idx = ctrls.count) {
+   fprintf(stderr, Error setting FM 
Modulator controls: %s\n,
+   strerror(errno));
+   }
+   else {
+   fprintf(stderr, %s: %s\n,
+   
ctrl_id2str[fm_tx_ctrls[ctrls.error_idx].id].c_str(),
+   strerror(errno));
+   }
+   }
+   }
}
 
/* Get options */
@@ -2429,6 +2448,7 @@ set_vid_fmt_error:
mpeg_ctrls.clear();
camera_ctrls.clear();
user_ctrls.clear();
+   fm_tx_ctrls.clear();
for (ctrl_get_list::iterator iter = get_ctrls.begin();
iter != get_ctrls.end(); ++iter) {
struct v4l2_ext_control ctrl = { 0 };
@@ -2443,6 +2463,8 @@ set_vid_fmt_error:
mpeg_ctrls.push_back(ctrl);
else if (V4L2_CTRL_ID2CLASS(ctrl.id) == 
V4L2_CTRL_CLASS_CAMERA)
camera_ctrls.push_back(ctrl);
+   else if (V4L2_CTRL_ID2CLASS(ctrl.id) == 
V4L2_CTRL_CLASS_FM_TX)
+   fm_tx_ctrls.push_back(ctrl);
else
user_ctrls.push_back(ctrl);
}
@@ -2481,6 +2503,20 @@ set_vid_fmt_error:
printf(%s: %d\n, 
ctrl_id2str[ctrl.id].c_str(), ctrl.value);
}
}
+   if (fm_tx_ctrls.size()) {
+   ctrls.ctrl_class = V4L2_CTRL_CLASS_FM_TX;
+   ctrls.count = fm_tx_ctrls.size();
+   ctrls.controls = fm_tx_ctrls[0];
+   doioctl(fd, VIDIOC_G_EXT_CTRLS, ctrls, 
VIDIOC_G_EXT_CTRLS);
+   for (unsigned i = 0; i  fm_tx_ctrls.size(); i++) {
+   struct v4l2_ext_control ctrl = fm_tx_ctrls[i];
+
+   if (ctrl_id2type[ctrl.id] == 
V4L2_CTRL_TYPE_STRING)
+   printf(%s: '%s'\n, 
ctrl_id2str[ctrl.id].c_str(), ctrl.string);
+   else
+   printf(%s: %d\n, 
ctrl_id2str[ctrl.id].c_str(), ctrl.value);
+   }
+   }
}
 
if (options[OptGetTuner]) {
-- 
1.6.2.GIT

--
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


[PATCHv7 9/9] FMTx: si4713: Add document file

2009-06-12 Thread Eduardo Valentin
This patch adds a document file for si4713 device driver.
It describes the driver interfaces and organization.

Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com
---
 linux/Documentation/video4linux/si4713.txt |  137 
 1 files changed, 137 insertions(+), 0 deletions(-)
 create mode 100644 linux/Documentation/video4linux/si4713.txt

diff --git a/linux/Documentation/video4linux/si4713.txt 
b/linux/Documentation/video4linux/si4713.txt
new file mode 100644
index 000..46e5e58
--- /dev/null
+++ b/linux/Documentation/video4linux/si4713.txt
@@ -0,0 +1,137 @@
+Driver for I2C radios for the Silicon Labs Si4713 FM Radio Transmitters
+
+Copyright (c) 2009 Nokia Corporation
+Contact: Eduardo Valentin eduardo.valen...@nokia.com
+
+
+Information about the Device
+
+This chip is a Silicon Labs product. It is a I2C device, currently on 0×63 
address.
+Basically, it has transmission and signal noise level measurement features.
+
+The Si4713 integrates transmit functions for FM broadcast stereo transmission.
+The chip also allows integrated receive power scanning to identify low signal
+power FM channels.
+
+The chip is programmed using commands and responses. There are also several
+properties which can change the behavior of this chip.
+
+Users must comply with local regulations on radio frequency (RF) transmission.
+
+Device driver description
+=
+There are two modules to handle this device. One is a I2C device driver
+and the other is a platform driver.
+
+The I2C device driver exports a v4l2-subdev interface to the kernel.
+All properties can also be accessed by v4l2 extended controls interface, by
+using the v4l2-subdev calls (g_ext_ctrls, s_ext_ctrls).
+
+The platform device driver exports a v4l2 radio device interface to user land.
+So, it uses the I2C device driver as a sub device in order to send the user
+commands to the actual device. Basically it is a wrapper to the I2C device 
driver.
+
+Applications can use v4l2 radio API to specify frequency of operation, mute 
state,
+etc. But mostly of its properties will be present in the extended controls.
+
+When the v4l2 mute property is set to 1 (true), the driver will turn the chip 
off.
+
+Properties description
+==
+
+The properties can be accessed using v4l2 extended controls.
+Here is an output from v4l2-ctl util:
+
+# v4l2-ctl -d /dev/radio0 -l --all
+Driver Info:
+Driver name   : radio-si4713
+Card type : Silicon Labs Si4713 Modulator
+Bus info  : 
+Driver version: 0
+Capabilities  : 0x0008
+Modulator
+Audio output: 0 (FM Modulator Audio Out)
+Frequency: 1408000 (88000.00 MHz)
+Video Standard = 0x
+Modulator:
+Name : FM Modulator
+Capabilities : 62.5 Hz stereo 
+Frequency range  : 76.0 MHz - 108.0 MHz
+Available subchannels: mono stereo 
+
+User Controls
+
+   mute (bool) : default=1 value=0
+
+FM Radio Modulator Controls
+
+rds_feature_enabled (bool) : default=1 value=1
+ rds_program_id (int)  : min=0 max=65535 step=1 default=0 
value=0
+   rds_program_type (int)  : min=0 max=31 step=1 default=0 value=0
+rds_ps_name (str)  : value='Si4713  ' len=8
+' len=9  rds_radio_text (str)  : value='Si4713  
+  audio_limiter_feature_enabled (bool) : default=1 value=1
+ audio_limiter_release_time (int)  : min=250 max=102390 step=50 
default=5010 value=5010 flags=slider
+audio_limiter_deviation (int)  : min=0 max=9 step=10 default=66250 
value=66250 flags=slider
+audio_compression_feature_enabl (bool) : default=1 value=1
+ audio_compression_gain (int)  : min=0 max=20 step=1 default=15 
value=15 flags=slider
+audio_compression_threshold (int)  : min=-40 max=0 step=1 default=-40 
value=-40 flags=slider
+  audio_compression_attack_time (int)  : min=0 max=5000 step=500 default=0 
value=2000 flags=slider
+ audio_compression_release_time (int)  : min=10 max=100 step=10 
default=100 value=100 flags=slider
+ pilot_tone_feature_enabled (bool) : default=1 value=1
+   pilot_tone_deviation (int)  : min=0 max=9 step=10 default=6750 
value=6750 flags=slider
+   pilot_tone_frequency (int)  : min=0 max=19000 step=1 default=19000 
value=19000 flags=slider
+  pre_emphasis_settings (menu) : min=0 max=2 default=1 value=2
+   tune_power_level (int)  : min=0 max=120 step=1 default=88 
value=88 flags=slider
+ tune_antenna_capacitor (int)  : min=0 max=191 step=1 default=0 
value=110 flags=slider
+
+Here is a summary of them:
+
+* Pilot is an audible tone sent by the device.
+
+pilot_frequency - Configures the frequency of the stereo pilot tone.
+pilot_deviation - Configures pilot tone frequency deviation level.
+pilot_enabled - Enables or disables the pilot 

[PATCHv7 6/9] FMTx: si4713: Add files to add radio interface for si4713

2009-06-12 Thread Eduardo Valentin
This patch adds files which creates the radio interface
for si4713 FM transmitter (modulator) devices.

In order to do the real access to device registers, this
driver uses the v4l2 subdev interface exported by si4713 i2c driver.

Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com
---
 linux/drivers/media/radio/radio-si4713.c |  325 ++
 linux/include/media/si4713.h |   40 
 2 files changed, 365 insertions(+), 0 deletions(-)
 create mode 100644 linux/drivers/media/radio/radio-si4713.c
 create mode 100644 linux/include/media/si4713.h

diff --git a/linux/drivers/media/radio/radio-si4713.c 
b/linux/drivers/media/radio/radio-si4713.c
new file mode 100644
index 000..4c23120
--- /dev/null
+++ b/linux/drivers/media/radio/radio-si4713.c
@@ -0,0 +1,325 @@
+/*
+ * drivers/media/radio/radio-si4713.c
+ *
+ * Platform Driver for Silicon Labs Si4713 FM Radio Transmitter:
+ *
+ * Copyright (c) 2008 Instituto Nokia de Tecnologia - INdT
+ * Contact: Eduardo Valentin eduardo.valen...@nokia.com
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include linux/kernel.h
+#include linux/module.h
+#include linux/init.h
+#include linux/version.h
+#include linux/platform_device.h
+#include linux/i2c.h
+#include linux/videodev2.h
+#include media/v4l2-device.h
+#include media/v4l2-common.h
+#include media/v4l2-ioctl.h
+#include media/si4713.h
+
+/* Driver state struct */
+struct radio_si4713_device {
+   struct v4l2_device  v4l2_dev;
+   struct video_device *radio_dev;
+};
+
+/* module parameters */
+static int radio_nr = -1;  /* radio device minor (-1 == auto assign) */
+
+/* radio_si4713_fops - file operations interface */
+static const struct v4l2_file_operations radio_si4713_fops = {
+   .owner  = THIS_MODULE,
+   .ioctl  = video_ioctl2,
+};
+
+/* Video4Linux Interface */
+static int radio_si4713_fill_audout(struct v4l2_audioout *vao)
+{
+   /* TODO: check presence of audio output */
+   memset(vao, 0, sizeof(*vao));
+   strlcpy(vao-name, FM Modulator Audio Out, 32);
+
+   return 0;
+}
+
+static int radio_si4713_enumaudout(struct file *file, void *priv,
+   struct v4l2_audioout *vao)
+{
+   return radio_si4713_fill_audout(vao);
+}
+
+static int radio_si4713_g_audout(struct file *file, void *priv,
+   struct v4l2_audioout *vao)
+{
+   int rval = radio_si4713_fill_audout(vao);
+
+   vao-index = 0;
+
+   return rval;
+}
+
+static int radio_si4713_s_audout(struct file *file, void *priv,
+   struct v4l2_audioout *vao)
+{
+   if (vao-index != 0)
+   return -EINVAL;
+
+   return radio_si4713_fill_audout(vao);
+}
+
+/* radio_si4713_querycap - query device capabilities */
+static int radio_si4713_querycap(struct file *file, void *priv,
+   struct v4l2_capability *capability)
+{
+   struct radio_si4713_device *rsdev;
+
+   rsdev = video_get_drvdata(video_devdata(file));
+
+   strlcpy(capability-driver, radio-si4713, sizeof(capability-driver));
+   strlcpy(capability-card, Silicon Labs Si4713 Modulator,
+   sizeof(capability-card));
+   capability-capabilities = V4L2_CAP_MODULATOR;
+
+   return 0;
+}
+
+/* radio_si4713_queryctrl - enumerate control items */
+static int radio_si4713_queryctrl(struct file *file, void *priv,
+   struct v4l2_queryctrl *qc)
+{
+
+   /* Must be sorted from low to high control ID! */
+   static const u32 user_ctrls[] = {
+   V4L2_CID_USER_CLASS,
+   V4L2_CID_AUDIO_MUTE,
+   0
+   };
+
+   /* Must be sorted from low to high control ID! */
+   static const u32 fmtx_ctrls[] = {
+   V4L2_CID_FM_TX_CLASS,
+   V4L2_CID_RDS_ENABLED,
+   V4L2_CID_RDS_PI,
+   V4L2_CID_RDS_PTY,
+   V4L2_CID_RDS_PS_NAME,
+   V4L2_CID_RDS_RADIO_TEXT,
+   V4L2_CID_AUDIO_LIMITER_ENABLED,
+   V4L2_CID_AUDIO_LIMITER_RELEASE_TIME,
+   V4L2_CID_AUDIO_LIMITER_DEVIATION,
+   

[PATCHv7 3/9] v4l2: video device: Add FM_TX controls default configurations

2009-06-12 Thread Eduardo Valentin
Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com
---
 linux/drivers/media/video/v4l2-common.c |   50 +++
 1 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/linux/drivers/media/video/v4l2-common.c 
b/linux/drivers/media/video/v4l2-common.c
index 5cfd727..9b6cf9f 100644
--- a/linux/drivers/media/video/v4l2-common.c
+++ b/linux/drivers/media/video/v4l2-common.c
@@ -345,6 +345,12 @@ const char **v4l2_ctrl_get_menu(u32 id)
Sepia,
NULL
};
+   static const char *fm_tx_preemphasis[] = {
+   No preemphasis,
+   50 useconds,
+   75 useconds,
+   NULL,
+   };
 
switch (id) {
case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
@@ -383,6 +389,8 @@ const char **v4l2_ctrl_get_menu(u32 id)
return camera_exposure_auto;
case V4L2_CID_COLORFX:
return colorfx;
+   case V4L2_CID_PREEMPHASIS:
+   return fm_tx_preemphasis;
default:
return NULL;
}
@@ -481,6 +489,28 @@ const char *v4l2_ctrl_get_name(u32 id)
case V4L2_CID_ZOOM_CONTINUOUS:  return Zoom, Continuous;
case V4L2_CID_PRIVACY:  return Privacy;
 
+   /* FM Radio Modulator control */
+   case V4L2_CID_FM_TX_CLASS:  return FM Radio Modulator 
Controls;
+   case V4L2_CID_RDS_ENABLED:  return RDS Feature Enabled;
+   case V4L2_CID_RDS_PI:   return RDS Program ID;
+   case V4L2_CID_RDS_PTY:  return RDS Program Type;
+   case V4L2_CID_RDS_PS_NAME:  return RDS PS Name;
+   case V4L2_CID_RDS_RADIO_TEXT:   return RDS Radio Text;
+   case V4L2_CID_AUDIO_LIMITER_ENABLED:return Audio Limiter Feature 
Enabled;
+   case V4L2_CID_AUDIO_LIMITER_RELEASE_TIME: return Audio Limiter Release 
Time;
+   case V4L2_CID_AUDIO_LIMITER_DEVIATION:  return Audio Limiter 
Deviation;
+   case V4L2_CID_AUDIO_COMPRESSION_ENABLED: return Audio Compression 
Feature Enabled;
+   case V4L2_CID_AUDIO_COMPRESSION_GAIN:   return Audio Compression Gain;
+   case V4L2_CID_AUDIO_COMPRESSION_THRESHOLD: return Audio Compression 
Threshold;
+   case V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME: return Audio Compression 
Attack Time;
+   case V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME: return Audio Compression 
Release Time;
+   case V4L2_CID_PILOT_TONE_ENABLED:   return Pilot Tone Feature 
Enabled;
+   case V4L2_CID_PILOT_TONE_DEVIATION: return Pilot Tone Deviation;
+   case V4L2_CID_PILOT_TONE_FREQUENCY: return Pilot Tone Frequency;
+   case V4L2_CID_PREEMPHASIS:  return Pre-emphasis settings;
+   case V4L2_CID_TUNE_POWER_LEVEL: return Tune Power Level;
+   case V4L2_CID_TUNE_ANTENNA_CAPACITOR:   return Tune Antenna Capacitor;
+
default:
return NULL;
}
@@ -513,6 +543,10 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 
min, s32 max, s32 ste
case V4L2_CID_EXPOSURE_AUTO_PRIORITY:
case V4L2_CID_FOCUS_AUTO:
case V4L2_CID_PRIVACY:
+   case V4L2_CID_RDS_ENABLED:
+   case V4L2_CID_AUDIO_LIMITER_ENABLED:
+   case V4L2_CID_AUDIO_COMPRESSION_ENABLED:
+   case V4L2_CID_PILOT_TONE_ENABLED:
qctrl-type = V4L2_CTRL_TYPE_BOOLEAN;
min = 0;
max = step = 1;
@@ -541,12 +575,18 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, 
s32 min, s32 max, s32 ste
case V4L2_CID_MPEG_STREAM_VBI_FMT:
case V4L2_CID_EXPOSURE_AUTO:
case V4L2_CID_COLORFX:
+   case V4L2_CID_PREEMPHASIS:
qctrl-type = V4L2_CTRL_TYPE_MENU;
step = 1;
break;
+   case V4L2_CID_RDS_PS_NAME:
+   case V4L2_CID_RDS_RADIO_TEXT:
+   qctrl-type = V4L2_CTRL_TYPE_STRING;
+   break;
case V4L2_CID_USER_CLASS:
case V4L2_CID_CAMERA_CLASS:
case V4L2_CID_MPEG_CLASS:
+   case V4L2_CID_FM_TX_CLASS:
qctrl-type = V4L2_CTRL_TYPE_CTRL_CLASS;
qctrl-flags |= V4L2_CTRL_FLAG_READ_ONLY;
min = max = step = def = 0;
@@ -575,6 +615,16 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 
min, s32 max, s32 ste
case V4L2_CID_BLUE_BALANCE:
case V4L2_CID_GAMMA:
case V4L2_CID_SHARPNESS:
+   case V4L2_CID_AUDIO_LIMITER_RELEASE_TIME:
+   case V4L2_CID_AUDIO_LIMITER_DEVIATION:
+   case V4L2_CID_AUDIO_COMPRESSION_GAIN:
+   case V4L2_CID_AUDIO_COMPRESSION_THRESHOLD:
+   case V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME:
+   case V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME:
+   case V4L2_CID_PILOT_TONE_DEVIATION:
+   case V4L2_CID_PILOT_TONE_FREQUENCY:
+   case V4L2_CID_TUNE_POWER_LEVEL:
+   case 

[PATCHv7 5/9] v4l2-spec: Add documentation description for FM TX extended control class

2009-06-12 Thread Eduardo Valentin
This single patch adds documentation description for FM Modulator (FM_TX)
Extended Control Class and its Control IDs. The text was added under
Extended Controls section.

Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com
---
 v4l2-spec/Makefile  |1 +
 v4l2-spec/biblio.sgml   |   10 +++
 v4l2-spec/controls.sgml |  205 +++
 3 files changed, 216 insertions(+), 0 deletions(-)

diff --git a/v4l2-spec/Makefile b/v4l2-spec/Makefile
index 7a19924..bfe2965 100644
--- a/v4l2-spec/Makefile
+++ b/v4l2-spec/Makefile
@@ -242,6 +242,7 @@ ENUMS = \
v4l2_power_line_frequency \
v4l2_priority \
v4l2_tuner_type \
+   v4l2_fm_tx_preemphasis \
 
 STRUCTS = \
v4l2_audio \
diff --git a/v4l2-spec/biblio.sgml b/v4l2-spec/biblio.sgml
index b013ece..0921849 100644
--- a/v4l2-spec/biblio.sgml
+++ b/v4l2-spec/biblio.sgml
@@ -11,6 +11,16 @@ 
url=http://www.eia.org;http://www.eia.org/ulink)/corpauthor
 Service/title
 /biblioentry
 
+biblioentry id=en50067
+  abbrevENnbsp;50067/abbrev
+  authorgroup
+   corpauthorCENELEC European Committee for Electrotechnical 
Standardization
+(ulink url=http://www.cenelec.eu;http://www.cenelec.eu/ulink)/corpauthor
+  /authorgroup
+  titleEN 50067 Specification of the radio data system (RDS) for
+VHF/FM sound broadcasting in the frequency range from 87,5 to 108,0 
MHz/title
+/biblioentry
+
 biblioentry id=en300294
   abbrevENnbsp;300nbsp;294/abbrev
   authorgroup
diff --git a/v4l2-spec/controls.sgml b/v4l2-spec/controls.sgml
index 477a970..0bb6f00 100644
--- a/v4l2-spec/controls.sgml
+++ b/v4l2-spec/controls.sgml
@@ -458,6 +458,12 @@ video is actually encoded into that format./para
   paraUnfortunately, the original control API lacked some
 features needed for these new uses and so it was extended into the
 (not terribly originally named) extended control API./para
+
+  paraEven though the MPEG encoding API was the first effort
+to use the Extended Control API, nowadays there are also other classes
+of Extended Controls, such as Camera Controls and FM Transmitter Controls.
+The Extended Controls API as well as all Extended Controls classes are
+described in the following text./para
 /section
 
 section
@@ -1816,6 +1822,205 @@ control must support read access and may support write 
access./entry
   /tgroup
 /table
   /section
+
+section id=fm-tx-controls
+  titleFM Transmitter Control Reference/title
+
+  paraThe FM Transmitter (FM_TX) class includes controls for common 
features of
+FM transmissions capable devices. Currently this class include parameters for 
audio
+compression, pilot tone generation, audio deviation limiter, RDS transmission 
and
+tuning power features./para
+
+  table pgwide=1 frame=none id=fm-tx-control-id
+  titleFM_TX Control IDs/title
+
+  tgroup cols=4
+   colspec colname=c1 colwidth=1*
+   colspec colname=c2 colwidth=6*
+   colspec colname=c3 colwidth=2*
+   colspec colname=c4 colwidth=6*
+   spanspec namest=c1 nameend=c2 spanname=id
+   spanspec namest=c2 nameend=c4 spanname=descr
+   thead
+ row
+   entry spanname=id align=leftID/entry
+   entry align=leftType/entry
+ /rowrow rowsep=1entry spanname=descr 
align=leftDescription/entry
+ /row
+   /thead
+   tbody valign=top
+ rowentry/entry/row
+ row
+   entry 
spanname=idconstantV4L2_CID_FM_TX_CLASS/constantnbsp;/entry
+   entryclass/entry
+ /rowrowentry spanname=descrThe FM_TX class
+descriptor. Calling VIDIOC-QUERYCTRL; for this control will return a
+description of this control class./entry
+ /row
+ row
+   entry 
spanname=idconstantV4L2_CID_RDS_ENABLED/constantnbsp;/entry
+   entryboolean/entry
+ /row
+ rowentry spanname=descrEnables or disables the RDS transmission 
feature./entry
+ /row
+ row
+   entry 
spanname=idconstantV4L2_CID_RDS_PI/constantnbsp;/entry
+   entryinteger/entry
+ /row
+ rowentry spanname=descrSets the RDS Programme Identification 
field
+for transmission./entry
+ /row
+ row
+   entry 
spanname=idconstantV4L2_CID_RDS_PTY/constantnbsp;/entry
+   entryinteger/entry
+ /row
+ rowentry spanname=descrSets the RDS Programme Type field for 
transmission.
+This coding of up to 31 pre-defined programme types./entry
+ /row
+ row
+   entry 
spanname=idconstantV4L2_CID_RDS_PS_NAME/constantnbsp;/entry
+   entrystring/entry
+ /row
+ rowentry spanname=descrSets the Programme Service name 
(PS_NAME) for transmission.
+It is intended for static display on a receiver. It is the primary aid to 
listeners in programme service
+identification and selection. The use of PS to transmit text other than a 
single eight character name is not 

[cron job] v4l-dvb daily build 2.6.22 and up: ERRORS, 2.6.16-2.6.21: ERRORS

2009-06-12 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:Fri Jun 12 19:00:07 CEST 2009
path:http://www.linuxtv.org/hg/v4l-dvb
changeset:   11965:bff77ec33116
gcc version: gcc (GCC) 4.3.1
hardware:x86_64
host os: 2.6.26

linux-2.6.22.19-armv5: OK
linux-2.6.23.12-armv5: OK
linux-2.6.24.7-armv5: OK
linux-2.6.25.11-armv5: OK
linux-2.6.26-armv5: OK
linux-2.6.27-armv5: WARNINGS
linux-2.6.28-armv5: WARNINGS
linux-2.6.29.1-armv5: OK
linux-2.6.30-armv5: OK
linux-2.6.27-armv5-ixp: WARNINGS
linux-2.6.28-armv5-ixp: WARNINGS
linux-2.6.29.1-armv5-ixp: WARNINGS
linux-2.6.30-armv5-ixp: WARNINGS
linux-2.6.28-armv5-omap2: WARNINGS
linux-2.6.29.1-armv5-omap2: WARNINGS
linux-2.6.30-armv5-omap2: WARNINGS
linux-2.6.22.19-i686: OK
linux-2.6.23.12-i686: WARNINGS
linux-2.6.24.7-i686: WARNINGS
linux-2.6.25.11-i686: WARNINGS
linux-2.6.26-i686: WARNINGS
linux-2.6.27-i686: WARNINGS
linux-2.6.28-i686: WARNINGS
linux-2.6.29.1-i686: WARNINGS
linux-2.6.30-i686: WARNINGS
linux-2.6.23.12-m32r: OK
linux-2.6.24.7-m32r: OK
linux-2.6.25.11-m32r: OK
linux-2.6.26-m32r: OK
linux-2.6.27-m32r: OK
linux-2.6.28-m32r: OK
linux-2.6.29.1-m32r: OK
linux-2.6.30-m32r: OK
linux-2.6.22.19-mips: ERRORS
linux-2.6.26-mips: ERRORS
linux-2.6.27-mips: ERRORS
linux-2.6.28-mips: ERRORS
linux-2.6.29.1-mips: ERRORS
linux-2.6.30-mips: WARNINGS
linux-2.6.27-powerpc64: WARNINGS
linux-2.6.28-powerpc64: WARNINGS
linux-2.6.29.1-powerpc64: WARNINGS
linux-2.6.30-powerpc64: WARNINGS
linux-2.6.22.19-x86_64: OK
linux-2.6.23.12-x86_64: OK
linux-2.6.24.7-x86_64: OK
linux-2.6.25.11-x86_64: OK
linux-2.6.26-x86_64: OK
linux-2.6.27-x86_64: OK
linux-2.6.28-x86_64: OK
linux-2.6.29.1-x86_64: OK
linux-2.6.30-x86_64: WARNINGS
sparse (linux-2.6.30): OK
linux-2.6.16.61-i686: ERRORS
linux-2.6.17.14-i686: ERRORS
linux-2.6.18.8-i686: ERRORS
linux-2.6.19.5-i686: OK
linux-2.6.20.21-i686: OK
linux-2.6.21.7-i686: OK
linux-2.6.16.61-x86_64: ERRORS
linux-2.6.17.14-x86_64: ERRORS
linux-2.6.18.8-x86_64: ERRORS
linux-2.6.19.5-x86_64: OK
linux-2.6.20.21-x86_64: OK
linux-2.6.21.7-x86_64: OK

Detailed results are available here:

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

Full logs are available here:

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

The V4L2 specification from this daily build is here:

http://www.xs4all.nl/~hverkuil/spec/v4l2.html

The DVB API specification from this daily build is here:

http://www.xs4all.nl/~hverkuil/spec/dvbapi.pdf

--
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 -next] v4l: expose function outside of ifdef/endif block

2009-06-12 Thread Randy Dunlap
From: Randy Dunlap randy.dun...@oracle.com

Move v4l_bound_align_image() outside of an #ifdef CONFIG_I2C block
so that it is always built.  Fixes a build error:

vivi.c:(.text+0x48e26): undefined reference to `v4l_bound_align_image'

Signed-off-by: Randy Dunlap randy.dun...@oracle.com
---
 drivers/media/video/v4l2-common.c |3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- linux-next-20090612.orig/drivers/media/video/v4l2-common.c
+++ linux-next-20090612/drivers/media/video/v4l2-common.c
@@ -915,6 +915,7 @@ const unsigned short *v4l2_i2c_tuner_add
return NULL;
 }
 EXPORT_SYMBOL_GPL(v4l2_i2c_tuner_addrs);
+#endif
 
 /* Clamp x to be between min and max, aligned to a multiple of 2^align.  min
  * and max don't have to be aligned, but there must be at least one valid
@@ -986,5 +987,3 @@ void v4l_bound_align_image(u32 *w, unsig
}
 }
 EXPORT_SYMBOL_GPL(v4l_bound_align_image);
-
-#endif


-- 
~Randy
LPC 2009, Sept. 23-25, Portland, Oregon
http://linuxplumbersconf.org/2009/
--
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 -next] v4l: expose function outside of ifdef/endif block

2009-06-12 Thread Trent Piepho
On Fri, 12 Jun 2009, Randy Dunlap wrote:
 From: Randy Dunlap randy.dun...@oracle.com

 Move v4l_bound_align_image() outside of an #ifdef CONFIG_I2C block
 so that it is always built.  Fixes a build error:

clamp_align() should be moved as well, since it's only used by
v4l_bound_align_image().  I'm attaching an alternate version that fixes
this.  Labeled the endif too.

  drivers/media/video/v4l2-common.c |3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)

 --- linux-next-20090612.orig/drivers/media/video/v4l2-common.c
 +++ linux-next-20090612/drivers/media/video/v4l2-common.c
 @@ -915,6 +915,7 @@ const unsigned short *v4l2_i2c_tuner_add
   return NULL;
  }
  EXPORT_SYMBOL_GPL(v4l2_i2c_tuner_addrs);
 +#endif

  /* Clamp x to be between min and max, aligned to a multiple of 2^align.  min
   * and max don't have to be aligned, but there must be at least one valid
 @@ -986,5 +987,3 @@ void v4l_bound_align_image(u32 *w, unsig
   }
  }
  EXPORT_SYMBOL_GPL(v4l_bound_align_image);
 -
 -#endif# HG changeset patch
# User Trent Piepho xy...@speakeasy.org
# Date 1244834958 25200
# Node ID 23bd6516eafcc06ffb590073e744c7e17382aef9
# Parent  01fd4e3bd1c0fb52cb15acbd22ca7f4857170e6e
v4l2: Move bounding code outside I2C ifdef block

From: Trent Piepho xy...@speakeasy.org

Move v4l_bound_align_image() and clamp_align() outside of an ifdef block
for I2C related code.  Can cause an undefined reference to
`v4l_bound_align_image' if I2C isn't enabled.

Priority: high

Signed-off-by: Trent Piepho xy...@speakeasy.org
Reported-by: Randy Dunlap randy.dun...@oracle.com

diff -r 01fd4e3bd1c0 -r 23bd6516eafc linux/drivers/media/video/v4l2-common.c
--- a/linux/drivers/media/video/v4l2-common.c   Thu Jun 11 15:31:22 2009 -0700
+++ b/linux/drivers/media/video/v4l2-common.c   Fri Jun 12 12:29:18 2009 -0700
@@ -997,6 +997,8 @@ const unsigned short *v4l2_i2c_tuner_add
 }
 EXPORT_SYMBOL_GPL(v4l2_i2c_tuner_addrs);
 
+#endif /* defined(CONFIG_I2C) */
+
 /* Clamp x to be between min and max, aligned to a multiple of 2^align.  min
  * and max don't have to be aligned, but there must be at least one valid
  * value.  E.g., min=17,max=31,align=4 is not allowed as there are no multiples
@@ -1067,5 +1069,3 @@ void v4l_bound_align_image(u32 *w, unsig
}
 }
 EXPORT_SYMBOL_GPL(v4l_bound_align_image);
-
-#endif


Re: [linux-dvb] Remote af9015 Conceptronic

2009-06-12 Thread Jan Hoogenraad

The IR tables are hardcoded in the driver that can be found at:
http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2

It has 3 sets parameters, and by default is set to tthe NEC one.
ir_protocol
Specify RTL2381 remote: 0=NEC, 1=RC5, 2=Conceptronic (defaults to 0)

  sudo modprobe -r dvb_usb_rtl2831u
  sudo modprobe dvb-usb-rtl2831u ir_protocol=2

to be compliant with the Conceptronic IR

Daniel Sanchez wrote:

Hi,
I'm have Conceptronic USB2.0 DVB-T CTVDIGRCU V3.0 and remote not working,
In method 'af9015_read_config' set IR mode: 4 and set rc_key_map to NULL;
Why I'm read ir_table to set?
It's possible follow this instructions? 
http://linuxtv.org/wiki/index.php/Remote_controllers-V4L#How_to_add_remote_control_support_to_a_card_.28GPIO_remotes.29


Thanks




___
linux-dvb users mailing list
For V4L/DVB development, please use instead linux-media@vger.kernel.org
linux-...@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb



--
Jan Hoogenraad
Hoogenraad Interface Services
Postbus 2717
3500 GS Utrecht
--
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] generic image bounds setting and alignment function

2009-06-12 Thread Robert Jarzmik
Trent Piepho xy...@speakeasy.org writes:

 On Mon, 1 Jun 2009, Robert Jarzmik wrote:
 Trent Piepho xy...@speakeasy.org writes:
  Please pull from http://linuxtv.org/hg/~tap/v4l-dvb
 If I'm not mistaken, these lines are an equivalent of :
  balign = 1  align;
 if (align)
  x = ALIGN(x + 1 - balign/2, balign);

 Isn't that simpler to read ?

 I don't think so, it's not obvious that it will round to the nearest value.
 You have to look up ALIGN and then __ALIGN_MASK and see that it will in
 effect add balign - 1 and then reduce x + 1 - balign/2 + balign - 1 into x
 + balign/2.
You're thinking from your code.

  x = ALIGN(x + 1 - balign/2, balign);
That means : take x, add 1, substract half of alignment, and return nearest
aligned value.
IOW, by substracting half of the alignment, you have the guarantee that if
you're at a distance of less half alignment from aligned value N, result will be
N.

 It also generates worse code.  You'd think the compiled would be able to
 optimize it into the same code, but it doesn't.  Unless there is some issue
 with how it will work with negative values that causes a subtle difference.
That's a sensible argument. I presume you checked the assembly here.

I'm still thinking a balign/2 is clearer than (1  (align - 1)), but well, as
it appears I'm the only one bothered, let's go ahead.

What about the comment codying style comment of pxa_camera ?

-- 
Robert
--
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: s5h1411_readreg: readreg error (ret == -5)

2009-06-12 Thread Mike Isely

I am unable to reproduce the s5h1411 error here.

However my HVR-1950 loads the s5h1409 module - NOT s5h1411.ko; I wonder 
if Hauppauge has changed chips on newer devices and so you're running a 
different tuner module.  That would explain the different behavior.  
Unfortunately it also means it will be very difficult for me to track 
the problem down here since I don't have that device variant.

  -Mike


-- 

Mike Isely
isely @ isely (dot) net
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8
--
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: s5h1411_readreg: readreg error (ret == -5)

2009-06-12 Thread Andy Walls
On Fri, 2009-06-12 at 15:33 -0500, Mike Isely wrote:
 I am unable to reproduce the s5h1411 error here.
 
 However my HVR-1950 loads the s5h1409 module - NOT s5h1411.ko; I wonder 
 if Hauppauge has changed chips on newer devices and so you're running a 
 different tuner module.

The digital demodulator driver to use is hardcoded in pvrusb2-devattr.c:

static const struct pvr2_dvb_props pvr2_750xx_dvb_props = {
.frontend_attach = pvr2_s5h1409_attach,
.tuner_attach= pvr2_tda18271_8295_attach,
};

static const struct pvr2_dvb_props pvr2_751xx_dvb_props = {
.frontend_attach = pvr2_s5h1411_attach,
.tuner_attach= pvr2_tda18271_8295_attach,
};
...
static const struct pvr2_device_desc pvr2_device_750xx = {
.description = WinTV HVR-1950 Model Category 750xx,
...
.dvb_props = pvr2_750xx_dvb_props,
#endif
};
...
static const struct pvr2_device_desc pvr2_device_751xx = {
.description = WinTV HVR-1950 Model Category 751xx,
...
.dvb_props = pvr2_751xx_dvb_props,
#endif
};


   That would explain the different behavior.  
 Unfortunately it also means it will be very difficult for me to track 
 the problem down here since I don't have that device variant.

If you have more than 1 HVR-1950, maybe one is a 751xx variant.

When I ran into I2C errors often, it was because of PCI bus errors
screwing up the bit banging.  Obviously, that's not the case here.

-Andy

   -Mike


--
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: s5h1411_readreg: readreg error (ret == -5)

2009-06-12 Thread Mike Isely

Well now I feel like an idiot.  Thanks for pointing that out in my own 
code :-)

Still digging through this.

  -Mike


On Fri, 12 Jun 2009, Andy Walls wrote:

 On Fri, 2009-06-12 at 15:33 -0500, Mike Isely wrote:
  I am unable to reproduce the s5h1411 error here.
  
  However my HVR-1950 loads the s5h1409 module - NOT s5h1411.ko; I wonder 
  if Hauppauge has changed chips on newer devices and so you're running a 
  different tuner module.
 
 The digital demodulator driver to use is hardcoded in pvrusb2-devattr.c:
 
 static const struct pvr2_dvb_props pvr2_750xx_dvb_props = {
 .frontend_attach = pvr2_s5h1409_attach,
 .tuner_attach= pvr2_tda18271_8295_attach,
 };
 
 static const struct pvr2_dvb_props pvr2_751xx_dvb_props = {
 .frontend_attach = pvr2_s5h1411_attach,
 .tuner_attach= pvr2_tda18271_8295_attach,
 };
 ...
 static const struct pvr2_device_desc pvr2_device_750xx = {
 .description = WinTV HVR-1950 Model Category 750xx,
 ...
 .dvb_props = pvr2_750xx_dvb_props,
 #endif
 };
 ...
 static const struct pvr2_device_desc pvr2_device_751xx = {
 .description = WinTV HVR-1950 Model Category 751xx,
 ...
 .dvb_props = pvr2_751xx_dvb_props,
 #endif
 };
 
 
That would explain the different behavior.  
  Unfortunately it also means it will be very difficult for me to track 
  the problem down here since I don't have that device variant.
 
 If you have more than 1 HVR-1950, maybe one is a 751xx variant.
 
 When I ran into I2C errors often, it was because of PCI bus errors
 screwing up the bit banging.  Obviously, that's not the case here.
 
 -Andy
 
-Mike
 
 
 

-- 

Mike Isely
isely @ isely (dot) net
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8
--
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: s5h1411_readreg: readreg error (ret == -5)

2009-06-12 Thread hermann pitton
Hi,

Am Freitag, den 12.06.2009, 16:27 -0500 schrieb Mike Isely:
 Well now I feel like an idiot.  Thanks for pointing that out in my own 
 code :-)
 
 Still digging through this.
 
   -Mike

despite of that and to feed the weasel.

We'll have to look through different drivers, if we can make more use of
potential present device information in the eeproms.

There are always OEMs not following for example the Philips eeprom
layout in all details, most visible on different primary analog/hybrid
tuner type enumeration, and I don't even claim to know the latter in all
details,

and it needs more work on it,

but we have a lot of congruence for details in the 16 bytes including
0x40 and up from it across most manufacturers, including Hauppauge.

According to Hartmut, unfortunately not active currently, even different
LNA types, more and more devices with such do appear, are encoded in the
eeprom, if the OEM follows the plan. I don't know where yet, but might
be worth some time to try to find it out.

I had some hopes that this would also be known for the Hauppauge
eeproms, but seems not.

The most undiscovered configurations seem to be such ones about antenna
inputs and their switching. Again according to Hartmut, and he did not
know exactly what is going on here, some for us and him at this point
unknown checksums are used to derive even that information :(

For what I can see, and I might be of course still wrong, we can also
not determine plain digital tuner types, digital demodulator types of
any kind and the type of possibly present second and third tuners, but
at least their addresses, regularly shared by multiple chips, become
often visible. (some OEMs have only 0xff still for all that)

Cheers,
Hermann

 
On Fri, 12 Jun 2009, Andy Walls wrote:
 
  On Fri, 2009-06-12 at 15:33 -0500, Mike Isely wrote:
   I am unable to reproduce the s5h1411 error here.
   
   However my HVR-1950 loads the s5h1409 module - NOT s5h1411.ko; I wonder 
   if Hauppauge has changed chips on newer devices and so you're running a 
   different tuner module.
  
  The digital demodulator driver to use is hardcoded in pvrusb2-devattr.c:
  
  static const struct pvr2_dvb_props pvr2_750xx_dvb_props = {
  .frontend_attach = pvr2_s5h1409_attach,
  .tuner_attach= pvr2_tda18271_8295_attach,
  };
  
  static const struct pvr2_dvb_props pvr2_751xx_dvb_props = {
  .frontend_attach = pvr2_s5h1411_attach,
  .tuner_attach= pvr2_tda18271_8295_attach,
  };
  ...
  static const struct pvr2_device_desc pvr2_device_750xx = {
  .description = WinTV HVR-1950 Model Category 750xx,
  ...
  .dvb_props = pvr2_750xx_dvb_props,
  #endif
  };
  ...
  static const struct pvr2_device_desc pvr2_device_751xx = {
  .description = WinTV HVR-1950 Model Category 751xx,
  ...
  .dvb_props = pvr2_751xx_dvb_props,
  #endif
  };
  
  
 That would explain the different behavior.  
   Unfortunately it also means it will be very difficult for me to track 
   the problem down here since I don't have that device variant.
  
  If you have more than 1 HVR-1950, maybe one is a 751xx variant.
  
  When I ran into I2C errors often, it was because of PCI bus errors
  screwing up the bit banging.  Obviously, that's not the case here.
  
  -Andy
  
 -Mike
  
  
  
 

--
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: GPL code for Omnivision USB video camera available.

2009-06-12 Thread Erik de Castro Lopo
Hans de Goede wrote:

 This looks to me like its just ov51x-jpeg made to compile with the
 latest kernel.

Its more than that. This driver supports a number of cameras and the
only one we (bCODE) are really interested in is the ovfx2 driver.

 Did you make any functional changes?

I believe the ovfx2 driver is completely new.

 Also I wonder if you're subscribed to the (low trafic) ov51x-jpeg
 mailinglist, that seems to be the right thing todo for someone who tries
 to get that driver in to the mainline.

Sorry its the ovfx2 that I'm interested in pushing into  the kernel.

 May I ask what cam you have? I could certainly use more people testing
 this.

It looks like this on the USB bus:

Bus 007 Device 002: ID 05a9:2800 OmniVision Technologies, Inc. 

Cheers,
Erik
-- 
===
erik de castro lopo
senior design engineer

bCODE
level 2, 2a glen street
milsons point
sydney nsw 2061
australia

tel +61 (0)2 9954 4411
fax +61 (0)2 9954 4422
www.bcode.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: s5h1411_readreg: readreg error (ret == -5)

2009-06-12 Thread Roger

 On Fri, 12 Jun 2009, Andy Walls wrote:
  
  The digital demodulator driver to use is hardcoded in pvrusb2-devattr.c:
  
  static const struct pvr2_dvb_props pvr2_750xx_dvb_props = {
  .frontend_attach = pvr2_s5h1409_attach,
  .tuner_attach= pvr2_tda18271_8295_attach,
  };
  
  static const struct pvr2_dvb_props pvr2_751xx_dvb_props = {
  .frontend_attach = pvr2_s5h1411_attach,
  .tuner_attach= pvr2_tda18271_8295_attach,
  };
  ...
  static const struct pvr2_device_desc pvr2_device_750xx = {
  .description = WinTV HVR-1950 Model Category 750xx,
  ...
  .dvb_props = pvr2_750xx_dvb_props,
  #endif
  };
  ...
  static const struct pvr2_device_desc pvr2_device_751xx = {
  .description = WinTV HVR-1950 Model Category 751xx,
  ...
  .dvb_props = pvr2_751xx_dvb_props,
  #endif

And, just to verify the obvious:

WinTV-HVR-1950
NTSC/ATSC/QAM
75111 LF
REV C3E9

(with a very nice light green RoHS sticker)

-- 
Roger
http://rogerx.freeshell.org

--
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: s5h1411_readreg: readreg error (ret == -5)

2009-06-12 Thread Roger
On Sat, 2009-06-13 at 02:07 +0200, hermann pitton wrote:
 [snip]
  
  The most undiscovered configurations seem to be such ones about antenna
  inputs and their switching. Again according to Hartmut, and he did not
  know exactly what is going on here, some for us and him at this point
  unknown checksums are used to derive even that information :(

From my brief research on the Internet, I didn't see any chip specs
published for the s5h1411. :-/

-- 
Roger
http://rogerx.freeshell.org

--
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: s5h1411_readreg: readreg error (ret == -5)

2009-06-12 Thread Andy Walls
On Fri, 2009-06-12 at 16:27 -0500, Mike Isely wrote:
 Well now I feel like an idiot.  Thanks for pointing that out in my own 
 code :-)

Well, that wasn't my objective, but you're welcome! ;)

Don't worry.  I can almost guarantee you'll have an opportunity to
return the favor sometime in the future. :)

Regards,
Andy

 Still digging through this.
 
   -Mike


--
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