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

2010-01-27 Thread Németh Márton
Hans Verkuil wrote:
> On Wednesday 27 January 2010 22:48:24 Hans Verkuil wrote:
>> This message is generated daily by a cron job that builds v4l-dvb for
>> the kernels and architectures in the list below.
> 
> It's up and running again. Note that I upgraded to the latest gcc 4.4.3.
> I also updated all the kernels to their latest dot release.

I'm happy to hear that this regular check is running again. I think this
is an important tool to increase quality of v4l subsystem.

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


cx18 fix patches

2010-01-27 Thread Mauro Carvalho Chehab
Hi Andy,

I've made two fix patches to solve the issues with cx18 compilation.
My original intention were to send you an email for your ack.

Unfortunately, those got added at the wrong branch and went upstream.

That proofs that my scripts aren't reliable yet, and that I need
an independent tree for such patches... I hope I have enough disk for all
those trees...

As we can't rebase the -git tree without breaking the replicas,
I'd like you to review the patches:

http://git.linuxtv.org/v4l-dvb.git?a=commit;h=701ca4249401fe9705a66ad806e933f15cb42489
http://git.linuxtv.org/v4l-dvb.git?a=commit;h=dd01705f6a6f732ca95d20959a90dd46482530df

If a committed patch is bad, the remaining solution is to write a patch 
reverting
it, and generating some dirty at the git logs.

So, I hope both patches are ok...

Please test.

Sorry for the mess.

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: saa7134 and μPD61151 MPEG2 coder

2010-01-27 Thread Dmitri Belimov
HIi Hans

> Hi Dmitri,
> 
> Just a quick note: the video4linux mailinglist is obsolete, just use
> linux-media.

OK

