[PATCH] zl10353 and qt1010: fix stack corruption bug

2009-06-10 Thread Jan Nikitenko
This patch fixes stack corruption bug present in dump_regs function of zl10353 
and qt1010 drivers:

the buffer buf is one byte smaller than required - there is 4 chars
for address prefix, 16*3 chars for dump of 16 eeprom bytes per line
and 1 byte for zero ending the string required, i.e. 53 bytes, but
only 52 were provided.
The one byte missing in stack based buffer buf can cause stack corruption 
possibly leading to kernel oops, as discovered originally with af9015 driver.


Signed-off-by: Jan Nikitenko jan.nikite...@gmail.com

---

Antti Palosaari wrote:
 On 06/10/2009 01:39 AM, Jan Nikitenko wrote:
 Solved with [PATCH] af9015: fix stack corruption bug.

 This error leads to the zl10353.c and there it was copied to qt1010.c
 and af9015.c.

Antti, thanks for pointing out that the same problem was also in zl10353.c and 
qt1010.c. Include your Sign-off-by, please.


Best regards,
Jan

 linux/drivers/media/common/tuners/qt1010.c  |2 +-
 linux/drivers/media/dvb/frontends/zl10353.c |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff -r cff06234b725 linux/drivers/media/common/tuners/qt1010.c
