Re: TBS 6980 Dual Tuner PCI-e card.....not in Wiki at all?

2010-05-31 Thread CityK
Another Sillyname wrote:
 Guys

 The TBS 6920 PCI-e card is in the Wiki and is a supported card.

 The TBS 6980 dual tuner PCI-e card is not in the Wiki at all, is there
 a reason for this given they have released a non GPL blob at least?
   

Because the wiki relies upon user contributions.  No contributions, no
information.  Simple as that.


 Also is there a reason that an indicative price for supported cards is
 not shown in the wiki?  It would save a load of time rather then
 having to search on each card only to find out it's ridiculously
 priced at $1000.

I for one am not particularly keen on inclusion of prices because:
- prices are highly subject to temporal variance (i.e. what costs $150
now could be $80 in six months)
- prices are often highly variant across broad geographical regions
(i.e. what costs $70US in America could, after accounting for exchange
rates, cost an equivalent of $100US within Canada)
- prices are often highly variant within local geographical markets (i.e
what costs $99 at the local big box Bestbuy store could easily cost $79
at the local mompop computer store)
- prices require regular updating/maintenance in order for them to be in
any way indicative ... the wiki relies upon user contributions ...
ergo, I can already tell you in advance that its not going to happen
(because its a time consuming endeavour, and there is no critical mass
of contributors to keep the information relevant), and so, any original
submissions will inevitably just end up suffering information rot (and,
thus, end up not being indicative or of particular use for the end user).
--
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-core multi-protocol decode and mceusb

2010-05-31 Thread Jarod Wilson
On Sun, May 30, 2010 at 3:57 PM, Jarod Wilson ja...@wilsonet.com wrote:
 On Sun, May 30, 2010 at 10:02 AM, Mauro Carvalho Chehab
 mche...@redhat.com wrote:
 Em 29-05-2010 23:24, Jarod Wilson escreveu:
 On Sat, May 29, 2010 at 4:01 PM, Andy Walls awa...@md.metrocast.net wrote:
 ...
  We do have the
 option to disable all but the relevant protocol handler on a
 per-device basis though, if that's a problem. Hrm, the key tables also
 have a protocol tied to them, not sure if that's taken into account
 when doing matching... Still getting to know the code. :)

 It does not look like

        ir_keydown()
                ir_g_keycode_from_table()
                        ir_getkeycode()

 bother to check the ir_type (e.g. IR_TYPE_NEC) of the keymap against the
 decoders type.  Neither do the decoders themselves.


 If a decoder decodes something and thinks its valid, it tries to send a
 key event with ir_keydown().  ir_keydown() won't send a key event if the
 lookup comes back KEY_RESERVED, but it doesn't tell the decoder about
 the failure to find a key mapping.  A decoder can come back saying it
 did it's job, without knowing whether or not the decoding corresponded
 to a valid key in the loaded keymap. :(


 You will have to deal with the case that two or more decoders may match
 and each sends an IR event.  (Unless the ir-core already deals with this
 somehow...)

 Well, its gotta decode correctly to a value, and then match a value in
 the loaded key table for an input event to get sent through. At least
 for the RC6 MCE remotes, I haven't seen any of the other decoders take
 the signal and interpret it as valid -- which ought to be by design,
 if you consider that people use several different remotes with varying
 ir signals with different devices all receiving them all the time
 without problems (usually). And if we're not already, we could likely
 add some logic to give higher precedence to values arrived at using
 the protocol decoder that matches the key table we've got loaded for a
 given device.

 After looking at things, the only potential problem I can see right now
 is with the JVC decoder and NEC remotes.

 I think that problem is most easily eliminated either by

 a. having ir_keydown() (or the functions it calls) check to see that the
 decoder matches the loaded keymap, or

 b. only calling the decoder that matches the loaded keymap's protocol

 Of the above, b. saves processor cycles and frees up the global
 ir_raw_handler spin lock sooner.  That spin lock is serializing pulse
 decoding for all the IR receivers in the system  (pulse decoding can
 still be interleaved, just only one IR receiver's pulses are be
 processed at any time).  What's the point of running decoders that
 should never match the loaded keymap?

 For the daily use case where a known-good keymap is in place, I'm
 coming to the conclusion that there's no point, we're only wasting
 resources. For initial figure out what this remote is type of stuff,
 running all decoders makes sense. One thought I had was that perhaps
 we start by running through the decoder that is listed in the keymap.
 If it decodes to a scancode and we find a valid key in the key table
 (i.e., not KEY_RESERVED), we're done. If decoding fails or we don't
 find a valid key, then try the other decoders. However, this is
 possibly also wasteful -- most people with any somewhat involved htpc
 setup are going to be constantly sending IR signals intended for other
 devices that we pick up and try to decode.

 So I'd say we go with your option b, and only call the decoder that
 matches the loaded keymap. One could either pass in a modparam or
 twiddle a sysfs attr or use ir-keytable to put the receiver into a
 mode that called all decoders -- i.e., set protocol to
 IR_TYPE_UNKNOWN, with the intention being to figure it out based on
 running all decoders, and create a new keymap where IR_TYPE_FOO is
 known.

 There's no need to extra parameters. Decoders can be disabled by userspace,
 per each rc sysfs node. Btw, the current version of ir-keytable already sets
 the enabled protocols based on the protocol reported by the rc keymap.

 What it makes sense is to add a patch at RC core that will properly 
 enable/disable
 the protocols based on IR_TYPE, when the rc-map is stored in-kernel.

 Ah, yeah, that does make sense. And if we add that, ir-keytable
 doesn't actually have to worry about doing similar itself any longer.
 If you're not already working on it, I can try to whip something up,
 though I'm knee-deep in an ir-lirc-codec bridge right now...

I've now got an ir-lirc-codec bridge passing data over to a completely
unmodified lirc_dev, with the data then making its way out to the
lircd userspace where its even getting properly decoded. I don't have
the transmit side of things in ir-lirc-codec wired up just yet, but
I'd like to submit what I've got (after some cleanup) tomorrow, and
will then incrementally work on transmit. I'm pretty sure wiring up
transmit is 

Re: mt9m111 swap_rgb_red_blue

2010-05-31 Thread Guennadi Liakhovetski
On Mon, 31 May 2010, Robert Jarzmik wrote:

 Sascha Hauer s.ha...@pengutronix.de writes:
 
  Hi Robert,
 
  I have digged around in the Datasheet and if I understand it correctly
  the PXA swaps red/blue in RGB mode. So if we do not use rgb mode but yuv
  (which should be a pass through) we should be able to support rgb on PXA
  aswell. Robert, can you confirm that with the following patch applied
  you still get an image but with red/blue swapped?
 I can confirm the color swap.
 If you want to follow that path, I would suggest instead :
cicr1 |= CICR1_COLOR_SP_VAL(0);
 
 There is no difference from a processing point of view, it's just that
 CICR1_COLOR_SP_VAL(0) is raw colorspace, with means pass through, and that
 seems to be your goal here.

That would be the default case in that switch, but raw only supports 8, 9, 
or 10 bpp, so, you'd have to use 8bpp but then fake the pixels-per-line 
field. But that would be the cleanest way, yes. Would that work like that?

 Note that the patch would have to be completed with the BGR565 into RGB565
 conversion, if the sensor was to provide only BGR565. But that could very well
 be for another patch.

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: SPCA1527A/SPCA1528 (micro)SD camera in webcam mode

2010-05-31 Thread Jean-Francois Moine
On Mon, 31 May 2010 00:03:10 +0200
Ondrej Zary li...@rainbow-software.org wrote:

  I would try extracting a JPEG header from one of the files captured
  by the camera in stand alone mode (either a JPEG still or MJPEG
  file), and put that header together with the image data from the
  USB capture.  It may not look perfect, but hopefully you will get
  something you recognize.  
 
 Just thought about the same thing so I uploaded a video file: 
 http://www.rainbow-software.org/linux_files/spca1528/sunp0003.avi
 
  Attached was Theodore's first attempt of such a procedure with a
  header extracted from a standalone image file from my Jeilin based
  camera and USB snoop data from the same camera.  It wasn't perfect,
  but it was recognizable.  

I could not believe it! I already tried the image as JPEG, but I got
just big colored pixels. I changed the 'samples Y' from 21 to 22 and
I got something coherent! Here is the same image as yesterday with
JPEG 411 header, compression quality 80% and insertion of 0x00 after
0xff.

-- 
Ken ar c'hentañ | ** Breizh ha Linux atav! **
Jef |   http://moinejf.free.fr/
attachment: image640.jpg

Re: [PATCH 1/3] Gspca-gl860 driver update

2010-05-31 Thread Jean-Francois Moine
On Mon, 31 May 2010 00:24:21 +0200
Olivier Lorin olori...@gmail.com wrote:

 - Change of rounded image resolutions to the real ones
 - Fix for an irrelevant OV9655 image resolution identifier name
 - Extra spaces to align some variable names and a defined value

Hi Olivier,

If I can anticipate, the changes are too different. You should split
this patch.

Best regards.

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


Re: [PATCH] Compro Videomate T750F Vista digital+analog support

2010-05-31 Thread Davor Emard
HI!

I just went to compro website and have seen that *f cards
have some identical MCE-alike but also slightly different remotes, 
so we have to invent some better names to distinguish between 
them (compro itself might have some names for them)

d.
--
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: mt9m111 swap_rgb_red_blue

2010-05-31 Thread Sascha Hauer
On Mon, May 31, 2010 at 08:46:00AM +0200, Guennadi Liakhovetski wrote:
 On Mon, 31 May 2010, Robert Jarzmik wrote:
 
  Sascha Hauer s.ha...@pengutronix.de writes:
  
   Hi Robert,
  
   I have digged around in the Datasheet and if I understand it correctly
   the PXA swaps red/blue in RGB mode. So if we do not use rgb mode but yuv
   (which should be a pass through) we should be able to support rgb on PXA
   aswell. Robert, can you confirm that with the following patch applied
   you still get an image but with red/blue swapped?
  I can confirm the color swap.
  If you want to follow that path, I would suggest instead :
 cicr1 |= CICR1_COLOR_SP_VAL(0);
  
  There is no difference from a processing point of view, it's just that
  CICR1_COLOR_SP_VAL(0) is raw colorspace, with means pass through, and 
  that
  seems to be your goal here.
 
 That would be the default case in that switch, but raw only supports 8, 9, 
 or 10 bpp, so, you'd have to use 8bpp but then fake the pixels-per-line 
 field.

That's why I suggested yuv. I could leave a big comment why this is
done, but I would implement it using raw mode aswell if that's prefered.

 But that would be the cleanest way, yes. Would that work like that?
 
  Note that the patch would have to be completed with the BGR565 into RGB565
  conversion, if the sensor was to provide only BGR565. But that could very 
  well
  be for another patch.

Will do, I just wanted to see if this works at all.

Sascha


-- 
Pengutronix e.K.   | |
Industrial Linux Solutions | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |
--
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: SPCA1527A/SPCA1528 (micro)SD camera in webcam mode

2010-05-31 Thread Ondrej Zary
On Monday 31 May 2010, Jean-Francois Moine wrote:
 On Mon, 31 May 2010 00:03:10 +0200

 Ondrej Zary li...@rainbow-software.org wrote:
   I would try extracting a JPEG header from one of the files captured
   by the camera in stand alone mode (either a JPEG still or MJPEG
   file), and put that header together with the image data from the
   USB capture.  It may not look perfect, but hopefully you will get
   something you recognize.
 
  Just thought about the same thing so I uploaded a video file:
  http://www.rainbow-software.org/linux_files/spca1528/sunp0003.avi
 
   Attached was Theodore's first attempt of such a procedure with a
   header extracted from a standalone image file from my Jeilin based
   camera and USB snoop data from the same camera.  It wasn't perfect,
   but it was recognizable.

 I could not believe it! I already tried the image as JPEG, but I got
 just big colored pixels. I changed the 'samples Y' from 21 to 22 and
 I got something coherent! Here is the same image as yesterday with
 JPEG 411 header, compression quality 80% and insertion of 0x00 after
 0xff.

That's great - that's what it should look like! It's a part of LCD monitor and 
a shelf above it.

-- 
Ondrej Zary
--
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: Regarding OMAP 35xx ISP subsystem and SoC-Camera

2010-05-31 Thread Laurent Pinchart
Hi Manjunathan,

On Friday 28 May 2010 15:54:57 manjunathan.pa...@wipro.com wrote:
 Dear Linux-media group
   I am a newbie and have recently started working on integration of a new
 camera sensor MT9M112 sensor with OMAP ISP Camera subsystem on a OMAP 3530
 based custom board.  So I checked in mainline kernel if driver is
 available for this camera sensor and  I found it in the 
 Linux/driver/media/video/mt9m11.c, this supports both MT9M111 and MT9M112.
 It is based on SoC-Camera framework.   But unfortunately this is not
 compatible with OMAP 35xx  Camera ISP subsystem  as OMAP camera ISP
 subsystem is based on V4L2-INT.

The OMAP3 ISP driver doesn't use the deprecated V4L2 int-device API anymore. 
The latest version of the driver can be found in the omap3camera tree on 
gitorious (make sure you checkout the devel branch).

 Also I got know that there are there are 3 different frameworks for camera
 sensor drivers in Linux
 a. V4L2-INT is deprecated but currently supported by OMAP35xx ISP Linux BSP
 b. SoC-Camera is  also deprecated.
 c. Sub-Device is the current architecture supported from Open source
 community

 1. Is this understanding correct ?

That's correct. The OMAP35xx ISP driver in the Linux BSP is also deprecated 
:-)

 2. Since V4L2-INT and SoC-Camera frameworks are deprecated, can you please
 let me know the roadmap for Sub-Device framework ?

The soc-camera framework isn't deprecated, but it isn't used by the OMAP3 ISP 
driver either.

 3. What is the best option/recommendation from community for me to integrate
 MT9M112 with Camera ISP system on OMAP 3530 based board ?

The dependencies on the soc-camera framework in the MT9M112 driver need to be 
removed. I've CC'ed Guennadi Liakhovetski to this e-mail, he's the author of 
the soc-camera framework and should be able to provide information on what is 
required.

 4. And lastly are there any other different camera sensors which have Sub-
 Device based drivers available in Mainline Linux?

Not that I know of, but there's a video decoder driver (tvp5150).

-- 
Regards,

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


RE: [PATCH 06/11] V4L/DVB: omap_vout: Storage class should be before const qualifier