> On Wednesday 27 January 2010 06:36:37 Dmitri Belimov wrote:
> > Hi Hans.
> > 
> > I finished saa7134 part of SPI. Please review saa7134-spi.c and
> > diff saa7134-core and etc. I wrote config of SPI to board
> > structure. Use this config for register master and slave devices.
> > 
> > SPI other then I2C, do not need call request_module. Udev do it. 
> > I spend 10 days for understanding :(  
> 
> I'm almost certain that spi works the same way as i2c and that means
> that you must call request_module. Yes, udev will load it for you,
> but that is a delayed load: i.e. the module may not be loaded when we
> need it. The idea behind this is that usually i2c or spi modules are
> standalone, but in the context of v4l such modules are required to be
> present before the bridge can properly configure itself.
> 
> The easiest way to ensure the correct load sequence is to do a
> request_module at the start.
> 
> Now, I haven't compiled this, but I think this will work:
> 
> struct v4l2_subdev *v4l2_spi_new_subdev(struct v4l2_device *v4l2_dev,
>struct spi_master *master, struct spi_board_info *info)
> {
>   struct v4l2_subdev *sd = NULL;
> struct spi_device *spi;
>   
>   BUG_ON(!v4l2_dev);
> 
>   if (module_name)
>   request_module(module_name);
> 
>   spi = spi_new_device(master, info);
> 
>   if (spi == NULL || spi->dev.driver == NULL)
>   goto error;
> 
>if (!try_module_get(spi->dev.driver->owner))
>goto error;
> 
>sd = spi_get_drvdata(spi);
> 
>/* Register with the v4l2_device which increases the module's
>   use count as well. */
> 
>if (v4l2_device_register_subdev(v4l2_dev, sd))
>sd = NULL;
> 
>/* Decrease the module use count to match the first
> try_module_get. */ module_put(spi->dev.driver->owner);
> 
> error:
>/* If we have a client but no subdev, then something went
> wrong and we must unregister the client. */
> 
>if (spi && sd == NULL)
>spi_unregister_device(spi);
> 
>return sd;
> }
> EXPORT_SYMBOL_GPL(v4l2_spi_new_subdev);

Not work

[6.048195] Linux video capture interface: v2.00
[6.112987] saa7130/34: v4l2 driver version 0.2.15 loaded
[6.113067] saa7134 :04:01.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
[6.113117] saa7133[0]: found at :04:01.0, rev: 209, irq: 19, latency: 
32, mmio: 0xe510
[6.113176] saa7133[0]: subsystem: 5ace:7595, board: Beholder BeholdTV X7 
[card=171,autodetected]
[6.113241] saa7133[0]: board init: gpio is 20
[6.113292] IRQ 19/saa7133[0]: IRQF_DISABLED is not guaranteed on shared IRQs
[6.264512] saa7133[0]: i2c eeprom 00: ce 5a 95 75 54 20 00 00 00 00 00 00 
00 00 00 01
[6.265136] saa7133[0]: i2c eeprom 10: ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff
[6.265731] saa7133[0]: i2c eeprom 20: ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff
[6.266327] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff
[6.266922] saa7133[0]: i2c eeprom 40: ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff
[6.267517] saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff
[6.268113] saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff
[6.268718] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff
[6.269313] saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff
[6.269908] saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff
[6.270503] saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff
[6.271098] saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff
[6.271693] saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff
[6.272289] saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff 
ff ff ff ff
[6.272895] saa7133[0]: i2c eeprom e0: 00 00 00 00 ff ff ff ff ff ff ff ff 
ff ff ff ff
[6.273490] saa7133[0]: i2c eeprom f0: 42 54 56 30 30 30 30 ff ff ff ff ff 
ff ff ff ff
[6.360023] tuner 1-0061: chip found @ 0xc2 (saa7133[0])
[6.401952] xc5000 1-0061: creating new instance
[6.412005] xc5000: Successfully identified at address 0x61
[6.412054] xc5000: Firmware has not been loaded previously
[6.477742] HDA Intel :00:1b.0: PCI INT A -> GSI 16 (level, low) -> IRQ 
16
[6.477816] HDA Intel :00:1b.0: setting latency timer to 64

[   34.752763] saa7134 :04:01.0: spi master registered: bus_num=32766 
num_chipselect=1
[   34.752823] saa7133[0]: found muPD61151 MPEG encoder
[   34.752883] befor request_module

[  240.476013] INFO: task modprobe:1404 blocked for more than 120 seconds.
[  240.476016] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this 

Re: [PULL] firmware for Sensoray s2255 driver

2010-01-27 Thread Mauro Carvalho Chehab
Hi David,

Mauro Carvalho Chehab wrote:
> The following changes since commit c024a251e1dd1a39de610bbdc2af65b36e42637d:
>   David Woodhouse (1):
> Merge from fixed from-kernel tree to fix Matrox firmware binaries
> 
> are available in the git repository at:
>
>   ssh://master.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-firmware.git 
> master

Sensoray sent us two more firmwares, under the same licence. So, I've added 
them 
on my tree also.

For one of his driver to work, they'll need also the Micronas go7007 firmware.

This firmware gives redistribution rights, but the condition for it is unusual: 
it 
requires that the README file of their public driver to be shipped together 
with the 
firmware. So, I added the clauses at WHENCE licence (based on their readme 
file), and
added their unmodified README, just renaming it as "README.go7007".
I hope that's the right way of doing it.

The 2 Sensoray patches, plus the go7007 firmware are at:

  ssh://master.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-firmware.git 
go7007

So, please pull from it if you're comfortable.

This is the contents of the "go7007" branch:

Mauro Carvalho Chehab (3):
  Firmware for Sensoray s2255 webcam drivers
  Additional firmwares for Sensoray s2255 webcam drivers
  Add firmwares for go7007 driver

 README.go7007   |  375 +++
 WHENCE  |   33 +
 f2255usb.bin|  Bin 0 -> 180760 bytes
 go7007fw.bin|  Bin 0 -> 30800 bytes
 go7007tv.bin|  Bin 0 -> 124668 bytes
 s2250.fw|  Bin 0 -> 9508 bytes
 s2250_loader.fw |  Bin 0 -> 1092 bytes
 7 files changed, 408 insertions(+), 0 deletions(-)
 create mode 100644 README.go7007
 create mode 100644 f2255usb.bin
 create mode 100644 go7007fw.bin
 create mode 100644 go7007tv.bin
 create mode 100644 s2250.fw
 create mode 100644 s2250_loader.fw

---

If, however, you think that the way the go7007 were imported is incorrect, then
please pull at least the two Sensoray patches from the "master" branch.

This is the contents for just the "master" branch, at
  ssh://master.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-firmware.git 
master

Mauro Carvalho Chehab (2):
  Firmware for Sensoray s2255 webcam drivers
  Additional firmwares for Sensoray s2255 webcam drivers

 WHENCE  |   14 ++
 f2255usb.bin|  Bin 0 -> 180760 bytes
 s2250.fw|  Bin 0 -> 9508 bytes
 s2250_loader.fw |  Bin 0 -> 1092 bytes
 4 files changed, 14 insertions(+), 0 deletions(-)
 create mode 100644 f2255usb.bin
 create mode 100644 s2250.fw
 create mode 100644 s2250_loader.fw
--
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


AF9015 with tuner TDA18218

2010-01-27 Thread SebaX75

Hi,
I've an adapter with USB ID 15a4:9016, with an AF9015 and tuner 
TDA18218. This is the fifth adatper that I try, 3 currently work, one 
should work, but I've no success, and this not work.
I've seen in previous posts that it is not supported for now, but many 
people have done some experiment and some have obtained something, but 
nothing of full working.
I want to know if it's possible to write a working driver using 
datasheet and starting from the code of TDA18271 using the difference 
from datasheet (at a first look they seems very similar); I'm not a 
programmer, but I'm able to do some logic operation if someone can 
explain me what I must do.
I can do tester and report log of usbsnnop too, but starting from it and 
write a driver is too hard for me.
If someone with this adapter want to try some experiment with me and 
work on it, I'm available to cowork.


Thanks to all,
Sebastian
--
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


[Q] udev and soc-camera

2010-01-27 Thread Valentin Longchamp

Hello,

I have a system that is built with OpenEmbedded where I use a mt9t031 
camera with the soc-camera framework. The mt9t031 works ok with the 
current kernel and system.


However, udev does not create the /dev/video0 device node. I have to 
create it manually with mknod and then it works well. If I unbind the 
device on the soc-camera bus (and then eventually rebind it), udev then 
creates the node correctly. This looks like a "timing" issue at "coldstart".


OpenEmbedded currently builds udev 141 and I am using kernel 2.6.33-rc5 
(but this was already like that with earlier kernels).


Is this problem something known or has at least someone already 
experienced that problem ?


Thanks and best regards

Val

--
Valentin Longchamp, PhD Student, EPFL-STI-LSRO1
valentin.longch...@epfl.ch, Phone: +41216937827
http://people.epfl.ch/valentin.longchamp
MEB3494, Station 9, CH-1015 Lausanne
--
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: IR device at I2C address 0x7a

2010-01-27 Thread hermann pitton
Hi Jean,

Am Mittwoch, den 27.01.2010, 10:38 +0100 schrieb Jean Delvare:
> Hi Hermann,
> 
> Sorry for the late answer.
> 
> On Sun, 10 Jan 2010 22:55:05 +0100, hermann pitton wrote:
> > Am Sonntag, den 10.01.2010, 09:51 +0100 schrieb Jean Delvare:
> > > On Sun, 10 Jan 2010 00:18:46 +0100, hermann pitton wrote:
> > > > Am Samstag, den 09.01.2010, 17:14 +0100 schrieb Jean Delvare:
> > > > > Then I would suggest the following patch:
> > > > > 
> > > > > * * * * *
> > > > > 
> > > > > From: Jean Delvare 
> > > > > Subject: saa7134: Fix IR support of some ASUS TV-FM 7135 variants
> > > > > 
> > > > > Some variants of the ASUS TV-FM 7135 are handled as the ASUSTeK P7131
> > > > > Analog (card=146). However, by the time we find out, some
> > > > > card-specific initialization is missed. In particular, the fact that
> > > > > the IR is GPIO-based. Set it when we change the card type.
> > > > > 
> > > > > Signed-off-by: Jean Delvare 
> > > > > Tested-by: Daro 
> > > > 
> > > > just to note it, the ASUS TV-FM 7135 with USB remote is different to the
> > > > Asus My Cinema P7134 Analog only, not only for the remote, but also for
> > > > inputs, but they have the same PCI subsystem.
> > > > 
> > > > > ---
> > > > >  linux/drivers/media/video/saa7134/saa7134-cards.c |1 +
> > > > >  1 file changed, 1 insertion(+)
> > > > > 
> > > > > --- v4l-dvb.orig/linux/drivers/media/video/saa7134/saa7134-cards.c
> > > > > 2009-12-11 09:47:47.0 +0100
> > > > > +++ v4l-dvb/linux/drivers/media/video/saa7134/saa7134-cards.c 
> > > > > 2010-01-09 16:23:17.0 +0100
> > > > > @@ -7257,6 +7257,7 @@ int saa7134_board_init2(struct saa7134_d
> > > > >  printk(KERN_INFO "%s: P7131 analog only, using "
> > > > >  "entry of %s\n",
> > > > >  dev->name, saa7134_boards[dev->board].name);
> > > > > + dev->has_remote = SAA7134_REMOTE_GPIO;
> > > > >  }
> > > > >  break;
> > > > >   case SAA7134_BOARD_HAUPPAUGE_HVR1150:
> > > > > 
> > > > > 
> > > > > * * * * *
> > > > 
> > > > Must have been broken at that time, IIRC.
> > > 
> > > What must have been broken, and when? You are confusing.
> > 
> > Sorry, I missed that thread until now.
> > The above patch was tried previously by Roman.
> > 
> > For the record, here is a link.
> > http://www.spinics.net/lists/vfl/msg38869.html
> 
> Thanks for the pointer, this was very helpful. I had missed the fact
> that the call to saa7134_input_init1() was before the card number
> change. So indeed my patch was insufficient.
> 
> Roman's strategy to move saa7134_input_init1() to the late init section
> seems good to me. Honestly, I can't think of a good reason to init the
> remote control early. I doubt that anything else depends on that.
> 
> I'll send an updated patch shortly.

thanks for your time looking closer into it.

Unfortunately I did not have any during the last two months.

If we pass all the testing, your here announced and later following
patch should be the best possible solution, as it stands now.

To give some historical notes, Gerd did try to avoid eeprom detection on
the saa7134 driver, likely hoping to see better PCI subsystem use by the
manufacturers, since bttv was already very complex and difficult to
maintain with all the specific detection stuff and workarounds.

However, Hartmut Hackmann and me had to discover, that we still see the
same disease with some saa713x OEMs, the same PCI subsystem for very
different cards ...

Hence we started with some eeprom detection, known now for having caused
trouble already through all the ever ongoing changing init procedures we
always have and very bad for transparent maintenance.

For all, and for Asus specifically, this is still a unique case on the
saa713x driver, IIRC. The rest is fine on Asus.

To print something for that card like "for IR you have to set the
card=number" should be also still enough.

To remind, we run into those problems, because OEMs don't follow the
rules of the chip manufacturer, excluding others by will on their m$
drivers, when initially buying greater amounts of chips.

So we always run only after the tsunamis and it is not worth it, to give
those breaking rules previously, some kind of moral instance to get
their devices better detected on GNU/Linux later.

Anyway, let's try.

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


[PULL] firmware for Sensoray s2255 driver

2010-01-27 Thread Mauro Carvalho Chehab
The following changes since commit c024a251e1dd1a39de610bbdc2af65b36e42637d:
  David Woodhouse (1):
Merge from fixed from-kernel tree to fix Matrox firmware binaries

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-firmware.git 
master

Mauro Carvalho Chehab (1):
  Firmware for Sensoray s2255 webcam drivers

 WHENCE   |   13 +
 f2255usb.bin |  Bin 0 -> 180760 bytes
 2 files changed, 13 insertions(+), 0 deletions(-)
 create mode 100644 f2255usb.bin

--
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: [cron job] v4l-dvb daily build 2.6.22 and up: ERRORS, 2.6.16-2.6.21: ERRORS

2010-01-27 Thread Hans Verkuil
On Wednesday 27 January 2010 22:48:24 Hans Verkuil wrote:
> This message is generated daily by a cron job that builds v4l-dvb for
> the kernels and architectures in the list below.

It's up and running again. Note that I upgraded to the latest gcc 4.4.3.
I also updated all the kernels to their latest dot release.

I'm only building the i686 and x86_64 on all kernels from 2.6.16 onwards.
All other architectures are only built for 2.6.32 and 2.6.33. If someone wants
to build one of those for older kernels also, then just let me know.

Regards,

Hans

> 
> Results of the daily build of v4l-dvb:
> 
> date:Wed Jan 27 21:00:05 CET 2010
> path:http://www.linuxtv.org/hg/v4l-dvb
> changeset:   14064:31eaa9423f98
> gcc version: i686-linux-gcc (GCC) 4.4.3
> host hardware:x86_64
> host os: 2.6.32.5
> 
> linux-2.6.32.6-armv5: OK
> linux-2.6.33-rc5-armv5: OK
> linux-2.6.32.6-armv5-davinci: WARNINGS
> linux-2.6.33-rc5-armv5-davinci: WARNINGS
> linux-2.6.32.6-armv5-dm365: ERRORS
> linux-2.6.33-rc5-armv5-dm365: ERRORS
> linux-2.6.32.6-armv5-ixp: WARNINGS
> linux-2.6.33-rc5-armv5-ixp: WARNINGS
> linux-2.6.32.6-armv5-omap2: WARNINGS
> linux-2.6.33-rc5-armv5-omap2: WARNINGS
> linux-2.6.22.19-i686: WARNINGS
> linux-2.6.23.17-i686: WARNINGS
> linux-2.6.24.7-i686: WARNINGS
> linux-2.6.25.20-i686: WARNINGS
> linux-2.6.26.8-i686: WARNINGS
> linux-2.6.27.44-i686: WARNINGS
> linux-2.6.28.10-i686: WARNINGS
> linux-2.6.29.1-i686: WARNINGS
> linux-2.6.30.10-i686: WARNINGS
> linux-2.6.31.12-i686: WARNINGS
> linux-2.6.32.6-i686: WARNINGS
> linux-2.6.33-rc5-i686: WARNINGS
> linux-2.6.32.6-m32r: OK
> linux-2.6.33-rc5-m32r: OK
> linux-2.6.32.6-mips: WARNINGS
> linux-2.6.33-rc5-mips: WARNINGS
> linux-2.6.32.6-powerpc64: ERRORS
> linux-2.6.33-rc5-powerpc64: ERRORS
> linux-2.6.22.19-x86_64: WARNINGS
> linux-2.6.23.17-x86_64: WARNINGS
> linux-2.6.24.7-x86_64: WARNINGS
> linux-2.6.25.20-x86_64: WARNINGS
> linux-2.6.26.8-x86_64: WARNINGS
> linux-2.6.27.44-x86_64: WARNINGS
> linux-2.6.28.10-x86_64: WARNINGS
> linux-2.6.29.1-x86_64: WARNINGS
> linux-2.6.30.10-x86_64: WARNINGS
> linux-2.6.31.12-x86_64: WARNINGS
> linux-2.6.32.6-x86_64: WARNINGS
> linux-2.6.33-rc5-x86_64: WARNINGS
> spec: OK
> sparse (linux-2.6.32.6): ERRORS
> sparse (linux-2.6.33-rc5): ERRORS
> linux-2.6.16.62-i686: ERRORS
> linux-2.6.17.14-i686: ERRORS
> linux-2.6.18.8-i686: ERRORS
> linux-2.6.19.7-i686: OK
> linux-2.6.20.21-i686: WARNINGS
> linux-2.6.21.7-i686: WARNINGS
> linux-2.6.16.62-x86_64: ERRORS
> linux-2.6.17.14-x86_64: ERRORS
> linux-2.6.18.8-x86_64: ERRORS
> linux-2.6.19.7-x86_64: WARNINGS
> linux-2.6.20.21-x86_64: WARNINGS
> linux-2.6.21.7-x86_64: WARNINGS
> 
> 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 V4L-DVB specification from this daily build is here:
> 
> http://www.xs4all.nl/~hverkuil/spec/media.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

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


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

2010-01-27 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 Jan 27 21:00:05 CET 2010
path:http://www.linuxtv.org/hg/v4l-dvb
changeset:   14064:31eaa9423f98
gcc version: i686-linux-gcc (GCC) 4.4.3
host hardware:x86_64
host os: 2.6.32.5

linux-2.6.32.6-armv5: OK
linux-2.6.33-rc5-armv5: OK
linux-2.6.32.6-armv5-davinci: WARNINGS
linux-2.6.33-rc5-armv5-davinci: WARNINGS
linux-2.6.32.6-armv5-dm365: ERRORS
linux-2.6.33-rc5-armv5-dm365: ERRORS
linux-2.6.32.6-armv5-ixp: WARNINGS
linux-2.6.33-rc5-armv5-ixp: WARNINGS
linux-2.6.32.6-armv5-omap2: WARNINGS
linux-2.6.33-rc5-armv5-omap2: WARNINGS
linux-2.6.22.19-i686: WARNINGS
linux-2.6.23.17-i686: WARNINGS
linux-2.6.24.7-i686: WARNINGS
linux-2.6.25.20-i686: WARNINGS
linux-2.6.26.8-i686: WARNINGS
linux-2.6.27.44-i686: WARNINGS
linux-2.6.28.10-i686: WARNINGS
linux-2.6.29.1-i686: WARNINGS
linux-2.6.30.10-i686: WARNINGS
linux-2.6.31.12-i686: WARNINGS
linux-2.6.32.6-i686: WARNINGS
linux-2.6.33-rc5-i686: WARNINGS
linux-2.6.32.6-m32r: OK
linux-2.6.33-rc5-m32r: OK
linux-2.6.32.6-mips: WARNINGS
linux-2.6.33-rc5-mips: WARNINGS
linux-2.6.32.6-powerpc64: ERRORS
linux-2.6.33-rc5-powerpc64: ERRORS
linux-2.6.22.19-x86_64: WARNINGS
linux-2.6.23.17-x86_64: WARNINGS
linux-2.6.24.7-x86_64: WARNINGS
linux-2.6.25.20-x86_64: WARNINGS
linux-2.6.26.8-x86_64: WARNINGS
linux-2.6.27.44-x86_64: WARNINGS
linux-2.6.28.10-x86_64: WARNINGS
linux-2.6.29.1-x86_64: WARNINGS
linux-2.6.30.10-x86_64: WARNINGS
linux-2.6.31.12-x86_64: WARNINGS
linux-2.6.32.6-x86_64: WARNINGS
linux-2.6.33-rc5-x86_64: WARNINGS
spec: OK
sparse (linux-2.6.32.6): ERRORS
sparse (linux-2.6.33-rc5): ERRORS
linux-2.6.16.62-i686: ERRORS
linux-2.6.17.14-i686: ERRORS
linux-2.6.18.8-i686: ERRORS
linux-2.6.19.7-i686: OK
linux-2.6.20.21-i686: WARNINGS
linux-2.6.21.7-i686: WARNINGS
linux-2.6.16.62-x86_64: ERRORS
linux-2.6.17.14-x86_64: ERRORS
linux-2.6.18.8-x86_64: ERRORS
linux-2.6.19.7-x86_64: WARNINGS
linux-2.6.20.21-x86_64: WARNINGS
linux-2.6.21.7-x86_64: WARNINGS

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 V4L-DVB specification from this daily build is here:

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


Re: [PATCH] soc_camera: match signedness of soc_camera_limit_side()

2010-01-27 Thread Németh Márton
Guennadi Liakhovetski wrote:
> You didn't reply to my most important objection:
> 
> On Wed, 27 Jan 2010, Németh Márton wrote:
> 
>> diff -r 31eaa9423f98 linux/include/media/soc_camera.h
>> --- a/linux/include/media/soc_camera.h   Mon Jan 25 15:04:15 2010 -0200
>> +++ b/linux/include/media/soc_camera.h   Wed Jan 27 20:49:57 2010 +0100
>> @@ -264,9 +264,8 @@
>>  common_flags;
>>  }
>>
>> -static inline void soc_camera_limit_side(unsigned int *start,
>> -unsigned int *length, unsigned int start_min,
>> -unsigned int length_min, unsigned int length_max)
>> +static inline void soc_camera_limit_side(int *start, int *length,
>> +int start_min, int length_min, int length_max)
>>  {
>>  if (*length < length_min)
>>  *length = length_min;
> 
> I still do not believe this function will work equally well with signed 
> parameters, as it works with unsigned ones.

I implemented some test cases to find out whether the
soc_camera_limit_side() works correctly or not. My biggest problem is that I'm
not sure what is the expected working of the soc_camera_limit_side() function.

Nevertheless I tried expect some values, you can probably verify whether my
expectations are correct or not (see the test attached).

The signed and unsigned version of the function works differently because
the unsigned version cannot accept negative values. These values will be
implicitly casted to an unsigned value which means that they will be interpreted
as a big positive value.

Here are the test results:

Test Case 1: PASSED
Test Case 2: PASSED
Test Case 3: FAILED: start=50, length=8, start_unsigned=0, length_unsigned=1600
Test Case 4: PASSED
Test Case 5: PASSED
Test Case 6: PASSED
Test Case 7: PASSED
Test Case 8: PASSED

There is a difference in case 3, but which is the correct one?

Regard,

Márton Németh

#include 

static inline void soc_camera_limit_side_UNSIGNED(unsigned int *start, unsigned int *length,
		unsigned int start_min, unsigned int length_min, unsigned int length_max)
{
	if (*length < length_min)
		*length = length_min;
	else if (*length > length_max)
		*length = length_max;

	if (*start < start_min)
		*start = start_min;
	else if (*start > start_min + length_max - *length)
		*start = start_min + length_max - *length;
}


static inline void soc_camera_limit_side(int *start, int *length,
		int start_min, int length_min, int length_max)
{
	if (*length < length_min)
		*length = length_min;
	else if (*length > length_max)
		*length = length_max;

	if (*start < start_min)
		*start = start_min;
	else if (*start > start_min + length_max - *length)
		*start = start_min + length_max - *length;
}


int main() {
	int start, length;
	unsigned int start_unsigned, length_unsigned;

	printf("Test Case 1: ");
	start = 0;
	length = 8;
	start_unsigned = start;
	length_unsigned = length;
	soc_camera_limit_side(&start, &length, 0, 8, 1600);
	soc_camera_limit_side_UNSIGNED(&start_unsigned, &length_unsigned, 0, 8, 1600);
	if (start == 0 && length == 8 && start_unsigned == start && length_unsigned == length) {
		printf("PASSED\n");
	} else {
		printf("FAILED: start=%i, length=%i, start_unsigned=%i, length_unsigned=%i\n", start, length, start_unsigned, length_unsigned);
	}

	printf("Test Case 2: ");
	start = -5;
	length = 1600;
	start_unsigned = start;
	length_unsigned = length;
	soc_camera_limit_side(&start, &length, 0, 8, 1600);
	soc_camera_limit_side_UNSIGNED(&start_unsigned, &length_unsigned, 0, 8, 1600);
	if (start == 0 && length == 1600 && start_unsigned == start && length_unsigned == length) {
		printf("PASSED\n");
	} else {
		printf("FAILED: start=%i, length=%i, start_unsigned=%i, length_unsigned=%i\n", start, length, start_unsigned, length_unsigned);
	}

	printf("Test Case 3: ");
	start = 50;
	length = -15;
	start_unsigned = start;
	length_unsigned = length;
	soc_camera_limit_side(&start, &length, 0, 8, 1600);
	soc_camera_limit_side_UNSIGNED(&start_unsigned, &length_unsigned, 0, 8, 1600);
	if (start == 50 && length == 8 && start_unsigned == start && length_unsigned == length) {
		printf("PASSED\n");
	} else {
		printf("FAILED: start=%i, length=%i, start_unsigned=%i, length_unsigned=%i\n", start, length, start_unsigned, length_unsigned);
	}

	printf("Test Case 4: ");
	start = 500;
	length = 2000;
	start_unsigned = start;
	length_unsigned = length;
	soc_camera_limit_side(&start, &length, 0, 8, 1600);
	soc_camera_limit_side_UNSIGNED(&start_unsigned, &length_unsigned, 0, 8, 1600);
	if (start == 0 && length == 1600 && start_unsigned == start && length_unsigned == length) {
		printf("PASSED\n");
	} else {
		printf("FAILED: start=%i, length=%i, start_unsigned=%i, length_unsigned=%i\n", start, length, start_unsigned, length_unsigned);
	}

	printf("Test Case 5: ");
	start = -20;
	length = 1600;
	start_unsigned = start;
	length_unsigned = length;
	soc_camera_limit_side(&start, &length, 100, 8, 1600);
	soc_camera_limit_side_UNSIGNED(&start_unsigned, &length_unsigned, 100, 

Re: dmesg output with Pinnacle PCTV USB Stick

2010-01-27 Thread Devin Heitmueller
On Wed, Jan 27, 2010 at 4:00 PM, Sebastian Spiess
 wrote:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
>
> Hi there,
> below is my dmesh output for my Pinnacle PCTV Hybrid Pro
>
> hope it helps
>
> [ 8899.390876] em28xx: New device USB 2870 Device @ 480 Mbps (eb1a:2870,
> interface 0, class 0)

Are you absolutely sure this is a PCTV Hybrid Pro?  What is the exact
model number?  Does it have the A/V cable for composite/svideo input?

Based on the USB ID, I would have assumed this was a model "70e",
which is a digital only device.  It's on my TODO list, but it's a
really low priority given how old it is.  I actually did spend some
time working on it, but ran into problems and without the hardware
concluded it wasn't worth the time.

Devin

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


dmesg output with Pinnacle PCTV USB Stick

2010-01-27 Thread Sebastian Spiess
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi there,
below is my dmesh output for my Pinnacle PCTV Hybrid Pro

hope it helps

[ 8899.390876] em28xx: New device USB 2870 Device @ 480 Mbps (eb1a:2870,
interface 0, class 0)
[ 8899.391162] em28xx #0: chip ID is em2870
[ 8899.474026] em28xx #0: i2c eeprom 00: 1a eb 67 95 1a eb 70 28 c0 12
81 00 6a 22 00 00
[ 8899.474096] em28xx #0: i2c eeprom 10: 00 00 04 57 02 0d 00 00 00 00
00 00 00 00 00 00
[ 8899.474162] em28xx #0: i2c eeprom 20: 44 00 00 00 f0 10 02 00 00 00
00 00 5b 00 00 00
[ 8899.474227] em28xx #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 01 01
00 00 6d e0 a3 49
[ 8899.474311] em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 8899.474376] em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 8899.474441] em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00
22 03 55 00 53 00
[ 8899.474506] em28xx #0: i2c eeprom 70: 42 00 20 00 32 00 38 00 37 00
30 00 20 00 44 00
[ 8899.474571] em28xx #0: i2c eeprom 80: 65 00 76 00 69 00 63 00 65 00
00 00 00 00 00 00
[ 8899.474640] em28xx #0: i2c eeprom 90: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 8899.474706] em28xx #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 8899.474789] em28xx #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 8899.474854] em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 8899.474919] em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 8899.474984] em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 8899.475048] em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
[ 8899.475117] em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash = 0xf0ff19c0
[ 8899.475141] em28xx #0: EEPROM info:
[ 8899.475146] em28xx #0:   No audio on board.
[ 8899.475151] em28xx #0:   500mA max power
[ 8899.475175] em28xx #0:   Table at 0x04, strings=0x226a, 0x, 0x
[ 8899.491654] em28xx #0: Identified as Unknown EM2750/28xx video
grabber (card=1)
[ 8899.527409] em28xx #0: found i2c device @ 0xa0 [eeprom]
[ 8899.535029] em28xx #0: found i2c device @ 0xc0 [tuner (analog)]
[ 8899.550027] em28xx #0: Your board has no unique USB ID and thus need
a hint to be detected.
[ 8899.550054] em28xx #0: You may try to use card= insmod option to
workaround that.
[ 8899.550061] em28xx #0: Please send an email with this log to:
[ 8899.550085] em28xx #0:   V4L Mailing List 
[ 8899.550091] em28xx #0: Board eeprom hash is 0xf0ff19c0
[ 8899.550115] em28xx #0: Board i2c devicelist hash is 0x4b800080
[ 8899.550121] em28xx #0: Here is a list of valid choices for the
card= insmod option:
[ 8899.550128] em28xx #0: card=0 -> Unknown EM2800 video grabber
[ 8899.550153] em28xx #0: card=1 -> Unknown EM2750/28xx video grabber
[ 8899.550160] em28xx #0: card=2 -> Terratec Cinergy 250 USB
[ 8899.550188] em28xx #0: card=3 -> Pinnacle PCTV USB 2
[ 8899.550212] em28xx #0: card=4 -> Hauppauge WinTV USB 2
[ 8899.550219] em28xx #0: card=5 -> MSI VOX USB 2.0
[ 8899.550242] em28xx #0: card=6 -> Terratec Cinergy 200 USB
[ 8899.550249] em28xx #0: card=7 -> Leadtek Winfast USB II
[ 8899.550255] em28xx #0: card=8 -> Kworld USB2800
[ 8899.550280] em28xx #0: card=9 -> Pinnacle Dazzle DVC
90/100/101/107 / Kaiser Baas Video to DVD maker
[ 8899.550287] em28xx #0: card=10 -> Hauppauge WinTV HVR 900
[ 8899.550312] em28xx #0: card=11 -> Terratec Hybrid XS
[ 8899.550318] em28xx #0: card=12 -> Kworld PVR TV 2800 RF
[ 8899.550342] em28xx #0: card=13 -> Terratec Prodigy XS
[ 8899.550349] em28xx #0: card=14 -> SIIG AVTuner-PVR / Pixelview
Prolink PlayTV USB 2.0
[ 8899.550374] em28xx #0: card=15 -> V-Gear PocketTV
[ 8899.550380] em28xx #0: card=16 -> Hauppauge WinTV HVR 950
[ 8899.550405] em28xx #0: card=17 -> Pinnacle PCTV HD Pro Stick
[ 8899.550411] em28xx #0: card=18 -> Hauppauge WinTV HVR 900 (R2)
[ 8899.550436] em28xx #0: card=19 -> EM2860/SAA711X Reference Design
[ 8899.550443] em28xx #0: card=20 -> AMD ATI TV Wonder HD 600
[ 8899.550468] em28xx #0: card=21 -> eMPIA Technology, Inc.
GrabBeeX+ Video Encoder
[ 8899.550475] em28xx #0: card=22 -> EM2710/EM2750/EM2751 webcam grabber
[ 8899.550499] em28xx #0: card=23 -> Huaqi DLCW-130
[ 8899.550505] em28xx #0: card=24 -> D-Link DUB-T210 TV Tuner
[ 8899.550530] em28xx #0: card=25 -> Gadmei UTV310
[ 8899.550536] em28xx #0: card=26 -> Hercules Smart TV USB 2.0
[ 8899.550543] em28xx #0: card=27 -> Pinnacle PCTV USB 2 (Philips
FM1216ME)
[ 8899.550568] em28xx #0: card=28 -> Leadtek Winfast USB II Deluxe
[ 8899.550574] em28xx #0: card=29 -> 
[ 8899.550599] em28xx #0: card=30 -> Videology 20K14XUSB USB2.0
[ 8899.550605] em28xx #0: card=31 -> Usbgear VD204v9
[ 8899.550629] em28xx #0: card=32 -> Supercomp USB 2.0 TV
[ 8899.550635] em28xx #0: card=33 -> 
[ 8899.550659] em28xx #0: card=34 -> Terratec Ci