--- a/linux/drivers/media/common/tuners/qt1010.cSun May 31 23:07:01 
2009 +0300
+++ b/linux/drivers/media/common/tuners/qt1010.cWed Jun 10 07:37:51 
2009 +0200
@@ -65,7 +65,7 @@
 /* dump all registers */
 static void qt1010_dump_regs(struct qt1010_priv *priv)
 {
-   char buf[52], buf2[4];
+   char buf[4+3*16+1], buf2[4];
u8 reg, val;

for (reg = 0; ; reg++) {
diff -r cff06234b725 linux/drivers/media/dvb/frontends/zl10353.c
--- a/linux/drivers/media/dvb/frontends/zl10353.c   Sun May 31 23:07:01 
2009 +0300
+++ b/linux/drivers/media/dvb/frontends/zl10353.c   Wed Jun 10 07:37:51 
2009 +0200
@@ -102,7 +102,7 @@
 static void zl10353_dump_regs(struct dvb_frontend *fe)
 {
struct zl10353_state *state = fe-demodulator_priv;
-   char buf[52], buf2[4];
+   char buf[4+3*16+1], buf2[4];
int ret;
u8 reg;


--
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: cx18, s5h1409: chronic bit errors, only under Linux

2009-06-10 Thread David Ward

On 06/09/2009 03:26 PM, Steven Toth wrote:

30db for the top end of ATSC sounds about right.

David, when you ran the windows signal monitor - did it claim QAM64 or 
256 when it was reporting 30db?


Steven and Devin,

All the digital signals are 256 QAM.


39 is very good, exceptional.

And did they do as I suggested, which is measure db across the high 
channels? ... and ideally against your problematic channel?


I assume not.


Comcast checked the outlet on channels 2 (41 dB) and 83 (39 dB).  I 
looked afterwards and saw that the first of those is analog programming, 
but the second just appears as analog noise on my TV set. (??)  I asked 
them to check a specific ATSC channel, but it seems that their meter was 
fixed to those two frequencies, which doesn't really help.  The ATSC 
rebroadcasts by Comcast are on high frequencies; the program I am 
testing primarily is on channel 79 (tunes at 555 MHz).


Under Windows I'm now seeing 34.5-34.8 dB for lower frequency QAM, 
32.5-32.7 dB for higher frequency QAM, and about 30.5 dB for ATSC.  
Under Linux with azap, the corresponding BER/UNC values are 0x0140, 
0x0134, and 0x0132.  I'm not exactly sure what numbers I should be going 
by here...again, wish I had my own meter.


I admit that I ruled out the idea of RF issues too soon, which I really 
should know better than.  After reading the thread at 
http://forums.gbpvr.com/showthread.php?t=36049 I'm now realizing why 
reception on the TV and tuner card isn't going to be equal, due to 
limited size and shielding of tuner circuitry on a PCI form factor card 
vs. on a TV set.  Makes sense.


Still, I am continuing to see uncorrectable bit errors at the same rate 
as before under Linux, while Windows sees errors but corrects them.  I 
would think that both drivers should be receiving identical streams of 
data from the chipset, and should be able to process them the same way?  
That's what is confusing me.


Ideally I would like to have access to a lot more equipment to control 
all the variables and make it easier to reproduce what I am seeing...but 
I don't here...


Or do you guys think that this is still primarily an RF problem?  I 
don't know what else I could do about that though.  Since the SNR did 
not improve when I hooked the tuner card directly into the cable input 
from the street, I'm concerned that putting an amplifier would not help 
and could just make things worse.  And clearly Comcast now considers me 
to be within their quality thresholds.


I really appreciate your help and patience with me, especially to the 
extent that this is going outside the realm of DVB drivers.


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


About V4l2 overlay sequence

2009-06-10 Thread xie
Dear all ~~

With your help I have implemented the preview with capture interface ~~
Now i want to implement the preview with ovelay , and my camera support
s ovelay ~
Who can tell me where I can find the document about ovelay sequcence ~ ?
Or does there have a standard example source code ~ ?

Thanks a lot ~

Best regards

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


Mantis CI (Azurewave AD SP400 CI (VP-1041) cards)

2009-06-10 Thread Bradley Kite
Can any body confirm if the CI works on Mantis-based cards, in
particular I'm interested in getting the Azurewave AD SP400 CI
(VP-1041) working.

Are there any other boards with CI that work under Linux?

Many thanks in advance.

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


Re: [RFC,PATCH] VIDIOC_G_EXT_CTRLS does not handle NULL pointer correctly

2009-06-10 Thread Mauro Carvalho Chehab
Em Mon, 25 May 2009 11:16:34 -0300
Mauro Carvalho Chehab mche...@infradead.org escreveu:

 Em Mon, 25 May 2009 13:17:02 +0200
 Laurent Pinchart laurent.pinch...@skynet.be escreveu:
 
  Hi everybody,
  
  Márton Németh found an integer overflow bug in the extended control ioctl 
  handling code. This affects both video_usercopy and video_ioctl2. See 
  http://bugzilla.kernel.org/show_bug.cgi?id=13357 for a detailed description 
  of 
  the problem.
  
 
  Restricting v4l2_ext_controls::count to values smaller than 
  KMALLOC_MAX_SIZE /
  sizeof(struct v4l2_ext_control) should be enough, but we might want to 
  restrict the value even further. I'd like opinions on this.
 
 Seems fine to my eyes, but being so close to kmalloc size doesn't seem to be a
 good idea. It seems better to choose an arbitrary size big enough to handle 
 all current needs.

I'll apply the current version, but I still think we should restrict it to a 
lower value.



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


Re: [RFC,PATCH] VIDIOC_G_EXT_CTRLS does not handle NULL pointer correctly

2009-06-10 Thread Mauro Carvalho Chehab
Em Wed, 10 Jun 2009 10:52:28 -0300
Mauro Carvalho Chehab mche...@infradead.org escreveu:

 Em Mon, 25 May 2009 11:16:34 -0300
 Mauro Carvalho Chehab mche...@infradead.org escreveu:
 
  Em Mon, 25 May 2009 13:17:02 +0200
  Laurent Pinchart laurent.pinch...@skynet.be escreveu:
  
   Hi everybody,
   
   Márton Németh found an integer overflow bug in the extended control ioctl 
   handling code. This affects both video_usercopy and video_ioctl2. See 
   http://bugzilla.kernel.org/show_bug.cgi?id=13357 for a detailed 
   description of 
   the problem.
   
  
   Restricting v4l2_ext_controls::count to values smaller than 
   KMALLOC_MAX_SIZE /
   sizeof(struct v4l2_ext_control) should be enough, but we might want to 
   restrict the value even further. I'd like opinions on this.
  
  Seems fine to my eyes, but being so close to kmalloc size doesn't seem to 
  be a
  good idea. It seems better to choose an arbitrary size big enough to handle 
  all current needs.
 
 I'll apply the current version, but I still think we should restrict it to a 
 lower value.


Hmm... SOB is missing. Márton and Laurent, could you please sign it



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


Re: [PATCH] flexcop-pci: add suspend/resume support

2009-06-10 Thread Mauro Carvalho Chehab
Em Tue, 26 May 2009 21:09:28 +0200
Matthias Schwarzott z...@gentoo.org escreveu:

 Hi Patrick! Hi list!
 
 This patch adds suspend/resume support to flexcop-pci driver.
 
 I could only test this patch with the bare card, but without having a DVB-S 
 signal. I checked it with and without running szap (obviously getting no 
 lock).
 It works fine here with suspend-to-disk on a tuxonice kernel.
 
 Setting of hw-filter in resume is done the same way as the watchdog does it: 
 Just looping over fc-demux.feed_list and running flexcop_pid_feed_control.
 Where I am unsure is the order at resume. For now hw filters get started 
 first, then dma is re-started.
 
 Do I need to give special care to irq handling?

It would be important to have a test with real signals to see if the patch is
really working, and see if it will still work if you suspend while streaming.

Also, you missed your SOB.



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


Re: cx18, s5h1409: chronic bit errors, only under Linux

2009-06-10 Thread Steven Toth

David Ward wrote:

On 06/09/2009 03:26 PM, Steven Toth wrote:

30db for the top end of ATSC sounds about right.

David, when you ran the windows signal monitor - did it claim QAM64 or 
256 when it was reporting 30db?


Steven and Devin,

All the digital signals are 256 QAM.


39 is very good, exceptional.

And did they do as I suggested, which is measure db across the high 
channels? ... and ideally against your problematic channel?


I assume not.


Comcast checked the outlet on channels 2 (41 dB) and 83 (39 dB).  I 
looked afterwards and saw that the first of those is analog programming, 
but the second just appears as analog noise on my TV set. (??)  I asked 
them to check a specific ATSC channel, but it seems that their meter was 
fixed to those two frequencies, which doesn't really help.  The ATSC 
rebroadcasts by Comcast are on high frequencies; the program I am 
testing primarily is on channel 79 (tunes at 555 MHz).


Under Windows I'm now seeing 34.5-34.8 dB for lower frequency QAM, 
32.5-32.7 dB for higher frequency QAM, and about 30.5 dB for ATSC.  
Under Linux with azap, the corresponding BER/UNC values are 0x0140, 
0x0134, and 0x0132.  I'm not exactly sure what numbers I should be going 
by here...again, wish I had my own meter.


Which of these three values is UNC/BER and which is snr? I don't understand, I 
need you to be more specific.


34 is good, normal. However 30.5 is still edgy under windows, assuming QAM 256. 
Did you get a chance to review the signal monitor to determine whether it was 64 
or 256?


If you have any way to attenuate the signal then you'll find that very quickly 
the windows 30.5 will drop just a little and you'll begin to see real 
uncorrectable errors. I alluded to this yesterday. With 30.5 your just a 
fraction above 'working' reliably.


If you were to insert attenuation through some barrel connectors, or join some 
other cables together to impede the RF, you'd see that 30.5 drop quickly and the 
errors would begin to appear. I suspect this will still occur, as I mentioned 
yesterday.


The windows drivers is working slightly better for you but it's still no where 
near good enough RF for reliable 24x7x365 viewing. You'll find the RF on your 
local cable rings varies during an average day. It certainly does for me on 
various products. What looks great today (when you're on the edge) can look ugly 
at 9pm in the evening or 7am thursday morning.


I wouldn't expect pristine recordings with Microsoft MCE (or other apps) (for 
any random moment in the week) with a 30.5 reading.


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


Re: [PATCH]V4L:some v4l drivers have error for video_register_device

2009-06-10 Thread Mauro Carvalho Chehab
Em Thu, 04 Jun 2009 17:20:50 +0800
figo.zhang figo.zh...@kolorific.com escreveu:

 On Thu, 2009-06-04 at 11:18 +0200, Laurent Pinchart wrote:
  Hi,
  
  On Thursday 04 June 2009 06:20:07 figo.zhang wrote:
   The function video_register_device() will call the
   video_register_device_index(). In this function, firtly it will do some
   argments check , if failed,it will return a negative number such as
   -EINVAL, and then do cdev_alloc() and device_register(), if success return
   zero. so video_register_device_index() canot return a a positive number.
  
   for example, see the drivers/media/video/stk-webcam.c (line 1325):
  
   err = video_register_device(dev-vdev, VFL_TYPE_GRABBER, -1);
 if (err)
 STK_ERROR(v4l registration failed\n);
 else
 STK_INFO(Syntek USB2.0 Camera is now controlling video device
  /dev/video%d\n, dev-vdev.num);
  
   in my opinion, it will be cleaner to do something like this:
  
   err = video_register_device(dev-vdev, VFL_TYPE_GRABBER, -1);
 if (err != 0)
 STK_ERROR(v4l registration failed\n);
 else
 STK_INFO(Syntek USB2.0 Camera is now controlling video device
  /dev/video%d\n, dev-vdev.num);
  
  What's the difference ? (err != 0) and (err) are identical.
  
  Best regards,
  
  Laurent Pinchart
 
 yes, it is the same, but it is easy for reading.

if (err) is easier for reading, since it is closer to the natural language.

Also, as CodingStyle says, C is a Spartan language. So, using just if (err)
is better than if (err != 0).

Also, since positive values don't indicate errors (on Linux, all errors are
negative values), using err != 0 looks wrong. Yet, changing they to err  0
would require a careful review of the returned values by each function.

In summary, for newer code, the better is to always use if (err  0), being
sure that the called function will return a negative value. However, I don't
see much sense on changing the current code.




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


Re: how to mmap in videobuf-dma-sg.c

2009-06-10 Thread Figo.zhang
On Thu, 2009-05-21 at 18:48 +0800, Figo.zhang wrote:
 On Thu, 2009-05-21 at 07:35 -0300, Mauro Carvalho Chehab wrote:
  Em Thu, 21 May 2009 12:46:04 +0800
  Figo.zhang figo1...@gmail.com escreveu:
  
   hi,all,
I am puzzle that how to mmap ( V4L2_MEMORY_MMAP) in videobuf-dma-sg.c?
   
   In this file, it alloc the momery using vmalloc_32() , and put this
   momery into sglist table,and then use dma_map_sg() to create sg dma at
   __videobuf_iolock() function. but in __videobuf_mmap_mapper(), i canot
   understand how it do the mmap? 
   why it not use the remap_vmalloc_range() to do the mmap?
  
  The answer is simple: remap_vmalloc_range() is newer than videobuf code. 
  This
  part of the code was written back to kernel 2.4, and nobody cared to update 
  it
  to use those newer functions, and simplify its code.
  
  If you want, feel free to propose some cleanups on it
  
  
  
  Cheers,
  Mauro
 
 hi mauro,
 Thank you! 
 But i canot found the similar function code of remap_vmalloc_range() in
 the videobuf-dma-contig.c file. So i want to know the how is work in
 __videobuf_mmap_mapper() function?
 
 

hi mauro:
Thank you. But i still have a puzzle question about mmap() in
videobuf-dma-sg.c. I canot find how to remap the dma buffer
(which alloc by vmalloc_32()) to the vma area in
__videobuf_mmap_mapper()? 

there is my test driver code about dma-sg,it work well. i use
remap_pfn_range() to remap the dma buffer to vma area in mmap method.

so would you like to give me some detail about it?

Best Regards,

Figo.zhang


static int mydev_alloc_dma_sg(struct mydev_device *dev, struct mydev_buf
*buf)
{
int nr_pages;

int i;
struct page *pg;
unsigned char * virt;

nr_pages = mydev_buffer_pages(buf-size);

buf-nr_pages = nr_pages;

dprintk(%s:: buf-nr_pages =%d\n, __func__, buf-nr_pages);

buf-sglist = kcalloc(buf-nr_pages, sizeof(struct scatterlist),
GFP_KERNEL);
if (NULL == buf-sglist)
return NULL;

sg_init_table(buf-sglist, buf-nr_pages);

buf-vmalloc = vmalloc_32(buf-nr_pages  PAGE_SHIFT);

memset(buf-vmalloc,0,buf-nr_pages  PAGE_SHIFT);

virt = buf-vmalloc;

for(i = 0; i buf-nr_pages; i++,virt += PAGE_SIZE){
pg = vmalloc_to_page(virt);
if (NULL == pg)
goto nopage;
BUG_ON(PageHighMem(pg));
sg_set_page(buf-sglist[i], pg, PAGE_SIZE, 0);

}

buf-sglen = dma_map_sg(dev-pci-dev, buf-sglist,
buf-nr_pages, DMA_FROM_DEVICE);

return 0;

 nopage:
dprintk(sgl: oops - no page\n);
kfree(buf-sglist);
return 0;
}

in mmap();

static int do_mmap_sg(struct mydev_device  *dev, struct vm_area_struct *
vma)
{
struct videobuf_mapping *map;
unsigned long pos,page;
unsigned long start = vma-vm_start;
unsigned long size = vma-vm_end - vma-vm_start;
unsigned long offset = vma-vm_pgoff  PAGE_SHIFT;
unsigned int first, last, end;

int retval = -EINVAL;
int i;

/* look for first buffer to map */
for (first = 0; first  VIDEO_MAX_FRAME; first++) {

if (dev-ktbuf[first].boff == (vma-vm_pgoff  PAGE_SHIFT))
break;
}
if (VIDEO_MAX_FRAME == first) {
dprintk(mmap app bug: offset invalid [offset=0x%lx]\n,
(vma-vm_pgoff  PAGE_SHIFT));
goto done;
}
/* create mapping + update buffer list */
retval = -ENOMEM;
map = kmalloc(sizeof(struct videobuf_mapping),GFP_KERNEL);
if (NULL == map)
goto done;

pos = (unsigned long)dev-ktbuf[first].vmalloc;

while (size  0) {
page = vmalloc_to_pfn((void *)pos);
if (remap_pfn_range(vma, start, page, PAGE_SIZE, PAGE_SHARED)) {
return -EAGAIN;
}
start += PAGE_SIZE;
pos += PAGE_SIZE;
if (size  PAGE_SIZE)
size -= PAGE_SIZE;
else
size = 0;
}

map-count= 1;
map-start= vma-vm_start;
map-end  = vma-vm_end;
vma-vm_ops   = mydev_vm_ops;
vma-vm_flags |=/* VM_DONTEXPAND |*/ VM_RESERVED;
vma-vm_flags = ~VM_IO; /* using shared anonymous pages */
vma-vm_private_data = map;

mydev_vm_open(vma);
retval = 0;

 done:
return retval;
}





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

2009-06-10 Thread Karicheri, Muralidharan

 
  +/*
  + * Some sub-devices are connected to the bridge device through a bus
  that + * carries * the clock, vsync, hsync and data. Some interfaces
  such as BT.656 + * carries the sync embedded in the data where as
  others have separate line + * carrying the sync signals. The structure
  below is used by bridge driver to + * set the desired bus parameters in
  the sub device to work with it. + */
  +enum v4l2_subdev_bus_type {
  +  /* BT.656 interface. Embedded sync */
  +  V4L2_SUBDEV_BUS_BT_656,
  +  /* BT.1120 interface. Embedded sync */
  +  V4L2_SUBDEV_BUS_BT_1120,
  +  /* 8 bit muxed YCbCr bus, separate sync and field signals */
  +  V4L2_SUBDEV_BUS_YCBCR_8,
  +  /* 16 bit YCbCr bus, separate sync and field signals */
  +  V4L2_SUBDEV_BUS_YCBCR_16,

 Hmm, what do you mean with 8 bit muxed YCbCr bus? It's not clear to me
 what the format of these YCBCR bus types is exactly.

[MK]I spent sometime yesterday looking at different interfaces that we support 
in our soc. Here is the list...
BT.656, which is 8 bit or 10 bit multiplexed YCbCr bus
BT.1120, which is 16 bit or 20 bit YCbCr bus
YUV bus with separate sync signals (hsync, vsync and field)which could be 8 
bit, 10 bit, 16 bit and 20 bit
Since BT_656  BT_1120 also carries YUV data, we could call them  as YUV bus. 
So we can classify bus type based on the type of data it carries as below..

enum v4l2_subdev_bus_type {
/* Raw YUV image data bus, such as BT.656, BT.1120, or with
 * separate sync
 */
V4L2_SUBDEV_BUS_RAW_YUV,
  /* Raw Bayer image data bus , 8 - 16 bit wide, sync signals */
V4L2_SUBDEV_BUS_RAW_BAYER
};

Since we have width to describe the bus size, we could define all of the above 
bus types using above bus types and width. In addition we could add another 
Boolean to describe if sync is sent embedded or separate as below.
Just want to do it right. If anyone has any comments about the classification, 
please reply. I will sent an updated patch soon.

  +
  +struct v4l2_subdev_bus{
  +  enum v4l2_subdev_bus_type type;
  +  u8 width;
unsigned embedded_sync:1;
  +  /* 0 - active low, 1 - active high */
  +  unsigned pol_vsync:1;
  +  /* 0 - active low, 1 - active high */
  +  unsigned pol_hsync:1;
  +  /* 0 - low to high , 1 - high to low */
  +  unsigned pol_field:1;
  +  /* 0 - sample at falling edge , 1 - sample at rising edge */
  +  unsigned pol_pclock:1;
  +  /* 0 - active low , 1 - active high */
  +  unsigned pol_data:1;
  +};
  +
   /* Sub-devices are devices that are connected somehow to the main
  bridge device. These devices are usually audio/video
  muxers/encoders/decoders or sensors and webcam controllers.
  @@ -109,6 +144,7 @@ struct v4l2_subdev_core_ops {
 int (*querymenu)(struct v4l2_subdev *sd, struct v4l2_querymenu *qm);
 int (*s_std)(struct v4l2_subdev *sd, v4l2_std_id norm);
 long (*ioctl)(struct v4l2_subdev *sd, unsigned int cmd, void *arg);
  +  int (*s_bus)(struct v4l2_subdev *sd, struct v4l2_subdev_bus *bus);

 Make this 'const struct v4l2_subdev_bus *bus'.

And move it to the video ops. This op is only relevant for video, after all.
Yes, I know I said to add it to core initially; so sue me :-)

Regards,

   Hans


   #ifdef CONFIG_VIDEO_ADV_DEBUG
 int (*g_register)(struct v4l2_subdev *sd, struct v4l2_dbg_register
  *reg); int (*s_register)(struct v4l2_subdev *sd, struct
  v4l2_dbg_register *reg);

 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: [RFC,PATCH] VIDIOC_G_EXT_CTRLS does not handle NULL pointer correctly

2009-06-10 Thread Németh Márton
Mauro Carvalho Chehab wrote:
 Em Wed, 10 Jun 2009 10:52:28 -0300
 Mauro Carvalho Chehab mche...@infradead.org escreveu:
 
 Em Mon, 25 May 2009 11:16:34 -0300
 Mauro Carvalho Chehab mche...@infradead.org escreveu:

 Em Mon, 25 May 2009 13:17:02 +0200
 Laurent Pinchart laurent.pinch...@skynet.be escreveu:

 Hi everybody,

 Márton Németh found an integer overflow bug in the extended control ioctl 
 handling code. This affects both video_usercopy and video_ioctl2. See 
 http://bugzilla.kernel.org/show_bug.cgi?id=13357 for a detailed 
 description of 
 the problem.

 Restricting v4l2_ext_controls::count to values smaller than 
 KMALLOC_MAX_SIZE /
 sizeof(struct v4l2_ext_control) should be enough, but we might want to 
 restrict the value even further. I'd like opinions on this.
 Seems fine to my eyes, but being so close to kmalloc size doesn't seem to 
 be a
 good idea. It seems better to choose an arbitrary size big enough to handle 
 all current needs.
 I'll apply the current version, but I still think we should restrict it to a 
 lower value.
 
 
 Hmm... SOB is missing. Márton and Laurent, could you please sign it

As I wrote at http://bugzilla.kernel.org/show_bug.cgi?id=13357#c6 :

Tested-by: Márton Németh nm...@freemail.hu

Regards,

Márton Németh


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


help needed: DVB-T nearly working with a Terratec Cynergy Hybrid XS 0ccd:005e

2009-06-10 Thread Ludovic Drolez
Hi !

I've modified the sources of a 2.6.29 kernel to try to have my
Terratec Hybrid usb key working in DVB-T mode.

Basically I modified em28xx-cards.c, and used the settings of a WINTV
HVR-900 for my card.

  [EM2882_BOARD_TERRATEC_HYBRID_XS] = {
  .name = Terratec Hybrid XS (em2882),
  .valid= EM28XX_BOARD_NOT_VALIDATED,
  .tuner_type   = TUNER_XC2028,
  .tuner_gpio = default_tuner_gpio,
  //.mts_firmware = 1, with or without same results
  .has_dvb  = 1,
  .dvb_gpio = hauppauge_wintv_hvr_900_digital,
  
It nearly works: only the 1st tuning works, then that's as if the
tuner is locked up.

For example scan, tunes properly for the 1st frequency:


# scan /usr/share/dvb/dvb-t/fr-Metz
scanning /usr/share/dvb/dvb-t/fr-Metz
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
initial transponder 570166000 0 2 9 3 1 0 0
initial transponder 594166000 0 2 9 3 1 0 0
initial transponder 754166000 0 2 9 3 1 0 0
initial transponder 770166000 0 2 9 3 1 0 0
initial transponder 498166000 0 2 9 3 1 0 0
initial transponder 794166000 0 2 9 3 1 0 0
 tune to:
570166000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE
Network Name 'F'
0x 0x0101: pmt_pid 0x006e GR1 -- France 2 (running)
0x 0x0104: pmt_pid 0x0136 GR1 -- France 5 (running)
0x 0x0105: pmt_pid 0x01fe GR1 -- ARTE (running)
0x 0x0106: pmt_pid 0x0262 GR1 -- LCP (running)
0x 0x0111: pmt_pid 0x00d2 National -- France 3 (running)
0x 0x01ff: pmt_pid 0x03f2 (null) -- (null) (running)
 tune to:
594166000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE
WARNING: filter timeout pid 0x0011
WARNING: filter timeout pid 0x
WARNING: filter timeout pid 0x0010
 tune to:
754166000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE
WARNING:  tuning failed!!!


If I change the 1st freq in the config file and restart scan it works.
So only the 1st tuning works when the FE is opened only one time,
after the firmware is sent:

---
xc2028 4-0061: Loading firmware for type=BASE F8MHZ (3), id .
xc2028 4-0061: Loading firmware for type=D2633 DTV8 (210), id .
xc2028 4-0061: Loading SCODE for type=DTV6 QAM DTV7 DTV78 DTV8 ZARLINK456 SCODE 
HAS_IF_4760 (620003e0), id .
---

How could I solve this stupid tuning problem ?

(BTW, this usb device seems to work properly in analog mode)

Cheers,

-- 
Ludovic Drolez.

http://www.geeksback.com  - Secure File Backups for Geeks
http://www.palmopensource.com - The PalmOS Open Source Portal
--
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: S_FMT vs. S_CROP

2009-06-10 Thread Guennadi Liakhovetski
This question - how S_FMT and S_CROP affest image geometry - has been 
discussed at least twice before - that's only with my participation, don't 
know if and how often it has come up before. But the fact, that in two 
discussions we came up with different results seems to suggest, that this 
is not something trivially known by all except me.

First time I asked this question in this thread

http://www.mail-archive.com/linux-media@vger.kernel.org/msg00052.html

and Mauro replied (see above thread for a complete reply):

On Thu, 8 Jan 2009, Mauro Carvalho Chehab wrote:

 On Wed, 7 Jan 2009 10:14:31 +0100 (CET)
 Guennadi Liakhovetski g.liakhovet...@gmx.de wrote:

[snip]

  For example on mt9t031 
  binning and skipping are used for that. Whereas CROP uses the current 
  scaling configuration and selects a sub-window, so, once you've done S_FMT 
  to 320x240, a crop request for 640x480 might well fail.
 
 I also understand this way. You cannot crop with a resolution bigger than what
 you've selected.

(Let's call this statement M1:-))

  For this you have 
  to issue a S_FMT, i.e., change scaling. Or would one have to re-scale 
  transparently?
  
  Is this interpretation correct? It seems to reflect the API as documented 
  on http://v4l2spec.bytesex.org/spec/book1.htm correctly.
  
  If it is correct, then what should CROP_CAP return as maximum supported 
  window sizes? Should it return them according to the current scaling or 
  according to scale 1?
 
 I understand that it should return against the current scaling.

(and this one M2, whereas I understand it as current scaling means 
current scaling coefficient, not current scaled output windof)

Then in another thread

http://www.mail-archive.com/linux-media@vger.kernel.org/msg03512.html

Stefan motivated for an incomatibly different interpretation of the 
standard:

On Thu, 2 Apr 2009, Stefan Herbrechtsmeier wrote:

[snip]

 The user doesn't have to remember the scale anyway. Only the ways a different.
 You interpret S_CROP
 as something like a cutting of the S_FMT window. I interpret S_FMT as a output
 format selection
 and S_CROP as a sensor window selection.

which I now interpret as

S_FMT(640x480) means scale whatever rectangle has been selected on the 
sensor to produce an output window of 640x480 and S_CROP(2048x1536) means 
take a window of 2048x1536 sensor pixels from the sensor and scale it to 
whatever output window has been or will be selected by S_FMT. This 
contradicts M1, because you certainly can crop a larger (sensor) window. 
Also, I now believe, that [GS]_CROP and, logically, CROPCAP operate in 
sensor pixels and shall not depend on any scales, which contradicts (my 
understanding of) M2.

It now seems to be quite simple to me:

{G,S,TRY}_FMT configure output geometry in user pixels
[GS]_CROP, CROPCAP configure input window in sensor pixels

The thus configured input window should be mapped (scaled) into the output 
window.

Now, which one is correct?

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] FlyDVB Trio PCI simultanious DVB-S/DVB-T?

2009-06-10 Thread Nico Sabbi
On Wednesday 10 June 2009 17:36:34 sacha wrote:
 I was googling quite a lot without result. Is it possible to run
 FlyDVB Trio PCI in simultaneous mode with both DVB-S and DVB-T
 frontends? It is working under Windows.

 KR



no,  it's not possible, not even in windows: they share a part of the 
hardware. What's possible is using an analog and a digital source at 
the same time.
--
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


soc-camera: status, roadmap

2009-06-10 Thread Guennadi Liakhovetski
Hi all

for those interested here's a (not so) short status report and a proposed 
roadmap for general soc-camera development, and, of course, its ongoing 
conversion to v4l2-subdev API.

1. v4l2-subdev conversion. I have posted several versions of the 
conversion patch series to the list, of which the last takes an IMHO 
correct approach of a graduate conversion, avoiding mega-patches, 
modifying multiple platforms and drivers at once. With this approach the 
roadmap consists of the following steps:

1.1. preparatory patch to soc-camera core, allowing parallel existence of 
legacy (all in the mainline) platforms and converted platforms (pcm037 
i.MX31 platform so far) by introducing some backwards compatibility code. 
This patch is currently in v4l next and in linux-next, i.e., it is going 
in with 2.6.31.

1.2. convert all (around 7) mainline platforms to the new layout. This 
step is necessary for further conversions, but it depends on 1.1. 
Therefore this can only be done later in 2.6.31 merge window, when 1.1. is 
in the mainline.

1.3. convert soc-camera core and drivers to an intermediate state, with 
which all cameras are registered by platforms as platform devices, later 
soc-camera core probes them and dynamically registers respective i2c (or 
other, as in soc_camera_platform.c case) devices. This patch depends on 
1.2., and it is hard to expect to be able to push these three steps within 
the 2.6.31 merge window. It could be possible, we could request to accept 
this patch after -rc1, maybe we would be allowed to do this, but

1.4. this is the actual conversion to v4l2-subdev. It depends on some bits 
and pieces in the v4l2-subdev framework, which are still in progress 
(e.g. v4l2_i2c_new_subdev_board), I believe (Hans, am I right? or what's 
the outcome of Mauro's last reply to you in the [PULL] 
http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-subdev; thread?), so, it 
becomes practically impossible to also pull it for 2.6.31.

Now, I do not want to have soc-camera in the intermediate 1.3. state for a 
whole 2.6.31 kernel, which means, we have to postpone 1.3. and 1.4. until 
2.6.32.

2. The above means, I'll have to maintain and update my patches for a 
whole 2.6.31 development cycle. In this time I'll try to update and upload 
them as a quilt patch series and announce it on the list a couple of 
times.

3. This also means, development will become more difficult, new features 
and drivers will only be accepted on the top of my patch stack, bugfixes 
will have to be accpeted against the mainline, which then will mean extra 
porting work for me.

4. In a message I posted a few minutes ago

http://www.mail-archive.com/linux-media@vger.kernel.org/msg06294.html

I'm asking about a correct interpretation of S_CROP and S_FMT operations. 
I suspect, what soc-camera framework and all drivers thereunder are doing 
is wrong, and have to be fixed rather sooner than later. However, I'd be 
very much against fixing this in the present stack, because that would 
mean a _lot_ of porting. So, this will remain standard-non-compliant until 
2.6.32 too.

5. The conversion described in (1) is only partial, in its current form it 
does not replace the existing soc-camera API between sensor drivers and 
the soc-camera core with v4l2-subdev operations completely. Partly because 
many of the current soc-camera methods are still missing in v4l2-subdev, 
partly because it just makes more sense to first push the principle 
conversion in the mainline, which at least removes soc-camera device 
registration and switches to i2c driver autoloading and replaces some 
trivially replaceable methods, like [gs]_fmt, [gs]_register, [gs]_control. 
Some of the missing methods, like [gs]_crop should be easy to add, others, 
like pixel format and bus parameter negotiations would require some 
thinking and substantial work. Which makes this all some 2.6.33 
material... but who wants to think that far...

6. As you see, this all looks like a lot of work, and I so far have been 
doing all of this in my free time. But it would become difficult with 
these amounts of work. So, I would welcome if either someone would step 
forward to help with this work, or if some company would volunteer to 
support this work financially.

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


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

2009-06-10 Thread m-karicheri2
From: Muralidharan Karicheri a0868...@gt516km11.gt.design.ti.com

This patch adds support for setting bus parameters such as bus type
(Raw Bayer or Raw YUV image data bus), bus width (example 10 bit raw
image data bus, 10 bit BT.656 etc.), and polarities (vsync, hsync, field
etc) in sub device. This allows bridge driver to configure the sub device
interface for a specific set of bus parameters through s_bus() function call.

Reviewed By Hans Verkuil.
Signed-off-by: Muralidharan Karicheri m-kariche...@ti.com
---
Applies to v4l-dvb repository

 include/media/v4l2-subdev.h |   36 
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
index 1785608..8e719c4 100644
--- a/include/media/v4l2-subdev.h
+++ b/include/media/v4l2-subdev.h
@@ -37,6 +37,39 @@ struct v4l2_decode_vbi_line {
u32 type;   /* VBI service type (V4L2_SLICED_*). 0 if no 
service found */
 };
 
+/*
+ * Some sub-devices are connected to the bridge device through a bus that
+ * carries * the clock, vsync, hsync and data. Some interfaces such as BT.656
+ * carries the sync embedded in the data where as others have separate line
+ * carrying the sync signals. The structure below is used by bridge driver to
+ * set the desired bus parameters in the sub device to work with it.
+ */
+enum v4l2_subdev_bus_type {
+   /* Raw YUV image data bus */
+   V4L2_SUBDEV_BUS_RAW_YUV,
+   /* Raw Bayer image data bus */
+   V4L2_SUBDEV_BUS_RAW_BAYER
+};
+
+struct v4l2_subdev_bus {
+   /* yuv or bayer image data bus */
+   enum v4l2_subdev_bus_type type;
+   /* bus width */
+   u8 width;
+   /* embedded sync, set this when sync is embedded in the data stream */
+   unsigned embedded_sync:1;
+   /* 0 - active low, 1 - active high */
+   unsigned pol_vsync:1;
+   /* 0 - active low, 1 - active high */
+   unsigned pol_hsync:1;
+   /* 0 - low to high , 1 - high to low */
+   unsigned pol_field:1;
+   /* 0 - sample at falling edge , 1 - sample at rising edge */
+   unsigned pol_pclock:1;
+   /* 0 - active low , 1 - active high */
+   unsigned pol_data:1;
+};
+
 /* Sub-devices are devices that are connected somehow to the main bridge
device. These devices are usually audio/video muxers/encoders/decoders or
sensors and webcam controllers.
@@ -199,6 +232,8 @@ struct v4l2_subdev_audio_ops {
 
s_routing: see s_routing in audio_ops, except this version is for video
devices.
+
+   s_bus: set bus parameters in sub device to configure the interface
  */
 struct v4l2_subdev_video_ops {
int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 
config);
@@ -219,6 +254,7 @@ struct v4l2_subdev_video_ops {
int (*s_parm)(struct v4l2_subdev *sd, struct v4l2_streamparm *param);
int (*enum_framesizes)(struct v4l2_subdev *sd, struct v4l2_frmsizeenum 
*fsize);
int (*enum_frameintervals)(struct v4l2_subdev *sd, struct 
v4l2_frmivalenum *fival);
+   int (*s_bus)(struct v4l2_subdev *sd, const struct v4l2_subdev_bus *bus);
 };
 
 struct v4l2_subdev_ops {
-- 
1.6.0.4

--
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] [Resend] cxusb, d680 dmbth use unified lgs8gxx code instead of lgs8gl5

2009-06-10 Thread David Wong
Use unified lgs8gxx frontend instead of reverse engineered lgs8gl5 frontend.
After this patch, lgs8gl5 frontend could be mark as deprecated.
Future development should base on unified lgs8gxx frontend.

Signed-off-by: David T.L. Wong davidtlwong at gmail.com
changeset:   11831:2fe3ef06a8e2
tag: tip
user:mar...@dhm200
date:Mon May 18 17:03:36 2009 +0800
summary: cxusb: d680 switch from lgs8gl5 to unified lgs8gxx frontend driver

diff -r 32e66a2bd568 -r 2fe3ef06a8e2 linux/drivers/media/dvb/dvb-usb/cxusb.c
--- a/linux/drivers/media/dvb/dvb-usb/cxusb.c	Mon May 18 16:01:15 2009 +0800
+++ b/linux/drivers/media/dvb/dvb-usb/cxusb.c	Mon May 18 17:03:36 2009 +0800
@@ -38,7 +38,7 @@
 #include mxl5005s.h
 #include dib7000p.h
 #include dib0070.h
-#include lgs8gl5.h
+#include lgs8gxx.h
 
 /* debug */
 static int dvb_usb_cxusb_debug;
@@ -1097,8 +1097,18 @@
 	return -EIO;
 }
 
-static struct lgs8gl5_config lgs8gl5_cfg = {
+static struct lgs8gxx_config d680_lgs8gl5_cfg = {
+	.prod = LGS8GXX_PROD_LGS8GL5,
 	.demod_address = 0x19,
+	.serial_ts = 0,
+	.ts_clk_pol = 0,
+	.ts_clk_gated = 1,
+	.if_clk_freq = 30400, /* 30.4 MHz */
+	.if_freq = 5725, /* 5.725 MHz */
+	.if_neg_center = 0,
+	.ext_adc = 0,
+	.adc_signed = 0,
+	.if_neg_edge = 0,
 };
 
 static int cxusb_d680_dmb_frontend_attach(struct dvb_usb_adapter *adap)
@@ -1138,7 +1148,7 @@
 	msleep(100);
 
 	/* Attach frontend */
-	adap-fe = dvb_attach(lgs8gl5_attach, lgs8gl5_cfg, d-i2c_adap);
+	adap-fe = dvb_attach(lgs8gxx_attach, d680_lgs8gl5_cfg, d-i2c_adap);
 	if (adap-fe == NULL)
 		return -EIO;
 



RE: [PATCH 0/10 - v2] ARM: DaVinci: Video: DM355/DM6446 VPFE Capture driver

2009-06-10 Thread Karicheri, Muralidharan
Hello all,

My patch 1/10 of this series somehow doesn't make it to 
linux-me...@vger.kernel.org. I can see it locally. 

Here is the header part of the patch. I can't see any thing wrong.
I have tried re-sending with subject changed as follows, but nothing helped.
Do you know what could cause this?

[PATCH 1/10 - v2] vpfe capture bridge driver fro DM355  DM6446
[PATCH 1/10 - v2] vpfe capture bridge driver fro DM355 and DM6446

[PATCH 1/10 - v2] vpfe-capture bridge driver fro DM355  DM6446

From: Muralidharan Karicheri a0868...@gt516km11.gt.design.ti.com

VPFE Capture bridge driver

This is version, v2 of vpfe capture bridge driver for doing video
capture on DM355 and DM6446 evms. The ccdc hw modules register with the
driver and are used for configuring the CCD Controller for a specific
decoder interface. The driver also registers the sub devices required
for a specific evm. More than one sub devices can be registered.
This allows driver to switch dynamically to capture video from
any sub device that is registered. Currently only one sub device
(tvp5146) is supported. But in future this driver is expected
to do capture from sensor devices such as Micron's MT9T001,MT9T031
and MT9P031 etc. The driver currently supports MMAP based IO.

Following are the updates based on review comments:-
1) minor number is allocated dynamically
2) updates to QUERYCAP handling
3) eliminated intermediate vpfe pixel format
4) refactored few functions
5) reworked isr routines for reducing indentation
6) reworked vpfe_check_format and added a documentation
   for algorithm