2010-05-31 Thread Hiremath, Vaibhav

 -Original Message-
 From: linux-media-ow...@vger.kernel.org [mailto:linux-media-
 ow...@vger.kernel.org] On Behalf Of Tobias Klauser
 Sent: Thursday, May 20, 2010 2:06 PM
 To: mche...@infradead.org; linux-media@vger.kernel.org
 Cc: kernel-janit...@vger.kernel.org; Tobias Klauser
 Subject: [PATCH 06/11] V4L/DVB: omap_vout: Storage class should be before
 const qualifier
 
 The C99 specification states in section 6.11.5:
 
 The placement of a storage-class specifier other than at the beginning
 of the declaration specifiers in a declaration is an obsolescent
 feature.
 
 Signed-off-by: Tobias Klauser tklau...@distanz.ch
 ---
  drivers/media/video/omap/omap_vout.c |2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
 
 diff --git a/drivers/media/video/omap/omap_vout.c
 b/drivers/media/video/omap/omap_vout.c
 index 4c0ab49..d6a2ae1 100644
 --- a/drivers/media/video/omap/omap_vout.c
 +++ b/drivers/media/video/omap/omap_vout.c
 @@ -128,7 +128,7 @@ module_param(debug, bool, S_IRUGO);
  MODULE_PARM_DESC(debug, Debug level (0-1));
 
  /* list of image formats supported by OMAP2 video pipelines */
 -const static struct v4l2_fmtdesc omap_formats[] = {
 +static const struct v4l2_fmtdesc omap_formats[] = {
   {
   /* Note:  V4L2 defines RGB565 as:
*
Acked-by: Vaibhav Hiremath hvaib...@ti.com

Thanks,
Vaibhav

 --
 1.6.3.3
 
 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
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] libv4l1: Move VIDIOCGFBUF into libv4l1

2010-05-31 Thread huzaifas
From: Huzaifa Sidhpurwala huzai...@fedora-12.(none)

Move VIDIOCGFBUF into libv4l1

Signed-off-by: Huzaifa Sidhpurwala huzai...@redhat.com
---
 lib/libv4l1/libv4l1.c |   45 +
 1 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/lib/libv4l1/libv4l1.c b/lib/libv4l1/libv4l1.c
index e13feba..5b2dc29 100644
--- a/lib/libv4l1/libv4l1.c
+++ b/lib/libv4l1/libv4l1.c
@@ -804,6 +804,51 @@ int v4l1_ioctl(int fd, unsigned long int request, ...)
break;
}
 
+   case VIDIOCGFBUF: {
+   struct video_buffer *buffer = arg;
+   struct v4l2_framebuffer fbuf = { 0, };
+
+   result = v4l2_ioctl(fd, VIDIOC_G_FBUF, buffer);
+   if (result  0)
+   break;
+
+   buffer-base = fbuf.base;
+   buffer-height = fbuf.fmt.height;
+   buffer-width = fbuf.fmt.width;
+
+   switch (fbuf.fmt.pixelformat) {
+   case V4L2_PIX_FMT_RGB332:
+   buffer-depth = 8;
+   break;
+   case V4L2_PIX_FMT_RGB555:
+   buffer-depth = 15;
+   break;
+   case V4L2_PIX_FMT_RGB565:
+   buffer-depth = 16;
+   break;
+   case V4L2_PIX_FMT_BGR24:
+   buffer-depth = 24;
+   break;
+   case V4L2_PIX_FMT_BGR32:
+   buffer-depth = 32;
+   break;
+   default:
+   buffer-depth = 0;
+   }
+
+   if (fbuf.fmt.bytesperline) {
+   buffer-bytesperline = fbuf.fmt.bytesperline;
+   if (!buffer-depth  buffer-width)
+   buffer-depth = ((fbuf.fmt.bytesperline3)
+   + (buffer-width-1))
+   / buffer-width;
+   } else {
+   buffer-bytesperline =
+   (buffer-width * buffer-depth + 7)  7;
+   buffer-bytesperline = 3;
+   }
+   }
+
default:
/* Pass through libv4l2 for applications which are using v4l2 
through
   libv4l1 (this can happen with the v4l1compat.so wrapper 
preloaded */
-- 
1.6.6.1

--
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: Regarding OMAP 35xx ISP subsystem and SoC-Camera

2010-05-31 Thread Hiremath, Vaibhav

 -Original Message-
 From: linux-media-ow...@vger.kernel.org [mailto:linux-media-
 ow...@vger.kernel.org] On Behalf Of Laurent Pinchart
 Sent: Monday, May 31, 2010 1:29 PM
 To: manjunathan.pa...@wipro.com; Guennadi Liakhovetski
 Cc: linux-media@vger.kernel.org
 Subject: Re: Regarding OMAP 35xx ISP subsystem and SoC-Camera
 
 Hi Manjunathan,
 
 On Friday 28 May 2010 15:54:57 manjunathan.pa...@wipro.com wrote:
  Dear Linux-media group
I am a newbie and have recently started working on integration of a new
  camera sensor MT9M112 sensor with OMAP ISP Camera subsystem on a OMAP 3530
  based custom board.  So I checked in mainline kernel if driver is
  available for this camera sensor and  I found it in the
  Linux/driver/media/video/mt9m11.c, this supports both MT9M111 and MT9M112.
  It is based on SoC-Camera framework.   But unfortunately this is not
  compatible with OMAP 35xx  Camera ISP subsystem  as OMAP camera ISP
  subsystem is based on V4L2-INT.
 
 The OMAP3 ISP driver doesn't use the deprecated V4L2 int-device API anymore.
 The latest version of the driver can be found in the omap3camera tree on
 gitorious (make sure you checkout the devel branch).
 
  Also I got know that there are there are 3 different frameworks for camera
  sensor drivers in Linux
  a. V4L2-INT is deprecated but currently supported by OMAP35xx ISP Linux
 BSP
  b. SoC-Camera is  also deprecated.
  c. Sub-Device is the current architecture supported from Open source
  community
 
  1. Is this understanding correct ?
 
 That's correct. The OMAP35xx ISP driver in the Linux BSP is also deprecated
 :-)
 
  2. Since V4L2-INT and SoC-Camera frameworks are deprecated, can you please
  let me know the roadmap for Sub-Device framework ?
 
 The soc-camera framework isn't deprecated, but it isn't used by the OMAP3
 ISP
 driver either.
 
  3. What is the best option/recommendation from community for me to
 integrate
  MT9M112 with Camera ISP system on OMAP 3530 based board ?
 
 The dependencies on the soc-camera framework in the MT9M112 driver need to
 be
 removed. I've CC'ed Guennadi Liakhovetski to this e-mail, he's the author of
 the soc-camera framework and should be able to provide information on what
 is
 required.
 
  4. And lastly are there any other different camera sensors which have Sub-
  Device based drivers available in Mainline Linux?
 
 Not that I know of, but there's a video decoder driver (tvp5150).
[Hiremath, Vaibhav] Also we have TVP514x video decoder driver.

Thanks,
Vaibhav
 
 --
 Regards,
 
 Laurent Pinchart
 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
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


Can not get EIT infi

2010-05-31 Thread Josu Lazkano
Hello everybody! I a KWorld PlusTV Dual DVB-T Stick (DVB-T 399U)
device, I use it on MythTV, the problem is that I can not get any EIT
info fron this stick, I try wit other stick and it works.

How can I try to get EIT? I can watch TV channels well.

I use Debian Squeeze with dvb-usb-af9015.fw firmware.

Thanks for all and regards.

-- 
Josu Lazkano
--
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-core multi-protocol decode and mceusb

2010-05-31 Thread Andy Walls
On Mon, 2010-05-31 at 02:20 -0400, Jarod Wilson wrote:
 On Sun, May 30, 2010 at 3:57 PM, Jarod Wilson ja...@wilsonet.com wrote:
  On Sun, May 30, 2010 at 10:02 AM, Mauro Carvalho Chehab
  mche...@redhat.com wrote:
  Em 29-05-2010 23:24, Jarod Wilson escreveu:
  On Sat, May 29, 2010 at 4:01 PM, Andy Walls awa...@md.metrocast.net 
  wrote:
  ...
   We do have the
  option to disable all but the relevant protocol handler on a
  per-device basis though, if that's a problem. Hrm, the key tables also
  have a protocol tied to them, not sure if that's taken into account
  when doing matching... Still getting to know the code. :)
 
  It does not look like
 
 ir_keydown()
 ir_g_keycode_from_table()
 ir_getkeycode()
 
  bother to check the ir_type (e.g. IR_TYPE_NEC) of the keymap against the
  decoders type.  Neither do the decoders themselves.
 
 
  If a decoder decodes something and thinks its valid, it tries to send a
  key event with ir_keydown().  ir_keydown() won't send a key event if the
  lookup comes back KEY_RESERVED, but it doesn't tell the decoder about
  the failure to find a key mapping.  A decoder can come back saying it
  did it's job, without knowing whether or not the decoding corresponded
  to a valid key in the loaded keymap. :(
 
 
  You will have to deal with the case that two or more decoders may match
  and each sends an IR event.  (Unless the ir-core already deals with 
  this
  somehow...)
 
  Well, its gotta decode correctly to a value, and then match a value in
  the loaded key table for an input event to get sent through. At least
  for the RC6 MCE remotes, I haven't seen any of the other decoders take
  the signal and interpret it as valid -- which ought to be by design,
  if you consider that people use several different remotes with varying
  ir signals with different devices all receiving them all the time
  without problems (usually). And if we're not already, we could likely
  add some logic to give higher precedence to values arrived at using
  the protocol decoder that matches the key table we've got loaded for a
  given device.
 
  After looking at things, the only potential problem I can see right now
  is with the JVC decoder and NEC remotes.
 
  I think that problem is most easily eliminated either by
 
  a. having ir_keydown() (or the functions it calls) check to see that the
  decoder matches the loaded keymap, or
 
  b. only calling the decoder that matches the loaded keymap's protocol
 
  Of the above, b. saves processor cycles and frees up the global
  ir_raw_handler spin lock sooner.  That spin lock is serializing pulse
  decoding for all the IR receivers in the system  (pulse decoding can
  still be interleaved, just only one IR receiver's pulses are be
  processed at any time).  What's the point of running decoders that
  should never match the loaded keymap?
 
  For the daily use case where a known-good keymap is in place, I'm
  coming to the conclusion that there's no point, we're only wasting
  resources. For initial figure out what this remote is type of stuff,
  running all decoders makes sense. One thought I had was that perhaps
  we start by running through the decoder that is listed in the keymap.
  If it decodes to a scancode and we find a valid key in the key table
  (i.e., not KEY_RESERVED), we're done. If decoding fails or we don't
  find a valid key, then try the other decoders. However, this is
  possibly also wasteful -- most people with any somewhat involved htpc
  setup are going to be constantly sending IR signals intended for other
  devices that we pick up and try to decode.
 
  So I'd say we go with your option b, and only call the decoder that
  matches the loaded keymap. One could either pass in a modparam or
  twiddle a sysfs attr or use ir-keytable to put the receiver into a
  mode that called all decoders -- i.e., set protocol to
  IR_TYPE_UNKNOWN, with the intention being to figure it out based on
  running all decoders, and create a new keymap where IR_TYPE_FOO is
  known.
 
  There's no need to extra parameters. Decoders can be disabled by userspace,
  per each rc sysfs node. Btw, the current version of ir-keytable already 
  sets
  the enabled protocols based on the protocol reported by the rc keymap.
 
  What it makes sense is to add a patch at RC core that will properly 
  enable/disable
  the protocols based on IR_TYPE, when the rc-map is stored in-kernel.
 
  Ah, yeah, that does make sense. And if we add that, ir-keytable
  doesn't actually have to worry about doing similar itself any longer.
  If you're not already working on it, I can try to whip something up,
  though I'm knee-deep in an ir-lirc-codec bridge right now...
 
 I've now got an ir-lirc-codec bridge passing data over to a completely
 unmodified lirc_dev, with the data then making its way out to the
 lircd userspace where its even getting properly decoded. I don't have
 the transmit side of things in ir-lirc-codec wired up 

RE: Regarding OMAP 35xx ISP subsystem and SoC-Camera

2010-05-31 Thread Hiremath, Vaibhav

 -Original Message-
 From: linux-media-ow...@vger.kernel.org [mailto:linux-media-
 ow...@vger.kernel.org] On Behalf Of Laurent Pinchart
 Sent: Monday, May 31, 2010 1:29 PM
 To: manjunathan.pa...@wipro.com; Guennadi Liakhovetski
 Cc: linux-media@vger.kernel.org
 Subject: Re: Regarding OMAP 35xx ISP subsystem and SoC-Camera
 
 Hi Manjunathan,
 
[Hiremath, Vaibhav] Just clarifying some the things -


 On Friday 28 May 2010 15:54:57 manjunathan.pa...@wipro.com wrote:
  Dear Linux-media group
I am a newbie and have recently started working on integration of a new
  camera sensor MT9M112 sensor with OMAP ISP Camera subsystem on a OMAP 3530
  based custom board.  So I checked in mainline kernel if driver is
  available for this camera sensor and  I found it in the
  Linux/driver/media/video/mt9m11.c, this supports both MT9M111 and MT9M112.
  It is based on SoC-Camera framework.   But unfortunately this is not
  compatible with OMAP 35xx  Camera ISP subsystem  as OMAP camera ISP
  subsystem is based on V4L2-INT.
 
 The OMAP3 ISP driver doesn't use the deprecated V4L2 int-device API anymore.
 The latest version of the driver can be found in the omap3camera tree on
 gitorious (make sure you checkout the devel branch).
 
[Hiremath, Vaibhav] Manjunathan,

Please note that this is based on Media controller concept which is new 
framework or interface we are working on.

  Also I got know that there are there are 3 different frameworks for camera
  sensor drivers in Linux
  a. V4L2-INT is deprecated but currently supported by OMAP35xx ISP Linux
 BSP
  b. SoC-Camera is  also deprecated.
  c. Sub-Device is the current architecture supported from Open source
  community
 
  1. Is this understanding correct ?
 
 That's correct. The OMAP35xx ISP driver in the Linux BSP is also deprecated
 :-)
 
  2. Since V4L2-INT and SoC-Camera frameworks are deprecated, can you please
  let me know the roadmap for Sub-Device framework ?
 
 The soc-camera framework isn't deprecated, but it isn't used by the OMAP3
 ISP
 driver either.
 
[Hiremath, Vaibhav] Laurent, I believe going forward this SoC-Camera will get 
also deprecated and all drivers will be migrated to sub-device framework.

Thanks,
Vaibhav

  3. What is the best option/recommendation from community for me to
 integrate
  MT9M112 with Camera ISP system on OMAP 3530 based board ?
 
 The dependencies on the soc-camera framework in the MT9M112 driver need to
 be
 removed. I've CC'ed Guennadi Liakhovetski to this e-mail, he's the author of
 the soc-camera framework and should be able to provide information on what
 is
 required.
 
  4. And lastly are there any other different camera sensors which have Sub-
  Device based drivers available in Mainline Linux?
 
 Not that I know of, but there's a video decoder driver (tvp5150).
 
 --
 Regards,
 
 Laurent Pinchart
 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
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: Regarding OMAP 35xx ISP subsystem and SoC-Camera

2010-05-31 Thread Guennadi Liakhovetski
On Mon, 31 May 2010, Hiremath, Vaibhav wrote:

   2. Since V4L2-INT and SoC-Camera frameworks are deprecated, can you please
   let me know the roadmap for Sub-Device framework ?
  
  The soc-camera framework isn't deprecated, but it isn't used by the OMAP3
  ISP
  driver either.
  
 [Hiremath, Vaibhav] Laurent, I believe going forward this SoC-Camera 
 will get also deprecated and all drivers will be migrated to sub-device 
 framework.

Vaibhav, I think you're misunderstanding. The soc-camera framework has 
been designed to fulfill two tasks: (1) create a standard interface 
between (SoC) camera hosts and video clients, and (2) to simplify 
implementation of new camera host drivers by taking a part of common 
for many SoC camera controllers functionality into the soc-camera core. 
The first task is being replaced by v4l2-subdev, that's correct. But I so 
far don't see a compelling reason to obsolete the 2nd task, which would 
migrate that common functionality into each camera host driver. New camera 
host driver authors are free to either use or not to use soc-camera. If 
they think, the functionality provided by soc-camera core fits well with 
their hardware, they can use it. If they think, it is imposing too many 
restrictions and their hardware is more complicated, than what soc-camera 
offers, then they can write a complete v4l2-device driver.

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: SPCA1527A/SPCA1528 (micro)SD camera in webcam mode

2010-05-31 Thread Andy Walls
On Mon, 2010-05-31 at 09:19 +0200, Jean-Francois Moine wrote:
 On Mon, 31 May 2010 00:03:10 +0200
 Ondrej Zary li...@rainbow-software.org wrote:
 
   I would try extracting a JPEG header from one of the files captured
   by the camera in stand alone mode (either a JPEG still or MJPEG
   file), and put that header together with the image data from the
   USB capture.  It may not look perfect, but hopefully you will get
   something you recognize.  
  
  Just thought about the same thing so I uploaded a video file: 
  http://www.rainbow-software.org/linux_files/spca1528/sunp0003.avi
  
   Attached was Theodore's first attempt of such a procedure with a
   header extracted from a standalone image file from my Jeilin based
   camera and USB snoop data from the same camera.  It wasn't perfect,
   but it was recognizable.  
 
 I could not believe it! I already tried the image as JPEG, but I got
 just big colored pixels. I changed the 'samples Y' from 21 to 22 and
 I got something coherent! Here is the same image as yesterday with
 JPEG 411 header, compression quality 80% and insertion of 0x00 after
 0xff.

Very nice work!

I think I understand the 'samples Y' change.  According to ITU T.81, you
changed the Vertical sampling factor in the Y component.  So, I guess
Luma is undersampled vertically for that mode of the camera (the camera
only really has a 240 line sensor)?

Regards,
Andy

--
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] drivers: remove all i2c_set_clientdata(client, NULL)