Re: [mythtv] go7007 based devices

2010-01-27 Thread Mauro Carvalho Chehab
TJ wrote:
> 
> Hans Verkuil wrote:
>> On Thursday 21 January 2010 09:07:47 TJ wrote:
>>> Jelle Foks wrote:
 TJ wrote:
> I am curious how many people are successfully using go7007 based
> capture devices
> with mythtv. I've done some patch work on go7007 driver to make it v4l2
> compliant and was thinking of updating mythtv to stop using
> proprietary go7007
> ioctls, but wanted to feel the ground first.
> -TJ
>
> PS: jelle you on this list?
>   
 Yep, I'm on it, but I guess I don't check on it very often ;-)...
>>> You sure don't :)
>>>
 Myself, I'm using a bunch of plextors (with the go7007 chip), both
 M402's without tuner and TV402's with tuner on my mythbackend in the
 closet, using Ubuntu with a 2.6.31-11-generic-pae kernel and drivers
 that I made by combining the driver from the kernel staging tree and an
 older version that still worked, as I posted (with more details) on my
 blog at http://go70007.imploder.org . Somebody replied on the blog that
 it also works on 2.6.32.2, on ARM even... I actually don't know who
 maintains the go7007 driver in the staging tree, but I don't think it
 was the v4l guys.
>> Actually, it is. So the linux-media list is the appropriate place to post 
>> patches on.
>> It is currently maintained by Pete Eberlein from Sensoray.
>>
>>> Try this patch. It runs against kernel source. I tried it on 2.6.32, 
>>> 2.6.32-r1
>>> and -r2. I basically did some general cleanup on the go7007 driver in the 
>>> kernel
>>> tree, added few standard v4l2 commands and *temporarily* put back in 
>>> proprietary
>>> go7007 ioctls from your package for continued mythtv support. I also added
>>> support for ADS Tech DVD Xpress DX2 board (which was the main reason I got 
>>> into
>>> it). It runs well on my DX2 boxes. I've got about 100 of them and am 
>>> currently
>>> testing it on 5.
>> Please post this as well to the linux-media list. It would be great if 
>> someone would be
>> willing to do more work on this driver and get it out of staging into the 
>> mainline. It's
>> getting close, but it's not there yet.
>>
>> Regards,
>>
>>  Hans
>>
> 
> Hans, My brother, pardon my ignorance, but would you please be so kind and 
> shed
> some light for me on which way I should go.
> 
> I was in touch with Pete on linux-media list and he's done quite a bit of work
> on updating the driver in the current linux-media hg tree.
> 
> My patch runs against official linux kernel 2.6.32.x but won't run against hg 
> tree.
> 
> So, my thoughts were to go 2 ways:
> 
> 1. Update my patch against current linux development kernel (2.6.33-rc5? or
> -next?) and submit it to be included with the next kernel release. It would
> still be in the staging category, but at least people will be able to
> immediately take advantage of the following things:
> 
>  - ADS Tech DX2 support (which I added, actually ported from some earlier 
> release)
>  - Mythtv support (as I included original ioctls)
>  - Mythtv will now be able to be patched to use standard ioctls (I also kept 
> and
> expanded all standard ioctls)
>  - I found and fixt a few minor bugs
> 
> 2. Keep working against current linux-media hg tree and tell people to hang
> tight. This might take a while though, cuz between now and Sept-Oct this year 
> I
> won't be able to put a lot of time into it (worken on a big project).
> 
> The things I dunno about and would appreciate anyone shedding some light on 
> are:
> 
> a. Is the current linux-media hg tree going to be included in 2.6.33 kernel? 
> If
> so, then option 1 above is out of the question and I will keep working with 
> Pete
> on the current hg driver.
> 
> b. If the things didn't change much in the kernel tree since 2.6.32, I can
> probably quickly update my patch and submit it for inclusion into 2.6.33.
> 
> If that's the case, which kernel should I make the patch against? Should I 
> just
> git 2.6.33-rc5?
> 
> Who do I submit my patch to?
> 
> Again sorry for my ignorance, I don't do much collaborative work, but I am
> willing to help out the community. :)

Let me answer to your questions:

The better is to generate your patch against the development -git tree:
http://git.linuxtv.org/v4l-dvb.git

This tree is merged upstream, at the upstream linux-next tree, and have all the 
patches that
will go to 2.6.34 (patches against -rc trees are only for bug fixes).

As the -hg tree has the same code as -git (it is manually updated when a change 
happens
on -git), it is safe to generate your patch against -hg.

The patch is handled by me, but you should send it to 
linux-media@vger.kernel.org only. If the
patch doesn't have any whitespace trobules, it will be catched by 
http://patchwork.kernel.org,
and I'll be able to see it at the web interface.

You can read more about how to submit a patch at:
http://linuxtv.org/wiki/index.php/Maintaining_Git_trees
http://linuxtv.org/hg/v4l-dvb/raw-file/tip/README

Re: Terratec Cinergy Hybrid XE (TM6010 Mediachip)

2010-01-27 Thread Mauro Carvalho Chehab
Stefan Ringel wrote:
> Hi,
> 
> I have a problem with usb bulk transfer. After a while, as I scan digital 
> channel (it found a few channel), it wrote this in the log:
> 
> Jan 26 21:58:35 linux-v5dy kernel: [  548.756585] tm6000: status != 0
> 
> I updated the tm6000_urb_received function so that I can read the Error code 
> and it logged:
> 
> Jan 27 17:41:28 linux-v5dy kernel: [ 3121.892793] tm6000: status = 0xffb5

Probablt it is this error:
#define EOVERFLOW   75  /* Value too large for defined data type */

It would be good to make it display the error as a signed int.

the tm6000-video error handler has some common causes for those status.
In this particular case:

case -EOVERFLOW:
errmsg = "Babble (bad cable?)";
break;

This looks the same kind of errors I was receiving during the development of 
the driver:
a large amount of frames are got broken, even if the device is programmed with 
the exact
values used on the original driver. On my tests, changing the URB size were 
changing
the position where such errors were occurring.

> 
> Can you help me? Who I can calculate urb size?

Take a look on tm6000-video:

size = usb_maxpacket(dev->udev, pipe, usb_pipeout(pipe));

if (size > dev->max_isoc_in)
size = dev->max_isoc_in;

It depends on the alternate interface used. The driver should select an 
alternate
interface that is capable of receiving the entire size of a message. Maybe the 
tm6000
driver is missing the code that selects this size. Take a look on em28xx-core, 
at
em28xx_set_alternate() code for an example on how this should work.

The calculated size there assumes that each pixel has 16 bits, and has some 
magic that
were experimentally tested on that device.

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] soc_camera: match signedness of soc_camera_limit_side()

2010-01-27 Thread Guennadi Liakhovetski
You didn't reply to my most important objection:

On Wed, 27 Jan 2010, Németh Márton wrote:

> diff -r 31eaa9423f98 linux/include/media/soc_camera.h
> --- a/linux/include/media/soc_camera.hMon Jan 25 15:04:15 2010 -0200
> +++ b/linux/include/media/soc_camera.hWed Jan 27 20:49:57 2010 +0100
> @@ -264,9 +264,8 @@
>   common_flags;
>  }
> 
> -static inline void soc_camera_limit_side(unsigned int *start,
> - unsigned int *length, unsigned int start_min,
> - unsigned int length_min, unsigned int length_max)
> +static inline void soc_camera_limit_side(int *start, int *length,
> + int start_min, int length_min, int length_max)
>  {
>   if (*length < length_min)
>   *length = length_min;

I still do not believe this function will work equally well with signed 
parameters, as it works with unsigned ones.

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: [cron job] v4l-dvb daily build 2.6.22 and up: ERRORS, 2.6.16-2.6.21: WARNINGS

2010-01-27 Thread Hans Verkuil
On Wednesday 27 January 2010 21:02:30 Németh Márton wrote:
> Hello Hans,
> 
> Hans Verkuil wrote:
> > This message is generated daily by a cron job that builds v4l-dvb for
> > the kernels and architectures in the list below.
> 
> The last cron message I saw was on 23rd January, 2010. All warnings and errors
> were fixed since then ;-) or is there some problem with the cron job?

The build server and my whole home network for that matter were undergoing a
big upgrade. New harddisks and especially a new linux distro. It's now finished
and the daily build has just started. So you should see the cron message in
about two hours (it's a bit late today, tomorrow it is back to the normal
schedule).

Regards,

Hans

> 
> Regarsd,
> 
>   Márton Németh
> 
> 

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


Re: [mythtv] go7007 based devices

2010-01-27 Thread TJ


Hans Verkuil wrote:
> On Thursday 21 January 2010 09:07:47 TJ wrote:
>> Jelle Foks wrote:
>>> TJ wrote:
 I am curious how many people are successfully using go7007 based
 capture devices
 with mythtv. I've done some patch work on go7007 driver to make it v4l2
 compliant and was thinking of updating mythtv to stop using
 proprietary go7007
 ioctls, but wanted to feel the ground first.
 -TJ

 PS: jelle you on this list?
   
>>> Yep, I'm on it, but I guess I don't check on it very often ;-)...
>> You sure don't :)
>>
>>> Myself, I'm using a bunch of plextors (with the go7007 chip), both
>>> M402's without tuner and TV402's with tuner on my mythbackend in the
>>> closet, using Ubuntu with a 2.6.31-11-generic-pae kernel and drivers
>>> that I made by combining the driver from the kernel staging tree and an
>>> older version that still worked, as I posted (with more details) on my
>>> blog at http://go70007.imploder.org . Somebody replied on the blog that
>>> it also works on 2.6.32.2, on ARM even... I actually don't know who
>>> maintains the go7007 driver in the staging tree, but I don't think it
>>> was the v4l guys.
> 
> Actually, it is. So the linux-media list is the appropriate place to post 
> patches on.
> It is currently maintained by Pete Eberlein from Sensoray.
> 
>> Try this patch. It runs against kernel source. I tried it on 2.6.32, 
>> 2.6.32-r1
>> and -r2. I basically did some general cleanup on the go7007 driver in the 
>> kernel
>> tree, added few standard v4l2 commands and *temporarily* put back in 
>> proprietary
>> go7007 ioctls from your package for continued mythtv support. I also added
>> support for ADS Tech DVD Xpress DX2 board (which was the main reason I got 
>> into
>> it). It runs well on my DX2 boxes. I've got about 100 of them and am 
>> currently
>> testing it on 5.
> 
> Please post this as well to the linux-media list. It would be great if 
> someone would be
> willing to do more work on this driver and get it out of staging into the 
> mainline. It's
> getting close, but it's not there yet.
> 
> Regards,
> 
>   Hans
> 

Hans, My brother, pardon my ignorance, but would you please be so kind and shed
some light for me on which way I should go.

I was in touch with Pete on linux-media list and he's done quite a bit of work
on updating the driver in the current linux-media hg tree.

My patch runs against official linux kernel 2.6.32.x but won't run against hg 
tree.

So, my thoughts were to go 2 ways:

1. Update my patch against current linux development kernel (2.6.33-rc5? or
-next?) and submit it to be included with the next kernel release. It would
still be in the staging category, but at least people will be able to
immediately take advantage of the following things:

 - ADS Tech DX2 support (which I added, actually ported from some earlier 
release)
 - Mythtv support (as I included original ioctls)
 - Mythtv will now be able to be patched to use standard ioctls (I also kept and
expanded all standard ioctls)
 - I found and fixt a few minor bugs

2. Keep working against current linux-media hg tree and tell people to hang
tight. This might take a while though, cuz between now and Sept-Oct this year I
won't be able to put a lot of time into it (worken on a big project).

The things I dunno about and would appreciate anyone shedding some light on are:

a. Is the current linux-media hg tree going to be included in 2.6.33 kernel? If
so, then option 1 above is out of the question and I will keep working with Pete
on the current hg driver.

b. If the things didn't change much in the kernel tree since 2.6.32, I can
probably quickly update my patch and submit it for inclusion into 2.6.33.

If that's the case, which kernel should I make the patch against? Should I just
git 2.6.33-rc5?

Who do I submit my patch to?

Again sorry for my ignorance, I don't do much collaborative work, but I am
willing to help out the community. :)

-TJ
--
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: [cron job] v4l-dvb daily build 2.6.22 and up: ERRORS, 2.6.16-2.6.21: WARNINGS

2010-01-27 Thread Németh Márton
Hello Hans,

Hans Verkuil wrote:
> This message is generated daily by a cron job that builds v4l-dvb for
> the kernels and architectures in the list below.

The last cron message I saw was on 23rd January, 2010. All warnings and errors
were fixed since then ;-) or is there some problem with the cron job?

Regarsd,

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


Re: [PATCH] soc_camera: match signedness of soc_camera_limit_side()

2010-01-27 Thread Németh Márton
From: Márton Németh 

The parameters of soc_camera_limit_side() are either a pointer to
a structure element from v4l2_rect, or constants. The structure elements
of the v4l2_rect are signed (see ) so do the computations
also with signed values.

The *s_crop() functions may receive negative numbers through the c field of
struct v4l2_crop. These negative values then limited by the start_min and
length_min parameters of soc_camera_limit_side().

This will remove the following sparse warning (see "make C=1"):
 * incorrect type in argument 1 (different signedness)
   expected unsigned int *start
   got signed int *