7) fixed memory leak in probe()

TODO list :
1) load sub device from bridge driver. Hans has enhanced
the v4l2-subdevice framework to do this. Will be updated
soon to pick this.


Reviewed By Hans Verkuil.
Reviewed By Laurent Pinchart.

Signed-off-by: Muralidharan Karicheri m-kariche...@ti.com
---
Applies to v4l-dvb repository

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

-Original Message-
From: Karicheri, Muralidharan
Sent: Tuesday, June 09, 2009 2:47 PM
To: linux-media@vger.kernel.org
Cc: davinci-linux-open-sou...@linux.davincidsp.com; Muralidharan Karicheri;
Karicheri, Muralidharan
Subject: [PATCH 0/10 - v2] ARM: DaVinci: Video: DM355/DM6446 VPFE Capture
driver

From: Muralidharan Karicheri a0868...@gt516km11.gt.design.ti.com

VPFE Capture driver for DaVinci Media SOCs :- DM355 and DM6446

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.

+++
These patches add support for VPFE (Video Processing Front End) based
video capture on DM355 and DM6446 EVMs. For more details on the hardware
configuration and capabilities, please refer the vpfe_capture.c header.
This patch set consists of following:-

Patch 1: VPFE Capture bridge driver
Patch 2: CCDC hw device header file
Patch 3: DM355 CCDC hw module
Patch 4: DM644x CCDC hw module
Patch 5: common types used across CCDC modules
Patch 6: Makefile and config files for the driver
Patch 7: DM355 platform and board setup
Patch 8: DM644x platform and board setup
Patch 9: Remove outdated driver files from davinci git tree
Patch 10: common vpss hw module for video drivers

NOTE:

Dependent on the TVP514x decoder driver patch for migrating the
driver to sub device model from Vaibhav Hiremath

Following tests are performed.
   1) Capture and display video (PAL  NTSC) from tvp5146 decoder.
  Displayed using fbdev device driver available on davinci git tree
   2) Tested with driver built statically and dynamically

Muralidhara Karicheri

Reviewed By Hans Verkuil.
Reviewed By Laurent Pinchart.

Signed-off-by: Muralidharan Karicheri 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


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

2009-06-10 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:Wed Jun 10 19:00:03 CEST 2009
path:http://www.linuxtv.org/hg/v4l-dvb
changeset:   11930:ed3781a79c73
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-rc7-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-rc7-armv5-ixp: WARNINGS
linux-2.6.28-armv5-omap2: WARNINGS
linux-2.6.29.1-armv5-omap2: WARNINGS
linux-2.6.30-rc7-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-rc7-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-rc7-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-rc7-mips: ERRORS
linux-2.6.27-powerpc64: WARNINGS
linux-2.6.28-powerpc64: WARNINGS
linux-2.6.29.1-powerpc64: WARNINGS
linux-2.6.30-rc7-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-rc7-x86_64: WARNINGS
sparse (linux-2.6.29.1): OK
sparse (linux-2.6.30-rc7): 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/Wednesday.log

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Wednesday.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


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

2009-06-10 Thread Guennadi Liakhovetski
On Tue, 9 Jun 2009, Hans Verkuil wrote:

 Hi Mauro,
 
 Please pull from http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-subdev2 for the 
 following:
 
 - v4l2: add new s_config subdev ops and v4l2_i2c_new_subdev_cfg/board calls
 - v4l2-device: fix incorrect kernel check
 - v4l-compat: add I2C_ADDRS macro.
 - v4l2: update framework documentation.
 - v4l2-subdev: remove unnecessary check

Do I understand this right, that these patches have not been posted to the 
list? At least I haven't found them in online and in my local archives. If 
it's really so, sorry, this doesn't seem very productive to me... We have 
discussed this with Mauro on IRC, he didn't agree with me, he thought it 
was acceptable in many cases... Sorry, cannot agree.

Thanks
Guennadi

 
 This time I've only added new functions and left the existing ones in place.
 I did add a bit of code to the existing v4l2_i2c_new_(probed_)subdev 
 functions to call the new s_config op if it is available. Existing subdev 
 drivers never set this new op, so this code will not effect current 
 behavior. But for new drivers that do set s_config it is important that it 
 is called no matter what flavor of these functions is used.
 
 At the end of the 2.6.31 cycle we can replace the current 
 v4l2_i2c_new_(probed_)subdev calls with the new one I had in my earlier 
 patches.
 
 Thanks,
 
 Hans
 
 diffstat:
  linux/Documentation/video4linux/v4l2-framework.txt |   24 +++
  linux/drivers/media/video/v4l2-common.c|  166 
 +
  linux/drivers/media/video/v4l2-device.c|2
  linux/include/media/v4l2-common.h  |   18 ++
  linux/include/media/v4l2-subdev.h  |9 -
  v4l/compat.h   |6
  6 files changed, 222 insertions(+), 3 deletions(-)
 
 -- 
 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
 

---
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-10 Thread Guennadi Liakhovetski
On Tue, 9 Jun 2009, m-kariche...@ti.com wrote:

 From: Muralidharan Karicheri a0868...@gt516km11.gt.design.ti.com
 
 This patch adds support for setting bus parameters such as bus type
 (BT.656, BT.1120 etc), width (example 10 bit raw image data bus)
 and polarities (vsync, hsync, field etc) in sub device. This allows
 bridge driver to configure the sub device for a specific set of bus
 parameters through s_bus() function call.

Yes, this is required, but this is not enough. Firstly, you're missing at 
least one more flag - master or slave. Secondly, it is not enough to 
provide a s_bus function. Many hosts and sensors can configure one of 
several alternate configurations - they can select signal polarities, data 
widths, master / slave role, etc. Whereas others have some or all of these 
parameters fixed. That's why we have a query method in soc-camera, which 
delivers all supported configurations, and then the host can select some 
mutually acceptable subset. No, just returning an error code is not 
enough.

So, you would need to request supported flags, the sensor would return a 
bitmask, and the host would then issue a s_bus call with a selected subset 
and configure itself. And then you realise, that one bit per parameter is 
not enough - you need a bit for both, e.g., vsync active low and active 
high.

Have a look at 
include/media/soc_camera.h::soc_camera_bus_param_compatible() and macros 
defined there, then you might want to have a look at 
drivers/media/video/pxa_camera.c::pxa_camera_set_bus_param() to see how 
the whole machinery works. And you also want inverter flags, see 
drivers/media/video/soc_camera.c::soc_camera_apply_sensor_flags().

So, this is a step in the right direction, but it doesn't seem final yet.

Thanks
Guennadi

 
 Reviewed By Hans Verkuil.
 Signed-off-by: Muralidharan Karicheri m-kariche...@ti.com
 ---
 Applies to v4l-dvb repository
 
  include/media/v4l2-subdev.h |   36 
  1 files changed, 36 insertions(+), 0 deletions(-)
 
 diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
 index 1785608..c1cfb3b 100644
 --- a/include/media/v4l2-subdev.h
 +++ b/include/media/v4l2-subdev.h
 @@ -37,6 +37,41 @@ struct v4l2_decode_vbi_line {
   u32 type;   /* VBI service type (V4L2_SLICED_*). 0 if no 
 service found */
  };
  
 +/*
 + * Some sub-devices are connected to the bridge device through a bus that
 + * carries * the clock, vsync, hsync and data. Some interfaces such as BT.656
 + * carries the sync embedded in the data where as others have separate line
 + * carrying the sync signals. The structure below is used by bridge driver to
 + * set the desired bus parameters in the sub device to work with it.
 + */
 +enum v4l2_subdev_bus_type {
 + /* BT.656 interface. Embedded sync */
 + V4L2_SUBDEV_BUS_BT_656,
 + /* BT.1120 interface. Embedded sync */
 + V4L2_SUBDEV_BUS_BT_1120,
 + /* 8 bit muxed YCbCr bus, separate sync and field signals */
 + V4L2_SUBDEV_BUS_YCBCR_8,
 + /* 16 bit YCbCr bus, separate sync and field signals */
 + V4L2_SUBDEV_BUS_YCBCR_16,
 + /* Raw Bayer image data bus , 8 - 16 bit wide, sync signals */
 + V4L2_SUBDEV_BUS_RAW_BAYER
 +};
 +
 +struct v4l2_subdev_bus   {
 + enum v4l2_subdev_bus_type type;
 + u8 width;
 + /* 0 - active low, 1 - active high */
 + unsigned pol_vsync:1;
 + /* 0 - active low, 1 - active high */
 + unsigned pol_hsync:1;
 + /* 0 - low to high , 1 - high to low */
 + unsigned pol_field:1;
 + /* 0 - sample at falling edge , 1 - sample at rising edge */
 + unsigned pol_pclock:1;
 + /* 0 - active low , 1 - active high */
 + unsigned pol_data:1;
 +};
 +
  /* Sub-devices are devices that are connected somehow to the main bridge
 device. These devices are usually audio/video muxers/encoders/decoders or
 sensors and webcam controllers.
 @@ -109,6 +144,7 @@ struct v4l2_subdev_core_ops {
   int (*querymenu)(struct v4l2_subdev *sd, struct v4l2_querymenu *qm);
   int (*s_std)(struct v4l2_subdev *sd, v4l2_std_id norm);
   long (*ioctl)(struct v4l2_subdev *sd, unsigned int cmd, void *arg);
 + int (*s_bus)(struct v4l2_subdev *sd, struct v4l2_subdev_bus *bus);
  #ifdef CONFIG_VIDEO_ADV_DEBUG
   int (*g_register)(struct v4l2_subdev *sd, struct v4l2_dbg_register 
 *reg);
   int (*s_register)(struct v4l2_subdev *sd, struct v4l2_dbg_register 
 *reg);
 -- 
 1.6.0.4
 
 --
 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
 

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


[patch 3/6] vino: replace dma_sync_single with dma_sync_single_for_cpu

2009-06-10 Thread akpm
From: FUJITA Tomonori fujita.tomon...@lab.ntt.co.jp

This replaces dma_sync_single() with dma_sync_single_for_cpu() because
dma_sync_single() is an obsolete API; include/linux/dma-mapping.h says:

/* Backwards compat, remove in 2.7.x */
#define dma_sync_single dma_sync_single_for_cpu
#define dma_sync_sg dma_sync_sg_for_cpu