2010-05-31 Thread Mark Brown
On Mon, May 31, 2010 at 02:55:48PM +0200, Wolfram Sang wrote:
 I2C-drivers can use the clientdata-pointer to point to private data. As I2C
 devices are not really unregistered, but merely detached from their driver, it
 used to be the drivers obligation to clear this pointer during remove() or a
 failed probe(). As a couple of drivers forgot to do this, it was agreed that 
 it
 was cleaner if the i2c-core does this clearance when appropriate, as there is
 no guarantee for the lifetime of the clientdata-pointer after remove() anyhow.
 This feature was added to the core with commit
 e4a7b9b04de15f6b63da5ccdd373ffa3057a3681 to fix the faulty drivers.
 
 As there is no need anymore to clear the clientdata-pointer, remove all 
 current
 occurrences in the drivers to simplify the code and prevent confusion.
 
 Signed-off-by: Wolfram Sang w.s...@pengutronix.de

Acked-by: Mark Brown broo...@opensource.wolfsonmicro.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


dereferencing uninitialized variable in anysee_probe()

2010-05-31 Thread Dan Carpenter
Hi I'm going through some smatch stuff and I had a question.

drivers/media/dvb/dvb-usb/anysee.c +482 anysee_probe(30)
warn: variable dereferenced before check 'd'

   466  ret = dvb_usb_device_init(intf, anysee_properties, 
THIS_MODULE, d,
   467  adapter_nr);

If we're in a cold state then dvb_usb_device_init() can return
zero but d is uninitialized here.

   468  if (ret)
   469  return ret;
   470
   471  alt = usb_altnum_to_altsetting(intf, 0);
   472  if (alt == NULL) {
   473  deb_info(%s: no alt found!\n, __func__);
   474  return -ENODEV;
   475  }
   476
   477  ret = usb_set_interface(d-udev, alt-desc.bInterfaceNumber,
^^^
That would lead to an oops here.

   478  alt-desc.bAlternateSetting);

I'm not sure how to fix this.

regards,
dan carpenter
--
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: dereferencing uninitialized variable in anysee_probe()

2010-05-31 Thread Antti Palosaari

Terve Dan,

On 05/31/2010 06:09 PM, Dan Carpenter wrote:

Hi I'm going through some smatch stuff and I had a question.

drivers/media/dvb/dvb-usb/anysee.c +482 anysee_probe(30)
warn: variable dereferenced before check 'd'

466  ret = dvb_usb_device_init(intf,anysee_properties, 
THIS_MODULE,d,
467  adapter_nr);

If we're in a cold state then dvb_usb_device_init() can return
zero but d is uninitialized here.


Anysee is always warm. Its USB-bridge, Cypress FX2, uploads firmware 
from eeprom and due to that it is never cold from the drivers point of view.


*cold means device needs firmware upload from driver
*warm means device is ready. Firmware is already uploaded or it is not 
needed at all.



468  if (ret)
469  return ret;
470
471  alt = usb_altnum_to_altsetting(intf, 0);
472  if (alt == NULL) {
473  deb_info(%s: no alt found!\n, __func__);
474  return -ENODEV;
475  }
476
477  ret = usb_set_interface(d-udev, alt-desc.bInterfaceNumber,
 ^^^
That would lead to an oops here.

478  alt-desc.bAlternateSetting);

I'm not sure how to fix this.


After that answer, do you still see problem?

best regards
Antti
--
http://palosaari.fi/
--
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] tm6000: rewrite copy_streams

2010-05-31 Thread stefan . ringel
From: Stefan Ringel stefan.rin...@arcor.de

fusion function copy streams and copy_packets to new function copy_streams.


Signed-off-by: Stefan Ringel stefan.rin...@arcor.de
---
 drivers/staging/tm6000/tm6000-usb-isoc.h |5 +-
 drivers/staging/tm6000/tm6000-video.c|  335 +++---
 2 files changed, 122 insertions(+), 218 deletions(-)