Signed-off-by: Márton Németh 
---
diff -r 31eaa9423f98 linux/drivers/media/video/mt9v022.c
--- a/linux/drivers/media/video/mt9v022.c   Mon Jan 25 15:04:15 2010 -0200
+++ b/linux/drivers/media/video/mt9v022.c   Wed Jan 27 20:49:57 2010 +0100
@@ -326,7 +326,7 @@
if (ret < 0)
return ret;

-   dev_dbg(&client->dev, "Frame %ux%u pixel\n", rect.width, rect.height);
+   dev_dbg(&client->dev, "Frame %dx%d pixel\n", rect.width, rect.height);

mt9v022->rect = rect;

diff -r 31eaa9423f98 linux/drivers/media/video/rj54n1cb0c.c
--- a/linux/drivers/media/video/rj54n1cb0c.cMon Jan 25 15:04:15 2010 -0200
+++ b/linux/drivers/media/video/rj54n1cb0c.cWed Jan 27 20:49:57 2010 +0100
@@ -555,15 +555,15 @@
return ret;
 }

-static int rj54n1_sensor_scale(struct v4l2_subdev *sd, u32 *in_w, u32 *in_h,
-  u32 *out_w, u32 *out_h);
+static int rj54n1_sensor_scale(struct v4l2_subdev *sd, s32 *in_w, s32 *in_h,
+  s32 *out_w, s32 *out_h);

 static int rj54n1_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a)
 {
struct i2c_client *client = sd->priv;
struct rj54n1 *rj54n1 = to_rj54n1(client);
struct v4l2_rect *rect = &a->c;
-   unsigned int dummy = 0, output_w, output_h,
+   int dummy = 0, output_w, output_h,
input_w = rect->width, input_h = rect->height;
int ret;

@@ -577,7 +577,7 @@
output_w = (input_w * 1024 + rj54n1->resize / 2) / rj54n1->resize;
output_h = (input_h * 1024 + rj54n1->resize / 2) / rj54n1->resize;

-   dev_dbg(&client->dev, "Scaling for %ux%u : %u = %ux%u\n",
+   dev_dbg(&client->dev, "Scaling for %dx%d : %d = %dx%d\n",
input_w, input_h, rj54n1->resize, output_w, output_h);

ret = rj54n1_sensor_scale(sd, &input_w, &input_h, &output_w, &output_h);
@@ -638,12 +638,12 @@
  * the output one, updates the window sizes and returns an error or the resize
  * coefficient on success. Note: we only use the "Fixed Scaling" on this 
camera.
  */
-static int rj54n1_sensor_scale(struct v4l2_subdev *sd, u32 *in_w, u32 *in_h,
-  u32 *out_w, u32 *out_h)
+static int rj54n1_sensor_scale(struct v4l2_subdev *sd, s32 *in_w, s32 *in_h,
+  s32 *out_w, s32 *out_h)
 {
struct i2c_client *client = sd->priv;
struct rj54n1 *rj54n1 = to_rj54n1(client);
-   unsigned int skip, resize, input_w = *in_w, input_h = *in_h,
+   int skip, resize, input_w = *in_w, input_h = *in_h,
output_w = *out_w, output_h = *out_h;
u16 inc_sel, wb_bit8, wb_left, wb_right, wb_top, wb_bottom;
unsigned int peak, peak_50, peak_60;
@@ -655,7 +655,7 @@
 * case we have to either reduce the input window to equal or below
 * 512x384 or the output window to equal or below 1/2 of the input.
 */
-   if (output_w > max(512U, input_w / 2)) {
+   if (output_w > max(512, input_w / 2)) {
if (2 * output_w > RJ54N1_MAX_WIDTH) {
input_w = RJ54N1_MAX_WIDTH;
output_w = RJ54N1_MAX_WIDTH / 2;
@@ -663,11 +663,11 @@
input_w = output_w * 2;
}

-   dev_dbg(&client->dev, "Adjusted output width: in %u, out %u\n",
+   dev_dbg(&client->dev, "Adjusted output width: in %d, out %d\n",
input_w, output_w);
}

-   if (output_h > max(384U, input_h / 2)) {
+   if (output_h > max(384, input_h / 2)) {
if (2 * output_h > RJ54N1_MAX_HEIGHT) {
input_h = RJ54N1_MAX_HEIGHT;
output_h = RJ54N1_MAX_HEIGHT / 2;
@@ -675,7 +675,7 @@
input_h = output_h * 2;
}

-   dev_dbg(&client->dev, "Adjusted output height: in %u, out %u\n",
+   dev_dbg(&client->dev, "Adjusted output height: in %d, out %d\n",
input_h, output_h);
}

@@ -749,7 +749,7 @@
 * improve the image quality or stability for larger frames (see comment
 * above), but I didn't check the framerate.
 */
-   skip = min(resize / 1024, (unsigned)15);
+   skip = min(resize / 1024, 15);

inc_sel = 1 << skip;

@@ -819,7 +819,7 @@
*out_w

Re: Terratec Cinergy Hybrid XE (TM6010 Mediachip)

2010-01-27 Thread Stefan Ringel
Hi,

I have a problem with usb bulk transfer. After a while, as I scan digital 
channel (it found a few channel), it wrote this in the log:

Jan 26 21:58:35 linux-v5dy kernel: [  548.756585] tm6000: status != 0

I updated the tm6000_urb_received function so that I can read the Error code 
and it logged:

Jan 27 17:41:28 linux-v5dy kernel: [ 3121.892793] tm6000: status = 0xffb5

Can you help me? Who I can calculate urb size?

Cheers

Stefan Ringel


-- 

Stefan Ringel 

--
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: Setting up white balance on a t613 camera

2010-01-27 Thread leandro Costantino
Yes, as wrote in the code, it tied to whitebalance.
Also note that , as Jean wrote, there's are many different values
wrote on some registers, that we don't really know what they are used
for, so,
i would like to go for the most non intrusive option, since, some of
this whitebalance regs, have been adjusted time to time to meet other
t613 users requirment's, and maybe implementing the r/b balance would
be the way to go.

If you want, i can write it so you can test it, or if you prefeer you
can take a look at
http://linuxtv.org/hg/~jfrancois/gspca/file/21f2eeb240db/linux/drivers/media/video/gspca/sonixj.c
at how its done  as an example.

Since i only had this webcam for 1 week, i always relay on the some
group of users that are willing to test each change always.

Best Regadrs.
Costantino Leandro

On Wed, Jan 27, 2010 at 3:37 PM, Jean-Francois Moine  wrote:
> On Wed, 27 Jan 2010 15:17:53 -0200
> Nicolau Werneck  wrote:
>
>> Answering my own question, and also a question in the t613 source
>> code...
>>
>> Yes, the need for the "reg_w(gspca_dev, 0x2087);", 0x2088 and 0x2089
>> commands are definitely tied to the white balance. These three set up
>> the default values I found out. And (X << 8 + 87) sets up the red
>> channel parameter in general, and 88 is for green and 89 for blue.
>>
>> That means I can already just play with them and see what happens. My
>> personal problem is that I bought this new lens, and the image is way
>> too bright, and changing that seems to help. But I would like to offer
>> these as parameters the user can set using v4l2 programs. I can try
>> making that big change myself, but help from a more experienced
>> developer would be certainly much appreciated!...
>
> Hello Nicolau,
>
> The white balance is set in setwhitebalance(). Four registers are
> changed: 87, 88, 89 and 80.
>
> Looking at the traces I have, these 4 registers are loaded together only
> one time in an exchange at startup time. Then, the white balance
> control adjusts only blue and red values while reloading the same value
> for the green register (that's what is done for other webcams), and the
> register 80 is not touched. In the different traces, the register 80
> may be initialized to various values as 3c, ac or 38 and it is not
> touched later. I do not know what it is used for.
>
> I may also notice that the green value in the white balance exchanges
> may have an other value than the default 20. I do not know which is the
> associated control in the ms-win driver. If it is exposure, you are
> done. So, one trivial patch is:
>
> - add the exposure control with min: 0x10, max: 0x40, def: 0x20.
>
> - modify the whitebalance control with min: -16, max +16, def:0.
>
> - there is no function setexposure() because the exposure is the value
>  of green register. Both controls exposure and white balance call the
>  function setwhitebalance().
>
> - in the function setwhitebalance(), set the green value to the
>  exposure, the red value to (exposure + whitebalance) and blue value
>  to (exposure - whitebalance) and load only the registers 87, 88 and
>  89.
>
> An other way could be to implement the blue and red balances in the
> same scheme, and to remove the whitebalance.
>
> Cheers.
>
> --
> Ken ar c'hentañ |             ** Breizh ha Linux atav! **
> Jef             |               http://moinejf.free.fr/
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
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: Setting up white balance on a t613 camera

2010-01-27 Thread Jean-Francois Moine
On Wed, 27 Jan 2010 15:17:53 -0200
Nicolau Werneck  wrote:

> Answering my own question, and also a question in the t613 source
> code...
> 
> Yes, the need for the "reg_w(gspca_dev, 0x2087);", 0x2088 and 0x2089
> commands are definitely tied to the white balance. These three set up
> the default values I found out. And (X << 8 + 87) sets up the red
> channel parameter in general, and 88 is for green and 89 for blue.
> 
> That means I can already just play with them and see what happens. My
> personal problem is that I bought this new lens, and the image is way
> too bright, and changing that seems to help. But I would like to offer
> these as parameters the user can set using v4l2 programs. I can try
> making that big change myself, but help from a more experienced
> developer would be certainly much appreciated!...

Hello Nicolau,

The white balance is set in setwhitebalance(). Four registers are
changed: 87, 88, 89 and 80.

Looking at the traces I have, these 4 registers are loaded together only
one time in an exchange at startup time. Then, the white balance
control adjusts only blue and red values while reloading the same value
for the green register (that's what is done for other webcams), and the
register 80 is not touched. In the different traces, the register 80
may be initialized to various values as 3c, ac or 38 and it is not
touched later. I do not know what it is used for.

I may also notice that the green value in the white balance exchanges
may have an other value than the default 20. I do not know which is the
associated control in the ms-win driver. If it is exposure, you are
done. So, one trivial patch is:

- add the exposure control with min: 0x10, max: 0x40, def: 0x20.

- modify the whitebalance control with min: -16, max +16, def:0.

- there is no function setexposure() because the exposure is the value
  of green register. Both controls exposure and white balance call the
  function setwhitebalance().

- in the function setwhitebalance(), set the green value to the
  exposure, the red value to (exposure + whitebalance) and blue value
  to (exposure - whitebalance) and load only the registers 87, 88 and
  89.

An other way could be to implement the blue and red balances in the
same scheme, and to remove the whitebalance.

Cheers.

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


Re: [PATCH] soc_camera: match signedness of soc_camera_limit_side()

2010-01-27 Thread Guennadi Liakhovetski
On Wed, 27 Jan 2010, Németh Márton wrote:

> Guennadi Liakhovetski wrote:

[snip]

> > And these:
> > 
> > if (output_w > max(512U, input_w / 2)) {
> > if (output_h > max(384U, input_h / 2)) {
> > 
> > would now produce compiler warnings... Have you actually tried to compile 
> > your patch? You'll also have to change formats in dev_dbg() calls here...
> 
> Interesting to hear about compiler warnings. I don't get them if I apply the 
> patch
> on top of version 14064:31eaa9423f98 of http://linuxtv.org/hg/v4l-dvb/  . What
> is your compiler version?

Well, it's my built-in mental compiler, I haven't started versioning it 
yet;) Strange, that (your) compiler doesn't complain - max() does 
type-checking and now it's signed against unsigned, hm... In any case, 
that one is easy to fix - just remove the "U"s, but I'm wondering why the 
compiler didn't shout and whether there can be other similar mismatches...

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] soc_camera: match signedness of soc_camera_limit_side()

2010-01-27 Thread Németh Márton
Guennadi Liakhovetski wrote:
> On Sat, 23 Jan 2010, Németh Márton wrote:
> 
>> From: Márton Németh 
>>
>> The parameters of soc_camera_limit_side() are either a pointer to
>> a structure element from v4l2_rect, or constants. The structure elements
>> of the v4l2_rect are signed (see ) so do the computations
>> also with signed values.
>>
>> This will remove the following sparse warning (see "make C=1"):
>>  * incorrect type in argument 1 (different signedness)
>>expected unsigned int *start
>>got signed int *
> 
> Well, it is interesting, but insufficient. And, unfortunately, I don't 
> have a good (and easy) recipe for how to fix this properly.
> 
> The problem is, that in soc_camera_limit_side all tests and arithmetics 
> are performed with unsigned in mind, now, if you change them to signed, 
> think what happens, if some of them are negative. No, I don't know when 
> negative members of struct v4l2_rect make sense, having them signed 
> doesn't seem a very good idea to me. But they cannot be changed - that's a 
> part of the user-space API...
> 
> Casting all parameters inside that inline to unsigned would be way too 
> ugly. Maybe we could at least keep start_min, length_min, and length_max 
> unsigned, and only change start and length to signed, and only cast those 
> two inside the function. Then, if you grep through all the drivers, 
> there's only one location, where soc_camera_limit_side() is called with 
> the latter 3 parameters not constant - two calls in 
> sh_mobile_ceu_camera.c. So, to keep sparse happy, you'd have to cast 
> there. Ideally, you would also add checks there for negative values...

I'll have a look to see what can be done to handle the negative values properly.

>> Signed-off-by: Márton Németh 
>> ---
>> diff -r 2a50a0a1c951 linux/include/media/soc_camera.h
>> --- a/linux/include/media/soc_camera.h   Sat Jan 23 00:14:32 2010 -0200
>> +++ b/linux/include/media/soc_camera.h   Sat Jan 23 10:09:41 2010 +0100
>> @@ -264,9 +264,8 @@
>>  common_flags;
>>  }
>>
>> -static inline void soc_camera_limit_side(unsigned int *start,
>> -unsigned int *length, unsigned int start_min,
>> -unsigned int length_min, unsigned int length_max)
>> +static inline void soc_camera_limit_side(int *start, int *length,
>> +int start_min, int length_min, int length_max)
>>  {
>>  if (*length < length_min)
>>  *length = length_min;
>> diff -r 2a50a0a1c951 linux/drivers/media/video/rj54n1cb0c.c
>> --- a/linux/drivers/media/video/rj54n1cb0c.c Sat Jan 23 00:14:32 2010 -0200
>> +++ b/linux/drivers/media/video/rj54n1cb0c.c Sat Jan 23 10:09:41 2010 +0100
>> @@ -555,15 +555,15 @@
>>  return ret;
>>  }
>>
>> -static int rj54n1_sensor_scale(struct v4l2_subdev *sd, u32 *in_w, u32 *in_h,
>> -   u32 *out_w, u32 *out_h);
>> +static int rj54n1_sensor_scale(struct v4l2_subdev *sd, s32 *in_w, s32 *in_h,
>> +   s32 *out_w, s32 *out_h);
>>
>>  static int rj54n1_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a)
>>  {
>>  struct i2c_client *client = sd->priv;
>>  struct rj54n1 *rj54n1 = to_rj54n1(client);
>>  struct v4l2_rect *rect = &a->c;
>> -unsigned int dummy = 0, output_w, output_h,
>> +int dummy = 0, output_w, output_h,
>>  input_w = rect->width, input_h = rect->height;
>>  int ret;
> 
> And these:
> 
>   if (output_w > max(512U, input_w / 2)) {
>   if (output_h > max(384U, input_h / 2)) {
> 
> would now produce compiler warnings... Have you actually tried to compile 
> your patch? You'll also have to change formats in dev_dbg() calls here...

Interesting to hear about compiler warnings. I don't get them if I apply the 
patch
on top of version 14064:31eaa9423f98 of http://linuxtv.org/hg/v4l-dvb/  . What
is your compiler version?

I used the attached configuration. Maybe some other options has to be
turned on?

localhost:/usr/src/linuxtv.org/v4l-dvb$ patch -p1 
<../soc_camera_signedness.patch
patching file linux/include/media/soc_camera.h
patching file linux/drivers/media/video/rj54n1cb0c.c
localhost:/usr/src/linuxtv.org/v4l-dvb$ make C=1 2>&1 |tee result1.txt
make -C /usr/src/linuxtv.org/v4l-dvb/v4l
make[1]: Entering directory `/usr/src/linuxtv.org/v4l-dvb/v4l'
creating symbolic links...
make -C firmware prep
make[2]: Entering directory `/usr/src/linuxtv.org/v4l-dvb/v4l/firmware'
make[2]: Leaving directory `/usr/src/linuxtv.org/v4l-dvb/v4l/firmware'
make -C firmware
make[2]: Entering directory `/usr/src/linuxtv.org/v4l-dvb/v4l/firmware'
make[2]: Nothing to be done for `default'.
make[2]: Leaving directory `/usr/src/linuxtv.org/v4l-dvb/v4l/firmware'
Kernel build directory is /lib/modules/2.6.33-rc4/build
make -C /lib/modules/2.6.33-rc4/build SUBDIRS=/usr/src/linuxtv.org/v4l-dvb/v4l  
modules
make[2]: Entering directory `/usr/src/linuxtv.org/pinchartl/uvcvideo/v4l-dvb'
  CHECK   /usr/src/linuxtv.org/v4l-dvb/v4l/mt9m001.c
  CC [M]  /usr/src/l

Re: Setting up white balance on a t613 camera

2010-01-27 Thread Nicolau Werneck
Answering my own question, and also a question in the t613 source
code...

Yes, the need for the "reg_w(gspca_dev, 0x2087);", 0x2088 and 0x2089
commands are definitely tied to the white balance. These three set up
the default values I found out. And (X << 8 + 87) sets up the red
channel parameter in general, and 88 is for green and 89 for blue.

That means I can already just play with them and see what happens. My
personal problem is that I bought this new lens, and the image is way
too bright, and changing that seems to help. But I would like to offer
these as parameters the user can set using v4l2 programs. I can try
making that big change myself, but help from a more experienced
developer would be certainly much appreciated!...

   ++nicolau




On Wed, Jan 27, 2010 at 02:37:09PM -0200, Nicolau Werneck wrote:
> Hello again, people. I believe I have found in my log the commands
> that are setting up that white balance parameters. I am pasting an
> excerpt of the log at the end. (I changed the subject now that is
> seems this is actually the way I should follow)
> 
> It looks to me that in that SetupPacket vector the "88" encodes what
> channel to set. 87 for red, 88 for blue and 89 for green. The
> following value is the level, which is default to 0x20. 
> 
> The question now is how do I offer to set up that parameter in the
> driver? What function can I use to transmits a vector that way, so I
> can make a hacky test?
> 
> In other words: would it be possible or me to just cut and paste some
> code in the driver to implement that? Or will I be finally forced to
> actually learn what I am doing? :)
> 
> regards,
> 
>++nicolau

-- 
Nicolau Werneck   1AAB 4050 1999 BDFF 4862
http://www.lti.pcs.usp.br/~nwerneck   4A33 D2B5 648B 4789 0327
Linux user #460716

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


Re: [PATCH v2 1/2] radio: Add radio-timb

2010-01-27 Thread Hans Verkuil
On Wednesday 27 January 2010 17:22:08 Richard Röjfors wrote:
> This patch add supports for the radio system on the Intel Russellville board.
> 
> It's a In-Vehicle Infotainment board with a radio tuner and DSP.
> 
> This umbrella driver has the DSP and tuner as V4L2 subdevs and calls them
> when needed.
> 
> The RDS support is done by I/O memory accesses.
> 
> Signed-off-by: Richard Röjfors 
> ---
> diff --git a/drivers/media/radio/radio-timb.c 
> b/drivers/media/radio/radio-timb.c
> new file mode 100644
> index 000..276b105
> --- /dev/null
> +++ b/drivers/media/radio/radio-timb.c
> @@ -0,0 +1,469 @@
> +/*
> + * radio-timb.c Timberdale FPGA Radio driver
> + * Copyright (c) 2009 Intel Corporation
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
> + */
> +
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +#define DRIVER_NAME "timb-radio"
> +
> +#define RDS_BLOCK_SIZE 4
> +#define RDS_BUFFER_SIZE (RDS_BLOCK_SIZE * 100)
> +
> +struct timbradio {
> + struct mutexlock; /* for mutual exclusion */
> + void __iomem*membase;
> + struct timb_radio_platform_data pdata;
> + struct v4l2_subdev  *sd_tuner;
> + struct v4l2_subdev  *sd_dsp;
> + struct video_device *video_dev;
> + struct v4l2_device  v4l2_dev;
> + /* RDS related */
> + int open_count;
> + int rds_irq;
> + wait_queue_head_t read_queue;
> + unsigned char buffer[RDS_BUFFER_SIZE];
> + unsigned int rd_index;
> + unsigned int wr_index;
> +};
> +
> +
> +static int timbradio_vidioc_querycap(struct file *file, void  *priv,
> + struct v4l2_capability *v)
> +{
> + strlcpy(v->driver, DRIVER_NAME, sizeof(v->driver));
> + strlcpy(v->card, "Timberdale Radio", sizeof(v->card));
> + snprintf(v->bus_info, sizeof(v->bus_info), "platform:"DRIVER_NAME);
> + v->version = KERNEL_VERSION(0, 0, 1);
> + v->capabilities =
> + V4L2_CAP_TUNER | V4L2_CAP_RADIO | V4L2_CAP_RDS_CAPTURE;
> + return 0;
> +}
> +
> +static int timbradio_vidioc_g_tuner(struct file *file, void *priv,
> + struct v4l2_tuner *v)
> +{
> + struct timbradio *tr = video_drvdata(file);
> + return v4l2_subdev_call(tr->sd_tuner, tuner, g_tuner, v);
> +}
> +
> +static int timbradio_vidioc_s_tuner(struct file *file, void *priv,
> + struct v4l2_tuner *v)
> +{
> + struct timbradio *tr = video_drvdata(file);
> + return v4l2_subdev_call(tr->sd_tuner, tuner, s_tuner, v);
> +}
> +
> +static int timbradio_vidioc_g_input(struct file *filp, void *priv,
> + unsigned int *i)
> +{
> + *i = 0;
> + return 0;
> +}
> +
> +static int timbradio_vidioc_s_input(struct file *filp, void *priv,
> + unsigned int i)
> +{
> + return i ? -EINVAL : 0;
> +}
> +
> +static int timbradio_vidioc_g_audio(struct file *file, void *priv,
> + struct v4l2_audio *a)
> +{
> + a->index = 0;
> + strlcpy(a->name, "Radio", sizeof(a->name));
> + a->capability = V4L2_AUDCAP_STEREO;
> + return 0;
> +}
> +
> +
> +static int timbradio_vidioc_s_audio(struct file *file, void *priv,
> + struct v4l2_audio *a)
> +{
> + return a->index ? -EINVAL : 0;
> +}
> +
> +static int timbradio_vidioc_s_frequency(struct file *file, void *priv,
> + struct v4l2_frequency *f)
> +{
> + struct timbradio *tr = video_drvdata(file);
> + return v4l2_subdev_call(tr->sd_tuner, tuner, s_frequency, f);
> +}
> +
> +static int timbradio_vidioc_g_frequency(struct file *file, void *priv,
> + struct v4l2_frequency *f)
> +{
> + struct timbradio *tr = video_drvdata(file);
> + return v4l2_subdev_call(tr->sd_tuner, tuner, g_frequency, f);
> +}
> +
> +static int timbradio_vidioc_queryctrl(struct file *file, void *priv,
> + struct v4l2_queryctrl *qc)
> +{
> + struct timbradio *tr = video_drvdata(file);
> + return v4l2_subdev_call(tr->sd_dsp, core, queryctrl, qc);
> +}
> +
> +static int timbradio_vidioc_g_ctrl(struct file *file, void *priv,
> + struct v4l2_control *ctrl)
> +{
> + struct timbradio *tr = video_drvdata(file);
> + return v4l2_subdev_call(tr->sd_dsp, core, g_ctrl, ctrl);
> +}
> +
> +static int timbradio_vidioc_s_ctrl(struct file *file, void *priv,
> + struct v4l2_control *ctrl)
> +{
> + struct timbradio *tr = video_drvdata(file);
> + return v4l2_subdev_call(tr->sd

Re: [PATCH v2 2/2] radio: Add radio-timb to the Kconfig and Makefile

2010-01-27 Thread Hans Verkuil
On Wednesday 27 January 2010 17:22:10 Richard Röjfors wrote:
> This patch adds radio-timb to the Makefile and Kconfig.
> 
> Signed-off-by: Richard Röjfors 
> ---
> diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
> index 3f40f37..46fd8c4 100644
> --- a/drivers/media/radio/Kconfig
> +++ b/drivers/media/radio/Kconfig
> @@ -429,4 +429,14 @@ config RADIO_TEF6862
> To compile this driver as a module, choose M here: the
> module will be called TEF6862.
> 
> +config RADIO_TIMBERDALE
> + tristate "Enable the Timberdale radio driver"
> + depends on MFD_TIMBERDALE && VIDEO_V4L2 && HAS_IOMEM

I think you need a dependency on I2C as well.

Regards,

Hans

> + select RADIO_TEF6862
> + select RADIO_SAA7706H
> + ---help---
> +   This is a kind of umbrella driver for the Radio Tuner and DSP
> +   found behind the Timberdale FPGA on the Russellville board.
> +   Enable this driver will automatically select the DSP and tuner.
> +
>  endif # RADIO_ADAPTERS
> diff --git a/drivers/media/radio/Makefile b/drivers/media/radio/Makefile
> index 01922ad..8973850 100644
> --- a/drivers/media/radio/Makefile
> +++ b/drivers/media/radio/Makefile
> @@ -24,5 +24,6 @@ obj-$(CONFIG_RADIO_SI470X) += si470x/
>  obj-$(CONFIG_USB_MR800) += radio-mr800.o
>  obj-$(CONFIG_RADIO_TEA5764) += radio-tea5764.o
>  obj-$(CONFIG_RADIO_TEF6862) += tef6862.o
> +obj-$(CONFIG_RADIO_TIMBERDALE) += radio-timb.o
> 
>  EXTRA_CFLAGS += -Isound
> 
> 

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


Re: [PATCH v2 2/2] radio: Add radio-timb to the Kconfig and Makefile

2010-01-27 Thread Randy Dunlap
On Wed, 27 Jan 2010 17:22:10 +0100 Richard Röjfors wrote:

> This patch adds radio-timb to the Makefile and Kconfig.
> 
> Signed-off-by: Richard Röjfors 
> ---
> diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
> index 3f40f37..46fd8c4 100644
> --- a/drivers/media/radio/Kconfig
> +++ b/drivers/media/radio/Kconfig
> @@ -429,4 +429,14 @@ config RADIO_TEF6862
> To compile this driver as a module, choose M here: the
> module will be called TEF6862.
> 
> +config RADIO_TIMBERDALE
> + tristate "Enable the Timberdale radio driver"
> + depends on MFD_TIMBERDALE && VIDEO_V4L2 && HAS_IOMEM
> + select RADIO_TEF6862
> + select RADIO_SAA7706H
> + ---help---
> +   This is a kind of umbrella driver for the Radio Tuner and DSP
> +   found behind the Timberdale FPGA on the Russellville board.
> +   Enable this driver will automatically select the DSP and tuner.

  Enabling

> +
>  endif # RADIO_ADAPTERS
> diff --git a/drivers/media/radio/Makefile b/drivers/media/radio/Makefile
> index 01922ad..8973850 100644
> --- a/drivers/media/radio/Makefile
> +++ b/drivers/media/radio/Makefile
> @@ -24,5 +24,6 @@ obj-$(CONFIG_RADIO_SI470X) += si470x/
>  obj-$(CONFIG_USB_MR800) += radio-mr800.o
>  obj-$(CONFIG_RADIO_TEA5764) += radio-tea5764.o
>  obj-$(CONFIG_RADIO_TEF6862) += tef6862.o
> +obj-$(CONFIG_RADIO_TIMBERDALE) += radio-timb.o
> 
>  EXTRA_CFLAGS += -Isound
> 
> --


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


Setting up white balance on a t613 camera

2010-01-27 Thread Nicolau Werneck
Hello again, people. I believe I have found in my log the commands
that are setting up that white balance parameters. I am pasting an
excerpt of the log at the end. (I changed the subject now that is
seems this is actually the way I should follow)

It looks to me that in that SetupPacket vector the "88" encodes what
channel to set. 87 for red, 88 for blue and 89 for green. The
following value is the level, which is default to 0x20. 

The question now is how do I offer to set up that parameter in the
driver? What function can I use to transmits a vector that way, so I
can make a hacky test?

In other words: would it be possible or me to just cut and paste some
code in the driver to implement that? Or will I be finally forced to
actually learn what I am doing? :)

regards,

   ++nicolau


(...)
[61857 ms]  <<<  URB 393 coming back  <<< 
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle   = 89fecb10
  TransferFlags= 000a (USBD_TRANSFER_DIRECTION_OUT,
  USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 
  TransferBuffer   = 
  TransferBufferMDL= 
  UrbLink  = 
  SetupPacket  =
: 40 00 00 00 88 1c 00 00
[61910 ms] UsbSnoop - DispatchAny(bac00610) :
IRP_MJ_INTERNAL_DEVICE_CONTROL
[61910 ms] UsbSnoop - MyDispatchInternalIOCTL(bac01e80) :
fdo=89cf58b0, Irp=89473e48, IRQL=0
[61910 ms]  >>>  URB 394 going down  >>> 
-- URB_FUNCTION_VENDOR_DEVICE:
  TransferFlags  =  (USBD_TRANSFER_DIRECTION_OUT,
  ~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 
  TransferBuffer   = 
  TransferBufferMDL= 

no data supplied
  UrbLink = 
  RequestTypeReservedBits = 
  Request = 
  Value   = 
  Index   = 1e88
[61913 ms] UsbSnoop - MyInternalIOCTLCompletion(bac01db0) :
  fido=, Irp=89473e48, Context=898d8fe8, IRQL=2
[61913 ms]  <<<  URB 394 coming back  <<< 
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle   = 89fecb10
  TransferFlags= 000a (USBD_TRANSFER_DIRECTION_OUT,
  USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 
  TransferBuffer   = 
  TransferBufferMDL= 
  UrbLink  = 
  SetupPacket  =
: 40 00 00 00 88 1e 00 00
[61950 ms] UsbSnoop - DispatchAny(bac00610) :
  IRP_MJ_INTERNAL_DEVICE_CONTROL
[61950 ms] UsbSnoop - MyDispatchInternalIOCTL(bac01e80) :
  fdo=89cf58b0, Irp=89f97008, IRQL=0
[61950 ms]  >>>  URB 395 going down  >>> 
-- URB_FUNCTION_VENDOR_DEVICE:
  TransferFlags  =  (USBD_TRANSFER_DIRECTION_OUT,
  ~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 
  TransferBuffer   = 
  TransferBufferMDL= 

no data supplied
  UrbLink = 
  RequestTypeReservedBits = 
  Request = 
  Value   = 
  Index   = 2088
(...)




On Tue, Jan 26, 2010 at 07:37:26PM +0100, Jean-Francois Moine wrote:
> On Tue, 26 Jan 2010 15:00:53 -0200
> Nicolau Werneck  wrote:
> 
> > Hello. I have this very cheap webcam that I sent a patch to support on
> > gspca the other day. The specific driver is the t613.
> > 
> > I changed the lens of this camera, and now my images are all too
> > bright, what I believe is due to the much larger aperture of this new
> > lens. So I would like to try setting up a smaller exposure time on the
> > camera (I would like to do that for other reasons too).
> > 
> > The problem is there's no "exposure" option to be set when I call
> > programs such as v4lctl. Does that mean there is definitely no way for
> > me to control the exposure time? The hardware itself was not designed
> > to allow me do that? Or is there still a chance I can create some C
> > program that might do it, for example?
>   [snip]
> 
> Hello Nicolau,
> 
> There are brightness, contrast, colors, autogain and some other video
> controls for the t613 webcams. You must use a v4l2 compliant program to
> change them, as vlc or v4l2ucp (but not cheese).
> 
> Regards.
> 
> -- 
> Ken ar c'hentañ   | ** Breizh ha Linux atav! **
> Jef   |   http://moinejf.free.fr/
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Nicolau Werneck   1AAB 4050 1999 BDFF 4862
http://www.lti.pcs.usp.br/~nwerneck   4A33 D2B5 648B 4789 0327
Linux user #460716

--
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 v2 2/2] radio: Add radio-timb to the Kconfig and Makefile

2010-01-27 Thread Richard Röjfors
This patch adds radio-timb to the Makefile and Kconfig.

Signed-off-by: Richard Röjfors 
---
diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
index 3f40f37..46fd8c4 100644
--- a/drivers/media/radio/Kconfig
+++ b/drivers/media/radio/Kconfig
@@ -429,4 +429,14 @@ config RADIO_TEF6862
  To compile this driver as a module, choose M here: the
  module will be called TEF6862.

+config RADIO_TIMBERDALE
+   tristate "Enable the Timberdale radio driver"
+   depends on MFD_TIMBERDALE && VIDEO_V4L2 && HAS_IOMEM
+   select RADIO_TEF6862
+   select RADIO_SAA7706H
+   ---help---
+ This is a kind of umbrella driver for the Radio Tuner and DSP
+ found behind the Timberdale FPGA on the Russellville board.
+ Enable this driver will automatically select the DSP and tuner.
+
 endif # RADIO_ADAPTERS
diff --git a/drivers/media/radio/Makefile b/drivers/media/radio/Makefile
index 01922ad..8973850 100644
--- a/drivers/media/radio/Makefile
+++ b/drivers/media/radio/Makefile
@@ -24,5 +24,6 @@ obj-$(CONFIG_RADIO_SI470X) += si470x/
 obj-$(CONFIG_USB_MR800) += radio-mr800.o
 obj-$(CONFIG_RADIO_TEA5764) += radio-tea5764.o
 obj-$(CONFIG_RADIO_TEF6862) += tef6862.o
+obj-$(CONFIG_RADIO_TIMBERDALE) += radio-timb.o

 EXTRA_CFLAGS += -Isound

--
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 v2 1/2] radio: Add radio-timb

2010-01-27 Thread Richard Röjfors
This patch add supports for the radio system on the Intel Russellville board.

It's a In-Vehicle Infotainment board with a radio tuner and DSP.

This umbrella driver has the DSP and tuner as V4L2 subdevs and calls them
when needed.

The RDS support is done by I/O memory accesses.

Signed-off-by: Richard Röjfors 
---
diff --git a/drivers/media/radio/radio-timb.c b/drivers/media/radio/radio-timb.c
new file mode 100644
index 000..276b105
--- /dev/null
+++ b/drivers/media/radio/radio-timb.c
@@ -0,0 +1,469 @@
+/*
+ * radio-timb.c Timberdale FPGA Radio driver
+ * Copyright (c) 2009 Intel Corporation
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#define DRIVER_NAME "timb-radio"
+
+#define RDS_BLOCK_SIZE 4
+#define RDS_BUFFER_SIZE (RDS_BLOCK_SIZE * 100)
+
+struct timbradio {
+   struct mutexlock; /* for mutual exclusion */
+   void __iomem*membase;
+   struct timb_radio_platform_data pdata;
+   struct v4l2_subdev  *sd_tuner;
+   struct v4l2_subdev  *sd_dsp;
+   struct video_device *video_dev;
+   struct v4l2_device  v4l2_dev;
+   /* RDS related */
+   int open_count;
+   int rds_irq;
+   wait_queue_head_t read_queue;
+   unsigned char buffer[RDS_BUFFER_SIZE];
+   unsigned int rd_index;
+   unsigned int wr_index;
+};
+
+
+static int timbradio_vidioc_querycap(struct file *file, void  *priv,
+   struct v4l2_capability *v)
+{
+   strlcpy(v->driver, DRIVER_NAME, sizeof(v->driver));
+   strlcpy(v->card, "Timberdale Radio", sizeof(v->card));
+   snprintf(v->bus_info, sizeof(v->bus_info), "platform:"DRIVER_NAME);
+   v->version = KERNEL_VERSION(0, 0, 1);
+   v->capabilities =
+   V4L2_CAP_TUNER | V4L2_CAP_RADIO | V4L2_CAP_RDS_CAPTURE;
+   return 0;
+}
+
+static int timbradio_vidioc_g_tuner(struct file *file, void *priv,
+   struct v4l2_tuner *v)
+{
+   struct timbradio *tr = video_drvdata(file);
+   return v4l2_subdev_call(tr->sd_tuner, tuner, g_tuner, v);
+}
+
+static int timbradio_vidioc_s_tuner(struct file *file, void *priv,
+   struct v4l2_tuner *v)
+{
+   struct timbradio *tr = video_drvdata(file);
+   return v4l2_subdev_call(tr->sd_tuner, tuner, s_tuner, v);
+}
+
+static int timbradio_vidioc_g_input(struct file *filp, void *priv,
+   unsigned int *i)
+{
+   *i = 0;
+   return 0;
+}
+
+static int timbradio_vidioc_s_input(struct file *filp, void *priv,
+   unsigned int i)
+{
+   return i ? -EINVAL : 0;
+}
+
+static int timbradio_vidioc_g_audio(struct file *file, void *priv,
+   struct v4l2_audio *a)
+{
+   a->index = 0;
+   strlcpy(a->name, "Radio", sizeof(a->name));
+   a->capability = V4L2_AUDCAP_STEREO;
+   return 0;
+}
+
+
+static int timbradio_vidioc_s_audio(struct file *file, void *priv,
+   struct v4l2_audio *a)
+{
+   return a->index ? -EINVAL : 0;
+}
+
+static int timbradio_vidioc_s_frequency(struct file *file, void *priv,
+   struct v4l2_frequency *f)
+{
+   struct timbradio *tr = video_drvdata(file);
+   return v4l2_subdev_call(tr->sd_tuner, tuner, s_frequency, f);
+}
+
+static int timbradio_vidioc_g_frequency(struct file *file, void *priv,
+   struct v4l2_frequency *f)
+{
+   struct timbradio *tr = video_drvdata(file);
+   return v4l2_subdev_call(tr->sd_tuner, tuner, g_frequency, f);
+}
+
+static int timbradio_vidioc_queryctrl(struct file *file, void *priv,
+   struct v4l2_queryctrl *qc)
+{
+   struct timbradio *tr = video_drvdata(file);
+   return v4l2_subdev_call(tr->sd_dsp, core, queryctrl, qc);
+}
+
+static int timbradio_vidioc_g_ctrl(struct file *file, void *priv,
+   struct v4l2_control *ctrl)
+{
+   struct timbradio *tr = video_drvdata(file);
+   return v4l2_subdev_call(tr->sd_dsp, core, g_ctrl, ctrl);
+}
+
+static int timbradio_vidioc_s_ctrl(struct file *file, void *priv,
+   struct v4l2_control *ctrl)
+{
+   struct timbradio *tr = video_drvdata(file);
+   return v4l2_subdev_call(tr->sd_dsp, core, s_ctrl, ctrl);
+}
+
+static const struct v4l2_ioctl_ops timbradio_ioctl_ops = {
+   .vidioc_querycap= timbradio_vidioc_querycap,
+   .vidioc_g_tuner = timbradio_vidioc_g_tuner,
+   .vidioc_s_tuner = timbradio_vidioc_

[PATCH v2 0/2] radio: Add radio-timb

2010-01-27 Thread Richard Röjfors
On the intel russellville board there is a radio DSP, radio tuner and a RDS 
block.

This umbrella driver uses two subdevs (DSP and tuner), and reads RDS data.

Updated after feedback from Hans Verkuil. Thanks Hans!

Patch1:
The actual code
Patch2:
Add the radio-timb to Kconfig and Makefile

--Richard

--
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] soc_camera: match signedness of soc_camera_limit_side()

2010-01-27 Thread Guennadi Liakhovetski
On Sat, 23 Jan 2010, Németh Márton wrote:

> From: Márton Németh 
> 
> The parameters of soc_camera_limit_side() are either a pointer to
> a structure element from v4l2_rect, or constants. The structure elements
> of the v4l2_rect are signed (see ) so do the computations
> also with signed values.
> 
> This will remove the following sparse warning (see "make C=1"):
>  * incorrect type in argument 1 (different signedness)
>expected unsigned int *start
>got signed int *

Well, it is interesting, but insufficient. And, unfortunately, I don't 
have a good (and easy) recipe for how to fix this properly.

The problem is, that in soc_camera_limit_side all tests and arithmetics 
are performed with unsigned in mind, now, if you change them to signed, 
think what happens, if some of them are negative. No, I don't know when 
negative members of struct v4l2_rect make sense, having them signed 
doesn't seem a very good idea to me. But they cannot be changed - that's a 
part of the user-space API...

Casting all parameters inside that inline to unsigned would be way too 
ugly. Maybe we could at least keep start_min, length_min, and length_max 
unsigned, and only change start and length to signed, and only cast those 
two inside the function. Then, if you grep through all the drivers, 
there's only one location, where soc_camera_limit_side() is called with 
the latter 3 parameters not constant - two calls in 
sh_mobile_ceu_camera.c. So, to keep sparse happy, you'd have to cast 
there. Ideally, you would also add checks there for negative values...

> 
> Signed-off-by: Márton Németh 
> ---
> diff -r 2a50a0a1c951 linux/include/media/soc_camera.h
> --- a/linux/include/media/soc_camera.hSat Jan 23 00:14:32 2010 -0200
> +++ b/linux/include/media/soc_camera.hSat Jan 23 10:09:41 2010 +0100
> @@ -264,9 +264,8 @@
>   common_flags;
>  }
> 
> -static inline void soc_camera_limit_side(unsigned int *start,
> - unsigned int *length, unsigned int start_min,
> - unsigned int length_min, unsigned int length_max)
> +static inline void soc_camera_limit_side(int *start, int *length,
> + int start_min, int length_min, int length_max)
>  {
>   if (*length < length_min)
>   *length = length_min;
> diff -r 2a50a0a1c951 linux/drivers/media/video/rj54n1cb0c.c
> --- a/linux/drivers/media/video/rj54n1cb0c.c  Sat Jan 23 00:14:32 2010 -0200
> +++ b/linux/drivers/media/video/rj54n1cb0c.c  Sat Jan 23 10:09:41 2010 +0100
> @@ -555,15 +555,15 @@
>   return ret;
>  }
> 
> -static int rj54n1_sensor_scale(struct v4l2_subdev *sd, u32 *in_w, u32 *in_h,
> -u32 *out_w, u32 *out_h);
> +static int rj54n1_sensor_scale(struct v4l2_subdev *sd, s32 *in_w, s32 *in_h,
> +s32 *out_w, s32 *out_h);
> 
>  static int rj54n1_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a)
>  {
>   struct i2c_client *client = sd->priv;
>   struct rj54n1 *rj54n1 = to_rj54n1(client);
>   struct v4l2_rect *rect = &a->c;
> - unsigned int dummy = 0, output_w, output_h,
> + int dummy = 0, output_w, output_h,
>   input_w = rect->width, input_h = rect->height;
>   int ret;

And these:

if (output_w > max(512U, input_w / 2)) {
if (output_h > max(384U, input_h / 2)) {

would now produce compiler warnings... Have you actually tried to compile 
your patch? You'll also have to change formats in dev_dbg() calls here...

> 
> @@ -638,8 +638,8 @@
>   * the output one, updates the window sizes and returns an error or the 
> resize
>   * coefficient on success. Note: we only use the "Fixed Scaling" on this 
> camera.
>   */
> -static int rj54n1_sensor_scale(struct v4l2_subdev *sd, u32 *in_w, u32 *in_h,
> -u32 *out_w, u32 *out_h)
> +static int rj54n1_sensor_scale(struct v4l2_subdev *sd, s32 *in_w, s32 *in_h,
> +s32 *out_w, s32 *out_h)
>  {
>   struct i2c_client *client = sd->priv;
>   struct rj54n1 *rj54n1 = to_rj54n1(client);
> @@ -1017,7 +1017,7 @@
>   struct i2c_client *client = sd->priv;
>   struct rj54n1 *rj54n1 = to_rj54n1(client);
>   const struct rj54n1_datafmt *fmt;
> - unsigned int output_w, output_h, max_w, max_h,
> + int output_w, output_h, max_w, max_h,
>   input_w = rj54n1->rect.width, input_h = rj54n1->rect.height;
>   int ret;

and here.

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/2] radio: Add radio-timb

2010-01-27 Thread Richard Röjfors
Hans Verkuil wrote:
>> The first time we run we could definitely do a 4l2_i2c_new_subdev*, but what 
>> if I rmmod the driver
>> and insmod it again? When we do the do an open, then v4l2_i2c_new_subdev* 
>> would fail because the
>> device is only on the bus and probed. So I would have to look for it anyway. 
>> Or am I wrong? I found
>> this like the only generic way(?)
> 
> Not sure I understand you. When you call v4l2_device_unregister any registered
> i2c devices will be automatically unloaded from the i2c bus. So when you do a
> new modprobe, then it is as if you did it for the first time.
> 
> This should work. If not, then let me know and we can look at it.

Thanks for the explanation! It should work, I will update accordingly.

> 
>>> Is there a reason why you want to load them only on first use? It is 
>>> customary
>>> to load them when this driver is loaded. Exceptions to that may be if the 
>>> i2c
>>> device needs to load a firmware: this can be slow over i2c and so should be
>>> postponed until the i2c driver is needed for the first time.
>> The main reason is actually that this is a platform device which might come 
>> available before the I2C
>> bus in the system. So we postpone the use of the bus until needed, because 
>> we know for sure it's
>> available at that point.
> 
> The i2c busses are always initialized first. That's a change that went in a 
> few
> kernel releases ago.

Ok, in this case the I2C bus sits on top of a MFD device which might be 
installed late to reduce
bootup time.

Bootup time is actually also a reason to keep this code in open rather than in 
probe.


--Richard

--
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/2, RFC] gspca: add input support for interrupt endpoints

2010-01-27 Thread Hans de Goede

Hi,

On 01/27/2010 07:34 AM, Németh Márton wrote:

Hello Jean-Francois,

do you have any comments or suggestions about this patch?



I've been playing around a bit with the latest incarnation
of this patch (with the resubmit issue fixed), and I can report
that it works very well. Once this is merged I've got patches
ready to add button support to pac207, pac7311 and zc3xx cameras
and more will follow as time permits.

Regards,

Hans


Regards,

Márton Németh

Hans de Goede wrote:

Hi,

Looks good to me now.

Regards,

Hans

On 01/18/2010 09:01 PM, Németh Márton wrote:

From: Márton Németh

Add support functions for interrupt endpoint based input handling.

Signed-off-by: Márton Németh
---
diff -r 875c200a19dc linux/drivers/media/video/gspca/gspca.c
--- a/linux/drivers/media/video/gspca/gspca.c   Sun Jan 17 07:58:51 2010 +0100
+++ b/linux/drivers/media/video/gspca/gspca.c   Mon Jan 18 20:43:55 2010 +0100
@@ -3,6 +3,9 @@
*
* Copyright (C) 2008-2009 Jean-Francois Moine (http://moinejf.free.fr)
*
+ * Camera button input handling by Márton Németh
+ * Copyright (C) 2009-2010 Márton Németh
+ *
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
@@ -41,6 +44,9 @@

   #include "gspca.h"

+#include
+#include
+
   /* global values */
   #define DEF_NURBS 3  /* default number of URBs */
   #if DEF_NURBS>   MAX_NURBS
@@ -112,6 +118,186 @@
.close  = gspca_vm_close,
   };

+/*
+ * Input and interrupt endpoint handling functions
+ */
+#ifdef CONFIG_INPUT
+#if LINUX_VERSION_CODE<   KERNEL_VERSION(2, 6, 19)
+static void int_irq(struct urb *urb, struct pt_regs *regs)
+#else
+static void int_irq(struct urb *urb)
+#endif
+{
+   struct gspca_dev *gspca_dev = (struct gspca_dev *) urb->context;
+   int ret;
+
+   ret = urb->status;
+   switch (ret) {
+   case 0:
+   if (gspca_dev->sd_desc->int_pkt_scan(gspca_dev,
+   urb->transfer_buffer, urb->actual_length)<   0) {
+   PDEBUG(D_ERR, "Unknown packet received");
+   }
+   break;
+
+   case -ENOENT:
+   case -ECONNRESET:
+   case -ENODEV:
+   case -ESHUTDOWN:
+   /* Stop is requested either by software or hardware is gone,
+* keep the ret value non-zero and don't resubmit later.
+*/
+   break;
+
+   default:
+   PDEBUG(D_ERR, "URB error %i, resubmitting", urb->status);
+   urb->status = 0;
+   ret = 0;
+   }
+
+   if (ret == 0) {
+   ret = usb_submit_urb(urb, GFP_ATOMIC);
+   if (ret<   0)
+   PDEBUG(D_ERR, "Resubmit URB failed with error %i", ret);
+   }
+}
+
+static int gspca_input_connect(struct gspca_dev *dev)
+{
+   struct input_dev *input_dev;
+   int err = 0;
+
+   dev->input_dev = NULL;
+   if (dev->sd_desc->int_pkt_scan)  {
+   input_dev = input_allocate_device();
+   if (!input_dev)
+   return -ENOMEM;
+
+   usb_make_path(dev->dev, dev->phys, sizeof(dev->phys));
+   strlcat(dev->phys, "/input0", sizeof(dev->phys));
+
+   input_dev->name = dev->sd_desc->name;
+   input_dev->phys = dev->phys;
+
+   usb_to_input_id(dev->dev,&input_dev->id);
+
+   input_dev->evbit[0] = BIT_MASK(EV_KEY);
+   input_dev->keybit[BIT_WORD(KEY_CAMERA)] = BIT_MASK(KEY_CAMERA);
+   input_dev->dev.parent =&dev->dev->dev;
+
+   err = input_register_device(input_dev);
+   if (err) {
+   PDEBUG(D_ERR, "Input device registration failed "
+   "with error %i", err);
+   input_dev->dev.parent = NULL;
+   input_free_device(input_dev);
+   } else {
+   dev->input_dev = input_dev;
+   }
+   } else
+   err = -EINVAL;
+
+   return err;
+}
+
+static int alloc_and_submit_int_urb(struct gspca_dev *gspca_dev,
+ struct usb_endpoint_descriptor *ep)
+{
+   unsigned int buffer_len;
+   int interval;
+   struct urb *urb;
+   struct usb_device *dev;
+   void *buffer = NULL;
+   int ret = -EINVAL;
+
+   buffer_len = ep->wMaxPacketSize;
+   interval = ep->bInterval;
+   PDEBUG(D_PROBE, "found int in endpoint: 0x%x, "
+   "buffer_len=%u, interval=%u",
+   ep->bEndpointAddress, buffer_len, interval);
+
+   dev = gspca_dev->dev;
+
+   urb = usb_alloc_urb(0, GFP_KERNEL);
+   if (!urb) {
+   ret = -ENOMEM;
+   goto error;
+   }
+
+   buffer = usb_buffer_alloc(dev, ep->wMaxPacketSize,
+  

Re: Setting up the exposure time of a webcam

2010-01-27 Thread leandro Costantino
HI Nicolau
remember to send a SOB if the patch is working, and any change let me
know so i can test with others t613 users.
Best Regards

On Tue, Jan 26, 2010 at 3:37 PM, Jean-Francois Moine  wrote:
> On Tue, 26 Jan 2010 15:00:53 -0200
> Nicolau Werneck  wrote:
>
>> Hello. I have this very cheap webcam that I sent a patch to support on
>> gspca the other day. The specific driver is the t613.
>>
>> I changed the lens of this camera, and now my images are all too
>> bright, what I believe is due to the much larger aperture of this new
>> lens. So I would like to try setting up a smaller exposure time on the
>> camera (I would like to do that for other reasons too).
>>
>> The problem is there's no "exposure" option to be set when I call
>> programs such as v4lctl. Does that mean there is definitely no way for
>> me to control the exposure time? The hardware itself was not designed
>> to allow me do that? Or is there still a chance I can create some C
>> program that might do it, for example?
>        [snip]
>
> Hello Nicolau,
>
> There are brightness, contrast, colors, autogain and some other video
> controls for the t613 webcams. You must use a v4l2 compliant program to
> change them, as vlc or v4l2ucp (but not cheese).
>
> Regards.
>
> --
> Ken ar c'hentañ |             ** Breizh ha Linux atav! **
> Jef             |               http://moinejf.free.fr/
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
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/2] radio: Add radio-timb

2010-01-27 Thread Hans Verkuil
On Friday 22 January 2010 20:36:32 Richard Röjfors wrote:
> Hans Verkuil wrote:
> > On Friday 22 January 2010 13:38:28 Richard Röjfors wrote:
> >> This patch add supports for the radio system on the Intel Russellville 
> >> board.
> >>
> >> It's a In-Vehicle Infotainment board with a radio tuner and DSP.
> >>
> >> This umbrella driver has the DSP and tuner as V4L2 subdevs and calls them
> >> when needed.
> >>
> >> The RDS support is done by I/O memory accesses.
> > 
> > I gather from this source that you weren't aware of the RDS interface
> > specification:
> > 
> > http://www.linuxtv.org/downloads/v4l-dvb-apis/ch04s11.html
> > 
> > Please use the V4L2_CAP_RDS_CAPTURE capability in querycap and use the
> > struct v4l2_rds_data when reading the RDS data. Let us know if you run into
> > problems doing this. This API was only formalized in 2.6.32 (although based
> > on previous implementations), so it is pretty recent.
> 
> Thanks, I'll look into this. I like the idea of harmonising the RDS API. The 
> driver is actually
> older than 2.6.32 so I wasn't aware of it.
> 
> > 
> > Some more comments below.
> > 
> >> Signed-off-by: Richard Röjfors 
> >> ---
> >> diff --git a/drivers/media/radio/radio-timb.c 
> >> b/drivers/media/radio/radio-timb.c
> >> new file mode 100644
> >> index 000..3dbe9ad
> >> --- /dev/null
> >> +++ b/drivers/media/radio/radio-timb.c
> >> @@ -0,0 +1,543 @@
> >> +/*
> >> + * radio-timb.c Timberdale FPGA Radio driver
> >> + * Copyright (c) 2009 Intel Corporation
> >> + *
> >> + * This program is free software; you can redistribute it and/or modify
> >> + * it under the terms of the GNU General Public License version 2 as
> >> + * published by the Free Software Foundation.
> >> + *
> >> + * This program is distributed in the hope that it will be useful,
> >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> >> + * GNU General Public License for more details.
> >> + *
> >> + * You should have received a copy of the GNU General Public License
> >> + * along with this program; if not, write to the Free Software
> >> + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
> >> + */
> >> +
> >> +#include 
> >> +#include 
> >> +#include 
> >> +#include 
> >> +#include 
> >> +#include 
> >> +#include 
> >> +#include 
> >> +#include 
> >> +#include 
> >> +
> >> +#define DRIVER_NAME "timb-radio"
> >> +
> >> +#define RDS_BLOCK_SIZE 4
> >> +#define RDS_BUFFER_SIZE (RDS_BLOCK_SIZE * 100)
> >> +
> >> +struct timbradio {
> >> +  struct mutexlock; /* for mutual exclusion */
> >> +  void __iomem*membase;
> >> +  struct timb_radio_platform_data pdata;
> >> +  struct v4l2_subdev  *sd_tuner;
> >> +  struct module   *tuner_owner;
> >> +  struct v4l2_subdev  *sd_dsp;
> >> +  struct module   *dsp_owner;
> >> +  struct video_device *video_dev;
> >> +  /* RDS related */
> >> +  int open_count;
> >> +  int rds_irq;
> >> +  wait_queue_head_t read_queue;
> >> +  unsigned char buffer[RDS_BUFFER_SIZE];
> >> +  unsigned int rd_index;
> >> +  unsigned int wr_index;
> >> +};
> >> +
> >> +
> >> +static int timbradio_vidioc_querycap(struct file *file, void  *priv,
> >> +  struct v4l2_capability *v)
> >> +{
> >> +  strlcpy(v->driver, DRIVER_NAME, sizeof(v->driver));
> >> +  strlcpy(v->card, "Timberdale Radio", sizeof(v->card));
> >> +  snprintf(v->bus_info, sizeof(v->bus_info), "platform:"DRIVER_NAME);
> >> +  v->version = KERNEL_VERSION(0, 0, 1);
> >> +  v->capabilities = V4L2_CAP_TUNER | V4L2_CAP_RADIO;
> >> +  return 0;
> >> +}
> >> +
> >> +static int timbradio_vidioc_g_tuner(struct file *file, void *priv,
> >> + struct v4l2_tuner *v)
> >> +{
> >> +  struct timbradio *tr = video_drvdata(file);
> >> +  int ret;
> >> +
> >> +  mutex_lock(&tr->lock);
> >> +  ret = v4l2_subdev_call(tr->sd_tuner, tuner, g_tuner, v);
> >> +  mutex_unlock(&tr->lock);
> > 
> > I'm not sure whether it is appropriate (or even needed!) to do the locking 
> > here.
> > Perhaps it is better to do the locking in the tuner driver? This is just an
> > idea. I do not have the datasheets, so I don't know what is reasonable here.
> > 
> >> +
> >> +  return ret;
> >> +}
> >> +
> >> +static int timbradio_vidioc_s_tuner(struct file *file, void *priv,
> >> + struct v4l2_tuner *v)
> >> +{
> >> +  struct timbradio *tr = video_drvdata(file);
> >> +  int ret;
> >> +
> >> +  mutex_lock(&tr->lock);
> >> +  ret = v4l2_subdev_call(tr->sd_tuner, tuner, s_tuner, v);
> >> +  mutex_unlock(&tr->lock);
> >> +
> >> +  return ret;
> >> +}
> >> +
> >> +static int timbradio_vidioc_g_input(struct file *filp, void *priv,
> >> +  unsigned int *i)
> >> +{
> >> +  *i = 0;
> >> +  return 0;
> >> +}
> >> +
> >> +static int timbradio_vidioc_s_input(struct file *filp, void *priv,
> >> +  unsigned int i)
> >> +{
> >> +  return i ? -EINVAL : 0;
> >> +}
> >> +
> >> +static int timbrad

RE: help: Leadtek DTV2000 DS

2010-01-27 Thread Gavin Ramm


> 
>> Date: Wed, 27 Jan 2010 02:21:32 +0200
>> From: cr...@iki.fi
>> To: gavin_r...@hotmail.com
>> CC: linux-media@vger.kernel.org
>> Subject: Re: help: Leadtek DTV2000 DS
>>
>> Terve Gavin,
>>
>> On 01/25/2010 01:44 PM, Gavin Ramm wrote:
>>> Tried the current build of v4l-dvb (as of 25/01/2010) for a Leadtek 
>>> DTV2000 DS.
>>> product site : 
>>> http://www.leadtek.com/eng/tv_tuner/overview.asp?lineid=6&pronameid=530&check=f
>>>
>>> The chipset are AF9015 + AF9013 and the tuner is TDA18211..
>>> Im running it on mythdora 10.21 *fedora 10* i've had no luck with this.
>>>
>>> Any help would be great.. im willing to test..
>>
>> I added support for that device, could you test now?
>> http://linuxtv.org/hg/~anttip/af9015/
>>
>>>
>>>
>>> I created a channels.conf via the output tried in xine and it worked.. 
>>> tried in mythtv and it picked a few up only by importing the channels.conf. 
>>> The auto scan in mythtv didn't work (which is out of scope i'd say)
>>> _
>>
>>
>> The card is up and running within mythtv also, forgot i rebuilt the box and 
>> didn't change it back to Australian freq...
>>
>> thanks alot for the help!!
>>
>> gav
>> _
>
> celebrated too soon!
>
> the adpater0 works but all the other adapters1/2/3 do not find anything.
>
> I've ran the identical "scan -a 1 /usr/share/dvb/dvb-t/au-Bendigo" on them 
> all and only the first one works..
>
> I've changed the physical arial cables also, this didn't help..
>
> I have 2x of the cards installed.
>
> -gav
> _

Ok first up sorry for the "spamming" of message..
 
I took an old card out that was also in the box.. rebooted my pc and now it 
looks like they're all working.. 
 
Tried via "scan -a 0 /usr/share/dvb/dvb-t/au-Bendigo" for 0 1 2 and 3 and they 
all got channels.
 
then tried on my mythfrontend and i could view channels on all adapters.. 
 
-gav

  
_
Search for properties that match your lifestyle! Start searching NOW!
http://clk.atdmt.com/NMN/go/157631292/direct/01/--
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: saa7134 and μPD61151 MPEG2 coder

2010-01-27 Thread Hans Verkuil
Hi Dmitri,

Just a quick note: the video4linux mailinglist is obsolete, just use 
linux-media.

On Wednesday 27 January 2010 06:36:37 Dmitri Belimov wrote:
> Hi Hans.
> 
> I finished saa7134 part of SPI. Please review saa7134-spi.c and diff 
> saa7134-core and etc.
> I wrote config of SPI to board structure. Use this config for register master 
> and slave devices.
> 
> SPI other then I2C, do not need call request_module. Udev do it. 
> I spend 10 days for understanding :(  

I'm almost certain that spi works the same way as i2c and that means that you
must call request_module. Yes, udev will load it for you, but that is a delayed
load: i.e. the module may not be loaded when we need it. The idea behind this
is that usually i2c or spi modules are standalone, but in the context of v4l
such modules are required to be present before the bridge can properly configure
itself.

The easiest way to ensure the correct load sequence is to do a request_module
at the start.

Now, I haven't compiled this, but I think this will work:

struct v4l2_subdev *v4l2_spi_new_subdev(struct v4l2_device *v4l2_dev,
   struct spi_master *master, struct spi_board_info *info)
{
struct v4l2_subdev *sd = NULL;
struct spi_device *spi;

BUG_ON(!v4l2_dev);

if (module_name)
request_module(module_name);

spi = spi_new_device(master, info);

if (spi == NULL || spi->dev.driver == NULL)
goto error;

   if (!try_module_get(spi->dev.driver->owner))
   goto error;

   sd = spi_get_drvdata(spi);

   /* Register with the v4l2_device which increases the module's
  use count as well. */

   if (v4l2_device_register_subdev(v4l2_dev, sd))
   sd = NULL;

   /* Decrease the module use count to match the first try_module_get. */
   module_put(spi->dev.driver->owner);

error:
   /* If we have a client but no subdev, then something went wrong and
  we must unregister the client. */

   if (spi && sd == NULL)
   spi_unregister_device(spi);

   return sd;
}
EXPORT_SYMBOL_GPL(v4l2_spi_new_subdev);

Note that you mixed up the spi master and spi client in your original code. So
it is no wonder you experienced crashes.

Also note that there is no need for a separate v4l2_spi_new_subdev_board 
function.

And in v4l2_spi_subdev_init() you should use spi_set_drvdata instead of
dev_set_drvdata.

I hope this helps.

Regards,

Hans

> 
> I need help with v4l2-common.c -> function v4l2_spi_new_subdev_board
> The module of SPI slave loading after some time and spi device hasn't 
> v4l2_subdev structure
> for v4l2_device_register_subdev.
> 
> Now I get kernel crash when call v4l2_device_register_subdev.
> 
> Need use a callback metod or other. I don't know.
> 
> Copy to Mauro Carvalho Chehab and mailing lists for review my code too.
> 
> Dmesg log without call v4l2_device_register_subdev.
> [4.742279] Linux video capture interface: v2.00
> [4.816171] saa7130/34: v4l2 driver version 0.2.15 loaded
> [4.816253] saa7134 :04:01.0: PCI INT A -> GSI 19 (level, low) -> IRQ 
> 19
> [4.816304] saa7133[0]: found at :04:01.0, rev: 209, irq: 19, latency: 
> 32, mmio: 0xe510
> [4.816363] saa7133[0]: subsystem: 5ace:7595, board: Beholder BeholdTV X7 
> [card=171,autodetected]
> [4.816430] saa7133[0]: board init: gpio is 20
> [4.816481] IRQ 19/saa7133[0]: IRQF_DISABLED is not guaranteed on shared 
> IRQs
> [4.976010] saa7133[0]: i2c eeprom 00: ce 5a 95 75 54 20 00 00 00 00 00 00 
> 00 00 00 01
> [4.976635] saa7133[0]: i2c eeprom 10: ff ff ff ff ff ff ff ff ff ff ff ff 
> ff ff ff ff
> [4.977231] saa7133[0]: i2c eeprom 20: ff ff ff ff ff ff ff ff ff ff ff ff 
> ff ff ff ff
> [4.977827] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff 
> ff ff ff ff
> [4.978423] saa7133[0]: i2c eeprom 40: ff ff ff ff ff ff ff ff ff ff ff ff 
> ff ff ff ff
> [4.979019] saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff 
> ff ff ff ff
> [4.979615] saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff 
> ff ff ff ff
> [4.980223] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff 
> ff ff ff ff
> [4.980820] saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff 
> ff ff ff ff
> [4.981416] saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff 
> ff ff ff ff
> [4.982012] saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff 
> ff ff ff ff
> [4.982608] saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff 
> ff ff ff ff
> [4.983204] saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff 
> ff ff ff ff
> [4.983800] saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff 
> ff ff ff ff
> [4.984437] saa7133[0]: i2c eeprom e0: 00 00 00 00 ff ff ff ff ff ff ff ff 
> ff ff ff ff
> [4.985033] saa7133[0]: i2c eeprom f0: 42 54 56

RE: help: Leadtek DTV2000 DS

2010-01-27 Thread Gavin Ramm


 
> Date: Wed, 27 Jan 2010 02:21:32 +0200
> From: cr...@iki.fi
> To: gavin_r...@hotmail.com
> CC: linux-media@vger.kernel.org
> Subject: Re: help: Leadtek DTV2000 DS
>
> Terve Gavin,
>
> On 01/25/2010 01:44 PM, Gavin Ramm wrote:
>> Tried the current build of v4l-dvb (as of 25/01/2010) for a Leadtek 
>> DTV2000 DS.
>> product site : 
>> http://www.leadtek.com/eng/tv_tuner/overview.asp?lineid=6&pronameid=530&check=f
>>
>> The chipset are AF9015 + AF9013 and the tuner is TDA18211..
>> Im running it on mythdora 10.21 *fedora 10* i've had no luck with this.
>>
>> Any help would be great.. im willing to test..
>
> I added support for that device, could you test now?
> http://linuxtv.org/hg/~anttip/af9015/
>
>>
>>
>> I created a channels.conf via the output tried in xine and it worked.. tried 
>> in mythtv and it picked a few up only by importing the channels.conf. The 
>> auto scan in mythtv didn't work (which is out of scope i'd say)
>> _
>
>
> The card is up and running within mythtv also, forgot i rebuilt the box and 
> didn't change it back to Australian freq...
>
> thanks alot for the help!!
>
> gav
> _

celebrated too soon!
 
the adpater0 works but all the other adapters1/2/3 do not find anything.
 
I've ran the identical "scan -a 1 /usr/share/dvb/dvb-t/au-Bendigo" on them all 
and only the first one works..
 
I've changed the physical arial cables also, this didn't help.. 
 
I have 2x of the cards installed.
 
-gav  
_
Time for a new car? Sell your old one fast!
http://clk.atdmt.com/NMN/go/157637060/direct/01/--
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] saa7134: Fix IR support of some ASUS TV-FM 7135 variants

2010-01-27 Thread Jean Delvare
From: Jean Delvare 
Subject: saa7134: Fix IR support of some ASUS TV-FM 7135 variants

Some variants of the ASUS TV-FM 7135 are handled as the ASUSTeK P7131
Analog (card=146). However, by the time we find out, some
card-specific initialization is missed. In particular, the fact that
the IR is GPIO-based. Set it when we change the card type.

We also have to move the initialization of IR until after the card
number has been changed. I hope that this won't cause any problem.

Signed-off-by: Jean Delvare 
Cc: Daro 
Cc: Roman Kellner 
---
This needs testing, both from ASUS TV-FM 7135 users, and from other
users of the saa7134 driver. I don't have any supported device so I
couldn't test this change.

 linux/drivers/media/video/saa7134/saa7134-cards.c |1 +
 linux/drivers/media/video/saa7134/saa7134-core.c  |2 +-
 linux/drivers/media/video/saa7134/saa7134-input.c |2 +-
 linux/drivers/media/video/saa7134/saa7134.h   |2 +-
 4 files changed, 4 insertions(+), 3 deletions(-)

--- v4l-dvb.orig/linux/drivers/media/video/saa7134/saa7134-cards.c  
2010-01-25 21:25:58.0 +0100
+++ v4l-dvb/linux/drivers/media/video/saa7134/saa7134-cards.c   2010-01-27 
10:22:35.0 +0100
@@ -7299,6 +7299,7 @@ int saa7134_board_init2(struct saa7134_d
   printk(KERN_INFO "%s: P7131 analog only, using "
   "entry of %s\n",
   dev->name, saa7134_boards[dev->board].name);
+   dev->has_remote = SAA7134_REMOTE_GPIO;
   }
   break;
case SAA7134_BOARD_HAUPPAUGE_HVR1150:
--- v4l-dvb.orig/linux/drivers/media/video/saa7134/saa7134-core.c   
2010-01-25 21:25:50.0 +0100
+++ v4l-dvb/linux/drivers/media/video/saa7134/saa7134-core.c2010-01-27 
10:39:55.0 +0100
@@ -735,7 +735,6 @@ static int saa7134_hwinit1(struct saa713
saa7134_vbi_init1(dev);
if (card_has_mpeg(dev))
saa7134_ts_init1(dev);
-   saa7134_input_init1(dev);
 
saa7134_hw_enable1(dev);
 
@@ -781,6 +780,7 @@ static int saa7134_hwinit2(struct saa713
 
dprintk("hwinit2\n");
 
+   saa7134_input_init2(dev);
saa7134_video_init2(dev);
saa7134_tvaudio_init2(dev);
 
--- v4l-dvb.orig/linux/drivers/media/video/saa7134/saa7134-input.c  
2010-01-25 21:25:50.0 +0100
+++ v4l-dvb/linux/drivers/media/video/saa7134/saa7134-input.c   2010-01-27 
10:33:23.0 +0100
@@ -506,7 +506,7 @@ void saa7134_ir_stop(struct saa7134_dev
del_timer_sync(&dev->remote->timer);
 }
 
-int saa7134_input_init1(struct saa7134_dev *dev)
+int saa7134_input_init2(struct saa7134_dev *dev)
 {
struct card_ir *ir;
struct input_dev *input_dev;
--- v4l-dvb.orig/linux/drivers/media/video/saa7134/saa7134.h2010-01-25 
21:25:50.0 +0100
+++ v4l-dvb/linux/drivers/media/video/saa7134/saa7134.h 2010-01-27 
10:34:57.0 +0100
@@ -812,7 +812,7 @@ void saa7134_irq_oss_done(struct saa7134
 /* --- */
 /* saa7134-input.c */
 
-int  saa7134_input_init1(struct saa7134_dev *dev);
+int  saa7134_input_init2(struct saa7134_dev *dev);
 void saa7134_input_fini(struct saa7134_dev *dev);
 void saa7134_input_irq(struct saa7134_dev *dev);
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 30)


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


RE: help: Leadtek DTV2000 DS

2010-01-27 Thread Gavin Ramm


>>>
>>>
>>> 
 Date: Wed, 27 Jan 2010 02:21:32 +0200
 From: cr...@iki.fi
 To: gavin_r...@hotmail.com
 CC: linux-media@vger.kernel.org
 Subject: Re: help: Leadtek DTV2000 DS

 Terve Gavin,

 On 01/25/2010 01:44 PM, Gavin Ramm wrote:
> Tried the current build of v4l-dvb (as of 25/01/2010) for a Leadtek 
> DTV2000 DS.
> product site : 
> http://www.leadtek.com/eng/tv_tuner/overview.asp?lineid=6&pronameid=530&check=f
>
> The chipset are AF9015 + AF9013 and the tuner is TDA18211..
> Im running it on mythdora 10.21 *fedora 10* i've had no luck with this.
>
> Any help would be great.. im willing to test..

 I added support for that device, could you test now?
 http://linuxtv.org/hg/~anttip/af9015/

>
>
> I created a channels.conf via the output tried in xine and it worked.. tried 
> in mythtv and it picked a few up only by importing the channels.conf. The 
> auto scan in mythtv didn't work (which is out of scope i'd say)
> _


The card is up and running within mythtv also, forgot i rebuilt the box and 
didn't change it back to Australian freq... 
 
thanks alot for the help!! 
 
gav   
_
Time for a new car? Sell your old one fast!
http://clk.atdmt.com/NMN/go/157637060/direct/01/--
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: problem with libdvben50221 and powercam pro V4 [almost solved]

2010-01-27 Thread Brice Dubost
pierre.gronlier wrote:
> pierre gronlier wrote, On 01/24/2010 11:03 PM:
>> DUBOST Brice  crans.ens-cachan.fr> writes:
>>> Manu Abraham a écrit :
 Hi Brice,

 On Mon, Jan 25, 2010 at 12:09 AM, DUBOST Brice
  crans.ens-cachan.fr> wrote:
> Hello
>
> Powercam just made a new version of their cam, the version 4
>
> Unfortunately this CAM doesn't work with gnutv and applications based on
> libdvben50221
>
> This cam return TIMEOUT errors (en50221_stdcam_llci_poll: Error reported
> by stack:-3) after showing the supported ressource id.
>
> The problem is that this camreturns two times the list of supported ids
> (as shown in the log) this behavior make the llci_lookup_callback
> (en50221_stdcam_llci.c line 338)  failing to give the good ressource_id
> at the second call because there is already a session number (in the
> test app the session number is not tested)
>
> I solved the problem commenting out the test for the session number as
> showed in the joined patch (against the latest dvb-apps, cloned today)
>> I will run some tests with a TT3200 card too and a Netup card tomorrow.
>>
>> Regarding the cam returning two times the list of valid cam ids, wouldn't be
>> better if the manufacturer corrects it in the cam firmware ?
>> What says the en50221 norm about it ?
>>
> 
> Indeed, with the patch applied, the command gnutv -adapter 0 -cammenu is
> working fine with a netup card too.
> 
> I will try to update to the last revision of pcam firmware (v4.2) and
> report this behaviour to the manufacturer.
> 


Hello, a bit more information on this issue

Just for information, Here I attach you the log of another test I did,
the CAM answers the list of available Ids several times (each time you
change it basically) on the same session.

Manu : the test in the libdvben50221 was intended to deal with which case ?

I notice also that the decoding can fail if the PMT_ASK is sent between
the two ca_list answer at the beginning (this is a bit boring).

Regards

-- 
Brice



Found a CAM on adapter1... waiting...
en50221_tl_register_slot
slotid: 0
tcid: 1
Press a key to enter menu
00:Host originated transport connection 1 connected
00:Public resource lookup callback 1 1 1
00:CAM connecting to resource 00010041, session_number 1
00:CAM successfully connected to resource 00010041, session_number 1
00:test_rm_reply_callback
00:test_rm_enq_callback
00:Public resource lookup callback 2 1 1
00:CAM connecting to resource 00020041, session_number 2
00:CAM successfully connected to resource 00020041, session_number 2
00:test_ai_callback
  Application type: 01
  Application manufacturer: 02ca
  Manufacturer code: 3000
  Menu string: PCAM V4.1
00:Public resource lookup callback 3 1 1
00:CAM connecting to resource 00030041, session_number 3
00:CAM successfully connected to resource 00030041, session_number 3
00:test_ca_info_callback
  Supported CA ID: 0500
00:Connection to resource 00030041, session_number 3 closed
00:Public resource lookup callback 3 1 1
00:CAM connecting to resource 00030041, session_number 3
00:CAM successfully connected to resource 00030041, session_number 3
00:test_ca_info_callback
  Supported CA ID: 0500

00:Public resource lookup callback 64 1 1
00:CAM connecting to resource 00400041, session_number 4
00:CAM successfully connected to resource 00400041, session_number 4
00:test_mmi_display_control_callback
  cmd_id: 01
  mode: 01
00:test_mmi_menu_callback
  title: PCAM V4.1
  sub_title: Select a language
  bottom: 
  item 1: English
  item 2: French
  item 3: Spanish
  item 4: German
  item 5: Russian
  item 6: Arabic A
  item 7: Arabic B
  raw_length: 0
1
00:test_mmi_menu_callback
  title: PCAM V4.1
  sub_title: Main Menu
  bottom: Select one and press 'OK' to continue
  item 1: SmartCard & PIN
  item 2: CAS
  item 3: VP: 21680
  item 4: Download Status
  raw_length: 0
2
00:test_mmi_menu_callback
  title: PCAM V4.1
  sub_title: Currently selected CAS: 
  bottom: Please select 'Yes' or 'No' and press 'OK' to continue
  item 1: Do you want to change it?
  item 2: No
  item 3: Yes
  raw_length: 0
3
00:test_mmi_menu_callback
  title: PCAM V4.1
  sub_title: Currently selected CAS:
  bottom: Please select an option and press 'OK' to continue
  item 1: ALL
  item 2: Embedded Channels & PIN [OFF]
  item 3: MOSAIC-S [OFF]
  item 4: MOSAIC-V [ON]
  item 5: MOSAIC-I [OFF]
  item 6: MOSAIC-B [OFF]
  item 7: MOSAIC-C [OFF]
  item 8: MOSAIC-X [OFF]
  item 9: KEYFLY [OFF]
  raw_length: 0
3
00:test_mmi_menu_callback
  title: PCAM V4.1
  sub_title: Currently selected CAS:
  bottom: Please select an option and press 'OK' to continue
  item 1: ALL
  item 2: Embedded Channels & PIN [OFF]
  item 3: MOSAIC-S [ON]
  item 4: MOSAIC-V [ON]
  item 5: MOSAIC-I [OFF]
  item 6: MOSAIC-B [OFF]
  item 7: MOSAIC-C [OFF]
  item 8: MOSAIC-X [OFF]
  item 9: KEYFLY [OFF]
  raw_length: 0
00:Connection to resource 00030041, session_number 3 closed
00:Public resource

Re: IR device at I2C address 0x7a

2010-01-27 Thread Jean Delvare
Hi Hermann,

Sorry for the late answer.

On Sun, 10 Jan 2010 22:55:05 +0100, hermann pitton wrote:
> Am Sonntag, den 10.01.2010, 09:51 +0100 schrieb Jean Delvare:
> > On Sun, 10 Jan 2010 00:18:46 +0100, hermann pitton wrote:
> > > Am Samstag, den 09.01.2010, 17:14 +0100 schrieb Jean Delvare:
> > > > Then I would suggest the following patch:
> > > > 
> > > > * * * * *
> > > > 
> > > > From: Jean Delvare 
> > > > Subject: saa7134: Fix IR support of some ASUS TV-FM 7135 variants
> > > > 
> > > > Some variants of the ASUS TV-FM 7135 are handled as the ASUSTeK P7131
> > > > Analog (card=146). However, by the time we find out, some
> > > > card-specific initialization is missed. In particular, the fact that
> > > > the IR is GPIO-based. Set it when we change the card type.
> > > > 
> > > > Signed-off-by: Jean Delvare 
> > > > Tested-by: Daro 
> > > 
> > > just to note it, the ASUS TV-FM 7135 with USB remote is different to the
> > > Asus My Cinema P7134 Analog only, not only for the remote, but also for
> > > inputs, but they have the same PCI subsystem.
> > > 
> > > > ---
> > > >  linux/drivers/media/video/saa7134/saa7134-cards.c |1 +
> > > >  1 file changed, 1 insertion(+)
> > > > 
> > > > --- v4l-dvb.orig/linux/drivers/media/video/saa7134/saa7134-cards.c  
> > > > 2009-12-11 09:47:47.0 +0100
> > > > +++ v4l-dvb/linux/drivers/media/video/saa7134/saa7134-cards.c   
> > > > 2010-01-09 16:23:17.0 +0100
> > > > @@ -7257,6 +7257,7 @@ int saa7134_board_init2(struct saa7134_d
> > > >printk(KERN_INFO "%s: P7131 analog only, using "
> > > >"entry of %s\n",
> > > >dev->name, saa7134_boards[dev->board].name);
> > > > +   dev->has_remote = SAA7134_REMOTE_GPIO;
> > > >}
> > > >break;
> > > > case SAA7134_BOARD_HAUPPAUGE_HVR1150:
> > > > 
> > > > 
> > > > * * * * *
> > > 
> > > Must have been broken at that time, IIRC.
> > 
> > What must have been broken, and when? You are confusing.
> 
> Sorry, I missed that thread until now.
> The above patch was tried previously by Roman.
> 
> For the record, here is a link.
> http://www.spinics.net/lists/vfl/msg38869.html

Thanks for the pointer, this was very helpful. I had missed the fact
that the call to saa7134_input_init1() was before the card number
change. So indeed my patch was insufficient.

Roman's strategy to move saa7134_input_init1() to the late init section
seems good to me. Honestly, I can't think of a good reason to init the
remote control early. I doubt that anything else depends on that.

I'll send an updated patch shortly.

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