Signed-off-by: FUJITA Tomonori fujita.tomon...@lab.ntt.co.jp
Cc: Mauro Carvalho Chehab mche...@infradead.org
Signed-off-by: Andrew Morton a...@linux-foundation.org
---

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

diff -puN 
drivers/media/video/vino.c~vino-replace-dma_sync_single-with-dma_sync_single_for_cpu
 drivers/media/video/vino.c
--- 
a/drivers/media/video/vino.c~vino-replace-dma_sync_single-with-dma_sync_single_for_cpu
+++ a/drivers/media/video/vino.c
@@ -868,9 +868,9 @@ static void vino_sync_buffer(struct vino
dprintk(vino_sync_buffer():\n);
 
for (i = 0; i  fb-desc_table.page_count; i++)
-   dma_sync_single(NULL,
-   fb-desc_table.dma_cpu[VINO_PAGE_RATIO * i],
-   PAGE_SIZE, DMA_FROM_DEVICE);
+   dma_sync_single_for_cpu(NULL,
+   fb-desc_table.dma_cpu[VINO_PAGE_RATIO 
* i],
+   PAGE_SIZE, DMA_FROM_DEVICE);
 }
 
 /* Framebuffer fifo functions (need to be locked externally) */
_
--
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 1/6] radio-mr800.c: missing mutex include

2009-06-10 Thread akpm
From: Alessio Igor Bogani abog...@texware.it

radio-mr800.c uses struct mutex, so while linux/mutex.h seems to be
pulled in indirectly by one of the headers it already includes, the right
thing is to include it directly.

Signed-off-by: Alessio Igor Bogani abog...@texware.it
Cc: Mauro Carvalho Chehab mche...@infradead.org
Signed-off-by: Andrew Morton a...@linux-foundation.org
---

 drivers/media/radio/radio-mr800.c |1 +
 1 file changed, 1 insertion(+)

diff -puN drivers/media/radio/radio-mr800.c~radio-mr800c-missing-mutex-include 
drivers/media/radio/radio-mr800.c
--- a/drivers/media/radio/radio-mr800.c~radio-mr800c-missing-mutex-include
+++ a/drivers/media/radio/radio-mr800.c
@@ -64,6 +64,7 @@
 #include media/v4l2-ioctl.h
 #include linux/usb.h
 #include linux/version.h /* for KERNEL_VERSION MACRO */
+#include linux/mutex.h
 
 /* driver and module definitions */
 #define DRIVER_AUTHOR Alexey Klimov klimov.li...@gmail.com
_
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[patch 5/6] v4l: generate KEY_CAMERA instead of BTN_0 key events on input devices

2009-06-10 Thread akpm
From: Lennart Poettering mzxre...@0pointer.de

A bunch of V4L drivers generate BTN_0 instead of KEY_CAMERA key presses.

X11 is able to handle KEY_CAMERA automatically these days while BTN_0 is
not treated at all.  Thus it would be of big benefit if the camera drivers
would consistently generate KEY_CAMERA.  Some drivers (uvc) already do,
this patch updates the remaining drivers to do the same.

I only possess a limited set of webcams, so this isn't tested with all
cameras.  The patch is rather trivial and compile tested, so I'd say it's
still good enough to get merged.

Cc: Mauro Carvalho Chehab mche...@infradead.org
Signed-off-by: Lennart Poettering mzxre...@0pointer.de
Signed-off-by: Andrew Morton a...@linux-foundation.org
---

 drivers/media/video/pwc/pwc-if.c  |4 ++--
 drivers/media/video/usbvideo/konicawc.c   |4 ++--
 drivers/media/video/usbvideo/quickcam_messenger.c |4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff -puN 
drivers/media/video/pwc/pwc-if.c~v4l-generate-key_camera-instead-of-btn_0-key-events-on-input-devices
 drivers/media/video/pwc/pwc-if.c