diff --git a/drivers/staging/tm6000/tm6000-usb-isoc.h 
b/drivers/staging/tm6000/tm6000-usb-isoc.h
index 5a5049a..138716a 100644
--- a/drivers/staging/tm6000/tm6000-usb-isoc.h
+++ b/drivers/staging/tm6000/tm6000-usb-isoc.h
@@ -39,7 +39,7 @@ struct usb_isoc_ctl {
int pos, size, pktsize;
 
/* Last field: ODD or EVEN? */
-   int field;
+   int vfield;
 
/* Stores incomplete commands */
u32 tmp_buf;
@@ -47,7 +47,4 @@ struct usb_isoc_ctl {
 
/* Stores already requested buffers */
struct tm6000_buffer*buf;
-
-   /* Stores the number of received fields */
-   int nfields;
 };
diff --git a/drivers/staging/tm6000/tm6000-video.c 
b/drivers/staging/tm6000/tm6000-video.c
index 2a61cc3..9746fe7 100644
--- a/drivers/staging/tm6000/tm6000-video.c
+++ b/drivers/staging/tm6000/tm6000-video.c
@@ -186,234 +186,145 @@ const char *tm6000_msg_type[] = {
 /*
  * Identify the tm5600/6000 buffer header type and properly handles
  */
-static int copy_packet(struct urb *urb, u32 header, u8 **ptr, u8 *endp,
-   u8 *out_p, struct tm6000_buffer **buf)
-{
-   struct tm6000_dmaqueue  *dma_q = urb-context;
-   struct tm6000_core *dev = container_of(dma_q, struct tm6000_core, vidq);
-   u8 c;
-   unsigned int cmd, cpysize, pktsize, size, field, block, line, pos = 0;
-   int rc = 0;
-   /* FIXME: move to tm6000-isoc */
-   static int last_line = -2, start_line = -2, last_field = -2;
-
-   /* FIXME: this is the hardcoded window size
-*/
-   unsigned int linewidth = (*buf)-vb.width  1;
-
-   if (!dev-isoc_ctl.cmd) {
-   c = (header  24)  0xff;
-
-   /* split the header fields */
-   size  = ((header  0x7e)  1);
-
-   if (size  0)
-   size -= 4;
-
-   block = (header  7)  0xf;
-   field = (header  11)  0x1;
-   line  = (header  12)  0x1ff;
-   cmd   = (header  21)  0x7;
-
-   /* Validates header fields */
-   if(size  TM6000_URB_MSG_LEN)
-   size = TM6000_URB_MSG_LEN;
-
-   if (cmd == TM6000_URB_MSG_VIDEO) {
-   if ((block+1)*TM6000_URB_MSG_LENlinewidth)
-   cmd = TM6000_URB_MSG_ERR;
-
-   /* FIXME: Mounts the image as field0+field1
-* It should, instead, check if the user selected
-* entrelaced or non-entrelaced mode
-*/
-   pos= ((line1)+field)*linewidth +
-   block*TM6000_URB_MSG_LEN;
-
-   /* Don't allow to write out of the buffer */
-   if (pos+TM6000_URB_MSG_LEN  (*buf)-vb.size) {
-   dprintk(dev, V4L2_DEBUG_ISOC,
-   ERR: size=%d, num=%d, line=%d, 
-   field=%d\n,
-   size, block, line, field);
-
-   cmd = TM6000_URB_MSG_ERR;
-   }
-   } else {
-   pos=0;
-   }
-
-   /* Prints debug info */
-   dprintk(dev, V4L2_DEBUG_ISOC, size=%d, num=%d, 
-line=%d, field=%d\n,
-   size, block, line, field);
-
-   if ((last_line!=line)(last_line+1!=line) 
-   (cmd != TM6000_URB_MSG_ERR) )  {
-   if (cmd != TM6000_URB_MSG_VIDEO)  {
-   dprintk(dev, V4L2_DEBUG_ISOC,  cmd=%d, 
-   size=%d, num=%d, line=%d, field=%d\n,
-   cmd, size, block, line, field);
-   }
-   if (start_line0)
-   start_line=last_line;
-   /* Prints debug info */
-   dprintk(dev, V4L2_DEBUG_ISOC, lines= %d-%d, 
-   field=%d\n,
-   start_line, last_line, field);
-
-   if ((start_line6  last_line200) 
-   (last_field != field) ) {
-
-   dev-isoc_ctl.nfields++;
-   if (dev-isoc_ctl.nfields=2) {
-   

question about v4l2_subdev

2010-05-31 Thread Sedji Gaouaou

Hi,

I am currently working on the atmel video driver, and I am facing a issue.
I have written a driver for the ov2640 omnivison sensor(enclosed). In 
the ov2640 driver I am using the v4l2_subdev API. The point is I don't 
how how can I access it in my video driver?
How to register the subdev struct in the atmel driver, so I could access 
the s_ftm function for instance.



Regards,
Sedji
/*
 * Omnivision ov2640 Camera driver
 *
 * Copyright (C) 2006 Atmel 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.
 */
#include linux/clk.h
#include linux/delay.h
#include linux/err.h
#include linux/i2c.h
#include linux/init.h
#include linux/kernel.h
#include linux/module.h
#include linux/slab.h
#include mach/gpio.h
#include linux/videodev2.h
#include media/v4l2-device.h
#include media/v4l2-chip-ident.h
#include media/v4l2-i2c-drv.h

#include media/atmel-isi.h
#include ov2640.h


static char mclk_name[32] = isi_clk;
module_param_string(mclk, mclk_name, sizeof(mclk_name), 0644);
MODULE_PARM_DESC(mclk, Name of the clock used as camera clock input);
MODULE_PARM_DESC(mclk, Name of mclk parent clock);

struct ov2640 {
struct v4l2_subdev  sd;
struct mutexmutex;
u8  miscel_ctrl;
u16 pll_avr_ctrl;
struct clk  *mclk;
struct i2c_client   client;
struct atmel_isi_camera cam;
};
#define to_ov2640(cam) container_of(cam, struct ov2640, cam)

/*
 * OV2640 register configuration for all combinations of pixel format and
 * image size(for the moment only qvga YUV...)
 */
static struct ov2640_reg dump_list[] = {
{ OV2640_REG_TERM, OV2640_VAL_TERM }
};

/* YUV configs */
const static struct ov2640_reg qqcif_yuv[] = { };
const static struct ov2640_reg qqvga_yuv[] = { };
const static struct ov2640_reg sqcif_yuv[] = { 
{ OV2640_REG_TERM, OV2640_VAL_TERM }
};

const static struct ov2640_reg qcif_yuv[] = {
{0xff, 0x01},{0x12, 0x80},{0xff, 0x00},{0x2c, 0xff},{0x2e, 0xdf},
{0xff, 0x01},{0x3c, 0x32},{0x11, 0x00},{0x09, 0x02},{0x04, 0x28},
{0x13, 0xe5},{0x14, 0x48},{0x2c, 0x0c},{0x33, 0x78},{0x3a, 0x33},
{0x3b, 0xfb},{0x3e, 0x00},{0x43, 0x11},{0x16, 0x10},{0x39, 0x02},
{0x35, 0x88},{0x22, 0x0a},{0x37, 0x40},{0x23, 0x00},{0x34, 0xa0},
{0x36, 0x1a},{0x06, 0x02},{0x07, 0xc0},{0x0d, 0xb7},{0x0e, 0x01},
{0x4c, 0x00},{0x4a, 0x81},{0x21, 0x99},{0x24, 0x3a},{0x25, 0x32},
{0x26, 0x82},{0x5c, 0x00},{0x63, 0x00},{0x5d, 0x55},{0x5e, 0x7d},
{0x5f, 0x7d},{0x60, 0x55},{0x61, 0x70},{0x62, 0x80},{0x7c, 0x05},
{0x20, 0x80},{0x28, 0x30},{0x6c, 0x00},{0x6d, 0x80},{0x6e, 0x00},
{0x70, 0x02},{0x71, 0x94},{0x73, 0xc1},{0x3d, 0x34},{0x5a, 0x57},
{0x4f, 0xbb},{0x50, 0x9c},{0xff, 0x00},{0xe5, 0x7f},{0xf9, 0xc0},
{0x41, 0x24},{0xe0, 0x14},{0x76, 0xff},{0x33, 0xa0},{0x42, 0x20},
{0x43, 0x18},{0x4c, 0x00},{0x87, 0xd0},{0x88, 0x3f},{0xd7, 0x03},
{0xd9, 0x10},{0xd3, 0x82},{0xc8, 0x08},{0xc9, 0x80},{0x7c, 0x00},
{0x7d, 0x02},{0x7c, 0x03},{0x7d, 0x48},{0x7d, 0x48},{0x7c, 0x08},
{0x7d, 0x20},{0x7d, 0x10},{0x7d, 0x0e},{0x90, 0x00},{0x91, 0x0e},
{0x91, 0x1a},{0x91, 0x31},{0x91, 0x5a},{0x91, 0x69},{0x91, 0x75},
{0x91, 0x7e},{0x91, 0x88},{0x91, 0x8f},{0x91, 0x96},{0x91, 0xa3},
{0x91, 0xaf},{0x91, 0xc4},{0x91, 0xd7},{0x91, 0xe8},{0x91, 0x20},
{0x92, 0x00},{0x93, 0x06},{0x93, 0xe3},{0x93, 0x05},{0x93, 0x05},
{0x93, 0x00},{0x93, 0x02},{0x93, 0x00},{0x93, 0x00},{0x93, 0x00},
{0x93, 0x00},{0x93, 0x00},{0x93, 0x00},{0x93, 0x00},{0x96, 0x00},
{0x97, 0x08},{0x97, 0x19},{0x97, 0x02},{0x97, 0x0c},{0x97, 0x24},
{0x97, 0x30},{0x97, 0x28},{0x97, 0x26},{0x97, 0x02},{0x97, 0x98},
{0x97, 0x80},{0x97, 0x00},{0x97, 0x00},{0xc3, 0xed},{0xa4, 0x00},
{0xa8, 0x00},{0xc5, 0x11},{0xc6, 0x51},{0xbf, 0x80},{0xc7, 0x10},
{0xb6, 0x66},{0xb8, 0xa5},{0xb7, 0x64},{0xb9, 0x7c},{0xb3, 0xaf},
{0xb4, 0x97},{0xb5, 0xff},{0xb0, 0xc5},{0xb1, 0x94},{0xb2, 0x0f},
{0xc4, 0x5c},{0xc0, 0xc8},{0xc1, 0x96},{0x86, 0x1d},{0x50, 0x00},
{0x51, 0x90},{0x52, 0x18},{0x53, 0x00},{0x54, 0x00},{0x55, 0x88},
{0x57, 0x00},{0x5a, 0x90},{0x5b, 0x18},{0x5c, 0x05},{0xc3, 0xed},
{0x7f, 0x00},{0xda, 0x04},{0xe5, 0x1f},{0xe1, 0x67},{0xe0, 0x00},
{0xdd, 0xff},{0x05, 0x00},{0xff, 0x01},{0x11, 0x01},

{0xff, 0x01},{0x12, 0x40},{0x17, 0x11},{0x18, 0x43},{0x19, 0x00},
{0x1a, 0x4b},{0x32, 0x09},{0x4f, 0xca},{0x50, 0xa8},{0x5a, 0x23},
{0x6d, 0x00},{0x3d, 0x38},

{0x39, 0x12},{0x35, 0xda},{0x22, 0x1a},{0x37, 0xc3},{0x23, 0x00},
{0x34, 0xc0},{0x36, 0x1a},{0x06, 0x88},{0x07, 0xc0},{0x0d, 0x87},
{0x0e, 0x41},{0x4c, 0x00},{0x48, 0x00},{0x5B, 0x00},{0x42, 0x03},

{0xff, 0x00},{0xe0, 0x04},{0xc0, 0x64},{0xc1, 0x4B},{0x8c, 0x00},
{0x86, 0x1D},{0xd3, 0x82},{0xe0, 0x00},

/* QCIF */
{0xff, 0x00},{0xc0, 0x64},{0xc1, 0x4B},{0x8c, 0x00},{0x86, 0x3D},
{0x50, 0x92},{0x51, 0xC8},{0x52, 0x96},{0x53, 0x00},{0x54, 0x00},
{0x55, 0x00},{0x5a, 0x2C},{0x5b, 0x24},{0x5c, 

nxt200x: Timeout waiting for nxt2004 to init.

2010-05-31 Thread Jonathan Isom
Just a quick question.  I have an Kworld atsc 110 and 115.
after 2 1/2 days I have 1624 dmesg Timeout waiting for nxt2004 to init lines.
My understanding is once something in inititialize you shouldn't need
to do it again.
is the a reason it needs to init  repeatedly?  The cards are
functioning fine with mythtv.

Thanks

Jonathan

Sample with timing
---8--
[211844.717390] nxt200x: Timeout waiting for nxt2004 to init.
[211864.496286] nxt200x: Timeout waiting for nxt2004 to init.
[211890.602194] nxt200x: Timeout waiting for nxt2004 to init.
[211904.394297] nxt200x: Timeout waiting for nxt2004 to init.
[211924.747026] nxt200x: Timeout waiting for nxt2004 to init.
[212302.550277] nxt200x: Timeout waiting for nxt2004 to init.
[212314.356295] nxt200x: Timeout waiting for nxt2004 to init.
[212335.245278] nxt200x: Timeout waiting for nxt2004 to init.
[212351.161394] nxt200x: Timeout waiting for nxt2004 to init.
[212365.098031] nxt200x: Timeout waiting for nxt2004 to init.
[212399.819294] nxt200x: Timeout waiting for nxt2004 to init.
[212435.198162] nxt200x: Timeout waiting for nxt2004 to init.
[212442.446145] nxt200x: Timeout waiting for nxt2004 to init.
[212446.674303] nxt200x: Timeout waiting for nxt2004 to init.
[212460.008295] nxt200x: Timeout waiting for nxt2004 to init.
[212461.655279] nxt200x: Timeout waiting for nxt2004 to init.
[212465.454277] nxt200x: Timeout waiting for nxt2004 to init.
[212498.875026] nxt200x: Timeout waiting for nxt2004 to init.
[212514.791276] nxt200x: Timeout waiting for nxt2004 to init.
[212520.409467] nxt200x: Timeout waiting for nxt2004 to init.
[212533.584468] nxt200x: Timeout waiting for nxt2004 to init.
[212537.880279] nxt200x: Timeout waiting for nxt2004 to init.
[213510.585294] nxt200x: Timeout waiting for nxt2004 to init.
[213526.196301] nxt200x: Timeout waiting for nxt2004 to init.
[213549.076155] nxt200x: Timeout waiting for nxt2004 to init.
[213553.143013] nxt200x: Timeout waiting for nxt2004 to init.
[213561.282205] nxt200x: Timeout waiting for nxt2004 to init.
[213612.284277] nxt200x: Timeout waiting for nxt2004 to init.
[213617.087032] nxt200x: Timeout waiting for nxt2004 to init.
[213624.669319] nxt200x: Timeout waiting for nxt2004 to init.
[213626.324344] nxt200x: Timeout waiting for nxt2004 to init.
[213720.884172] nxt200x: Timeout waiting for nxt2004 to init.
[213731.081026] nxt200x: Timeout waiting for nxt2004 to init.
[213754.500280] nxt200x: Timeout waiting for nxt2004 to init.
[213761.917152] nxt200x: Timeout waiting for nxt2004 to init.
[214210.566403] nxt200x: Timeout waiting for nxt2004 to init.
[214218.086204] nxt200x: Timeout waiting for nxt2004 to init.
[214226.801295] nxt200x: Timeout waiting for nxt2004 to init.
[214227.838212] nxt200x: Timeout waiting for nxt2004 to init.
[214247.973356] nxt200x: Timeout waiting for nxt2004 to init.
[214250.661033] nxt200x: Timeout waiting for nxt2004 to init.
[214271.082031] nxt200x: Timeout waiting for nxt2004 to init.
[214273.469366] nxt200x: Timeout waiting for nxt2004 to init.
[214281.378038] nxt200x: Timeout waiting for nxt2004 to init.
[214363.528204] nxt200x: Timeout waiting for nxt2004 to init.
[214375.779286] nxt200x: Timeout waiting for nxt2004 to init.
[214410.896042] nxt200x: Timeout waiting for nxt2004 to init.
[214450.769296] nxt200x: Timeout waiting for nxt2004 to init.
[214454.652042] nxt200x: Timeout waiting for nxt2004 to init.
[214457.722314] nxt200x: Timeout waiting for nxt2004 to init.
[214518.751148] nxt200x: Timeout waiting for nxt2004 to init.
[215357.898211] nxt200x: Timeout waiting for nxt2004 to init.
[215364.899033] nxt200x: Timeout waiting for nxt2004 to init.
[215370.457203] nxt200x: Timeout waiting for nxt2004 to init.
[215386.914171] nxt200x: Timeout waiting for nxt2004 to init.
[215392.677279] nxt200x: Timeout waiting for nxt2004 to init.
[215410.894040] nxt200x: Timeout waiting for nxt2004 to init.
[215420.185278] nxt200x: Timeout waiting for nxt2004 to init.
[215449.908211] nxt200x: Timeout waiting for nxt2004 to init.
[215464.256277] nxt200x: Timeout waiting for nxt2004 to init.
[215479.878277] nxt200x: Timeout waiting for nxt2004 to init.
[215496.286193] nxt200x: Timeout waiting for nxt2004 to init.
[215503.028286] nxt200x: Timeout waiting for nxt2004 to init.
[215514.881166] nxt200x: Timeout waiting for nxt2004 to init.
[215543.269221] nxt200x: Timeout waiting for nxt2004 to init.
[215561.433213] nxt200x: Timeout waiting for nxt2004 to init.
[215596.010294] nxt200x: Timeout waiting for nxt2004 to init.
[215641.442934] nxt200x: Timeout waiting for nxt2004 to init.
[215642.540277] nxt200x: Timeout waiting for nxt2004 to init.
[215643.524211] nxt200x: Timeout waiting for nxt2004 to init.
[215650.046294] nxt200x: Timeout waiting for nxt2004 to init.
--
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  

Re: fr-Nantes file outdated

2010-05-31 Thread Christoph Pfister
2010/5/28 Charles landema...@gmail.com:
 Hello,

 I found out that frequencies listed here are outdated:
 http://linuxtv.org/hg/dvb-apps/file/7de0663facd9/util/scan/dvb-t/fr-Nantes

What about these ones:
http://linuxtv.org/hg/dvb-apps/file/tip/util/scan/dvb-t/fr-Nantes

 These are the new frequencies:

 538167000
 682167000
 546167000
 738167000
 490167000
 658167000

 Sincerely,

 Charles.

Christoph
--
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: fr-Nantes file outdated

2010-05-31 Thread Charles
French TV Arte keeps broadcasting announcements claiming that on
June 6th, its multiplexer will change and to keep watching Arte, we'll
have to rescan channels.
Stay tuned!

Charles.



2010/5/31 Christoph Pfister christophpfis...@gmail.com:
 2010/5/28 Charles landema...@gmail.com:
 Hello,

 I found out that frequencies listed here are outdated:
 http://linuxtv.org/hg/dvb-apps/file/7de0663facd9/util/scan/dvb-t/fr-Nantes

 What about these ones:
 http://linuxtv.org/hg/dvb-apps/file/tip/util/scan/dvb-t/fr-Nantes

 These are the new frequencies:

 538167000
 682167000
 546167000
 738167000
 490167000
 658167000

 Sincerely,

 Charles.

 Christoph

--
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: question about v4l2_subdev

2010-05-31 Thread Andy Walls
On Mon, 2010-05-31 at 17:38 +0200, Sedji Gaouaou wrote:
 Hi,
 
 I am currently working on the atmel video driver, and I am facing a issue.
 I have written a driver for the ov2640 omnivison sensor(enclosed). In 
 the ov2640 driver I am using the v4l2_subdev API. The point is I don't 
 how how can I access it in my video driver?
 How to register the subdev struct in the atmel driver, so I could access 
 the s_ftm function for instance.

That depends.  Is the atmel video driver instantiating a v4l_device for
itself, or is it using some frame work that instantiates one for it?


The details of using the v4l2 framework are in

linux/Documentation/video4linux/v4l2-framework.txt

but, typically

1. Something first should call v4l2_device_register() on a v4l2_device
object.  (Typically there is only one v4l2_device object per bridge
chip between the PCI, PCIe, or USB bus and the subdevices, even if that
bridge chip has more than one I2C master implementation.)

2. Then, for subdevices connected to the bridge chip via I2C, something
needs to call v4l2_i2c_new_subdev() with the v4l2_device pointer as one
of the arguments, to get back a v4l2_subdevice instance pointer.

3. After that, v4l2_subdev_call() with the v4l2_subdev pointer as one of
the arguments can be used to invoke the subdevice methods.

TV Video capture drivers do this work themselves.  Drivers using a
camera framework may have the framework doing some of the work for them.


Regards,
Andy


--
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-core multi-protocol decode and mceusb

2010-05-31 Thread Mauro Carvalho Chehab
Hi Andy,

Em 31-05-2010 09:15, Andy Walls escreveu:
 I've now got an ir-lirc-codec bridge passing data over to a completely
 unmodified lirc_dev, with the data then making its way out to the
 lircd userspace where its even getting properly decoded. I don't have
 the transmit side of things in ir-lirc-codec wired up just yet, but
 I'd like to submit what I've got (after some cleanup) tomorrow, and
 will then incrementally work on transmit. I'm pretty sure wiring up
 transmit is going to require some of the bits we'd be using for native
 transmit as well, so there may be some discussion required. Will give
 a look at setting enabled/disabled decoders tomorrow too, hopefully.
 
 
 Since you're looking at Tx, please take a look at the v4l2_subdev
 interface for ir devices.  See 
 
 linux/include/media/v4l2-subdev.h: struct v4l2_subdev_ir_ops 
 
 I was wondering how this interface could be modified to interface nicely
 to lirc (or I guess ir-lirc-codec) for transmit functionality.

 Right now, only the cx23885 driver uses it:
 
 linux/drivers/media/video/cx23885/cx23888-ir.[ch]
 
 I have the skeleton of transmit for the device implemented (it does need
 some fixing up).
 
 (The CX23888 hardware is nice in that it only deals with raw pulses so
 one can decode any protocol and transmit any protocols.  The hardware
 provides hardware counter/timers for measuring incoming pulses and
 sending outgoing pulses.)

This interface is bound to V4L needs. As the Remote Controller subsystem
is meant to support not only V4L or DVB IR's, but also other kinds of remote
controllers that aren't associated to media devices, it makes no sense on
binding TX to this interface. 

The biggest advantage of V4L subdev interface is that a command, like 
VIDIOC_S_STD
could be sent to several devices that may need to know what's the current 
standard,
in order to configure audio, video, etc. It also provides a nice way to access
devices on a device-internal bus. In the case of RC, I don't see any similar
need. So, IMO, the better is to use an in interface similar to RX for TX, e. g.,
something like:
rc_register_tx()
rc_unregister_tx()
rc_send_code()

Of course, inside the V4L drivers, it may actually make sense to keep using the 
v4l2-subdev if the IR is accessed, for example, via I2C bus.

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] drivers: remove all i2c_set_clientdata(client, NULL)

2010-05-31 Thread Dmitry Torokhov
Hi Wolfram,

On Mon, May 31, 2010 at 02:55:48PM +0200, Wolfram Sang wrote:
 I2C-drivers can use the clientdata-pointer to point to private data. As I2C
 devices are not really unregistered, but merely detached from their driver, it
 used to be the drivers obligation to clear this pointer during remove() or a
 failed probe(). As a couple of drivers forgot to do this, it was agreed that 
 it
 was cleaner if the i2c-core does this clearance when appropriate, as there is
 no guarantee for the lifetime of the clientdata-pointer after remove() anyhow.
 This feature was added to the core with commit
 e4a7b9b04de15f6b63da5ccdd373ffa3057a3681 to fix the faulty drivers.
 
 As there is no need anymore to clear the clientdata-pointer, remove all 
 current
 occurrences in the drivers to simplify the code and prevent confusion.
 
 Signed-off-by: Wolfram Sang w.s...@pengutronix.de
 Cc: Jean Delvare kh...@linux-fr.org
 ---
 
 Some more notes:
 
 I waited for rc1 as I knew there were some drivers/patches coming along which
 needed to be processed, too.
 
 I'd suggest that this goes via the i2c-tree, so we get rid of all occurences 
 at
 once.
 

Frankly I'd prefer taking input stuff through my tree with the goal of
.36 merge window just to minimize potential merge issues. This is a
simple cleanup patch that has no dependencies, so there is little gain
from doing it all in one go.

Thanks.

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


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

2010-05-31 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:Mon May 31 19:00:28 CEST 2010
path:http://www.linuxtv.org/hg/v4l-dvb
changeset:   14875:304cfde05b3f
git master:   f6760aa024199cfbce564311dc4bc4d47b6fb349
git media-master: 4fcfa8824391ef0f9cff82122067f31c6d920921
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-armv5: OK
linux-2.6.34-armv5: ERRORS
linux-2.6.35-rc1-armv5: ERRORS
linux-2.6.32.6-armv5-davinci: OK
linux-2.6.33-armv5-davinci: OK
linux-2.6.34-armv5-davinci: ERRORS
linux-2.6.35-rc1-armv5-davinci: ERRORS
linux-2.6.32.6-armv5-ixp: OK
linux-2.6.33-armv5-ixp: OK
linux-2.6.34-armv5-ixp: ERRORS
linux-2.6.35-rc1-armv5-ixp: ERRORS
linux-2.6.32.6-armv5-omap2: OK
linux-2.6.33-armv5-omap2: OK
linux-2.6.34-armv5-omap2: ERRORS
linux-2.6.35-rc1-armv5-omap2: ERRORS
linux-2.6.22.19-i686: ERRORS
linux-2.6.23.17-i686: ERRORS
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: OK
linux-2.6.32.6-i686: OK
linux-2.6.33-i686: OK
linux-2.6.34-i686: ERRORS
linux-2.6.35-rc1-i686: ERRORS
linux-2.6.32.6-m32r: OK
linux-2.6.33-m32r: OK
linux-2.6.34-m32r: ERRORS
linux-2.6.35-rc1-m32r: ERRORS
linux-2.6.32.6-mips: OK
linux-2.6.33-mips: OK
linux-2.6.34-mips: ERRORS
linux-2.6.35-rc1-mips: ERRORS
linux-2.6.32.6-powerpc64: OK
linux-2.6.33-powerpc64: OK
linux-2.6.34-powerpc64: ERRORS
linux-2.6.35-rc1-powerpc64: ERRORS
linux-2.6.22.19-x86_64: ERRORS
linux-2.6.23.17-x86_64: ERRORS
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: OK
linux-2.6.32.6-x86_64: OK
linux-2.6.33-x86_64: OK
linux-2.6.34-x86_64: ERRORS
linux-2.6.35-rc1-x86_64: ERRORS
linux-git-armv5: WARNINGS
linux-git-armv5-davinci: WARNINGS
linux-git-armv5-ixp: WARNINGS
linux-git-armv5-omap2: WARNINGS
linux-git-i686: WARNINGS
linux-git-m32r: OK
linux-git-mips: OK
linux-git-powerpc64: OK
linux-git-x86_64: WARNINGS
spec: ERRORS
spec-git: OK
sparse: 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: ERRORS
linux-2.6.20.21-i686: ERRORS
linux-2.6.21.7-i686: ERRORS
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: ERRORS
linux-2.6.20.21-x86_64: ERRORS
linux-2.6.21.7-x86_64: ERRORS

Detailed results are available here:

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

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Monday.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: dereferencing uninitialized variable in anysee_probe()

2010-05-31 Thread Dan Carpenter
On Mon, May 31, 2010 at 06:22:49PM +0300, Antti Palosaari wrote:
 Terve Dan,

 On 05/31/2010 06:09 PM, Dan Carpenter wrote:
 Hi I'm going through some smatch stuff and I had a question.

 drivers/media/dvb/dvb-usb/anysee.c +482 anysee_probe(30)
  warn: variable dereferenced before check 'd'

 466  ret = dvb_usb_device_init(intf,anysee_properties, 
 THIS_MODULE,d,
 467  adapter_nr);

  If we're in a cold state then dvb_usb_device_init() can return
  zero but d is uninitialized here.

 Anysee is always warm. Its USB-bridge, Cypress FX2, uploads firmware  
 from eeprom and due to that it is never cold from the drivers point of 
 view.

 *cold means device needs firmware upload from driver
 *warm means device is ready. Firmware is already uploaded or it is not  
 needed at all.


Wow.  Thanks for the quick response.  I was just auditing the code and
noticed some extra null checking which made me confused.  I'll send a
patch for that.

regards,
dan carpenter
--
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/3] Gspca-gl860 driver update

2010-05-31 Thread Theodore Kilgore


On Mon, 31 May 2010, Jean-Francois Moine wrote:

 On Mon, 31 May 2010 00:24:21 +0200
 Olivier Lorin olori...@gmail.com wrote:
 
  - Change of rounded image resolutions to the real ones
  - Fix for an irrelevant OV9655 image resolution identifier name
  - Extra spaces to align some variable names and a defined value
 
 Hi Olivier,
 
 If I can anticipate, the changes are too different. You should split
 this patch.
 
 Best regards.
 
 -- 
 Ken ar c'hentañ   | ** Breizh ha Linux atav! **
 Jef   |   http://moinejf.free.fr/
 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 

Congratulations. Nice.

Theodore Kilgore

[patch] V4L/DVB: remove unneeded null check in anysee_probe()

2010-05-31 Thread Dan Carpenter
Smatch complained because d is dereferenced first and then checked for
null later .  The only code path where d could be a invalid pointer is
if this is a cold device in dvb_usb_device_init().  I consulted Antti 
Palosaari and he explained that anysee is always a warm device.

I have added a comment and removed the unneeded null check.

Signed-off-by: Dan Carpenter erro...@gmail.com

diff --git a/drivers/media/dvb/dvb-usb/anysee.c 
b/drivers/media/dvb/dvb-usb/anysee.c
index faca1ad..aa5c7d5 100644
--- a/drivers/media/dvb/dvb-usb/anysee.c
+++ b/drivers/media/dvb/dvb-usb/anysee.c
@@ -463,6 +463,11 @@ static int anysee_probe(struct usb_interface *intf,
if (intf-num_altsetting  1)
return -ENODEV;
 
+   /*
+* Anysee is always warm (its USB-bridge, Cypress FX2, uploads
+* firmware from eeprom).  If dvb_usb_device_init() succeeds that
+* means d is a valid pointer.
+*/
ret = dvb_usb_device_init(intf, anysee_properties, THIS_MODULE, d,
adapter_nr);
if (ret)
@@ -479,10 +484,7 @@ static int anysee_probe(struct usb_interface *intf,
if (ret)
return ret;
 
-   if (d)
-   ret = anysee_init(d);
-
-   return ret;
+   return anysee_init(d);
 }
 
 static struct usb_device_id anysee_table[] = {
--
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: 2.6.35-rc1 fails to boot: OOPS in ir_register_class

2010-05-31 Thread Andy Walls
On Mon, 2010-05-31 at 07:25 +0200, Torsten Kaiser wrote:
 Trying to boot the new -rc1 it fails with the following OOPS:
 [3.454804] IR NEC protocol handler initialized
 [3.461310] IR RC5(x) protocol handler initialized
 [3.467865] IR RC6 protocol handler initialized
 [3.474070] IR JVC protocol handler initialized
 [3.480257] IR Sony protocol handler initialized
 [3.480259] Linux video capture interface: v2.00
 [3.480722] bttv: driver version 0.9.18 loaded
 [3.480724] bttv: using 8 buffers with 2080k (520 pages) each for capture
 [3.507950] bttv: Bt8xx card found (0).
 [3.513845] ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 19
 [3.521339] bttv :05:06.0: PCI INT A - Link[LNKC] - GSI 19
 (level, low) - IRQ 19
 [3.531039] bttv0: Bt878 (rev 17) at :05:06.0, irq: 19,
 latency: 64, mmio: 0xeefff000
 [3.541062] bttv0: detected: Hauppauge WinTV [card=10], PCI
 subsystem ID is 0070:13eb
 [3.550946] bttv0: using: Hauppauge (bt878) [card=10,autodetected]
 [3.561433] bttv0: Hauppauge/Voodoo msp34xx: reset line init [5]
 [3.593765] usb 2-6: new low speed USB device using ohci_hcd and address 2
 [3.599016] tveeprom 4-0050: Hauppauge model 61344, rev D421, serial# 
 3902813
 [3.599018] tveeprom 4-0050: tuner model is Philips FM1216 (idx 21, type 5)
 [3.599021] tveeprom 4-0050: TV standards PAL(B/G) (eeprom 0x04)
 [3.599022] tveeprom 4-0050: audio processor is MSP3415 (idx 6)
 [3.599024] tveeprom 4-0050: has radio
 [3.599025] bttv0: Hauppauge eeprom indicates model#61344
 [3.599027] bttv0: tuner type=5
 [3.609618] msp3400 4-0040: MSP3415D-B3 found @ 0x80 (bt878 #0 [sw])
 [3.609620] msp3400 4-0040: msp3400 supports nicam, mode is autodetect
 [3.621863] tuner 4-0061: chip found @ 0xc2 (bt878 #0 [sw])
 [3.622168] tuner-simple 4-0061: creating new instance
 [3.622170] tuner-simple 4-0061: type set to 5 (Philips PAL_BG
 (FI1216 and compatibles))
 [3.622882] bttv0: registered device video0
 [3.622940] bttv0: registered device vbi0
 [3.622997] bttv0: registered device radio0
 [3.632337] bttv0: PLL: 28636363 = 35468950 .. ok
 [3.683096] Registered IR keymap rc-rc5-tv
 [3.683110] BUG: unable to handle kernel NULL pointer dereference at (null)
 [3.683113] IP: [813ebe79] ir_register_class+0x59/0x160
 [3.683122] PGD 0
 [3.683124] Oops:  [#1] SMP
 [3.683125] last sysfs file:
 [3.683127] CPU 2
 [3.683129] Modules linked in:
 [3.683130]
 [3.683133] Pid: 1, comm: swapper Not tainted 2.6.35-rc1 #1 KFN5-D
 SLI/KFN5-D SLI
 [3.683135] RIP: 0010:[813ebe79]  [813ebe79]
 ir_register_class+0x59/0x160
 [3.683139] RSP: 0018:88011ff09cd0  EFLAGS: 00010246
 [3.683141] RAX:  RBX: 88011f3c1a00 RCX: 
 81a5baa0
 [3.683142] RDX:  RSI: 817d24f0 RDI: 
 88011f3c1a00
 [3.683144] RBP:  R08:  R09: 
 
 [3.683146] R10:  R11: 0021 R12: 
 817d6960
 [3.683147] R13: 88011f223000 R14: 88011f3c1a00 R15: 
 88011f3c1b40
 [3.683150] FS:  010f8870() GS:88008020()
 knlGS:
 [3.683151] CS:  0010 DS:  ES:  CR0: 8005003b
 [3.683153] CR2:  CR3: 01a05000 CR4: 
 06e0
 [3.683155] DR0:  DR1:  DR2: 
 
 [3.683157] DR3:  DR6: 0ff0 DR7: 
 0400
 [3.683159] Process swapper (pid: 1, threadinfo 88011ff08000,
 task 88007ff48000)
 [3.683160] Stack:
 [3.683162]  88011f223000 81a5ab30 88011f223000
 817d6960
 [3.683164] 0 0021 813eb90a 88010028
 817d240e
 [3.683166] 0 88011f3c1b68 0282 8800070b54e0
 88011f35f100
 [3.683169] Call Trace:
 [3.683174]  [813eb90a] ? __ir_input_register+0x2ba/0x350
 [3.683178]  [8141730a] ? ir_probe+0x36a/0x4f0
 [3.683181]  [81416fa0] ? ir_probe+0x0/0x4f0
 [3.683185]  [813d9bca] ? i2c_device_probe+0xea/0x120
 [3.683188]  [813367aa] ? driver_sysfs_add+0x5a/0x80
 [3.683190]  [813368d3] ? driver_probe_device+0x83/0x190
 [3.683193]  [813d9c54] ? i2c_device_match+0x54/0x70
 [3.683195]  [81336d03] ? __driver_attach+0x93/0xa0
 [3.683197]  [81336c70] ? __driver_attach+0x0/0xa0
 [3.683201]  [81335bf8] ? bus_for_each_dev+0x58/0x80
 [3.683203]  [81335ea0] ? bus_add_driver+0xb0/0x250
 [3.683206]  [81336e4a] ? driver_register+0x6a/0x130
 [3.683209]  [812124a0] ? __pci_register_driver+0x80/0xc0
 [3.683212]  [813daa30] ? i2c_register_driver+0x30/0xb0
 [3.683217]  [81ae990d] ? bttv_init_module+0x0/0xde
 [

Re: ir-core multi-protocol decode and mceusb

2010-05-31 Thread Andy Walls
On Mon, 2010-05-31 at 16:06 -0300, Mauro Carvalho Chehab wrote:
 Hi Andy,
 
 Em 31-05-2010 09:15, Andy Walls escreveu:
  I've now got an ir-lirc-codec bridge passing data over to a completely
  unmodified lirc_dev, with the data then making its way out to the
  lircd userspace where its even getting properly decoded. I don't have
  the transmit side of things in ir-lirc-codec wired up just yet, but
  I'd like to submit what I've got (after some cleanup) tomorrow, and
  will then incrementally work on transmit. I'm pretty sure wiring up
  transmit is going to require some of the bits we'd be using for native
  transmit as well, so there may be some discussion required. Will give
  a look at setting enabled/disabled decoders tomorrow too, hopefully.
  
  
  Since you're looking at Tx, please take a look at the v4l2_subdev
  interface for ir devices.  See 
  
  linux/include/media/v4l2-subdev.h: struct v4l2_subdev_ir_ops 
  
  I was wondering how this interface could be modified to interface nicely
  to lirc (or I guess ir-lirc-codec) for transmit functionality.
 
  Right now, only the cx23885 driver uses it:
  
  linux/drivers/media/video/cx23885/cx23888-ir.[ch]
  
  I have the skeleton of transmit for the device implemented (it does need
  some fixing up).
  
  (The CX23888 hardware is nice in that it only deals with raw pulses so
  one can decode any protocol and transmit any protocols.  The hardware
  provides hardware counter/timers for measuring incoming pulses and
  sending outgoing pulses.)
 
 This interface is bound to V4L needs. As the Remote Controller subsystem
 is meant to support not only V4L or DVB IR's, but also other kinds of remote
 controllers that aren't associated to media devices, it makes no sense on
 binding TX to this interface. 
 
 The biggest advantage of V4L subdev interface is that a command, like 
 VIDIOC_S_STD
 could be sent to several devices that may need to know what's the current 
 standard,
 in order to configure audio, video, etc. It also provides a nice way to access
 devices on a device-internal bus. In the case of RC, I don't see any similar
 need. So, IMO, the better is to use an in interface similar to RX for TX, e. 
 g.,
 something like:
   rc_register_tx()
   rc_unregister_tx()
   rc_send_code()

Right, I agree.  The v4l2_subdev ir_ops is a detail hidden by the bridge
driver and the bridge driver needs to deal with that.  A registration
process seems to be the proper way to do things.

BTW, maybe

rc_set_tx_parameters()

is needed as well to set up the parameters for the transmitter.

I haven't looked very hard at rc_register_rx() and related functions so
I will soon.  

Regards,
Andy

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


Kaffeine 1.0 released

2010-05-31 Thread Christoph Pfister
See the announcement at http://kaffeine.kde.org/?q=node/27

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


Soc-camera and 2.6.33

2010-05-31 Thread Robert Jarzmik

I tried to upgrade from 2.6.30 to 2.6.33 and verify my board (ie. the mt9m111
sensor with pxa_camera host).

I'm a bit surprised it didn't work. I dig just a bit, and found that :
 - in soc_camera_init_i2c(), the following call fails
subdev = v4l2_i2c_new_subdev_board(ici-v4l2_dev, adap,
icl-module_name, icl-board_info, NULL);
   I have subdev = NULL.

 - as a result, I'm getting that kind of log :
 camera 0-0: Probing 0-0
 pxa27x-camera pxa27x-camera.0: Registered platform device at c3010900 data 
c03f0c24
 pxa27x-camera pxa27x-camera.0: PXA Camera driver attached to camera 0
 RJK: subdev=NULL, module=mt9m111
 pxa27x-camera pxa27x-camera.0: PXA Camera driver detached from camera 0
 camera: probe of 0-0 failed with error -12

 - if I try 2.6.34, I have no error report, and mt9m111 driver is not probed
   either.

Is there an explanation as to why I have this regression ? Is something to be
done with the v4l2 migration ?

Cheers.

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


Re: [PATCH] drivers: remove all i2c_set_clientdata(client, NULL)

2010-05-31 Thread Jean Delvare
Hi Dmitry,

On Mon, 31 May 2010 12:09:12 -0700, Dmitry Torokhov wrote:
 Frankly I'd prefer taking input stuff through my tree with the goal of
 .36 merge window just to minimize potential merge issues. This is a
 simple cleanup patch that has no dependencies, so there is little gain
 from doing it all in one go.

If I take the patch in my i2c tree, the aim is to merge it upstream
immediately, so merge issues won't exist.

-- 
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: ir-core multi-protocol decode and mceusb

2010-05-31 Thread Mauro Carvalho Chehab
Em 31-05-2010 16:38, Andy Walls escreveu:
 On Mon, 2010-05-31 at 16:06 -0300, Mauro Carvalho Chehab wrote:
 Hi Andy,

 Em 31-05-2010 09:15, Andy Walls escreveu:
 I've now got an ir-lirc-codec bridge passing data over to a completely
 unmodified lirc_dev, with the data then making its way out to the
 lircd userspace where its even getting properly decoded. I don't have
 the transmit side of things in ir-lirc-codec wired up just yet, but
 I'd like to submit what I've got (after some cleanup) tomorrow, and
 will then incrementally work on transmit. I'm pretty sure wiring up
 transmit is going to require some of the bits we'd be using for native
 transmit as well, so there may be some discussion required. Will give
 a look at setting enabled/disabled decoders tomorrow too, hopefully.


 Since you're looking at Tx, please take a look at the v4l2_subdev
 interface for ir devices.  See 

 linux/include/media/v4l2-subdev.h: struct v4l2_subdev_ir_ops 

 I was wondering how this interface could be modified to interface nicely
 to lirc (or I guess ir-lirc-codec) for transmit functionality.

 Right now, only the cx23885 driver uses it:

 linux/drivers/media/video/cx23885/cx23888-ir.[ch]

 I have the skeleton of transmit for the device implemented (it does need
 some fixing up).

 (The CX23888 hardware is nice in that it only deals with raw pulses so
 one can decode any protocol and transmit any protocols.  The hardware
 provides hardware counter/timers for measuring incoming pulses and
 sending outgoing pulses.)

 This interface is bound to V4L needs. As the Remote Controller subsystem
 is meant to support not only V4L or DVB IR's, but also other kinds of remote
 controllers that aren't associated to media devices, it makes no sense on
 binding TX to this interface. 

 The biggest advantage of V4L subdev interface is that a command, like 
 VIDIOC_S_STD
 could be sent to several devices that may need to know what's the current 
 standard,
 in order to configure audio, video, etc. It also provides a nice way to 
 access
 devices on a device-internal bus. In the case of RC, I don't see any similar
 need. So, IMO, the better is to use an in interface similar to RX for TX, e. 
 g.,
 something like:
  rc_register_tx()
  rc_unregister_tx()
  rc_send_code()
 
 Right, I agree.  The v4l2_subdev ir_ops is a detail hidden by the bridge
 driver and the bridge driver needs to deal with that.  A registration
 process seems to be the proper way to do things.
 
 BTW, maybe
 
   rc_set_tx_parameters()
 
 is needed as well to set up the parameters for the transmitter.
 
 I haven't looked very hard at rc_register_rx() and related functions so
 I will soon.  

They are declared at include/media/ir-core.h. The actual name is 
ir_input_register().

The RX parameters are configured at the IR structs, before calling the function.

I may be wrong (since we didn't write any TX support), but I think that a
rc_set_tx_parameters() wouldn't be necessary, as I don't see why the driver will
change the parameters after registering, and without any userspace request.

If we consider that some userspace sysfs nodes will allow changing some 
parameters,
then the better is to have a callback function call, passed via the registering 
function,
that will allow calling a function inside the driver to change the TX 
parameters.

For example, something like:

struct rc_tx_props {
...
int (*change_protocol)(...);
...
};


rc_register_tx(..., struct rc_tx_props *props)


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: 2.6.35-rc1 fails to boot: OOPS in ir_register_class

2010-05-31 Thread Mauro Carvalho Chehab
Em 31-05-2010 16:31, Andy Walls escreveu:
 On Mon, 2010-05-31 at 07:25 +0200, Torsten Kaiser wrote:
 Trying to boot the new -rc1 it fails with the following OOPS:
 [3.454804] IR NEC protocol handler initialized
 [3.461310] IR RC5(x) protocol handler initialized
 [3.467865] IR RC6 protocol handler initialized
 [3.474070] IR JVC protocol handler initialized
 [3.480257] IR Sony protocol handler initialized
 [3.480259] Linux video capture interface: v2.00
 [3.480722] bttv: driver version 0.9.18 loaded
 [3.480724] bttv: using 8 buffers with 2080k (520 pages) each for capture
 [3.507950] bttv: Bt8xx card found (0).
 [3.513845] ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 19
 [3.521339] bttv :05:06.0: PCI INT A - Link[LNKC] - GSI 19
 (level, low) - IRQ 19
 [3.531039] bttv0: Bt878 (rev 17) at :05:06.0, irq: 19,
 latency: 64, mmio: 0xeefff000
 [3.541062] bttv0: detected: Hauppauge WinTV [card=10], PCI
 subsystem ID is 0070:13eb
 [3.550946] bttv0: using: Hauppauge (bt878) [card=10,autodetected]
 [3.561433] bttv0: Hauppauge/Voodoo msp34xx: reset line init [5]
 [3.593765] usb 2-6: new low speed USB device using ohci_hcd and address 2
 [3.599016] tveeprom 4-0050: Hauppauge model 61344, rev D421, serial# 
 3902813
 [3.599018] tveeprom 4-0050: tuner model is Philips FM1216 (idx 21, type 
 5)
 [3.599021] tveeprom 4-0050: TV standards PAL(B/G) (eeprom 0x04)
 [3.599022] tveeprom 4-0050: audio processor is MSP3415 (idx 6)
 [3.599024] tveeprom 4-0050: has radio
 [3.599025] bttv0: Hauppauge eeprom indicates model#61344
 [3.599027] bttv0: tuner type=5
 [3.609618] msp3400 4-0040: MSP3415D-B3 found @ 0x80 (bt878 #0 [sw])
 [3.609620] msp3400 4-0040: msp3400 supports nicam, mode is autodetect
 [3.621863] tuner 4-0061: chip found @ 0xc2 (bt878 #0 [sw])
 [3.622168] tuner-simple 4-0061: creating new instance
 [3.622170] tuner-simple 4-0061: type set to 5 (Philips PAL_BG
 (FI1216 and compatibles))
 [3.622882] bttv0: registered device video0
 [3.622940] bttv0: registered device vbi0
 [3.622997] bttv0: registered device radio0
 [3.632337] bttv0: PLL: 28636363 = 35468950 .. ok
 [3.683096] Registered IR keymap rc-rc5-tv
 [3.683110] BUG: unable to handle kernel NULL pointer dereference at 
 (null)
 [3.683113] IP: [813ebe79] ir_register_class+0x59/0x160
 [3.683122] PGD 0
 [3.683124] Oops:  [#1] SMP
 [3.683125] last sysfs file:
 [3.683127] CPU 2
 [3.683129] Modules linked in:
 [3.683130]
 [3.683133] Pid: 1, comm: swapper Not tainted 2.6.35-rc1 #1 KFN5-D
 SLI/KFN5-D SLI
 [3.683135] RIP: 0010:[813ebe79]  [813ebe79]
 ir_register_class+0x59/0x160
 [3.683139] RSP: 0018:88011ff09cd0  EFLAGS: 00010246
 [3.683141] RAX:  RBX: 88011f3c1a00 RCX: 
 81a5baa0
 [3.683142] RDX:  RSI: 817d24f0 RDI: 
 88011f3c1a00
 [3.683144] RBP:  R08:  R09: 
 
 [3.683146] R10:  R11: 0021 R12: 
 817d6960
 [3.683147] R13: 88011f223000 R14: 88011f3c1a00 R15: 
 88011f3c1b40
 [3.683150] FS:  010f8870() GS:88008020()
 knlGS:
 [3.683151] CS:  0010 DS:  ES:  CR0: 8005003b
 [3.683153] CR2:  CR3: 01a05000 CR4: 
 06e0
 [3.683155] DR0:  DR1:  DR2: 
 
 [3.683157] DR3:  DR6: 0ff0 DR7: 
 0400
 [3.683159] Process swapper (pid: 1, threadinfo 88011ff08000,
 task 88007ff48000)
 [3.683160] Stack:
 [3.683162]  88011f223000 81a5ab30 88011f223000
 817d6960
 [3.683164] 0 0021 813eb90a 88010028
 817d240e
 [3.683166] 0 88011f3c1b68 0282 8800070b54e0
 88011f35f100
 [3.683169] Call Trace:
 [3.683174]  [813eb90a] ? __ir_input_register+0x2ba/0x350
 [3.683178]  [8141730a] ? ir_probe+0x36a/0x4f0
 [3.683181]  [81416fa0] ? ir_probe+0x0/0x4f0
 [3.683185]  [813d9bca] ? i2c_device_probe+0xea/0x120
 [3.683188]  [813367aa] ? driver_sysfs_add+0x5a/0x80
 [3.683190]  [813368d3] ? driver_probe_device+0x83/0x190
 [3.683193]  [813d9c54] ? i2c_device_match+0x54/0x70
 [3.683195]  [81336d03] ? __driver_attach+0x93/0xa0
 [3.683197]  [81336c70] ? __driver_attach+0x0/0xa0
 [3.683201]  [81335bf8] ? bus_for_each_dev+0x58/0x80
 [3.683203]  [81335ea0] ? bus_add_driver+0xb0/0x250
 [3.683206]  [81336e4a] ? driver_register+0x6a/0x130
 [3.683209]  [812124a0] ? __pci_register_driver+0x80/0xc0
 [3.683212]  [813daa30] ? i2c_register_driver+0x30/0xb0
 [3.683217]  

Re: ir-core multi-protocol decode and mceusb

2010-05-31 Thread Andy Walls
On Mon, 2010-05-31 at 17:58 -0300, Mauro Carvalho Chehab wrote:
 Em 31-05-2010 16:38, Andy Walls escreveu:
  On Mon, 2010-05-31 at 16:06 -0300, Mauro Carvalho Chehab wrote:
  Hi Andy,
 
  Em 31-05-2010 09:15, Andy Walls escreveu:
  I've now got an ir-lirc-codec bridge passing data over to a completely
  unmodified lirc_dev, with the data then making its way out to the
  lircd userspace where its even getting properly decoded. I don't have
  the transmit side of things in ir-lirc-codec wired up just yet, but
  I'd like to submit what I've got (after some cleanup) tomorrow, and
  will then incrementally work on transmit. I'm pretty sure wiring up
  transmit is going to require some of the bits we'd be using for native
  transmit as well, so there may be some discussion required. Will give
  a look at setting enabled/disabled decoders tomorrow too, hopefully.
 
 
  Since you're looking at Tx, please take a look at the v4l2_subdev
  interface for ir devices.  See 
 
  linux/include/media/v4l2-subdev.h: struct v4l2_subdev_ir_ops 
 
  I was wondering how this interface could be modified to interface nicely
  to lirc (or I guess ir-lirc-codec) for transmit functionality.
 
  Right now, only the cx23885 driver uses it:
 
  linux/drivers/media/video/cx23885/cx23888-ir.[ch]
 
  I have the skeleton of transmit for the device implemented (it does need
  some fixing up).
 
  (The CX23888 hardware is nice in that it only deals with raw pulses so
  one can decode any protocol and transmit any protocols.  The hardware
  provides hardware counter/timers for measuring incoming pulses and
  sending outgoing pulses.)
 
  This interface is bound to V4L needs. As the Remote Controller subsystem
  is meant to support not only V4L or DVB IR's, but also other kinds of 
  remote
  controllers that aren't associated to media devices, it makes no sense on
  binding TX to this interface. 
 
  The biggest advantage of V4L subdev interface is that a command, like 
  VIDIOC_S_STD
  could be sent to several devices that may need to know what's the current 
  standard,
  in order to configure audio, video, etc. It also provides a nice way to 
  access
  devices on a device-internal bus. In the case of RC, I don't see any 
  similar
  need. So, IMO, the better is to use an in interface similar to RX for TX, 
  e. g.,
  something like:
 rc_register_tx()
 rc_unregister_tx()
 rc_send_code()
  
  Right, I agree.  The v4l2_subdev ir_ops is a detail hidden by the bridge
  driver and the bridge driver needs to deal with that.  A registration
  process seems to be the proper way to do things.
  
  BTW, maybe
  
  rc_set_tx_parameters()
  
  is needed as well to set up the parameters for the transmitter.
  
  I haven't looked very hard at rc_register_rx() and related functions so
  I will soon.  
 
 They are declared at include/media/ir-core.h. The actual name is 
 ir_input_register().
 
 The RX parameters are configured at the IR structs, before calling the 
 function.



 I may be wrong (since we didn't write any TX support), but I think that a
 rc_set_tx_parameters() wouldn't be necessary, as I don't see why the driver 
 will
 change the parameters after registering, and without any userspace request.

Yes, my intent was to handle a user space request to change the
transmitter setup parameters to handle the protocol.

I also don't want to worry about having to code in kernel parameter
tables for any bizzare protocol userspace may know about.


 If we consider that some userspace sysfs nodes will allow changing some 
 parameters,
 then the better is to have a callback function call, passed via the 
 registering function,
 that will allow calling a function inside the driver to change the TX 
 parameters.
 
 For example, something like:
 
 struct rc_tx_props {
 ...
   int (*change_protocol)(...);
 ...
 };
 
 
 rc_register_tx(..., struct rc_tx_props *props)

A callback is likely needed.  I'm not sure I would have chosen the name
change_protocol(), because transmitter parameters can be common between
protocols (at least RC-5 and RC-6 can be supported with one set of
parameters), or not match any existing in-kernel protocol.  As long as
it is flexible enough to change individual transmitter parameters
(modulated/baseband, carrier freq, duty cycle, etc.) it will be fine.

Currently LIRC userspace changes Tx parameters using an ioctl().  It
asks the hardware to change transmitter parameters, because the current
model is that the transmitters don't need to know about protocols. (LIRC
userspace knows the parameters of the protocol it wants to use, so the
driver's don't have too).


I notice IR Rx also has a change_protocol() callback that is not
currently in use.  If sending raw pulses to userspace, it would be also
nice to expose that callback so userspace could set the receiver
parameters.


Regards,
Andy

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

Re: Soc-camera and 2.6.33

2010-05-31 Thread Guennadi Liakhovetski
Hi Robert

On Mon, 31 May 2010, Robert Jarzmik wrote:

 I tried to upgrade from 2.6.30 to 2.6.33 and verify my board (ie. the mt9m111
 sensor with pxa_camera host).
 
 I'm a bit surprised it didn't work. I dig just a bit, and found that :
  - in soc_camera_init_i2c(), the following call fails
   subdev = v4l2_i2c_new_subdev_board(ici-v4l2_dev, adap,
   icl-module_name, icl-board_info, NULL);
I have subdev = NULL.
 
  - as a result, I'm getting that kind of log :
  camera 0-0: Probing 0-0
  pxa27x-camera pxa27x-camera.0: Registered platform device at c3010900 
 data c03f0c24
  pxa27x-camera pxa27x-camera.0: PXA Camera driver attached to camera 0
  RJK: subdev=NULL, module=mt9m111
  pxa27x-camera pxa27x-camera.0: PXA Camera driver detached from camera 0
  camera: probe of 0-0 failed with error -12

a lot of things changed in and around soc-camera between 2.6.30 and 
.33... E.g., previously you could load driver modules in any order, it 
would work in any case. Now if you load your host driver (pxa) and your 
client driver is not there yet, it should be automatically loaded. 
However, if your user-space doesn't support this, it won't work. Can this 
be the reason gor your problem? Otherwise, I'd suspect a problem with your 
platform data (cf. other platforms), or, eventually with mt9m111.

  - if I try 2.6.34, I have no error report, and mt9m111 driver is not probed
either.
 
 Is there an explanation as to why I have this regression ? Is something to be
 done with the v4l2 migration ?

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] tm6000: rewrite copy_streams

2010-05-31 Thread Mauro Carvalho Chehab
Em 31-05-2010 12:25, stefan.rin...@arcor.de escreveu:
 From: Stefan Ringel stefan.rin...@arcor.de
 
 fusion function copy streams and copy_packets to new function copy_streams.


There's something wrong with this patch:

$ patch -p1 -i /tmp/tm6000\:\ rewrite\ copy_streams.eml -l
(Stripping trailing CRs from patch.)
patching file drivers/staging/tm6000/tm6000-usb-isoc.h
(Stripping trailing CRs from patch.)
patching file drivers/staging/tm6000/tm6000-video.c
Hunk #1 FAILED at 186.
Hunk #2 FAILED at 439.
Hunk #3 FAILED at 451.
3 out of 6 hunks FAILED -- saving rejects to file 
drivers/staging/tm6000/tm6000-video.c.rej

Please rebase it against git branch devel/for_v2.6.35 of my v4l-dvb.git tree.



 
 
 Signed-off-by: Stefan Ringel stefan.rin...@arcor.de
 ---
  drivers/staging/tm6000/tm6000-usb-isoc.h |5 +-
  drivers/staging/tm6000/tm6000-video.c|  335 
 +++---
  2 files changed, 122 insertions(+), 218 deletions(-)
 
 diff --git a/drivers/staging/tm6000/tm6000-usb-isoc.h 
 b/drivers/staging/tm6000/tm6000-usb-isoc.h
 index 5a5049a..138716a 100644
 --- a/drivers/staging/tm6000/tm6000-usb-isoc.h
 +++ b/drivers/staging/tm6000/tm6000-usb-isoc.h
 @@ -39,7 +39,7 @@ struct usb_isoc_ctl {
   int pos, size, pktsize;
  
   /* Last field: ODD or EVEN? */
 - int field;
 + int vfield;
  
   /* Stores incomplete commands */
   u32 tmp_buf;
 @@ -47,7 +47,4 @@ struct usb_isoc_ctl {
  
   /* Stores already requested buffers */
   struct tm6000_buffer*buf;
 -
 - /* Stores the number of received fields */
 - int nfields;
  };
 diff --git a/drivers/staging/tm6000/tm6000-video.c 
 b/drivers/staging/tm6000/tm6000-video.c
 index 2a61cc3..9746fe7 100644
 --- a/drivers/staging/tm6000/tm6000-video.c
 +++ b/drivers/staging/tm6000/tm6000-video.c
 @@ -186,234 +186,145 @@ const char *tm6000_msg_type[] = {
  /*
   * Identify the tm5600/6000 buffer header type and properly handles
   */
 -static int copy_packet(struct urb *urb, u32 header, u8 **ptr, u8 *endp,
 - u8 *out_p, struct tm6000_buffer **buf)
 -{
 - struct tm6000_dmaqueue  *dma_q = urb-context;
 - struct tm6000_core *dev = container_of(dma_q, struct tm6000_core, vidq);
 - u8 c;
 - unsigned int cmd, cpysize, pktsize, size, field, block, line, pos = 0;
 - int rc = 0;
 - /* FIXME: move to tm6000-isoc */
 - static int last_line = -2, start_line = -2, last_field = -2;
 -
 - /* FIXME: this is the hardcoded window size
 -  */
 - unsigned int linewidth = (*buf)-vb.width  1;
 -
 - if (!dev-isoc_ctl.cmd) {
 - c = (header  24)  0xff;
 -
 - /* split the header fields */
 - size  = ((header  0x7e)  1);
 -
 - if (size  0)
 - size -= 4;
 -
 - block = (header  7)  0xf;
 - field = (header  11)  0x1;
 - line  = (header  12)  0x1ff;
 - cmd   = (header  21)  0x7;
 -
 - /* Validates header fields */
 - if(size  TM6000_URB_MSG_LEN)
 - size = TM6000_URB_MSG_LEN;
 -
 - if (cmd == TM6000_URB_MSG_VIDEO) {
 - if ((block+1)*TM6000_URB_MSG_LENlinewidth)
 - cmd = TM6000_URB_MSG_ERR;
 -
 - /* FIXME: Mounts the image as field0+field1
 -  * It should, instead, check if the user selected
 -  * entrelaced or non-entrelaced mode
 -  */
 - pos= ((line1)+field)*linewidth +
 - block*TM6000_URB_MSG_LEN;
 -
 - /* Don't allow to write out of the buffer */
 - if (pos+TM6000_URB_MSG_LEN  (*buf)-vb.size) {
 - dprintk(dev, V4L2_DEBUG_ISOC,
 - ERR: size=%d, num=%d, line=%d, 
 - field=%d\n,
 - size, block, line, field);
 -
 - cmd = TM6000_URB_MSG_ERR;
 - }
 - } else {
 - pos=0;
 - }
 -
 - /* Prints debug info */
 - dprintk(dev, V4L2_DEBUG_ISOC, size=%d, num=%d, 
 -  line=%d, field=%d\n,
 - size, block, line, field);
 -
 - if ((last_line!=line)(last_line+1!=line) 
 - (cmd != TM6000_URB_MSG_ERR) )  {
 - if (cmd != TM6000_URB_MSG_VIDEO)  {
 - dprintk(dev, V4L2_DEBUG_ISOC,  cmd=%d, 
 - size=%d, num=%d, line=%d, field=%d\n,
 - cmd, size, block, line, field);
 - }
 - 

tm6000 audio urb

2010-05-31 Thread Luis Henrique Fagundes
Hi,

I'm having my first adventures on driver coding, trying to help audio
development of tm6000 based on Mauro's hints.

According to Mauro and coding comments, the audio URBs are already
being received by tm6000-video. The copy_packet function correctly
filters video packets (identified as cmd=1, extracted from header) and
the tm6000_msg_type array suggests that the cmd=2 would be the audio
packets. I logged all packets not being copied to video buffer and
realized that the only packets remaining have been identified as
cmd=4, which is supposedly type pts.

For me it looks like either the cmd=4 type is audio, or the audio is
not really being received. Does this make sense?

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


Re: Soc-camera and 2.6.33

2010-05-31 Thread Robert Jarzmik
Guennadi Liakhovetski g.liakhovet...@gmx.de writes:

 Hi Robert

 a lot of things changed in and around soc-camera between 2.6.30 and 
 .33... E.g., previously you could load driver modules in any order, it 
 would work in any case. Now if you load your host driver (pxa) and your 
 client driver is not there yet, it should be automatically loaded. 
 However, if your user-space doesn't support this, it won't work. Can this 
 be the reason gor your problem? Otherwise, I'd suspect a problem with your 
 platform data (cf. other platforms), or, eventually with mt9m111.

I have a very tiny system :
 - udev
 - a shell (/bin/ash)
 - a libc
 - busybox (insmod/modprobe/rmmod/ls)
 - capture_example compiled as my testbed

I do :
 - insmod mt9m111.ko
 - insmod pxa_camera.ko

My userspace hasn't changed since 2.6.30 (constant executables, ARM-EABI). My
platform was converted by you in commit a48c24a696f0d93c49f913b7818e9819612b1f4e
if I remember correctly.

Any hint for me to track down my problem ?

Cheers.


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


Re: ir-core multi-protocol decode and mceusb

2010-05-31 Thread Mauro Carvalho Chehab
Em 31-05-2010 18:45, Andy Walls escreveu:
 On Mon, 2010-05-31 at 17:58 -0300, Mauro Carvalho Chehab wrote:

 I may be wrong (since we didn't write any TX support), but I think that a
 rc_set_tx_parameters() wouldn't be necessary, as I don't see why the driver 
 will
 change the parameters after registering, and without any userspace request.
 
 Yes, my intent was to handle a user space request to change the
 transmitter setup parameters to handle the protocol.
 
 I also don't want to worry about having to code in kernel parameter
 tables for any bizzare protocol userspace may know about.

Makes sense.
 
 
 If we consider that some userspace sysfs nodes will allow changing some 
 parameters,
 then the better is to have a callback function call, passed via the 
 registering function,
 that will allow calling a function inside the driver to change the TX 
 parameters.

 For example, something like:

 struct rc_tx_props {
 ...
  int (*change_protocol)(...);
 ...
 };


 rc_register_tx(..., struct rc_tx_props *props)
 
 A callback is likely needed.  I'm not sure I would have chosen the name
 change_protocol(), because transmitter parameters can be common between
 protocols (at least RC-5 and RC-6 can be supported with one set of
 parameters), or not match any existing in-kernel protocol.  As long as
 it is flexible enough to change individual transmitter parameters
 (modulated/baseband, carrier freq, duty cycle, etc.) it will be fine.

I just used this name as an example, as the same name exists on RX.

Depending on how we code the userspace API, we may use just one set_parameters
function, or a set of per-attribute changes.

In other words, if we implement severa sysfs nodes to change several parameters,
maybe it makes sense to have several callbacks. Another alternative would be
to have a commit sysfs node to apply a set of parameters at once. 

 Currently LIRC userspace changes Tx parameters using an ioctl().  It
 asks the hardware to change transmitter parameters, because the current
 model is that the transmitters don't need to know about protocols. (LIRC
 userspace knows the parameters of the protocol it wants to use, so the
 driver's don't have too).
 
 
 I notice IR Rx also has a change_protocol() callback that is not
 currently in use.  

It is used only by em28xx, where the hardware decoder can work either with
RC-5 or NEC (newer chips also support RC-6, but this is currently not
implemented).

 If sending raw pulses to userspace, it would be also
 nice to expose that callback so userspace could set the receiver
 parameters.

Raw pulse transmission is probably the easiest case. Probably, there's nothing
or a very few things that might need adjustments.

 
 
 Regards,
 Andy
 
 --
 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: PROBLEM: 2.6.34-rc7 kernel panics BUG: unable to handle kernel NULL pointer dereference at (null) while channel scan running

2010-05-31 Thread Andy Walls
On Sun, 2010-05-30 at 12:33 +0200, Silamael wrote:
 Hi there,
 
 When i try to scan for available DBV-S channels kernel panics:
 BUG: unable to handle kernel NULL pointer dereference at (null)
 
 I'm trying to setup a TV box. Contains an Intel Atom N270 CPU, 2GB RAM,
 1 TB SATA Hard-Drive. Mainboard is a MSI IM-945GSE Mini-ITX motherboard.
 The DVB-S card is a WinTV Nexus-S Rev 2.3 card.
 Kernel is a custom built kernel:
 Linux version 2.6.34-rc7 (r...@filmdose) (gcc version 4.4.4 (Debian
 4.4.4-1) ) #7 SMP Fri May 21 18:06:19 CEST 2010
 
 Channel scan starts fine, finds some channels and after a random
 duration it crashes. I already tried starting the kernel with nosmp,
 noapic, and noacpi options but that does not change anything.
 
 Kernel trace:
 ---
 [  773.280361] IP: [f825a7ba] saa7146_buffer_next+0x5e/0x1ed [saa7146_vv]
 [  773.280361] *pde = 
 [  773.280361] Oops:  [#1] SMP
 [  773.280361] last sysfs file: /sys/module/nfsd/initstate
 [  773.280361] Modules linked in: nfsd exportfs nfs lockd nfs_acl
 auth_rpcgss sunrpc f71882fg coretemp loop lnbp21 stv0299 dvb_ttpci
 snd_hda_codec_realtek dvb_core saa7146_vv videodev v4l1_compat
 snd_hda_intel saa7146 snd_hda_codec videobuf_dma_sg snd_hwdep
 videobuf_core snd_pcm i2c_i801 ttpci_eeprom psmouse snd_timer intel_agp
 evdev pcspkr snd i2c_core serio_raw agpgart video processor rng_core
 soundcore button output snd_page_alloc usb_storage uhci_hcd ehci_hcd
 thermal sd_mod crc_t10dif thermal_sys usbcore nls_base e1000e [last
 unloaded: scsi_wait_scan]
 [  773.280361]
 [  773.280361] Pid: 0, comm: swapper Not tainted 2.6.34-rc7 #7
 A9830IMS/A9830IMS
 [  773.280361] EIP: 0060:[f825a7ba] EFLAGS: 00010246 CPU: 0
 [  773.280361] EIP is at saa7146_buffer_next+0x5e/0x1ed [saa7146_vv]
 [  773.280361] EAX: f68b3008 EBX: f733d900 ECX: 0001 EDX: 0002
 [  773.280361] ESI: ffd4 EDI: f68b3000 EBP:  ESP: c135fefc
 [  773.280361]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
 [  773.280361] Process swapper (pid: 0, ti=c135e000 task=c138cb60
 task.ti=c135e000)
 [  773.280361] Stack:
 [  773.280361]  f68b3000 f733d900 c13640bc 000a f825e5f6 f733d900
 fff7fbf7 f825a759
 [  773.280361] 0 f733d900  f812bdfc fff7fbf7 f6a1e240 
 c106793a 
 [  773.280361] 0  c1364080 000a c13640bc c135ff80 c1069072
 000a 000a
 [  773.280361] Call Trace:
 [  773.280361]  [f825e5f6] ? vbi_irq_done+0x99/0x9f [saa7146_vv]
 [  773.280361]  [f825a759] ? vv_callback+0x10f/0x112 [saa7146_vv]
 [  773.280361]  [f812bdfc] ? interrupt_hw+0x9f/0x1a8 [saa7146]
 [  773.280361]  [c106793a] ? handle_IRQ_event+0x49/0xe7
 [  773.280361]  [c1069072] ? handle_level_irq+0x55/0x9e
 [  773.280361]  [c10044cb] ? handle_irq+0x17/0x1c
 [  773.280361]  [c1003da9] ? do_IRQ+0x38/0x8e
 [  773.280361]  [c1002d30] ? common_interrupt+0x30/0x38
 [  773.280361]  [c10086e6] ? mwait_idle+0x59/0x5e
 [  773.280361]  [c1001ae7] ? cpu_idle+0x91/0xaa
 [  773.280361]  [c13b9881] ? start_kernel+0x31c/0x321
 [  773.280361] Code: 50 fc 25 f8 e8 9d 0e 01 c9 83 c4 1c 8b 43 44 89 c2
 c1 fa 08 38 c2 75 04 0f 0b eb fe 8b 77 08 8d 47 08 39 c6 74 6b 83 ee 2c
 31 ed 8b 4e 2c 8b 56 30 89 51 04 89 0a c7 46 2c 00 01 10 00 c7 46 30

Refer to linux/drivers/media/common/saa7146_fops.c:saa7146_buffer_next()

void saa7146_buffer_next(struct saa7146_dev *dev,
 struct saa7146_dmaqueue *q, int vbi)
{
struct saa7146_buf *buf,*next = NULL;

BUG_ON(!q);

DEB_INT((dev:%p, dmaq:%p, vbi:%d\n, dev, q, vbi));

assert_spin_locked(dev-slock);
if (!list_empty(q-queue)) {
/* activate next one from queue */
buf = list_entry(q-queue.next,struct 
saa7146_buf,vb.queue);
list_del(buf-vb.queue);
if (!list_empty(q-queue))
[...]

The code bytes from the above disassemble to:

  37:   e8 9d 0e 01 c9  call   0xc9010ed9
  3c:   83 c4 1cadd$0x1c,%esp
  3f:   8b 43 44mov0x44(%ebx),%eax
  42:   89 c2   mov%eax,%edx
  44:   c1 fa 08sar$0x8,%edx
  47:   38 c2   cmp%al,%dl
  49:   75 04   jne0x4f
  4b:   0f 0b   ud2a  ---+ End of BUG_ON() in
  4d:   eb fe   jmp0x4d   ---| assert_spin_locked()
  4f:   8b 77 08mov0x8(%edi),%esi  ; %esi = q-queue-head
  52:   8d 47 08lea0x8(%edi),%eax  ; %eax = 
q-queue-head-next
  55:   39 c6   cmp%eax,%esi   ; if 
(!list_empty(q-queue))
  57:   74 6b   je 0xc4; skip to else clause
  59:   83 ee 2csub$0x2c,%esi  ; buf = 
list_entry(q-queue.next,struct 

a short video that developers will likely enjoy

2010-05-31 Thread CityK
The following is a link to an approx. 11min video. The connection pt. to
what you are doing here comes in it in around the 8 min mark, so bear
with it (though I highly doubt it will be in any way insufferable).  I
hope you enjoy this little diversion (I think most will).

http://www.youtube.com/watch?v=u6XAPnuFjJc


--
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 08/21] drivers/media: Remove unnecesary kmalloc casts

2010-05-31 Thread Joe Perches
Signed-off-by: Joe Perches j...@perches.com
---
 drivers/media/dvb/siano/smscoreapi.c |4 +---
 drivers/media/video/w9968cf.c|3 +--
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/media/dvb/siano/smscoreapi.c 
b/drivers/media/dvb/siano/smscoreapi.c
index 0c87a3c..828bcc2 100644
--- a/drivers/media/dvb/siano/smscoreapi.c
+++ b/drivers/media/dvb/siano/smscoreapi.c
@@ -116,9 +116,7 @@ static struct smscore_registry_entry_t 
*smscore_find_registry(char *devpath)
return entry;
}
}
-   entry = (struct smscore_registry_entry_t *)
-   kmalloc(sizeof(struct smscore_registry_entry_t),
-   GFP_KERNEL);
+   entry = kmalloc(sizeof(struct smscore_registry_entry_t), GFP_KERNEL);
if (entry) {
entry-mode = default_mode;
strcpy(entry-devpath, devpath);
diff --git a/drivers/media/video/w9968cf.c b/drivers/media/video/w9968cf.c
index d807eea..591fc6d 100644
--- a/drivers/media/video/w9968cf.c
+++ b/drivers/media/video/w9968cf.c
@@ -3429,8 +3429,7 @@ w9968cf_usb_probe(struct usb_interface* intf, const 
struct usb_device_id* id)
else
return -ENODEV;
 
-   cam = (struct w9968cf_device*)
- kzalloc(sizeof(struct w9968cf_device), GFP_KERNEL);
+   cam = kzalloc(sizeof(struct w9968cf_device), GFP_KERNEL);
if (!cam)
return -ENOMEM;
 
-- 
1.7.0.3.311.g6a6955

--
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: tm6000 audio urb

2010-05-31 Thread Mauro Carvalho Chehab
Em 31-05-2010 19:22, Luis Henrique Fagundes escreveu:
 Hi,
 
 I'm having my first adventures on driver coding, trying to help audio
 development of tm6000 based on Mauro's hints.
 
 According to Mauro and coding comments, the audio URBs are already
 being received by tm6000-video. The copy_packet function correctly
 filters video packets (identified as cmd=1, extracted from header) and
 the tm6000_msg_type array suggests that the cmd=2 would be the audio
 packets. I logged all packets not being copied to video buffer and
 realized that the only packets remaining have been identified as
 cmd=4, which is supposedly type pts.
 
 For me it looks like either the cmd=4 type is audio, or the audio is
 not really being received. Does this make sense?

Luis Henrique,

The audio type is correct. You should notice that some logic is needed to enable
audio at tm6000. For example, you'll see this code at tm6000-alsa:


static int _tm6000_start_audio_dma(struct snd_tm6000_card *chip)
{
struct tm6000_core *core = chip-core;
int val;

/* Enables audio */
val = tm6000_get_reg(core, TM6010_REQ07_RCC_ACTIVE_VIDEO_IF, 0x0);
val |= 0x20;
tm6000_set_reg(core, TM6010_REQ07_RCC_ACTIVE_VIDEO_IF, val);

tm6000_set_reg(core, TM6010_REQ08_R01_A_INIT, 0x80);

return 0;
}

You'll also see this at tm6000-core:

tm6000_set_audio_bitrate (dev,48000);

...


int tm6000_set_audio_bitrate(struct tm6000_core *dev, int bitrate)
{
int val;

val=tm6000_get_reg (dev, REQ_07_SET_GET_AVREG, 0xeb, 0x0);
printk(Original value=%d\n,val);
if (val0)
return val;

val = 0x0f;/* Preserve the audio input control bits */
switch (bitrate) {
case 44100:
val|=0xd0;
dev-audio_bitrate=bitrate;
break;
case 48000:
val|=0x60;
dev-audio_bitrate=bitrate;
break;
}
val=tm6000_set_reg (dev, REQ_07_SET_GET_AVREG, 0xeb, val);

return val;
}

You need to double check if the enabling stuff is properly called
at the right place.

I'm sure that, before adding tm6010 support, audio packages got received.
Eventually, some new patches to add support for tm6010 might have broken
the reception of audio packages.

So, I suggest that you should play with those routines and review the
git backlog to get what's going wrong.

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

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] tm6000: rewrite copy_streams

2010-05-31 Thread Stefan Ringel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
 
Am 01.06.2010 00:09, schrieb Mauro Carvalho Chehab:
 Em 31-05-2010 12:25, stefan.rin...@arcor.de escreveu:
 From: Stefan Ringel stefan.rin...@arcor.de

 fusion function copy streams and copy_packets to new function
copy_streams.


 There's something wrong with this patch:

 $ patch -p1 -i /tmp/tm6000\:\ rewrite\ copy_streams.eml -l
 (Stripping trailing CRs from patch.)
 patching file drivers/staging/tm6000/tm6000-usb-isoc.h
 (Stripping trailing CRs from patch.)
 patching file drivers/staging/tm6000/tm6000-video.c
 Hunk #1 FAILED at 186.
 Hunk #2 FAILED at 439.
 Hunk #3 FAILED at 451.
 3 out of 6 hunks FAILED -- saving rejects to file
drivers/staging/tm6000/tm6000-video.c.rej

 Please rebase it against git branch devel/for_v2.6.35 of my
v4l-dvb.git tree.

Thanks, I rebase it and send it new today.



  static int copy_streams(u8 *data, unsigned long len,
  struct urb *urb)
  {
  struct tm6000_dmaqueue  *dma_q = urb-context;
  struct tm6000_core *dev= container_of(dma_q,struct tm6000_core,vidq);
 -u8 *ptr=data, *endp=data+len;
 +u8 *ptr=data, *endp=data+len, c;
  unsigned long header=0;
  int rc=0;
 -struct tm6000_buffer *buf;
 -char *outp = NULL;
 -
 -get_next_buf(dma_q, buf);
 -if (buf)
 -outp = videobuf_to_vmalloc(buf-vb);
 +unsigned int cmd, cpysize, pktsize, size, field, block, line, pos
= 0;
 +struct tm6000_buffer *vbuf;
 +char *voutp = NULL;
 +unsigned int linewidth;
 
 -if (!outp)
 +/* get video buffer */
 +get_next_buf (dma_q, vbuf);
 +if (!vbuf)
 +return rc;
 +voutp = videobuf_to_vmalloc(vbuf-vb);
 +if (!voutp)
  return 0;
 
 -for (ptr=data; ptrendp;) {
 +for (ptr = data; ptr  endp;) {
  if (!dev-isoc_ctl.cmd) {
 -u8 *p=(u8 *)dev-isoc_ctl.tmp_buf;
 -/* FIXME: This seems very complex
 - * It just recovers up to 3 bytes of the header that
 - * might be at the previous packet
 - */
 -if (dev-isoc_ctl.tmp_buf_len) {
 -while (dev-isoc_ctl.tmp_buf_len) {
 -if ( *(ptr+3-dev-isoc_ctl.tmp_buf_len) == 0x47) {
 -break;
 -}
 -p++;
 -dev-isoc_ctl.tmp_buf_len--;
 -}
 -if (dev-isoc_ctl.tmp_buf_len) {
 -memcpy(header, p,
 -dev-isoc_ctl.tmp_buf_len);
 -memcpy((u8 *)header +
 +/* Header */
 +if (dev-isoc_ctl.tmp_buf_len  0) {
 +/* from last urb or packet */
 +header = dev-isoc_ctl.tmp_buf;
 +if (4 - dev-isoc_ctl.tmp_buf_len  0) {
 +memcpy ((u8 *)header +
  dev-isoc_ctl.tmp_buf_len,
  ptr,
  4 - dev-isoc_ctl.tmp_buf_len);
  ptr += 4 - dev-isoc_ctl.tmp_buf_len;
 -goto HEADER;
  }
 +dev-isoc_ctl.tmp_buf_len = 0;
 +} else {
 +if (ptr + 3 = endp) {
 +/* have incomplete header */
 +dev-isoc_ctl.tmp_buf_len = endp - ptr;
 +memcpy (dev-isoc_ctl.tmp_buf, ptr,
 +dev-isoc_ctl.tmp_buf_len);
 +return rc;
 +}
 +/* Seek for sync */
 +for (; ptr  endp - 3; ptr++) {
 +if (*(ptr + 3) == 0x47)
 +break;
 +}
 +/* Get message header */
 +header = *(unsigned long *)ptr;
 +ptr += 4;
  }
 -/* Seek for sync */
 -for (;ptrendp-3;ptr++) {
 -if (*(ptr+3)==0x47)
 -break;
 +/* split the header fields */
 +c = (header  24)  0xff;
 +size = ((header  0x7e)  1);
 +if (size  0)
 +size -= 4;
 +block = (header  7)  0xf;
 +field = (header  11)  0x1;
 +line  = (header  12)  0x1ff;
 +cmd   = (header  21)  0x7;
 +/* Validates haeder fields */
 +if (size  TM6000_URB_MSG_LEN)
 +size = TM6000_URB_MSG_LEN;
 +pktsize = TM6000_URB_MSG_LEN;
 +/* calculate position in buffer
 + * and change the buffer
 + */
 +switch (cmd) {
 +case TM6000_URB_MSG_VIDEO:
 +if ((dev-isoc_ctl.vfield != field) 
 +(field == 1)) {
 +/* Announces that a new buffer
 + * were filled
 + */
 +buffer_filled (dev, dma_q, vbuf);
 +dprintk (dev, V4L2_DEBUG_ISOC,
 +new 

Re: [PATCH] drivers: remove all i2c_set_clientdata(client, NULL)

2010-05-31 Thread Dmitry Torokhov
On Mon, May 31, 2010 at 10:48:32PM +0100, Richard Purdie wrote:
 On Mon, 2010-05-31 at 12:09 -0700, Dmitry Torokhov wrote:
  On Mon, May 31, 2010 at 02:55:48PM +0200, Wolfram Sang wrote:
   I2C-drivers can use the clientdata-pointer to point to private data. As 
   I2C
   devices are not really unregistered, but merely detached from their 
   driver, it
   used to be the drivers obligation to clear this pointer during remove() 
   or a
   failed probe(). As a couple of drivers forgot to do this, it was agreed 
   that it
   was cleaner if the i2c-core does this clearance when appropriate, as 
   there is
   no guarantee for the lifetime of the clientdata-pointer after remove() 
   anyhow.
   This feature was added to the core with commit
   e4a7b9b04de15f6b63da5ccdd373ffa3057a3681 to fix the faulty drivers.
   
   As there is no need anymore to clear the clientdata-pointer, remove all 
   current
   occurrences in the drivers to simplify the code and prevent confusion.
   
   Signed-off-by: Wolfram Sang w.s...@pengutronix.de
   Cc: Jean Delvare kh...@linux-fr.org
   ---
   
   Some more notes:
   
   I waited for rc1 as I knew there were some drivers/patches coming along 
   which
   needed to be processed, too.
   
   I'd suggest that this goes via the i2c-tree, so we get rid of all 
   occurences at
   once.
   
  
  Frankly I'd prefer taking input stuff through my tree with the goal of
  .36 merge window just to minimize potential merge issues. This is a
  simple cleanup patch that has no dependencies, so there is little gain
  from doing it all in one go.
 
 How about asking Linus to take this one now, then its done and we can
 all move on rather than queuing up problems for the next merge window?
 

That should work.

Acked-by: Dmitry Torokhov d...@mail.ru

 Acked-by: Richard Purdie rpur...@linux.intel.com
 

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


Re: ir-core multi-protocol decode and mceusb

2010-05-31 Thread Jarod Wilson
On Mon, May 31, 2010 at 6:31 PM, Mauro Carvalho Chehab
mche...@redhat.com wrote:
 Em 31-05-2010 18:45, Andy Walls escreveu:
 On Mon, 2010-05-31 at 17:58 -0300, Mauro Carvalho Chehab wrote:

 I may be wrong (since we didn't write any TX support), but I think that a
 rc_set_tx_parameters() wouldn't be necessary, as I don't see why the driver 
 will
 change the parameters after registering, and without any userspace request.

 Yes, my intent was to handle a user space request to change the
 transmitter setup parameters to handle the protocol.

 I also don't want to worry about having to code in kernel parameter
 tables for any bizzare protocol userspace may know about.

 Makes sense.


 If we consider that some userspace sysfs nodes will allow changing some 
 parameters,
 then the better is to have a callback function call, passed via the 
 registering function,
 that will allow calling a function inside the driver to change the TX 
 parameters.

 For example, something like:

 struct rc_tx_props {
 ...
      int     (*change_protocol)(...);
 ...
 };


 rc_register_tx(..., struct rc_tx_props *props)

 A callback is likely needed.  I'm not sure I would have chosen the name
 change_protocol(), because transmitter parameters can be common between
 protocols (at least RC-5 and RC-6 can be supported with one set of
 parameters), or not match any existing in-kernel protocol.  As long as
 it is flexible enough to change individual transmitter parameters
 (modulated/baseband, carrier freq, duty cycle, etc.) it will be fine.

 I just used this name as an example, as the same name exists on RX.

 Depending on how we code the userspace API, we may use just one set_parameters
 function, or a set of per-attribute changes.

 In other words, if we implement severa sysfs nodes to change several 
 parameters,
 maybe it makes sense to have several callbacks. Another alternative would be
 to have a commit sysfs node to apply a set of parameters at once.

 Currently LIRC userspace changes Tx parameters using an ioctl().  It
 asks the hardware to change transmitter parameters, because the current
 model is that the transmitters don't need to know about protocols. (LIRC
 userspace knows the parameters of the protocol it wants to use, so the
 driver's don't have too).

The list of transmit-related ioctls implemented in the lirc_mceusb driver:

- LIRC_SET_TRANSMITTER_MASK -- these devices have two IR tx outputs,
default is to send the signal out both, but you can also select just a
specific one (i.e., two set top boxes, only want to send command to
one or the other of them).

- LIRC_GET_SEND_MODE -- get current transmit mode

- LIRC_SET_SEND_MODE -- set current transmit mode

- LIRC_SET_SEND_CARRIER -- set the transmit carrier freq

- LIRC_GET_FEATURE -- get both the send and receive capabilities of the device


 I notice IR Rx also has a change_protocol() callback that is not
 currently in use.

 It is used only by em28xx, where the hardware decoder can work either with
 RC-5 or NEC (newer chips also support RC-6, but this is currently not
 implemented).

The imon driver also implements change_protocol for the current-gen
devices, which are capable of decoding either mce remote signals or
the native imon remote signals. I was originally thinking I'd need to
implement change_protocol for the mceusb driver, but its ultimately a
no-op, since the hardware doesn't give a damn (and there's a note
somewhere that mentions its only relevant for hardware decode devices
that need to be put into a specific mode). Although, on something like
the mceusb driver, change_protocol *could* be wired up to mark only
the desired protocol enabled -- which might reduce complexity for
ir-keytable when loading a new keymap. (I went with a rather simple
approach for marking only the desired decoder enabled at initial
keymap load time which won't help here -- patch coming tomorrow for
that).

 If sending raw pulses to userspace, it would be also
 nice to expose that callback so userspace could set the receiver
 parameters.

 Raw pulse transmission is probably the easiest case. Probably, there's nothing
 or a very few things that might need adjustments.

Transmitter mask, carrier frequency and a repeat count are the things
I can see needing to set regularly. From experience, at least with
motorola set top box hardware, you need to send a given signal 2-3
times, not just once, for the hardware to pick it up. There's a
min_repeat parameter in lirc config files only used on the transmit
side of the house to specify how many repeats of each blasted signal
to send.

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