--- 
a/drivers/media/video/pwc/pwc-if.c~v4l-generate-key_camera-instead-of-btn_0-key-events-on-input-devices
+++ a/drivers/media/video/pwc/pwc-if.c
@@ -601,7 +601,7 @@ static void pwc_snapshot_button(struct p
 
 #ifdef CONFIG_USB_PWC_INPUT_EVDEV
if (pdev-button_dev) {
-   input_report_key(pdev-button_dev, BTN_0, down);
+   input_report_key(pdev-button_dev, KEY_CAMERA, down);
input_sync(pdev-button_dev);
}
 #endif
@@ -1847,7 +1847,7 @@ static int usb_pwc_probe(struct usb_inte
usb_to_input_id(pdev-udev, pdev-button_dev-id);
pdev-button_dev-dev.parent = pdev-udev-dev;
pdev-button_dev-evbit[0] = BIT_MASK(EV_KEY);
-   pdev-button_dev-keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0);
+   pdev-button_dev-keybit[BIT_WORD(KEY_CAMERA)] = BIT_MASK(KEY_CAMERA);
 
rc = input_register_device(pdev-button_dev);
if (rc) {
diff -puN 
drivers/media/video/usbvideo/konicawc.c~v4l-generate-key_camera-instead-of-btn_0-key-events-on-input-devices
 drivers/media/video/usbvideo/konicawc.c
--- 
a/drivers/media/video/usbvideo/konicawc.c~v4l-generate-key_camera-instead-of-btn_0-key-events-on-input-devices
+++ a/drivers/media/video/usbvideo/konicawc.c
@@ -240,7 +240,7 @@ static void konicawc_register_input(stru
input_dev-dev.parent = dev-dev;
 
input_dev-evbit[0] = BIT_MASK(EV_KEY);
-   input_dev-keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0);
+   input_dev-keybit[BIT_WORD(KEY_CAMERA)] = BIT_MASK(KEY_CAMERA);
 
error = input_register_device(cam-input);
if (error) {
@@ -263,7 +263,7 @@ static void konicawc_unregister_input(st
 static void konicawc_report_buttonstat(struct konicawc *cam)
 {
if (cam-input) {
-   input_report_key(cam-input, BTN_0, cam-buttonsts);
+   input_report_key(cam-input, KEY_CAMERA, cam-buttonsts);
input_sync(cam-input);
}
 }
diff -puN 
drivers/media/video/usbvideo/quickcam_messenger.c~v4l-generate-key_camera-instead-of-btn_0-key-events-on-input-devices
 drivers/media/video/usbvideo/quickcam_messenger.c
--- 
a/drivers/media/video/usbvideo/quickcam_messenger.c~v4l-generate-key_camera-instead-of-btn_0-key-events-on-input-devices
+++ a/drivers/media/video/usbvideo/quickcam_messenger.c
@@ -103,7 +103,7 @@ static void qcm_register_input(struct qc
input_dev-dev.parent = dev-dev;
 
input_dev-evbit[0] = BIT_MASK(EV_KEY);
-   input_dev-keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0);
+   input_dev-keybit[BIT_WORD(KEY_CAMERA)] = BIT_MASK(KEY_CAMERA);
 
error = input_register_device(cam-input);
if (error) {
@@ -126,7 +126,7 @@ static void qcm_unregister_input(struct 
 static void qcm_report_buttonstat(struct qcm *cam)
 {
if (cam-input) {
-   input_report_key(cam-input, BTN_0, cam-button_sts);
+   input_report_key(cam-input, KEY_CAMERA, cam-button_sts);
input_sync(cam-input);
}
 }
_
--
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 4/6] V4L/pwc: use usb_interface as parent, not usb_device

2009-06-10 Thread akpm
From: Lennart Poettering mzxre...@0pointer.de

The current code creates a sysfs device path where the video4linux device
is child of the usb device itself instead of the interface it belongs to. 
That is evil and confuses udev.

This patch does basically the same thing as Kay's similar patch for the
ov511 driver:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ce96d0a44a4f8d1bb3dc12b5e98cb688c1bc730d

Cc: Kay Sievers kay.siev...@vrfy.org
Cc: Mauro Carvalho Chehab mche...@infradead.org
Signed-off-by: Lennart Poettering mzxre...@0pointer.de
Signed-off-by: Andrew Morton a...@linux-foundation.org
---

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

diff -puN 
drivers/media/video/pwc/pwc-if.c~v4l-pwc-use-usb_interface-as-parent-not-usb_device
 drivers/media/video/pwc/pwc-if.c
--- 
a/drivers/media/video/pwc/pwc-if.c~v4l-pwc-use-usb_interface-as-parent-not-usb_device
+++ a/drivers/media/video/pwc/pwc-if.c
@@ -1783,7 +1783,7 @@ static int usb_pwc_probe(struct usb_inte
return -ENOMEM;
}
memcpy(pdev-vdev, pwc_template, sizeof(pwc_template));
-   pdev-vdev-parent = (udev-dev);
+   pdev-vdev-parent = intf-dev;
strcpy(pdev-vdev-name, name);
video_set_drvdata(pdev-vdev, pdev);
 
_
--
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 6/6] tvp514x: try_count off by one

2009-06-10 Thread akpm
From: Roel Kluin roel.kl...@gmail.com

With `while (try_count--  0)' try_count reaches -1 after the loop.

Signed-off-by: Roel Kluin roel.kl...@gmail.com
Cc: Mauro Carvalho Chehab mche...@infradead.org
Signed-off-by: Andrew Morton a...@linux-foundation.org
---

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

diff -puN drivers/media/video/tvp514x.c~tvp514x-try_count-off-by-one 
drivers/media/video/tvp514x.c
--- a/drivers/media/video/tvp514x.c~tvp514x-try_count-off-by-one
+++ a/drivers/media/video/tvp514x.c
@@ -692,7 +692,7 @@ static int ioctl_s_routing(struct v4l2_i
break;  /* Input detected */
}
 
-   if ((current_std == STD_INVALID) || (try_count = 0))
+   if ((current_std == STD_INVALID) || (try_count  0))
return -EINVAL;
 
decoder-current_std = current_std;
_
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[patch 2/6] dvb-core: fix potential mutex_unlock without mutex_lock in dvb_dvr_read

2009-06-10 Thread akpm
From: Simon Arlott si...@fire.lp0.eu

dvb_dvr_read may unlock the dmxdev mutex and return -ENODEV, except this
function is a file op and will never be called with the mutex held.

There's existing mutex_lock and mutex_unlock around the actual read but
it's commented out.  These should probably be uncommented but the read
blocks and this could block another non-blocking reader on the mutex
instead.

This change comments out the extra mutex_unlock.

[a...@linux-foundation.org: cleanups, simplification]
Signed-off-by: Simon Arlott si...@fire.lp0.eu
Cc: Mauro Carvalho Chehab mche...@infradead.org
Signed-off-by: Andrew Morton a...@linux-foundation.org
---

 drivers/media/dvb/dvb-core/dmxdev.c |   14 --
 1 file changed, 4 insertions(+), 10 deletions(-)

diff -puN 
drivers/media/dvb/dvb-core/dmxdev.c~dvb-core-fix-potential-mutex_unlock-without-mutex_lock-in-dvb_dvr_read
 drivers/media/dvb/dvb-core/dmxdev.c
--- 
a/drivers/media/dvb/dvb-core/dmxdev.c~dvb-core-fix-potential-mutex_unlock-without-mutex_lock-in-dvb_dvr_read
+++ a/drivers/media/dvb/dvb-core/dmxdev.c
@@ -244,19 +244,13 @@ static ssize_t dvb_dvr_read(struct file 
 {
struct dvb_device *dvbdev = file-private_data;
struct dmxdev *dmxdev = dvbdev-priv;
-   int ret;
 
-   if (dmxdev-exit) {
-   mutex_unlock(dmxdev-mutex);
+   if (dmxdev-exit)
return -ENODEV;
-   }
 
-   //mutex_lock(dmxdev-mutex);
-   ret = dvb_dmxdev_buffer_read(dmxdev-dvr_buffer,
-file-f_flags  O_NONBLOCK,
-buf, count, ppos);
-   //mutex_unlock(dmxdev-mutex);
-   return ret;
+   return dvb_dmxdev_buffer_read(dmxdev-dvr_buffer,
+ file-f_flags  O_NONBLOCK,
+ buf, count, ppos);
 }
 
 static int dvb_dvr_set_buffer_size(struct dmxdev *dmxdev,
_
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

2009-06-10 Thread Hans Verkuil
On Wednesday 10 June 2009 20:17:53 Guennadi Liakhovetski wrote:
 On Tue, 9 Jun 2009, Hans Verkuil wrote:
  Hi Mauro,
 
  Please pull from http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-subdev2
  for the following:
 
  - v4l2: add new s_config subdev ops and v4l2_i2c_new_subdev_cfg/board
  calls - v4l2-device: fix incorrect kernel check
  - v4l-compat: add I2C_ADDRS macro.
  - v4l2: update framework documentation.
  - v4l2-subdev: remove unnecessary check

 Do I understand this right, that these patches have not been posted to
 the list?

The idea is that you click on the link and look at the patches through the 
hg web frontend.

 At least I haven't found them in online and in my local 
 archives. If it's really so, sorry, this doesn't seem very productive to
 me... We have discussed this with Mauro on IRC, he didn't agree with me,
 he thought it was acceptable in many cases... Sorry, cannot agree.

Both methods (a pull request or a patch series) are used and personally I 
have no preference, although currently I have a script that simplifies 
these pull requests so I generally use that. A patch series makes it easier 
to reply with review comments, while I think a pull request reduces 
mailinglist traffic and actually makes it easier to do the actual reviews.

Regards,

Hans


 Thanks
 Guennadi

  This time I've only added new functions and left the existing ones in
  place. I did add a bit of code to the existing
  v4l2_i2c_new_(probed_)subdev functions to call the new s_config op if
  it is available. Existing subdev drivers never set this new op, so this
  code will not effect current behavior. But for new drivers that do set
  s_config it is important that it is called no matter what flavor of
  these functions is used.
 
  At the end of the 2.6.31 cycle we can replace the current
  v4l2_i2c_new_(probed_)subdev calls with the new one I had in my earlier
  patches.
 
  Thanks,
 
  Hans
 
  diffstat:
   linux/Documentation/video4linux/v4l2-framework.txt |   24 +++
   linux/drivers/media/video/v4l2-common.c|  166
  +
   linux/drivers/media/video/v4l2-device.c|2
   linux/include/media/v4l2-common.h  |   18 ++
   linux/include/media/v4l2-subdev.h  |9 -
   v4l/compat.h   |6
   6 files changed, 222 insertions(+), 3 deletions(-)
 
  --
  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

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



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

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

 On Wednesday 10 June 2009 20:32:25 Guennadi Liakhovetski wrote:
  On Tue, 9 Jun 2009, m-kariche...@ti.com wrote:
   From: Muralidharan Karicheri a0868...@gt516km11.gt.design.ti.com
  
   This patch adds support for setting bus parameters such as bus type
   (BT.656, BT.1120 etc), width (example 10 bit raw image data bus)
   and polarities (vsync, hsync, field etc) in sub device. This allows
   bridge driver to configure the sub device for a specific set of bus
   parameters through s_bus() function call.
 
  Yes, this is required, but this is not enough. Firstly, you're missing at
  least one more flag - master or slave. Secondly, it is not enough to
  provide a s_bus function. Many hosts and sensors can configure one of
  several alternate configurations - they can select signal polarities,
  data widths, master / slave role, etc. Whereas others have some or all of
  these parameters fixed. That's why we have a query method in soc-camera,
  which delivers all supported configurations, and then the host can select
  some mutually acceptable subset. No, just returning an error code is not
  enough.
 
 Why would you want to query this? I would expect this to be fixed settings: 
 something that is determined by the architecture. Actually, I would expect 
 this to be part of the platform_data in many cases and setup when the i2c 
 driver is initialized and not touched afterwards.
 
 If we want to negotiate these bus settings, then we indeed need something 
 more. But it seems unnecessarily complex to me to implement autonegotiation 
 when this is in practice a fixed setting determined by how the sensor is 
 hooked up to the host.

On the platform level I have so far seen two options: signal connected 
directly or via an inverter. For that you need platform data, yes. But 
otherwise - why? say, if both your sensor and your host can select hsync 
polarity in software - what should platform tell about it? This knowledge 
belongs in the respective drivers - they know, that they can configure 
arbitrary polarity and they advertise that. Another sensor, that is 
statically active high - what does platform have to do with it? The driver 
knows perfectly, that it can only do one polarity, and it negotiates that. 
Earlier we also had this flags configured in platform code, but then we 
realised that this wasn't correct. This information and configuration 
methods are chip-specific, not platform-specific.

And the negotiation code is not that complex - just copy respective 
soc-camera functions, later the originals will be removed.

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: soc-camera: status, roadmap

2009-06-10 Thread Hans Verkuil
Hi Guennadi,

Let me start with a big Thank You! for all your hard work on this! Much 
appreciated!

On Wednesday 10 June 2009 18:45:36 Guennadi Liakhovetski wrote:
 Hi all

 for those interested here's a (not so) short status report and a proposed
 roadmap for general soc-camera development, and, of course, its ongoing
 conversion to v4l2-subdev API.

 1. v4l2-subdev conversion. I have posted several versions of the
 conversion patch series to the list, of which the last takes an IMHO
 correct approach of a graduate conversion, avoiding mega-patches,
 modifying multiple platforms and drivers at once. With this approach the
 roadmap consists of the following steps:

 1.1. preparatory patch to soc-camera core, allowing parallel existence of
 legacy (all in the mainline) platforms and converted platforms (pcm037
 i.MX31 platform so far) by introducing some backwards compatibility code.
 This patch is currently in v4l next and in linux-next, i.e., it is going
 in with 2.6.31.

 1.2. convert all (around 7) mainline platforms to the new layout. This
 step is necessary for further conversions, but it depends on 1.1.
 Therefore this can only be done later in 2.6.31 merge window, when 1.1.
 is in the mainline.

 1.3. convert soc-camera core and drivers to an intermediate state, with
 which all cameras are registered by platforms as platform devices, later
 soc-camera core probes them and dynamically registers respective i2c (or
 other, as in soc_camera_platform.c case) devices. This patch depends on
 1.2., and it is hard to expect to be able to push these three steps
 within the 2.6.31 merge window. It could be possible, we could request to
 accept this patch after -rc1, maybe we would be allowed to do this, but

 1.4. this is the actual conversion to v4l2-subdev. It depends on some
 bits and pieces in the v4l2-subdev framework, which are still in progress
 (e.g. v4l2_i2c_new_subdev_board), I believe (Hans, am I right? or what's
 the outcome of Mauro's last reply to you in the [PULL]
 http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-subdev; thread?), so, it
 becomes practically impossible to also pull it for 2.6.31.

I haven't seen a reaction yet from Mauro regarding my latest pull request: I 
think it addresses all his concerns regarding existing functionality so I 
actually hope this can be merged. It would help a lot with this and similar 
efforts.

 Now, I do not want to have soc-camera in the intermediate 1.3. state for
 a whole 2.6.31 kernel, which means, we have to postpone 1.3. and 1.4.
 until 2.6.32.

 2. The above means, I'll have to maintain and update my patches for a
 whole 2.6.31 development cycle. In this time I'll try to update and
 upload them as a quilt patch series and announce it on the list a couple
 of times.

 3. This also means, development will become more difficult, new features
 and drivers will only be accepted on the top of my patch stack, bugfixes
 will have to be accpeted against the mainline, which then will mean extra
 porting work for me.

If there is anything I can do to help this along, please let me know. In 
particular: what else besides the v4l2_i2c_new_subdev_board do you need? I 
didn't have much time in the past few weeks, but things are more relaxed 
now and I expect to be able to do a lot more in the coming weeks (fingers 
crossed :-) ).

Regards,

Hans

 4. In a message I posted a few minutes ago

 http://www.mail-archive.com/linux-media@vger.kernel.org/msg06294.html

 I'm asking about a correct interpretation of S_CROP and S_FMT operations.
 I suspect, what soc-camera framework and all drivers thereunder are doing
 is wrong, and have to be fixed rather sooner than later. However, I'd be
 very much against fixing this in the present stack, because that would
 mean a _lot_ of porting. So, this will remain standard-non-compliant
 until 2.6.32 too.

 5. The conversion described in (1) is only partial, in its current form
 it does not replace the existing soc-camera API between sensor drivers
 and the soc-camera core with v4l2-subdev operations completely. Partly
 because many of the current soc-camera methods are still missing in
 v4l2-subdev, partly because it just makes more sense to first push the
 principle conversion in the mainline, which at least removes soc-camera
 device registration and switches to i2c driver autoloading and replaces
 some trivially replaceable methods, like [gs]_fmt, [gs]_register,
 [gs]_control. Some of the missing methods, like [gs]_crop should be easy
 to add, others, like pixel format and bus parameter negotiations would
 require some thinking and substantial work. Which makes this all some
 2.6.33
 material... but who wants to think that far...

 6. As you see, this all looks like a lot of work, and I so far have been
 doing all of this in my free time. But it would become difficult with
 these amounts of work. So, I would welcome if either someone would step
 forward to help with this work, or if some company would volunteer to
 

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

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

 On Wednesday 10 June 2009 20:17:53 Guennadi Liakhovetski wrote:
  On Tue, 9 Jun 2009, Hans Verkuil wrote:
   Hi Mauro,
  
   Please pull from http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-subdev2
   for the following:
  
   - v4l2: add new s_config subdev ops and v4l2_i2c_new_subdev_cfg/board
   calls - v4l2-device: fix incorrect kernel check
   - v4l-compat: add I2C_ADDRS macro.
   - v4l2: update framework documentation.
   - v4l2-subdev: remove unnecessary check
 
  Do I understand this right, that these patches have not been posted to
  the list?
 
 The idea is that you click on the link and look at the patches through the 
 hg web frontend.

And then?

  At least I haven't found them in online and in my local 
  archives. If it's really so, sorry, this doesn't seem very productive to
  me... We have discussed this with Mauro on IRC, he didn't agree with me,
  he thought it was acceptable in many cases... Sorry, cannot agree.
 
 Both methods (a pull request or a patch series) are used and personally I 
 have no preference, although currently I have a script that simplifies 
 these pull requests so I generally use that. A patch series makes it easier 
 to reply with review comments, while I think a pull request reduces 
 mailinglist traffic and actually makes it easier to do the actual reviews.

I think, patches posted to the list for reviews with a following pull 
request (if no rework needed of course) is the most reviewer-friendly, 
which is also what I so far have seen on all other lists I subscribe to 
(arm, ppc, usb, scsi, lkml, i2c,...). Have you seen those huge mailing 
threads from Greg K-H with all patches in his queue preceding his pull 
requests (I hope I reproduce his work flow correctly here, any mistakes 
are mine and unintended)?

Are you really saying that it's equally convenient for you to review / 
reply to patch on ML and to patch in some repository from a pull request? 
Especially when there are multiple patches in that pull and you have to 
click through them all, jumping back and forth between your mail client 
and a browser?...

If all are so much concerned about the ML traffic (which I don't 
understand either, filtering and ignoring uninteresting mails is easy 
enough these days), maybe we should split into devel and user? Sorry, I 
really don't understand. I'll go ask members of other MLs what they think 
about clicking through patches...

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-10 Thread Karicheri, Muralidharan
Guennadi,

Thanks for responding. I acknowledge I need to add
master  slave information in the structure. Querying
the capabilities from the sub device is a good feature.
I will look into your references and let you know if I
have any question.

I will send an updated patch based on this.

BTW, I have a question about the mt9t031.c driver. Could
I use this driver to stream VGA frames from the sensor?
Is it possible to configure the driver to stream at a
specific fps? We have a version of the driver used internally
and it can do capture and stream of Bayer RGB data at VGA,
480p, 576p and 720p resolutions. I have started integrating
your driver with my vpfe capture driver and it wasn't very
clear to me. Looks like driver calculates the timing parameters
based on the width and height of the capture area. We need
streaming capability in the driver. This is how our driver works
with mt9t031 sensor
  raw-bus (10 bit)
vpfe-capture  - mt9t031 driver
  ||
  V  V
VPFEMT9T031

VPFE hardware has internal timing and DMA controller to
copy data frame by frame from the sensor output to SDRAM.
The PCLK form the sensor is used to generate the internal
timing.

Thanks.

Murali
email: m-kariche...@ti.com

-Original Message-
From: Guennadi Liakhovetski [mailto:g.liakhovet...@gmx.de]
Sent: Wednesday, June 10, 2009 2:32 PM
To: Karicheri, Muralidharan
Cc: linux-media@vger.kernel.org; davinci-linux-open-
sou...@linux.davincidsp.com; Muralidharan Karicheri
Subject: Re: [PATCH] adding support for setting bus parameters in sub
device

On Tue, 9 Jun 2009, m-kariche...@ti.com wrote:

 From: Muralidharan Karicheri a0868...@gt516km11.gt.design.ti.com

 This patch adds support for setting bus parameters such as bus type
 (BT.656, BT.1120 etc), width (example 10 bit raw image data bus)
 and polarities (vsync, hsync, field etc) in sub device. This allows
 bridge driver to configure the sub device for a specific set of bus
 parameters through s_bus() function call.

Yes, this is required, but this is not enough. Firstly, you're missing at
least one more flag - master or slave. Secondly, it is not enough to
provide a s_bus function. Many hosts and sensors can configure one of
several alternate configurations - they can select signal polarities, data
widths, master / slave role, etc. Whereas others have some or all of these
parameters fixed. That's why we have a query method in soc-camera, which
delivers all supported configurations, and then the host can select some
mutually acceptable subset. No, just returning an error code is not
enough.

So, you would need to request supported flags, the sensor would return a
bitmask, and the host would then issue a s_bus call with a selected subset
and configure itself. And then you realise, that one bit per parameter is
not enough - you need a bit for both, e.g., vsync active low and active
high.

Have a look at
include/media/soc_camera.h::soc_camera_bus_param_compatible() and macros
defined there, then you might want to have a look at
drivers/media/video/pxa_camera.c::pxa_camera_set_bus_param() to see how
the whole machinery works. And you also want inverter flags, see
drivers/media/video/soc_camera.c::soc_camera_apply_sensor_flags().

So, this is a step in the right direction, but it doesn't seem final yet.

Thanks
Guennadi


 Reviewed By Hans Verkuil.
 Signed-off-by: Muralidharan Karicheri m-kariche...@ti.com
 ---
 Applies to v4l-dvb repository

  include/media/v4l2-subdev.h |   36 
  1 files changed, 36 insertions(+), 0 deletions(-)

 diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
 index 1785608..c1cfb3b 100644
 --- a/include/media/v4l2-subdev.h
 +++ b/include/media/v4l2-subdev.h
 @@ -37,6 +37,41 @@ struct v4l2_decode_vbi_line {
  u32 type;   /* VBI service type (V4L2_SLICED_*). 0 if no
service found */
  };

 +/*
 + * Some sub-devices are connected to the bridge device through a bus
that
 + * carries * the clock, vsync, hsync and data. Some interfaces such as
BT.656
 + * carries the sync embedded in the data where as others have separate
line
 + * carrying the sync signals. The structure below is used by bridge
driver to
 + * set the desired bus parameters in the sub device to work with it.
 + */
 +enum v4l2_subdev_bus_type {
 +/* BT.656 interface. Embedded sync */
 +V4L2_SUBDEV_BUS_BT_656,
 +/* BT.1120 interface. Embedded sync */
 +V4L2_SUBDEV_BUS_BT_1120,
 +/* 8 bit muxed YCbCr bus, separate sync and field signals */
 +V4L2_SUBDEV_BUS_YCBCR_8,
 +/* 16 bit YCbCr bus, separate sync and field signals */
 +V4L2_SUBDEV_BUS_YCBCR_16,
 +/* Raw Bayer image data bus , 8 - 16 bit wide, sync signals */
 +V4L2_SUBDEV_BUS_RAW_BAYER
 +};
 +
 +struct v4l2_subdev_bus  {
 +enum v4l2_subdev_bus_type type;
 +u8 

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

2009-06-10 Thread Hans Verkuil
On Wednesday 10 June 2009 22:20:03 Guennadi Liakhovetski wrote:
 On Wed, 10 Jun 2009, Hans Verkuil wrote:
  On Wednesday 10 June 2009 20:17:53 Guennadi Liakhovetski wrote:
   On Tue, 9 Jun 2009, Hans Verkuil wrote:
Hi Mauro,
   
Please pull from
http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-subdev2 for the
following:
   
- v4l2: add new s_config subdev ops and
v4l2_i2c_new_subdev_cfg/board calls - v4l2-device: fix incorrect
kernel check
- v4l-compat: add I2C_ADDRS macro.
- v4l2: update framework documentation.
- v4l2-subdev: remove unnecessary check
  
   Do I understand this right, that these patches have not been posted
   to the list?
 
  The idea is that you click on the link and look at the patches through
  the hg web frontend.

 And then?

   At least I haven't found them in online and in my local
   archives. If it's really so, sorry, this doesn't seem very productive
   to me... We have discussed this with Mauro on IRC, he didn't agree
   with me, he thought it was acceptable in many cases... Sorry, cannot
   agree.
 
  Both methods (a pull request or a patch series) are used and personally
  I have no preference, although currently I have a script that
  simplifies these pull requests so I generally use that. A patch series
  makes it easier to reply with review comments, while I think a pull
  request reduces mailinglist traffic and actually makes it easier to do
  the actual reviews.

 I think, patches posted to the list for reviews with a following pull
 request (if no rework needed of course) is the most reviewer-friendly,
 which is also what I so far have seen on all other lists I subscribe to
 (arm, ppc, usb, scsi, lkml, i2c,...). Have you seen those huge mailing
 threads from Greg K-H with all patches in his queue preceding his pull
 requests (I hope I reproduce his work flow correctly here, any mistakes
 are mine and unintended)?

 Are you really saying that it's equally convenient for you to review /
 reply to patch on ML and to patch in some repository from a pull request?
 Especially when there are multiple patches in that pull and you have to
 click through them all, jumping back and forth between your mail client
 and a browser?...

 If all are so much concerned about the ML traffic (which I don't
 understand either, filtering and ignoring uninteresting mails is easy
 enough these days), maybe we should split into devel and user? Sorry, I
 really don't understand. I'll go ask members of other MLs what they think
 about clicking through patches...

Um, you are asking the wrong person. It's one of the two methods used on 
this list. Yes, pull requests are unusual compared to other lists (and so 
is the use of hg instead of git for that matter due to historical reasons).

If Mauro says: use patch series, then I'll modify my workflow. If you prefer 
to see these subdev patches as a patch series, then I can do that for you. 
I have no preference myself. It's also a discussion I have no wish to go 
into.

So if you see a pull request from me and prefer to have it as a patch 
series, just mail me and I'll do it. No problem.

Regards,

Hans


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



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

2009-06-10 Thread Hans Verkuil
On Wednesday 10 June 2009 21:59:13 Guennadi Liakhovetski wrote:
 On Wed, 10 Jun 2009, Hans Verkuil wrote:
  On Wednesday 10 June 2009 20:32:25 Guennadi Liakhovetski wrote:
   On Tue, 9 Jun 2009, m-kariche...@ti.com wrote:
From: Muralidharan Karicheri a0868...@gt516km11.gt.design.ti.com
   
This patch adds support for setting bus parameters such as bus type
(BT.656, BT.1120 etc), width (example 10 bit raw image data bus)
and polarities (vsync, hsync, field etc) in sub device. This allows
bridge driver to configure the sub device for a specific set of bus
parameters through s_bus() function call.
  
   Yes, this is required, but this is not enough. Firstly, you're
   missing at least one more flag - master or slave. Secondly, it is not
   enough to provide a s_bus function. Many hosts and sensors can
   configure one of several alternate configurations - they can select
   signal polarities, data widths, master / slave role, etc. Whereas
   others have some or all of these parameters fixed. That's why we have
   a query method in soc-camera, which delivers all supported
   configurations, and then the host can select some mutually acceptable
   subset. No, just returning an error code is not enough.
 
  Why would you want to query this? I would expect this to be fixed
  settings: something that is determined by the architecture. Actually, I
  would expect this to be part of the platform_data in many cases and
  setup when the i2c driver is initialized and not touched afterwards.
 
  If we want to negotiate these bus settings, then we indeed need
  something more. But it seems unnecessarily complex to me to implement
  autonegotiation when this is in practice a fixed setting determined by
  how the sensor is hooked up to the host.

 On the platform level I have so far seen two options: signal connected
 directly or via an inverter. For that you need platform data, yes. But
 otherwise - why? say, if both your sensor and your host can select hsync
 polarity in software - what should platform tell about it? This knowledge
 belongs in the respective drivers - they know, that they can configure
 arbitrary polarity and they advertise that. Another sensor, that is
 statically active high - what does platform have to do with it? The
 driver knows perfectly, that it can only do one polarity, and it
 negotiates that. Earlier we also had this flags configured in platform
 code, but then we realised that this wasn't correct. This information and
 configuration methods are chip-specific, not platform-specific.

 And the negotiation code is not that complex - just copy respective
 soc-camera functions, later the originals will be removed.

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?

BTW, looking at the code there doesn't seem to be a bus type (probably only 
Bayer is used), correct? How is the datawidth negotiation done? Is the 
largest available width chosen? I assume that the datawidth is generally 
fixed by the host? I don't quite see how that can be negotiated since what 
is chosen there is linked to how the video data is transferred to memory. 
E.g., chosing a bus width of 8 or 10 bits can be the difference between 
transferring 8 bit or 16 bit data (with 6 bits padding) when the image is 
transferred to memory. If I would implement negotiation I would probably 
limit it to those one-bit settings and not include bus type and width.

Regards,

Hans


 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



-- 
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 0/10 - v2] ARM: DaVinci: Video: DM355/DM6446 VPFE Capture driver

2009-06-10 Thread Hans Verkuil
On Tuesday 09 June 2009 20:46:44 m-kariche...@ti.com wrote:
 From: Muralidharan Karicheri a0868...@gt516km11.gt.design.ti.com

 VPFE Capture driver for DaVinci Media SOCs :- DM355 and DM6446

 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 reviewing this Friday or Saturday.

Regards,

Hans


 +++
 These patches add support for VPFE (Video Processing Front End) based
 video capture on DM355 and DM6446 EVMs. For more details on the hardware
 configuration and capabilities, please refer the vpfe_capture.c header.
 This patch set consists of following:-

 Patch 1: VPFE Capture bridge driver
 Patch 2: CCDC hw device header file
 Patch 3: DM355 CCDC hw module
 Patch 4: DM644x CCDC hw module
 Patch 5: common types used across CCDC modules
 Patch 6: Makefile and config files for the driver
 Patch 7: DM355 platform and board setup
 Patch 8: DM644x platform and board setup
 Patch 9: Remove outdated driver files from davinci git tree
 Patch 10: common vpss hw module for video drivers

 NOTE:

 Dependent on the TVP514x decoder driver patch for migrating the
 driver to sub device model from Vaibhav Hiremath

 Following tests are performed.
   1) Capture and display video (PAL  NTSC) from tvp5146 decoder.
  Displayed using fbdev device driver available on davinci git tree
   2) Tested with driver built statically and dynamically

 Muralidhara Karicheri

 Reviewed By Hans Verkuil.
 Reviewed By Laurent Pinchart.

 Signed-off-by: Muralidharan Karicheri 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



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

2009-06-10 Thread Karicheri, Muralidharan


 We need
 streaming capability in the driver. This is how our driver works
 with mt9t031 sensor
raw-bus (10 bit)
 vpfe-capture  - mt9t031 driver
||
V  V
  VPFEMT9T031

 VPFE hardware has internal timing and DMA controller to
 copy data frame by frame from the sensor output to SDRAM.
 The PCLK form the sensor is used to generate the internal
 timing.

So, what is missing in the driver apart from the ability to specify
a frame-rate?

[MK] Does the mt9t031 output one frame (snapshot) like in a camera or can it 
output frame continuously along with PCLK, Hsync and Vsync signals like in a 
video streaming device. VPFE capture can accept frames continuously from the 
sensor synchronized to PCLK, HSYNC and VSYNC and output frames to application 
using QBUF/DQBUF. In our implementation, we have timing parameters for the 
sensor to do streaming at various resolutions and fps. So application calls 
S_STD to set these timings. I am not sure if this is an acceptable way of 
implementing it. Any comments?

Thanks

Murali

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-10 Thread Guennadi Liakhovetski
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?

 BTW, looking at the code there doesn't seem to be a bus type (probably only 
 Bayer is used), correct? How is the datawidth negotiation done? Is the 
 largest available width chosen? I assume that the datawidth is generally 
 fixed by the host? I don't quite see how that can be negotiated since what 
 is chosen there is linked to how the video data is transferred to memory. 
 E.g., chosing a bus width of 8 or 10 bits can be the difference between 
 transferring 8 bit or 16 bit data (with 6 bits padding) when the image is 
 transferred to memory. If I would implement negotiation I would probably 
 limit it to those one-bit settings and not include bus type and width.

Well, this is indeed hairy. And hardware developers compete in creativity 
making us invent new and new algorithms:-( I think, so far _practically_ I 
have only worked with the following setups:

8 bit parallel with syncs and clocks. Data can be either Bayer or YUV. 
This is most usual in my practice so far.

10 bit parallel (PXA270) with syncs and clocks bus with an 8 bit sensor 
connected to most significant lanes... This is achieved by providing an 
additional I2C controlled switch...

10 bit parallel with a 10 bit sensor, data 0-extended to 16 bit, raw 
Bayer.

15 bit parallel bus (i.MX31) with 8 bit sensor connected to least 
significant lanes, because i.MX31 is smart enough to use them correctly.

ATM this is a part of soc-camera pixel format negotiation code, you can 
look at various .set_bus_param() methods in sensor drivers. E.g., look in 
mt9m001 and mt9v022 for drivers, using external bus-width switches...

Now, I do not know how standard these various data packing methods on the 
bus are, I think, we will have to give it a good thought when designing an 
API, comments from developers familiar with various setups are much 
appreciated.

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 0/10 - v2] ARM: DaVinci: Video: DM355/DM6446 VPFE Capture driver

2009-06-10 Thread Karicheri, Muralidharan
Hans,

Great! I look forward for your comments.

Murali Karicheri
email: m-kariche...@ti.com

-Original Message-
From: Hans Verkuil [mailto:hverk...@xs4all.nl]
Sent: Wednesday, June 10, 2009 5:28 PM
To: Karicheri, Muralidharan
Cc: linux-media@vger.kernel.org; davinci-linux-open-
sou...@linux.davincidsp.com; Muralidharan Karicheri
Subject: Re: [PATCH 0/10 - v2] ARM: DaVinci: Video: DM355/DM6446 VPFE
Capture driver

On Tuesday 09 June 2009 20:46:44 m-kariche...@ti.com wrote:
 From: Muralidharan Karicheri a0868...@gt516km11.gt.design.ti.com

 VPFE Capture driver for DaVinci Media SOCs :- DM355 and DM6446

 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 reviewing this Friday or Saturday.

Regards,

   Hans


 +++
 These patches add support for VPFE (Video Processing Front End) based
 video capture on DM355 and DM6446 EVMs. For more details on the hardware
 configuration and capabilities, please refer the vpfe_capture.c header.
 This patch set consists of following:-

 Patch 1: VPFE Capture bridge driver
 Patch 2: CCDC hw device header file
 Patch 3: DM355 CCDC hw module
 Patch 4: DM644x CCDC hw module
 Patch 5: common types used across CCDC modules
 Patch 6: Makefile and config files for the driver
 Patch 7: DM355 platform and board setup
 Patch 8: DM644x platform and board setup
 Patch 9: Remove outdated driver files from davinci git tree
 Patch 10: common vpss hw module for video drivers

 NOTE:

 Dependent on the TVP514x decoder driver patch for migrating the
 driver to sub device model from Vaibhav Hiremath

 Following tests are performed.
  1) Capture and display video (PAL  NTSC) from tvp5146 decoder.
 Displayed using fbdev device driver available on davinci git tree
  2) Tested with driver built statically and dynamically

 Muralidhara Karicheri

 Reviewed By Hans Verkuil.
 Reviewed By Laurent Pinchart.

 Signed-off-by: Muralidharan Karicheri 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



--
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: S_FMT vs. S_CROP

2009-06-10 Thread Hans Verkuil
On Wednesday 10 June 2009 18:02:39 Guennadi Liakhovetski wrote:
 This question - how S_FMT and S_CROP affest image geometry - has been
 discussed at least twice before - that's only with my participation,
 don't know if and how often it has come up before. But the fact, that in
 two discussions we came up with different results seems to suggest, that
 this is not something trivially known by all except me.

 First time I asked this question in this thread

 http://www.mail-archive.com/linux-media@vger.kernel.org/msg00052.html

 and Mauro replied (see above thread for a complete reply):

 On Thu, 8 Jan 2009, Mauro Carvalho Chehab wrote:
  On Wed, 7 Jan 2009 10:14:31 +0100 (CET)
  Guennadi Liakhovetski g.liakhovet...@gmx.de wrote:

 [snip]

   For example on mt9t031
   binning and skipping are used for that. Whereas CROP uses the current
   scaling configuration and selects a sub-window, so, once you've done
   S_FMT to 320x240, a crop request for 640x480 might well fail.
 
  I also understand this way. You cannot crop with a resolution bigger
  than what you've selected.

 (Let's call this statement M1:-))

If I read the spec correctly, in particular section 1.11.1, then cropping 
comes before scaling, so you can crop to 640x480 (S_CROP) and scale that to 
320x240 (S_FMT). S_FMT scales the cropped rectangle.


   For this you have
   to issue a S_FMT, i.e., change scaling. Or would one have to re-scale
   transparently?
  
   Is this interpretation correct? It seems to reflect the API as
   documented on http://v4l2spec.bytesex.org/spec/book1.htm correctly.
  
   If it is correct, then what should CROP_CAP return as maximum
   supported window sizes? Should it return them according to the
   current scaling or according to scale 1?
 
  I understand that it should return against the current scaling.

 (and this one M2, whereas I understand it as current scaling means
 current scaling coefficient, not current scaled output windof)

 Then in another thread

 http://www.mail-archive.com/linux-media@vger.kernel.org/msg03512.html

 Stefan motivated for an incomatibly different interpretation of the
 standard:

 On Thu, 2 Apr 2009, Stefan Herbrechtsmeier wrote:

 [snip]

  The user doesn't have to remember the scale anyway. Only the ways a
  different. You interpret S_CROP
  as something like a cutting of the S_FMT window. I interpret S_FMT as a
  output format selection
  and S_CROP as a sensor window selection.

 which I now interpret as

 S_FMT(640x480) means scale whatever rectangle has been selected on the
 sensor to produce an output window of 640x480 and S_CROP(2048x1536)
 means take a window of 2048x1536 sensor pixels from the sensor and scale
 it to whatever output window has been or will be selected by S_FMT. This
 contradicts M1, because you certainly can crop a larger (sensor) window.
 Also, I now believe, that [GS]_CROP and, logically, CROPCAP operate in
 sensor pixels and shall not depend on any scales, which contradicts (my
 understanding of) M2.

 It now seems to be quite simple to me:

 {G,S,TRY}_FMT configure output geometry in user pixels
 [GS]_CROP, CROPCAP configure input window in sensor pixels

Agreed.

 The thus configured input window should be mapped (scaled) into the
 output window.

 Now, which one is correct?

Your interpretation is correct to the best of my knowledge. I think the 
cropping API remains one of the worst explained ioctls in the spec. There 
are some weird things you can get into when dealing with S-Video (PAL/NTSC) 
like signals, but for sensors like this it is as you described.

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: [PULL] http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-subdev2

2009-06-10 Thread Guennadi Liakhovetski
On Wed, 10 Jun 2009, hermann pitton wrote:

 on the pull requests is at least nothing new since years.
 
 Previously all patches were on video4linux and the linux-dvb ML and
 dealt with independently as far as possible.
 
 Because of all the hybrid devices that changed, but still someone having
 only analog TV reception likely doesn't want to read all about the
 digital stuff and in the other direction I assume in counts even more.
 
 So far the mercurial pull requests from the more active developers
 worked quite well. Historically seen you would have had a need at some
 point to see _all_ patches on both lists, if you follow the rule _all_
 patches must be on the list(s).
 
 Now, with linux-media, everybody subscribed has the traffic of both of
 the old lists. Means for most people 50% are off topic.
 
 But the really funny thing comes now, we have with you and all the
 others suddenly about 70% of traffic on the list about cams :)
 
 I'm sure that more than 90% of the old v4l and dvb list members are not
 interested in that stuff at all :)

Sure, and that's fine, because I'm not interested in them being not 
interested in that stuff at all:-)

Now, how about this idea:

someone writes a script to intercept all hg pull requests from lmml 
(procmail rule), forward that mail to a special media-patch list, and 
extract and post as replies to that mail all individual patches? And that 
list should be configured to only accept mails from that script or replies 
to its mails, so, it'd be spam-free. And that list would also be used for 
patch discussion. How does this sound?

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

2009-06-10 Thread Guennadi Liakhovetski
On Wed, 10 Jun 2009, Karicheri, Muralidharan wrote:

 
 
  We need
  streaming capability in the driver. This is how our driver works
  with mt9t031 sensor
   raw-bus (10 bit)
  vpfe-capture  - mt9t031 driver
   ||
   V  V
 VPFEMT9T031
 
  VPFE hardware has internal timing and DMA controller to
  copy data frame by frame from the sensor output to SDRAM.
  The PCLK form the sensor is used to generate the internal
  timing.
 
 So, what is missing in the driver apart from the ability to specify
 a frame-rate?
 
 [MK] Does the mt9t031 output one frame (snapshot) like in a camera or 
 can it output frame continuously along with PCLK, Hsync and Vsync 
 signals like in a video streaming device. VPFE capture can accept frames 
 continuously from the sensor synchronized to PCLK, HSYNC and VSYNC and 
 output frames to application using QBUF/DQBUF. In our implementation, we 
 have timing parameters for the sensor to do streaming at various 
 resolutions and fps. So application calls S_STD to set these timings. I 
 am not sure if this is an acceptable way of implementing it. Any 
 comments?

Yes, it is streaming.

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: S_FMT vs. S_CROP

2009-06-10 Thread Trent Piepho
On Wed, 10 Jun 2009, Hans Verkuil wrote:
 On Wednesday 10 June 2009 18:02:39 Guennadi Liakhovetski wrote:
  This question - how S_FMT and S_CROP affest image geometry - has been
  discussed at least twice before - that's only with my participation,
  don't know if and how often it has come up before. But the fact, that in
  two discussions we came up with different results seems to suggest, that
  this is not something trivially known by all except me.
 
  First time I asked this question in this thread
 
  http://www.mail-archive.com/linux-media@vger.kernel.org/msg00052.html
 
  and Mauro replied (see above thread for a complete reply):
 
  On Thu, 8 Jan 2009, Mauro Carvalho Chehab wrote:
   On Wed, 7 Jan 2009 10:14:31 +0100 (CET)
   Guennadi Liakhovetski g.liakhovet...@gmx.de wrote:
 
  [snip]
 
For example on mt9t031
binning and skipping are used for that. Whereas CROP uses the current
scaling configuration and selects a sub-window, so, once you've done
S_FMT to 320x240, a crop request for 640x480 might well fail.
  
   I also understand this way. You cannot crop with a resolution bigger
   than what you've selected.
 
  (Let's call this statement M1:-))

 If I read the spec correctly, in particular section 1.11.1, then cropping
 comes before scaling, so you can crop to 640x480 (S_CROP) and scale that to
 320x240 (S_FMT). S_FMT scales the cropped rectangle.

This is my understanding of how it's supposed to work as well.
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

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

 Um, you are asking the wrong person. It's one of the two methods used on 
 this list. Yes, pull requests are unusual compared to other lists (and so 
 is the use of hg instead of git for that matter due to historical reasons).

No, they are not unusual, but - they come _after_ all patches to be pulled 
have been posted (and reviewed) on the list. For exanple, on ARM, they 
have sub-maintainers for various ARM CPUs, those sub-maintainers collect 
patches from contributors for their platforms from the list, and post 
their own patches to the list too. After that they form pull requests with 
patches that have been reviewed on the list and that they (and everyone 
else) are happy about.

 If Mauro says: use patch series, then I'll modify my workflow. If you prefer 
 to see these subdev patches as a patch series, then I can do that for you. 
 I have no preference myself. It's also a discussion I have no wish to go 
 into.
 
 So if you see a pull request from me and prefer to have it as a patch 
 series, just mail me and I'll do it. No problem.

This would help yes, thanks. Or - see my idea in an earlier mail in this 
thread.

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: [RFC,PATCH] VIDIOC_G_EXT_CTRLS does not handle NULL pointer correctly

2009-06-10 Thread Laurent Pinchart
On Wednesday 10 June 2009 15:53:57 Mauro Carvalho Chehab wrote:
 Em Wed, 10 Jun 2009 10:52:28 -0300

 Mauro Carvalho Chehab mche...@infradead.org escreveu:
  Em Mon, 25 May 2009 11:16:34 -0300
 
  Mauro Carvalho Chehab mche...@infradead.org escreveu:
   Em Mon, 25 May 2009 13:17:02 +0200
  
   Laurent Pinchart laurent.pinch...@skynet.be escreveu:
Hi everybody,
   
Márton Németh found an integer overflow bug in the extended control
ioctl handling code. This affects both video_usercopy and
video_ioctl2. See http://bugzilla.kernel.org/show_bug.cgi?id=13357
for a detailed description of the problem.
   
   
Restricting v4l2_ext_controls::count to values smaller than
KMALLOC_MAX_SIZE / sizeof(struct v4l2_ext_control) should be enough,
but we might want to restrict the value even further. I'd like
opinions on this.
  
   Seems fine to my eyes, but being so close to kmalloc size doesn't seem
   to be a good idea. It seems better to choose an arbitrary size big
   enough to handle all current needs.
 
  I'll apply the current version, but I still think we should restrict it
  to a lower value.

 Hmm... SOB is missing. Márton and Laurent, could you please sign it

Signed-off-by: Laurent Pinchart laurent.pinch...@skynet.be

Cheers,

Laurent Pinchart

--
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: soc-camera: status, roadmap

2009-06-10 Thread Hans Verkuil
On Wednesday 10 June 2009 23:49:23 Guennadi Liakhovetski wrote:
 On Wed, 10 Jun 2009, Hans Verkuil wrote:
  On Wednesday 10 June 2009 18:45:36 Guennadi Liakhovetski wrote:

 [snip]

   3. This also means, development will become more difficult, new
   features and drivers will only be accepted on the top of my patch
   stack, bugfixes will have to be accpeted against the mainline, which
   then will mean extra porting work for me.
 
  If there is anything I can do to help this along, please let me know.
  In particular: what else besides the v4l2_i2c_new_subdev_board do you
  need? I didn't have much time in the past few weeks, but things are
  more relaxed now and I expect to be able to do a lot more in the coming
  weeks (fingers crossed :-) ).

 Thanks for your offer!

 Well, yes, at least we could start with these three things:

 1. s_crop, g_crop, cropcap. Would be nice if you could add them just
 following the standard API.

No problem.

 2. bus parameter negotiation. I appreciate Murali's effort, but I don't
 like re-inventing the wheel. So, we should now either bring his
 implementation to support _at least_ all features so far supported in
 soc-camera, or you could just copy the soc-camera implementation over,
 just renaming functions and macros as appropriate.

Obviously all features should be supported, but as you can no doubt tell I'm 
not sold (yet?) on the autonegotiation part of the soc-camera 
implementation.

 3. pixel format negotiation. The easiest would be to also just copy it
 over.

I haven't looked at this yet, but I will do so soon.

 These 3 points would make the porting much easier. I'll certainly be
 happy to answer any questions you might get working with soc-camera code.

Thanks,

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: [PULL] http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-subdev2

2009-06-10 Thread hermann pitton

Am Mittwoch, den 10.06.2009, 23:36 +0200 schrieb Guennadi Liakhovetski:
 On Wed, 10 Jun 2009, hermann pitton wrote:
 
  on the pull requests is at least nothing new since years.
  
  Previously all patches were on video4linux and the linux-dvb ML and
  dealt with independently as far as possible.
  
  Because of all the hybrid devices that changed, but still someone having
  only analog TV reception likely doesn't want to read all about the
  digital stuff and in the other direction I assume in counts even more.
  
  So far the mercurial pull requests from the more active developers
  worked quite well. Historically seen you would have had a need at some
  point to see _all_ patches on both lists, if you follow the rule _all_
  patches must be on the list(s).
  
  Now, with linux-media, everybody subscribed has the traffic of both of
  the old lists. Means for most people 50% are off topic.
  
  But the really funny thing comes now, we have with you and all the
  others suddenly about 70% of traffic on the list about cams :)
  
  I'm sure that more than 90% of the old v4l and dvb list members are not
  interested in that stuff at all :)
 
 Sure, and that's fine, because I'm not interested in them being not 
 interested in that stuff at all:-)

Some do still follow ... ;)

 Now, how about this idea:
 
 someone writes a script to intercept all hg pull requests from lmml 
 (procmail rule), forward that mail to a special media-patch list, and 
 extract and post as replies to that mail all individual patches? And that 
 list should be configured to only accept mails from that script or replies 
 to its mails, so, it'd be spam-free. And that list would also be used for 
 patch discussion. How does this sound?

On v4l and dvb the most useful patches on the list for the users are
those adding new devices on existing drivers. We don't have completely
new drivers every day.

To not lose them we have already patchwork employed and I'm not quite
sure, if it really does what it should.

The better is to have people dealing with all coming up 24/7 and issuing
pull requests and pay with an additional SOB ;) for the rest of their
live, but for the prize of having new bugs on always every new kernel
because of API changes _others_ do need ...

In opposite to linux-media in most cases, you are dealing with light
sensors directly. Maybe this could make a difference.

Cheers,
Hermann









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

No, he doesn't have to. That's not board specific, that's SoC specific.

 knows what the sensor supports,

Ditto, this is sensor-specific, not board-specific.

 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.

Of all the boards that I know of that use soc-camera only one (supposedly) 
had an inverter on one line, and even that one is not in the mainline. So, 
in the present soc-camera code not a single board have to bother with 
that. And now you want to add _all_ those polarity, master / slave flags 
to _all_ of them? Let me try again:

you have an HSYNC output on the sensor. Its capabilities are known to the 
sensor driver

you have an HSYNC input on the SoC. Its capabilities are known to the 
SoC-specific camera host driver

these two lines are routed on the board to connect either directly or over 
some logic, hopefully, not more complex than an inverter. Now, this is 
_the_ _only_ bit of information, that is specific to the board.

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

2009-06-10 Thread Guennadi Liakhovetski
On Wed, 10 Jun 2009, Karicheri, Muralidharan wrote:

 So how do I know what frame-rate I get? Sensor output frame rate depends 
 on the resolution of the frame, blanking, exposure time etc.

This is not supported.

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 1/6] radio-mr800.c: missing mutex include

2009-06-10 Thread Alexey Klimov
On Wed, Jun 10, 2009 at 11:44 PM, a...@linux-foundation.org wrote:
 From: Alessio Igor Bogani abog...@texware.it

 radio-mr800.c uses struct mutex, so while linux/mutex.h seems to be
 pulled in indirectly by one of the headers it already includes, the right
 thing is to include it directly.

It was already applied to v4l-dvb tree (and probably to v4l git tree).
Thanks,
-- 
regards, Klimov Alexey
--
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 1/6] radio-mr800.c: missing mutex include

2009-06-10 Thread Andrew Morton
On Thu, 11 Jun 2009 03:21:36 +0400 Alexey Klimov klimov.li...@gmail.com wrote:

 On Wed, Jun 10, 2009 at 11:44 PM, a...@linux-foundation.org wrote:
  From: Alessio Igor Bogani abog...@texware.it
 
  radio-mr800.c uses struct mutex, so while linux/mutex.h seems to be
  pulled in indirectly by one of the headers it already includes, the right
  thing is to include it directly.
 
 It was already applied to v4l-dvb tree (and probably to v4l git tree).

It isn't in today's linux-next.
--
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 requests x patches at linux-media ML - Was: [PULL] http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-subdev2

2009-06-10 Thread Mauro Carvalho Chehab
First of all, I'm renaming the thread, since we're not discussing the pull
request per se. So, let's create a separate thread for it.

Em Wed, 10 Jun 2009 23:18:52 +0200
hermann pitton hermann-pit...@arcor.de escreveu:

 Hi,
 
 Am Mittwoch, den 10.06.2009, 22:39 +0200 schrieb Hans Verkuil:
  On Wednesday 10 June 2009 22:20:03 Guennadi Liakhovetski wrote:
   On Wed, 10 Jun 2009, Hans Verkuil wrote:
On Wednesday 10 June 2009 20:17:53 Guennadi Liakhovetski wrote:
 On Tue, 9 Jun 2009, Hans Verkuil wrote:
  Hi Mauro,
 
  Please pull from
  http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-subdev2 for the
  following:
 
  - v4l2: add new s_config subdev ops and
  v4l2_i2c_new_subdev_cfg/board calls - v4l2-device: fix incorrect
  kernel check
  - v4l-compat: add I2C_ADDRS macro.
  - v4l2: update framework documentation.
  - v4l2-subdev: remove unnecessary check

 Do I understand this right, that these patches have not been posted
 to the list?
   
The idea is that you click on the link and look at the patches through
the hg web frontend.
  
   And then?
  
 At least I haven't found them in online and in my local
 archives. If it's really so, sorry, this doesn't seem very productive
 to me... We have discussed this with Mauro on IRC, he didn't agree
 with me, he thought it was acceptable in many cases... Sorry, cannot
 agree.
   
Both methods (a pull request or a patch series) are used and personally
I have no preference, although currently I have a script that
simplifies these pull requests so I generally use that. A patch series
makes it easier to reply with review comments, while I think a pull
request reduces mailinglist traffic and actually makes it easier to do
the actual reviews.
  
   I think, patches posted to the list for reviews with a following pull
   request (if no rework needed of course) is the most reviewer-friendly,
   which is also what I so far have seen on all other lists I subscribe to
   (arm, ppc, usb, scsi, lkml, i2c,...).

On LKML, several patches are sent as pull requests.

Have you seen those huge mailing
   threads from Greg K-H with all patches in his queue preceding his pull
   requests (I hope I reproduce his work flow correctly here, any mistakes
   are mine and unintended)?

The same happens here: All patches added at the staging tree are sent to
linuxtv-commits ML. So, they are there for discussions before my pull requests.

The main difference is that, in the case of Greg, his staging tree is a quilt
one. On our case, our staging tree is mercurial.

   Are you really saying that it's equally convenient for you to review /
   reply to patch on ML and to patch in some repository from a pull request?
   Especially when there are multiple patches in that pull and you have to
   click through them all, jumping back and forth between your mail client
   and a browser?...
  
   If all are so much concerned about the ML traffic (which I don't
   understand either, filtering and ignoring uninteresting mails is easy
   enough these days), maybe we should split into devel and user? Sorry, I
   really don't understand. I'll go ask members of other MLs what they think
   about clicking through patches...
  
  Um, you are asking the wrong person. It's one of the two methods used on 
  this list. Yes, pull requests are unusual compared to other lists (and so 
  is the use of hg instead of git for that matter due to historical reasons).
  
  If Mauro says: use patch series, then I'll modify my workflow. If you 
  prefer 
  to see these subdev patches as a patch series, then I can do that for you. 
  I have no preference myself. It's also a discussion I have no wish to go 
  into.
  
  So if you see a pull request from me and prefer to have it as a patch 
  series, just mail me and I'll do it. No problem.
  
  Regards,
  
  Hans
 
 on the pull requests is at least nothing new since years.
 
 Previously all patches were on video4linux and the linux-dvb ML and
 dealt with independently as far as possible.
 
 Because of all the hybrid devices that changed, but still someone having
 only analog TV reception likely doesn't want to read all about the
 digital stuff and in the other direction I assume in counts even more.
 
 So far the mercurial pull requests from the more active developers
 worked quite well. Historically seen you would have had a need at some
 point to see _all_ patches on both lists, if you follow the rule _all_
 patches must be on the list(s).
 
 Now, with linux-media, everybody subscribed has the traffic of both of
 the old lists. Means for most people 50% are off topic.
 
 But the really funny thing comes now, we have with you and all the
 others suddenly about 70% of traffic on the list about cams :)
 
 I'm sure that more than 90% of the old v4l and dvb list members are not
 interested in that stuff at all :)

We're currently merging about 900 patches per 

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

2009-06-10 Thread Mauro Carvalho Chehab
Em Wed, 10 Jun 2009 22:20:03 +0200 (CEST)
Guennadi Liakhovetski g.liakhovet...@gmx.de escreveu:

 Are you really saying that it's equally convenient for you to review / 
 reply to patch on ML and to patch in some repository from a pull request? 
 Especially when there are multiple patches in that pull and you have to 
 click through them all, jumping back and forth between your mail client 
 and a browser?...

In my case (and I review 100% of the patches - so, I'm likely the worse case),
reviewing they with a PULL request is faster, since I can just run hgimport
script and see all of them locally even using tools like kdiff3. Also, I answer
to just one email instead of tons of emails.



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


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

2009-06-10 Thread Mauro Carvalho Chehab
Em Wed, 10 Jun 2009 23:36:32 +0200 (CEST)
Guennadi Liakhovetski g.liakhovet...@gmx.de escreveu:

 On Wed, 10 Jun 2009, hermann pitton wrote:
 
  on the pull requests is at least nothing new since years.
  
  Previously all patches were on video4linux and the linux-dvb ML and
  dealt with independently as far as possible.
  
  Because of all the hybrid devices that changed, but still someone having
  only analog TV reception likely doesn't want to read all about the
  digital stuff and in the other direction I assume in counts even more.
  
  So far the mercurial pull requests from the more active developers
  worked quite well. Historically seen you would have had a need at some
  point to see _all_ patches on both lists, if you follow the rule _all_
  patches must be on the list(s).
  
  Now, with linux-media, everybody subscribed has the traffic of both of
  the old lists. Means for most people 50% are off topic.
  
  But the really funny thing comes now, we have with you and all the
  others suddenly about 70% of traffic on the list about cams :)
  
  I'm sure that more than 90% of the old v4l and dvb list members are not
  interested in that stuff at all :)
 
 Sure, and that's fine, because I'm not interested in them being not 
 interested in that stuff at all:-)
 
 Now, how about this idea:
 
 someone writes a script to intercept all hg pull requests from lmml 
 (procmail rule), forward that mail to a special media-patch list, and 
 extract and post as replies to that mail all individual patches? And that 
 list should be configured to only accept mails from that script or replies 
 to its mails, so, it'd be spam-free. And that list would also be used for 
 patch discussion. How does this sound?

This can be done. If you write such script in perl or python [1], I can put it 
to
run at linuxtv. You'll likely need to handle also the pull request replies.

[1] since we don't have procmail (or exim) installed there.




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


Re: Fwd: driver trident tm5600

2009-06-10 Thread Daniel Santibáñez
ok i can compile it. only i have to change it:
CONFIG_VIDEO_TM6000=y
CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_TM6000_ALSA=m

but when i put modprobe tm6000-alsa card=5, still happend the previous
error

tm6000-alsa: Unknow symbol tm6000_get_reg
tm6000-alsa: Unknow symbol tm6000_set_reg

but also i try with
make insmod tm6000-alsa
ans
make insmod tm6000-alsa card=5

appear this error


/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/crt1.o: In function
`_start':
/build/buildd/glibc-2.9/csu/../sysdeps/i386/elf/start.S:115: undefined
reference to `main'
tm6000-alsa.o: In function `dsp_buffer_free':
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:148:
undefined reference to `printk'
tm6000-alsa.o: In function `tm6000_audio_init':
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:369:
undefined reference to `__this_module'
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:369:
undefined reference to `snd_card_new'
tm6000-alsa.o: In function `kmalloc':
/usr/src/linux-headers-2.6.28-13-generic/include/linux/slub_def.h:224:
undefined reference to `kmalloc_caches'
/usr/src/linux-headers-2.6.28-13-generic/include/linux/slub_def.h:224:
undefined reference to `kmem_cache_alloc'
tm6000-alsa.o: In function `tm6000_audio_init':
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:388:
undefined reference to `snd_component_add'
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:400:
undefined reference to `strlcat'
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:402:
undefined reference to `strlcat'
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:408:
undefined reference to `strlcat'
tm6000-alsa.o: In function `snd_tm6000_pcm':
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:336:
undefined reference to `snd_pcm_new'
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:341:
undefined reference to `snd_pcm_set_ops'
tm6000-alsa.o: In function `tm6000_audio_init':
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:418:
undefined reference to `snd_card_register'
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:426:
undefined reference to `snd_card_free'
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:391:
undefined reference to `usb_string'
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:398:
undefined reference to `strlcat'
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:371:
undefined reference to `printk'
tm6000-alsa.o: In function `snd_tm6000_card_trigger':
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:280:
undefined reference to `_spin_lock'
tm6000-alsa.o: In function `_tm6000_stop_audio_dma':
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:135:
undefined reference to `tm6000_get_reg'
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:137:
undefined reference to `tm6000_set_reg'
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:139:
undefined reference to `tm6000_set_reg'
tm6000-alsa.o: In function `__raw_spin_unlock':
/usr/src/linux-headers-2.6.28-13-generic/arch/x86/include/asm/paravirt.h:1411:
undefined reference to `pv_lock_ops'
tm6000-alsa.o: In function `_tm6000_start_audio_dma':
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:116:
undefined reference to `tm6000_get_reg'
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:118:
undefined reference to `tm6000_set_reg'
tm6000-alsa.o: In function `_tm6000_stop_audio_dma':
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:132:
undefined reference to `printk'
tm6000-alsa.o: In function `snd_tm6000_hw_params':
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:230:
undefined reference to `snd_pcm_format_physical_width'
tm6000-alsa.o: In function `dsp_buffer_free':
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:148:
undefined reference to `printk'
tm6000-alsa.o: In function `snd_tm6000_hw_params':
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:236:
undefined reference to `printk'
tm6000-alsa.o: In function `snd_tm6000_pcm_open':
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:194:
undefined reference to `snd_pcm_hw_constraint_pow2'
/home/daniel/driver-tm5600/tm6010-3d58b6531a81/v4l/tm6000-alsa.c:205:
undefined reference to `printk'
tm6000-alsa.o:(__param+0x8): undefined reference to `param_set_int'
tm6000-alsa.o:(__param+0xc): undefined reference to `param_get_int'
tm6000-alsa.o:(__param+0x1c): undefined reference to `param_array_set'
tm6000-alsa.o:(__param+0x20): undefined reference to `param_array_get'
tm6000-alsa.o:(__param+0x30): undefined reference to `param_array_set'
tm6000-alsa.o:(__param+0x34): undefined reference to `param_array_get'
tm6000-alsa.o:(.rodata+0xcc): undefined reference to `param_set_int'
tm6000-alsa.o:(.rodata+0xd0): undefined reference to 

Re: soc-camera: status, roadmap

2009-06-10 Thread Mauro Carvalho Chehab
Em Wed, 10 Jun 2009 22:09:07 +0200
Hans Verkuil hverk...@xs4all.nl escreveu:

  1.4. this is the actual conversion to v4l2-subdev. It depends on some
  bits and pieces in the v4l2-subdev framework, which are still in progress
  (e.g. v4l2_i2c_new_subdev_board), I believe (Hans, am I right? or what's
  the outcome of Mauro's last reply to you in the [PULL]
  http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-subdev; thread?), so, it
  becomes practically impossible to also pull it for 2.6.31.
 
 I haven't seen a reaction yet from Mauro regarding my latest pull request: I 
 think it addresses all his concerns regarding existing functionality so I 
 actually hope this can be merged. It would help a lot with this and similar 
 efforts.

As Guennadi pointed, it seems that those patches were not yet properly
discussed at the ML.

Since they touch at the core of the subsystem, could you please submit they as
RFC, at linux-media? 

Let's give people some time to review the newly added functions. After that,
you can send me V3 of your pull request.



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


Re: [patch 1/6] radio-mr800.c: missing mutex include

2009-06-10 Thread Mauro Carvalho Chehab
Em Wed, 10 Jun 2009 16:23:44 -0700
Andrew Morton a...@linux-foundation.org escreveu:

 On Thu, 11 Jun 2009 03:21:36 +0400 Alexey Klimov klimov.li...@gmail.com 
 wrote:
 
  On Wed, Jun 10, 2009 at 11:44 PM, a...@linux-foundation.org wrote:
   From: Alessio Igor Bogani abog...@texware.it
  
   radio-mr800.c uses struct mutex, so while linux/mutex.h seems to be
   pulled in indirectly by one of the headers it already includes, the right
   thing is to include it directly.
  
  It was already applied to v4l-dvb tree (and probably to v4l git tree).
 
 It isn't in today's linux-next.

Hi Andrew,

Thanks for remind us about those 6 patches. I'll double check if those are
already on my staging tree. If they aren't I'll apply or comment.

Since I'm currently in the proccess updating my trees, I should be adding 
several pending patches on my -git tree, probably in time for tomorrow's
linux-next tree.



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


Re: pull requests x patches at linux-media ML - Was: [PULL] http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-subdev2

2009-06-10 Thread hermann pitton

Am Mittwoch, den 10.06.2009, 21:13 -0300 schrieb Mauro Carvalho Chehab:
 First of all, I'm renaming the thread, since we're not discussing the pull
 request per se. So, let's create a separate thread for it.
 
 Em Wed, 10 Jun 2009 23:18:52 +0200
 hermann pitton hermann-pit...@arcor.de escreveu:
 
  Hi,
  
  Am Mittwoch, den 10.06.2009, 22:39 +0200 schrieb Hans Verkuil:
   On Wednesday 10 June 2009 22:20:03 Guennadi Liakhovetski wrote:
On Wed, 10 Jun 2009, Hans Verkuil wrote:
 On Wednesday 10 June 2009 20:17:53 Guennadi Liakhovetski wrote:
  On Tue, 9 Jun 2009, Hans Verkuil wrote:
   Hi Mauro,
  
   Please pull from
   http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-subdev2 for the
   following:
  
   - v4l2: add new s_config subdev ops and
   v4l2_i2c_new_subdev_cfg/board calls - v4l2-device: fix incorrect
   kernel check
   - v4l-compat: add I2C_ADDRS macro.
   - v4l2: update framework documentation.
   - v4l2-subdev: remove unnecessary check
 
  Do I understand this right, that these patches have not been posted
  to the list?

 The idea is that you click on the link and look at the patches through
 the hg web frontend.
   
And then?
   
  At least I haven't found them in online and in my local
  archives. If it's really so, sorry, this doesn't seem very 
  productive
  to me... We have discussed this with Mauro on IRC, he didn't agree
  with me, he thought it was acceptable in many cases... Sorry, cannot
  agree.

 Both methods (a pull request or a patch series) are used and 
 personally
 I have no preference, although currently I have a script that
 simplifies these pull requests so I generally use that. A patch series
 makes it easier to reply with review comments, while I think a pull
 request reduces mailinglist traffic and actually makes it easier to do
 the actual reviews.
   
I think, patches posted to the list for reviews with a following pull
request (if no rework needed of course) is the most reviewer-friendly,
which is also what I so far have seen on all other lists I subscribe to
(arm, ppc, usb, scsi, lkml, i2c,...).
 
 On LKML, several patches are sent as pull requests.
 
 Have you seen those huge mailing
threads from Greg K-H with all patches in his queue preceding his pull
requests (I hope I reproduce his work flow correctly here, any mistakes
are mine and unintended)?
 
 The same happens here: All patches added at the staging tree are sent to
 linuxtv-commits ML. So, they are there for discussions before my pull 
 requests.
 
 The main difference is that, in the case of Greg, his staging tree is a quilt
 one. On our case, our staging tree is mercurial.
 
Are you really saying that it's equally convenient for you to review /
reply to patch on ML and to patch in some repository from a pull 
request?
Especially when there are multiple patches in that pull and you have to
click through them all, jumping back and forth between your mail client
and a browser?...
   
If all are so much concerned about the ML traffic (which I don't
understand either, filtering and ignoring uninteresting mails is easy
enough these days), maybe we should split into devel and user? Sorry, I
really don't understand. I'll go ask members of other MLs what they 
think
about clicking through patches...
   
   Um, you are asking the wrong person. It's one of the two methods used on 
   this list. Yes, pull requests are unusual compared to other lists (and so 
   is the use of hg instead of git for that matter due to historical 
   reasons).
   
   If Mauro says: use patch series, then I'll modify my workflow. If you 
   prefer 
   to see these subdev patches as a patch series, then I can do that for 
   you. 
   I have no preference myself. It's also a discussion I have no wish to go 
   into.
   
   So if you see a pull request from me and prefer to have it as a patch 
   series, just mail me and I'll do it. No problem.
   
   Regards,
   
 Hans
  
  on the pull requests is at least nothing new since years.
  
  Previously all patches were on video4linux and the linux-dvb ML and
  dealt with independently as far as possible.
  
  Because of all the hybrid devices that changed, but still someone having
  only analog TV reception likely doesn't want to read all about the
  digital stuff and in the other direction I assume in counts even more.
  
  So far the mercurial pull requests from the more active developers
  worked quite well. Historically seen you would have had a need at some
  point to see _all_ patches on both lists, if you follow the rule _all_
  patches must be on the list(s).
  
  Now, with linux-media, everybody subscribed has the traffic of both of
  the old lists. Means for most people 50% are off topic.
  
  But the really funny thing comes now, we have with you and all the
  others 

Re: [PATCH] ov511.c: video_register_device() return zero on success

2009-06-10 Thread Mauro Carvalho Chehab
Em Sun, 31 May 2009 14:41:52 +0800
Figo.zhang figo1...@gmail.com escreveu:

 video_register_device() return zero on success, it would not return a 
 positive integer.
 
 Signed-off-by: Figo.zhang figo1...@gmail.com
 --- 
  drivers/media/video/ov511.c |2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
 
 diff --git a/drivers/media/video/ov511.c b/drivers/media/video/ov511.c
 index 9af5532..816427e 100644
 --- a/drivers/media/video/ov511.c
 +++ b/drivers/media/video/ov511.c
 @@ -5851,7 +5851,7 @@ ov51x_probe(struct usb_interface *intf, const struct 
 usb_device_id *id)
   break;
  
   if (video_register_device(ov-vdev, VFL_TYPE_GRABBER,
 - unit_video[i]) = 0) {
 + unit_video[i]) == 0) {
   break;
   }
   }

Nack.

Errors are always negative. So, any zero or positive value indicates that no 
error occurred.

Yet, the logic for forcing ov51x to specific minor number seems broken: it will
end by registering the device twice, if used.

So, that part of the function needs a rewrite. I'll fix it.

-- 

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


Re: s5h1411_readreg: readreg error (ret == -5)

2009-06-10 Thread Mike Isely
On Sun, 7 Jun 2009, Roger wrote:

 From looking at linux/drivers/media/dvb/frontends/s5h1411.c,  The
 s5h1411_readreg wants to see 2 but is getting -5 from the i2c bus.
 
 --- Snip ---
 
 s5h1411_readreg: readreg error (ret == -5)
 pvrusb2: unregistering DVB devices
 device: 'dvb0.net0': device_unregister
 
 --- Snip ---
 
 What exactly does this mean?

Roger:

It means that the module attempted an I2C transfer and the transfer 
failed.  The I2C adapter within the pvrusb2 driver will return either 
the number of bytes that it transferred or a failure code.  The failure 
code, as is normal convention in the kernel, will be a negated errno 
value.  Thus the expected value of 2 would be the fact that it probably 
tried a 2 byte transfer, while the actual value returned of -5 indicate 
an EIO error, which is what the pvrusb2 driver will return when the 
underlying I2C transaction has failed.

Of course the real question is not that it failed but why it failed.  
And for that I unfortunately do not have an answer.  It's possible that 
the s5h1411 driver did something that the chip didn't like and the chip 
responded by going deaf on the I2C bus.  More than a few I2C-driven 
parts can behave this way.  It's also possible that the part might have 
been busy and unable to respond - but usually in that case the driver 
for such a part will be written with this in mind and will know how / 
when to communicate with the hardware.

  -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: [PATCH] ov511.c: video_register_device() return zero on success

2009-06-10 Thread Mauro Carvalho Chehab
Em Wed, 10 Jun 2009 22:39:51 -0300
Mauro Carvalho Chehab mche...@redhat.com escreveu:

 Em Sun, 31 May 2009 14:41:52 +0800
 Figo.zhang figo1...@gmail.com escreveu:
 
  video_register_device() return zero on success, it would not return a 
  positive integer.
  
  Signed-off-by: Figo.zhang figo1...@gmail.com
  --- 
   drivers/media/video/ov511.c |2 +-
   1 files changed, 1 insertions(+), 1 deletions(-)
  
  diff --git a/drivers/media/video/ov511.c b/drivers/media/video/ov511.c
  index 9af5532..816427e 100644
  --- a/drivers/media/video/ov511.c
  +++ b/drivers/media/video/ov511.c
  @@ -5851,7 +5851,7 @@ ov51x_probe(struct usb_interface *intf, const struct 
  usb_device_id *id)
  break;
   
  if (video_register_device(ov-vdev, VFL_TYPE_GRABBER,
  -   unit_video[i]) = 0) {
  +   unit_video[i]) == 0) {
  break;
  }
  }
 
 Nack.
 
 Errors are always negative. So, any zero or positive value indicates that no 
 error occurred.
 
 Yet, the logic for forcing ov51x to specific minor number seems broken: it 
 will
 end by registering the device twice, if used.
 
 So, that part of the function needs a rewrite. I'll fix it.
 

Hmm... the issue seems more complex than I've imagined...

When ov511 were written, it was assumed that video_register_device(dev, v, nr)
would have the following behavior:

if nr = -1, it would do dynamic minor allocation;
if nr = 0, it would allocate to 'nr' minor or fail.

With the original behavior.

The ov511_probe registering loop is doing something like this (I did a cleanup
to allow a better understand of the logic):

snip
#define OV511_MAX_UNIT_VIDEO 16
...
static int unit_video[OV511_MAX_UNIT_VIDEO];
...
module_param_array(unit_video, int, num_uv, 0);
MODULE_PARM_DESC(unit_video,
  Force use of specific minor number(s). 0 is not allowed.);
...
static int
ov51x_probe(struct usb_interface *intf, const struct usb_device_id *id)
{
...
for (i = 0; i  OV511_MAX_UNIT_VIDEO; i++) {
/* Minor 0 cannot be specified; assume user wants autodetect */
if (unit_video[i] == 0)
break;

if (video_register_device(ov-vdev, VFL_TYPE_GRABBER,
unit_video[i]) = 0)
goto register_succeded;
}

/* Use the next available one */
if (video_register_device(ov-vdev, VFL_TYPE_GRABBER, -1)  0) {
err(video_register_device failed);
goto error;

register_succeeded:
dev_info(intf-dev, Device at %s registered to minor %d\n,
 ov-usb_path, ov-vdev-minor);
/snip

So, if you probe ov511 with a list of device numbers, for example:

modprobe ov511 4,1,3

And assuming that you have 5 ov511 devices, and connect they one by one,
they'll gain the following device numbers (at the connection order):
/dev/video4
/dev/video1
/dev/video3
/dev/video0
/dev/video2

However, changeset 9133:

changeset:   9133:64aed7485a43
parent:  9073:4db9722caf4f
user:Hans Verkuil hverk...@xs4all.nl
date:Sat Oct 04 13:36:54 2008 +0200
summary: v4l: disconnect kernel number from minor

Changed the behavior video_register_device(dev, v, nr):

+ nr = find_next_zero_bit(video_nums[type], minor_cnt, nr == -1 ? 0 : nr);

So, instead of accepting just -1 or nr, it will now do:
if nr = -1, it will do dynamic minor allocation (as before);
if nr = 0, it will also do dynamic minor allocation, but starting from 
nr.

So, the new code won't fail if nr is already allocated, but it will return the
next unallocated nr.

With the ov511 code, this means that you'll have, instead:

/dev/video5
/dev/video6
/dev/video7
/dev/video8
/dev/video9

So, changeset 9133 actually broke the ov511 probe original behavior.

In order to restore the original behavior, the probe logic should be replaced
by something else (like the approach taken by em28xx).

Also, changeset 9133 may also cause other side effects on other drivers that
were expecting the original behavior.

To make things worse, the function comment doesn't properly explain the current
behavior.

---

Figo,

Since we are in the middle of a merge window, it is unlikely that I'll have
enough time to properly fix it right now (since my priority right now is to
merge the existing patches).

As you started proposing a patch for it, maybe you could try to fix it and
check about similar troubles on other drivers.

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


Re: About V4l2 overlay sequence

2009-06-10 Thread Dongsoo, Nathaniel Kim
It seems to be totally described in v4l2 api specification document.

The document is saying like this:
VIDIOC_QUERYCAP
video input and video standard ioctls
VIDIOC_G_FBUF and VIDIOC_S_FBUF
VIDIOC_G_FMT/S_FMT/TRY_FMT
VIDIOC_OVERLAY

Take a look at the document for detailed usage.
Cheers,

Nate

On Wed, Jun 10, 2009 at 6:13 PM, xieyili@gmail.com wrote:
 Dear all ~~

 With your help I have implemented the preview with capture interface ~~
 Now i want to implement the preview with ovelay , and my camera support
 s ovelay ~
 Who can tell me where I can find the document about ovelay sequcence ~ ?
 Or does there have a standard example source code ~ ?

 Thanks a lot ~

 Best regards





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