Re: [PATCH v8 4/6] V4L: Events: Add backend

2010-03-01 Thread Sakari Ailus
Sakari Ailus wrote:
 Add event handling backend to V4L2. The backend handles event subscription
 and delivery to file handles. Event subscriptions are based on file handle.
 Events may be delivered to all subscribed file handles on a device
 independent of where they originate from.

Hi,

Some style problems accidentally slipped into this one. I'm not
resending the whole set, just the broken patch, now v8.1.

-- 
Sakari Ailus
sakari.ai...@maxwell.research.nokia.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v8.1 4/6] V4L: Events: Add backend

2010-03-01 Thread Sakari Ailus
Add event handling backend to V4L2. The backend handles event subscription
and delivery to file handles. Event subscriptions are based on file handle.
Events may be delivered to all subscribed file handles on a device
independent of where they originate from.

Signed-off-by: Sakari Ailus sakari.ai...@maxwell.research.nokia.com
---
 drivers/media/video/Makefile |3 +-
 drivers/media/video/v4l2-event.c |  289 ++
 drivers/media/video/v4l2-fh.c|6 +-
 include/media/v4l2-event.h   |   67 +
 include/media/v4l2-fh.h  |2 +
 5 files changed, 365 insertions(+), 2 deletions(-)
 create mode 100644 drivers/media/video/v4l2-event.c
 create mode 100644 include/media/v4l2-event.h

diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
index 14bf69a..b84abfe 100644
--- a/drivers/media/video/Makefile
+++ b/drivers/media/video/Makefile
@@ -10,7 +10,8 @@ stkwebcam-objs:=  stk-webcam.o stk-sensor.o
 
 omap2cam-objs  :=  omap24xxcam.o omap24xxcam-dma.o
 
-videodev-objs  :=  v4l2-dev.o v4l2-ioctl.o v4l2-device.o v4l2-fh.o
+videodev-objs  :=  v4l2-dev.o v4l2-ioctl.o v4l2-device.o v4l2-fh.o \
+   v4l2-event.o
 
 # V4L2 core modules
 
diff --git a/drivers/media/video/v4l2-event.c b/drivers/media/video/v4l2-event.c
new file mode 100644
index 000..a0cadeb
--- /dev/null
+++ b/drivers/media/video/v4l2-event.c
@@ -0,0 +1,289 @@
+/*
+ * v4l2-event.c
+ *
+ * V4L2 events.
+ *
+ * Copyright (C) 2009--2010 Nokia Corporation.
+ *
+ * Contact: Sakari Ailus sakari.ai...@maxwell.research.nokia.com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ */
+
+#include media/v4l2-dev.h
+#include media/v4l2-fh.h
+#include media/v4l2-event.h
+
+#include linux/sched.h
+
+int v4l2_event_init(struct v4l2_fh *fh)
+{
+   fh-events = kzalloc(sizeof(*fh-events), GFP_KERNEL);
+   if (fh-events == NULL)
+   return -ENOMEM;
+
+   init_waitqueue_head(fh-events-wait);
+
+   INIT_LIST_HEAD(fh-events-free);
+   INIT_LIST_HEAD(fh-events-available);
+   INIT_LIST_HEAD(fh-events-subscribed);
+
+   fh-events-sequence = -1;
+
+   return 0;
+}
+
+int v4l2_event_alloc(struct v4l2_fh *fh, unsigned int n)
+{
+   struct v4l2_events *events = fh-events;
+   unsigned long flags;
+
+   if (!events) {
+   WARN_ON(1);
+   return -ENOMEM;
+   }
+
+   while (events-nallocated  n) {
+   struct v4l2_kevent *kev;
+
+   kev = kzalloc(sizeof(*kev), GFP_KERNEL);
+   if (kev == NULL)
+   return -ENOMEM;
+
+   spin_lock_irqsave(fh-vdev-fh_lock, flags);
+   list_add_tail(kev-list, events-free);
+   events-nallocated++;
+   spin_unlock_irqrestore(fh-vdev-fh_lock, flags);
+   }
+
+   return 0;
+}
+EXPORT_SYMBOL_GPL(v4l2_event_alloc);
+
+#define list_kfree(list, type, member) \
+   while (!list_empty(list)) { \
+   type *hi;   \
+   hi = list_first_entry(list, type, member);  \
+   list_del(hi-member);  \
+   kfree(hi);  \
+   }
+
+void v4l2_event_free(struct v4l2_fh *fh)
+{
+   struct v4l2_events *events = fh-events;
+
+   if (!events)
+   return;
+
+   list_kfree(events-free, struct v4l2_kevent, list);
+   list_kfree(events-available, struct v4l2_kevent, list);
+   list_kfree(events-subscribed, struct v4l2_subscribed_event, list);
+
+   kfree(events);
+   fh-events = NULL;
+}
+EXPORT_SYMBOL_GPL(v4l2_event_free);
+
+static int __v4l2_event_dequeue(struct v4l2_fh *fh, struct v4l2_event *event)
+{
+   struct v4l2_events *events = fh-events;
+   struct v4l2_kevent *kev;
+   unsigned long flags;
+
+   spin_lock_irqsave(fh-vdev-fh_lock, flags);
+
+   if (list_empty(events-available)) {
+   spin_unlock_irqrestore(fh-vdev-fh_lock, flags);
+   return -ENOENT;
+   }
+
+   WARN_ON(events-navailable == 0);
+
+   kev = list_first_entry(events-available, struct v4l2_kevent, list);
+   list_move(kev-list, events-free);
+   events-navailable--;
+
+   

Re: Announcing v4l-utils-0.7.90 (which includes libv4l-0.7.90)

2010-03-01 Thread Hans de Goede

On 03/01/2010 08:45 AM, Hans Verkuil wrote:

On Friday 26 February 2010 20:43:19 Hans de Goede wrote:

Hi,

I'm happy to announce the first (test / beta) release of v4l-utils,
v4l-utils is the combination of various v4l and dvb utilities which
used to be part of the v4l-dvb mercurial kernel tree and libv4l.


Is it correct that I only see v4l utilities and no dvb?



I just went with was already put in the repo by Mauro and Douglas. I'm fine
with adding dvb utilities, but I don't feel it is my place to decide to
do that.


I encourage people to give this version a spin. I esp. would like
feedback on which v4l / dvb utilities should end up being installed
by make install. For now I've stuck with what the Makefile in v4l2-apps
did. See README for a list of all utilities and if they are currently
installed or not.


qv4l2-qt3 should either be dropped altogether (my preference, although Mauro
thinks differently), or be moved to contrib. I think it is nuts to keep that
one around since the qt4 version is much, much better and the qt3 version is
no longer maintained anyway.



Well currently it compiles on recent distro's without issues, so I'm fine with
keeping things as is for now, if this becomes a maintenance burden it can
always be moved to contrib later.


xc3028-firmware, v4l2-compliance and rds should also be moved to contrib.



I'm fine with moving xc3028-firmware and rds there. But v4l2-compliance
sounds like something that could be useful I've no idea how useful it actually
is though, I have not tested it.


I'm not sure about decode_tm6000, keytable and v4l2-sysfs-path. These too
may belong to contrib.



Ack for decode_tm6000 (if that is useful it should be turned into a lib) and
I have no clue what v4l2-sysfs-path does. keytable might be usefull, well
at least the keycode tables. The tool it self seems to overlap with other
evdev utilities in distro's so maybe we should put the keycode tables in
some sort of standard format, and drop keytable itself ?


We definitely want to have alevtv here as well (it's currently in dvb-apps).



See above.


snip


You can always find the latest developments here:
http://git.linuxtv.org/v4l-utils.git


Hmm, I get errors when I attempt to clone this.



Hmm, I had the same issue myself when using ssh+git, I had to use:
git+ssh://hgo...@linuxtv.org/git/v4l-utils

Notice the /git/ (and no .git at the end)

Regards,

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


Re: How do private controls actually work?

2010-03-01 Thread Laurent Pinchart
Hi Devin,

On Monday 01 March 2010 03:56:17 Devin Heitmueller wrote:
 This might seem like a bit of a silly question, but I've been banging
 my head on the wall for a while on this.
 
 I need to add a single private control to the saa7115 driver.
 However, it's not clear to me exactly how this is supposed to work.
 
 The v4l2-ctl program will always use the extended controls interface
 for private controls, since the code only uses the g_ctrl ioctl if the
 class is V4L2_CTRL_CLASS_USER (and the control class for private
 controls is V4L2_CID_PRIVATE_BASE).
 
 However, if you look at the actual code in v4l2-ioctl.c, the call for
 g_ext_ctrls calls check_ext_ctrls(), which fails because
 V4L2_CID_PRIVATE_BASE cannot be used as control class when using
 extended controls.
 
 The above two behaviors would seem to be conflicting.

I don't think it should matter which API (the base one or the extended one) 
you use for controls, be they private, standard or whatever. I don't see a 
reason for disallowing some controls to be used through one or the other API.

 My original plan was to implement it as a non-extended control, but
 the v4l2-ctl application always sent the get call using the extended
 interface.  So then I went to convert saa7115 to use the extended
 control interface, but then found out that the v4l2 core wouldn't
 allow an extended control to use a private control number.
 
 To make matters worse, the G_CTRL function that supposedly passes
 through calls to vidioc_g_ext_ctrl also calls check_ext_ctrl(), so if
 you want to have a private control then you would need to implement
 both the extended controls interface and the older g_ctrl in the
 driver (presumably the idea was that you would be able to only need to
 implement an extended controls interface, but that doesn't work given
 the above).
 
 I can change v4l2-ctl to use g_ctrl for private controls if we think
 that is the correct approach.  But I didn't want to do that until I
 knew for sure that it is correct that you can never have a private
 extended control.

Do we have extended *controls* ? All I see today is two APIs to access 
controls, a base *control API* and an extended *control API*. G_CTRL/S_CTRL 
should always be available to userspace. If you want to set a single control, 
the extended API isn't required.

-- 
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 1/3] add feedback LED control

2010-03-01 Thread Laurent Pinchart
Hi Márton,

On Sunday 28 February 2010 08:55:04 Németh Márton wrote:
 From: Márton Németh nm...@freemail.hu
 
 On some webcams a feedback LED can be found. This LED usually shows
 the state of streaming mode: this is the Auto mode. The LED can
 be programmed to constantly switched off state (e.g. for power saving
 reasons, preview mode) or on state (e.g. the application shows motion
 detection or on-air).
 
 Signed-off-by: Márton Németh nm...@freemail.hu
 ---
 diff -r d8fafa7d88dc linux/Documentation/DocBook/v4l/controls.xml
 --- a/linux/Documentation/DocBook/v4l/controls.xmlThu Feb 18 19:02:51 
2010
 +0100 +++ b/linux/Documentation/DocBook/v4l/controls.xml  Sun Feb 28
 08:41:17 2010 +0100 @@ -311,6 +311,17 @@
  Applications depending on particular custom controls should check the
  driver name and version, see xref linkend=querycap /./entry
 /row
 +   row id=v4l2-led
 + entryconstantV4L2_CID_LED/constant/entry
 + entryenum/entry
 + entryControls the feedback LED on the camera. In auto mode
 +the LED is on when the streaming is active. The LED is off when not
 streaming. +The LED can be also turned on and off independent from
 streaming. +Possible values for constantenum v4l2_led/constant are:
 +constantV4L2_CID_LED_AUTO/constant (0),
 +constantV4L2_CID_LED_ON/constant (1) and
 +constantV4L2_CID_LED_OFF/constant (2)./entry
 +   /row

There's more than just auto, on and off. On Logitech webcams, LEDs can be 
configured to blink as well.

   /tbody
/tgroup
  /table
 diff -r d8fafa7d88dc linux/Documentation/DocBook/v4l/videodev2.h.xml
 --- a/linux/Documentation/DocBook/v4l/videodev2.h.xml Thu Feb 18 19:02:51
 2010 +0100 +++ b/linux/Documentation/DocBook/v4l/videodev2.h.xml  Sun Feb
 28 08:41:17 2010 +0100 @@ -1024,8 +1024,14 @@
 
  #define V4L2_CID_ROTATE (V4L2_CID_BASE+34)
  #define V4L2_CID_BG_COLOR   (V4L2_CID_BASE+35)
 +#define V4L2_CID_LED(V4L2_CID_BASE+36)
 +enum v4l2_led {
 +V4L2_LED_AUTO   = 0,
 +V4L2_LED_ON = 1,
 +V4L2_LED_OFF= 2,
 +};
  /* last CID + 1 */
 -#define V4L2_CID_LASTP1 (V4L2_CID_BASE+36)
 +#define V4L2_CID_LASTP1 (V4L2_CID_BASE+37)
 
  /*  MPEG-class control IDs defined by V4L2 */
  #define V4L2_CID_MPEG_BASE  (V4L2_CTRL_CLASS_MPEG |
 0x900) diff -r d8fafa7d88dc linux/drivers/media/video/v4l2-common.c
 --- a/linux/drivers/media/video/v4l2-common.c Thu Feb 18 19:02:51 2010
 +0100 +++ b/linux/drivers/media/video/v4l2-common.c   Sun Feb 28 08:41:17
 2010 +0100 @@ -349,6 +349,12 @@
   75 useconds,
   NULL,
   };
 + static const char *led[] = {
 + Auto,
 + On,
 + Off,
 + NULL,
 + };
 
   switch (id) {
   case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
 @@ -389,6 +395,8 @@
   return colorfx;
   case V4L2_CID_TUNE_PREEMPHASIS:
   return tune_preemphasis;
 + case V4L2_CID_LED:
 + return led;
   default:
   return NULL;
   }
 @@ -434,6 +442,7 @@
   case V4L2_CID_COLORFX:  return Color Effects;
   case V4L2_CID_ROTATE:   return Rotate;
   case V4L2_CID_BG_COLOR: return Background color;
 + case V4L2_CID_LED:  return Feedback LED;
 
   /* MPEG controls */
   case V4L2_CID_MPEG_CLASS:   return MPEG Encoder Controls;
 @@ -575,6 +584,7 @@
   case V4L2_CID_EXPOSURE_AUTO:
   case V4L2_CID_COLORFX:
   case V4L2_CID_TUNE_PREEMPHASIS:
 + case V4L2_CID_LED:
   qctrl-type = V4L2_CTRL_TYPE_MENU;
   step = 1;
   break;
 diff -r d8fafa7d88dc linux/include/linux/videodev2.h
 --- a/linux/include/linux/videodev2.h Thu Feb 18 19:02:51 2010 +0100
 +++ b/linux/include/linux/videodev2.h Sun Feb 28 08:41:17 2010 +0100
 @@ -1030,8 +1030,14 @@
 
  #define V4L2_CID_ROTATE  (V4L2_CID_BASE+34)
  #define V4L2_CID_BG_COLOR(V4L2_CID_BASE+35)
 +#define V4L2_CID_LED (V4L2_CID_BASE+36)
 +enum v4l2_led {
 + V4L2_LED_AUTO   = 0,
 + V4L2_LED_ON = 1,
 + V4L2_LED_OFF= 2,
 +};

enums shouldn't be used in kernelspace - userspace APIs, as their size is 
not stable across ARM ABIs. In this case it won't matter much, the enum not 
being part of any structure. If someone creates a new ioctl that uses enum 
v4l2_led as one field of its structure argument, things will break.

  /* last CID + 1 */
 -#define V4L2_CID_LASTP1 (V4L2_CID_BASE+36)
 +#define V4L2_CID_LASTP1 (V4L2_CID_BASE+37)
 
  /*  MPEG-class control IDs defined by V4L2 */
  #define 

Re: [PATCH 1/3] add feedback LED control

2010-03-01 Thread Laurent Pinchart
On Sunday 28 February 2010 20:38:00 Németh Márton wrote:
 Jean-Francois Moine wrote:
  On Sun, 28 Feb 2010 08:55:04 +0100
  
  Németh Márton nm...@freemail.hu wrote:
  On some webcams a feedback LED can be found. This LED usually shows
  the state of streaming mode: this is the Auto mode. The LED can
  be programmed to constantly switched off state (e.g. for power saving
  reasons, preview mode) or on state (e.g. the application shows motion
  detection or on-air).
  
  Hi,
  
  There may be many LEDs on the webcams. One LED may be used for
  the streaming state, Some other ones may be used to give more light in
  dark rooms. One webcam, the microscope 093a:050f, has a top and a bottom
  lights/illuminators; an other one, the MSI StarCam 370i 0c45:60c0, has
  an infra-red light.
  
  That's why I proposed to have bit fields in the control value to switch
  on/off each LED.
 
 With a bitfield on and off state can be specified. What about the auto
 mode? Should two bits grouped together to have auto, on and off state? Is
 there already a similar control?

I don't like the bitfield either. As stated in my previous mail, we can have 
more than 3 states, so using 2 bits per LED will simply not scale.

 Is the brightness of the background light LEDs adjustable or are they just
 on/off? If yes, then maybe the feedback LEDs and the background light LEDs
 should be treated as different kind.

I think there should indeed be a different control for the background LEDs. 
Still, there could be more than one feedback LED.

-- 
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: How do private controls actually work?

2010-03-01 Thread Devin Heitmueller
Hello Laurent,

On Mon, Mar 1, 2010 at 3:57 AM, Laurent Pinchart
laurent.pinch...@ideasonboard.com wrote:
 I don't think it should matter which API (the base one or the extended one)
 you use for controls, be they private, standard or whatever. I don't see a
 reason for disallowing some controls to be used through one or the other API.

I would generally agree.  My original belief was that the extended
control API was designed to be a superset of the older API and that it
could be used for both types of controls.  Imagine my surprise to find
that private controls were specifically excluded from the extended
control interface.

 I can change v4l2-ctl to use g_ctrl for private controls if we think
 that is the correct approach.  But I didn't want to do that until I
 knew for sure that it is correct that you can never have a private
 extended control.

 Do we have extended *controls* ? All I see today is two APIs to access
 controls, a base *control API* and an extended *control API*. G_CTRL/S_CTRL
 should always be available to userspace. If you want to set a single control,
 the extended API isn't required.

The MPEG controls count as extended controls, since they provide the
ability for grouping controls and modifying the values for multiple
controls in an atomic manner.

It's worth noting that I actually did track down the regression in
v4l2-ctl, and the fix ended up being pretty simple (although it took a
couple of hours to understand the code and nail down the proper fix):

http://kernellabs.com/hg/~dheitmueller/em28xx-test/rev/142ae5aa9e8e

It's kind of annoying that I have to tell my client that the ability
to query/update private controls using v4l2-ctl has been completely
broken for six months, but it seems like that is where we are at.

Devin

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


Re: [PATCH 1/3] add feedback LED control

2010-03-01 Thread Jean-Francois Moine
On Sun, 28 Feb 2010 20:38:00 +0100
Németh Márton nm...@freemail.hu wrote:

 With a bitfield on and off state can be specified. What about the
 auto mode? Should two bits grouped together to have auto, on and
 off state? Is there already a similar control?
 
 Is the brightness of the background light LEDs adjustable or are they
 just on/off? If yes, then maybe the feedback LEDs and the background
 light LEDs should be treated as different kind.

OK. My idea about switching the LEDs by v4l2 controls was not good. So,
forget about it.

Instead, some job of the led class may be done in the gspca main,
especially register/unregister.

I propose to add a LED description in the gspca structure (level
'struct cam'). There would be 'nleds' for the number of LEDS and
'leds', a pointer to an array of:

struct gspca_led {
struct led_classdev led_cdev;
char led_name[32];
struct led_trigger led_trigger;
char trigger_name[32];
};

(this array should be in the subdriver structure - I don't show the
#ifdef's)

Then, this would work as:

- on probe, in the 'config' function of the subdriver, this one
  initializes the led and trigger fields. The 'led_cdev.name' and
  'led_trigger.name' should point to a sprintf format with one
  argument: the video device number (ex: video%d::toplight).

- then, at the end of gspca_dev_probe(), the gspca main creates the real
  names of the leds and triggers, and does the register job.

- all led/trigger events are treated by the subdriver, normally by a
  workqueue. This one must not be the system workqueue.

- on disconnection, the gspca main unregisters the leds and triggers
  without calling the subdriver. In the workqueue, the disconnection
  can be simply handled testing the flag 'present' after each subsystem
  call.

Cheers.

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


Usb Video Grabber

2010-03-01 Thread Denis Barbazza
Hi,
do you know some usb video grabber (input rca or s-video, audio is not
important),
that are supported by one of these kernel modules:

kmod-video-gspca
kmod-video-nw8xx
kmod-video-ov51x-jpeg
kmod-video-quickcam
kmod-video-uvc


thank you

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


Re: How do private controls actually work?

2010-03-01 Thread Hans Verkuil

 Hello Laurent,

 On Mon, Mar 1, 2010 at 3:57 AM, Laurent Pinchart
 laurent.pinch...@ideasonboard.com wrote:
 I don't think it should matter which API (the base one or the extended
 one)
 you use for controls, be they private, standard or whatever. I don't see
 a
 reason for disallowing some controls to be used through one or the other
 API.

 I would generally agree.  My original belief was that the extended
 control API was designed to be a superset of the older API and that it
 could be used for both types of controls.  Imagine my surprise to find
 that private controls were specifically excluded from the extended
 control interface.

New private controls should not use V4L2_CID_PRIVATE_BASE at all. That
mechanism was a really bad idea. Instead a new control should be added to
the appropriate control class and with a offset = 0x1000. See for example
the CX2341X private controls in videodev2.h.

The EXT_G/S_CTRLS ioctls do not accept PRIVATE_BASE because I want to
force driver developers to stop using PRIVATE_BASE. So only G/S_CTRL will
support controls in that range for backwards compatibility.

Regards,

Hans

 I can change v4l2-ctl to use g_ctrl for private controls if we think
 that is the correct approach.  But I didn't want to do that until I
 knew for sure that it is correct that you can never have a private
 extended control.

 Do we have extended *controls* ? All I see today is two APIs to access
 controls, a base *control API* and an extended *control API*.
 G_CTRL/S_CTRL
 should always be available to userspace. If you want to set a single
 control,
 the extended API isn't required.

 The MPEG controls count as extended controls, since they provide the
 ability for grouping controls and modifying the values for multiple
 controls in an atomic manner.

 It's worth noting that I actually did track down the regression in
 v4l2-ctl, and the fix ended up being pretty simple (although it took a
 couple of hours to understand the code and nail down the proper fix):

 http://kernellabs.com/hg/~dheitmueller/em28xx-test/rev/142ae5aa9e8e

 It's kind of annoying that I have to tell my client that the ability
 to query/update private controls using v4l2-ctl has been completely
 broken for six months, but it seems like that is where we are at.

 Devin

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



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

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


RE: Proposal for a V4L2 Media Controller mini-summit

2010-03-01 Thread Tomasz Fujak
Hi Hans,

(...)
 Darn. Having a mini-summit without Laurent and yourself is pointless
 since
 you are both key developers.
 
 New proposal: May 5-7 in Lysaker, Norway.
 
 Does that work?

Most probably. Depending how the Media Controller thing looks by then we
consider sending a representative there.
It's in Europe, so maybe the management would swallow the business trip
costs ;)

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

Regards
-- 
Tomasz Fujak

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


Re: How do private controls actually work?

2010-03-01 Thread Devin Heitmueller
On Mon, Mar 1, 2010 at 4:58 AM, Hans Verkuil hverk...@xs4all.nl wrote:
 New private controls should not use V4L2_CID_PRIVATE_BASE at all. That
 mechanism was a really bad idea. Instead a new control should be added to
 the appropriate control class and with a offset = 0x1000. See for example
 the CX2341X private controls in videodev2.h.

So, you're suggesting that the following patch then is going to be
NAK'd and that I'm going to have to go back and convert saa7115 to
support the extended controls API, extend the em28xx driver to support
the extended controls API, and retest with all the possible
applications given how they might potentially be attempting to
implement the rather poorly documented interface?

http://kernellabs.com/hg/~dheitmueller/em28xx-test/rev/a7d50db75420

And exactly what class of extended controls should I use for video
decoders?  It would seem that a video decoder doesn't really fall into
any of the existing categories - Old-style user controls, MPEG
compression controls, Camera controls, or FM modulator controls.
Are we saying that now I'm also going to be introducing a whole new
class of control too?

 The EXT_G/S_CTRLS ioctls do not accept PRIVATE_BASE because I want to
 force driver developers to stop using PRIVATE_BASE. So only G/S_CTRL will
 support controls in that range for backwards compatibility.

While we're on the topic, do you see any problem with the proposed fix
for the regression you introduced?:

http://kernellabs.com/hg/~dheitmueller/em28xx-test/rev/142ae5aa9e8e

Between trying to figure out what the expected behavior is supposed to
be (given the complete lack of documentation on how private controls
are expected to be implemented in the extended controls API) and
isolating and fixing the regression, it's hard not to be a little
irritated at this situation.  This was supposed to be a very small
change - a single private control to a mature driver.  And now it
seems like I'm going to have to extend the basic infrastructure in the
decoder driver, the bridge driver, add a new class of controls, all so
I can poke one register?

Devin

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


[PATCH] firedtv: correct version number and current/next in CA_PMT

2010-03-01 Thread Stefan Richter
Date: Tue, 21 Jul 2009 18:45:50 +0200
From: Henrik Kurelid hen...@kurelid.se

The version number in the CA_PMT message sent to the hardware was
alwaysed set to zero. This could cause problems if the PMT would
change during decryption of a channel since the new CA_PMT would have
the same version number as the old. The version number is now copied
from the original PMT.

Signed-off-by: Henrik Kurelid hen...@kurelid.se
Signed-off-by: Stefan Richter stef...@s5r6.in-berlin.de
---

This patch got stuck somehow on the long way upstream. :-)
Would be good to get into one of the next .34-rc releases.

 drivers/media/dvb/firewire/firedtv-avc.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: b/drivers/media/dvb/firewire/firedtv-avc.c
===
--- a/drivers/media/dvb/firewire/firedtv-avc.c
+++ b/drivers/media/dvb/firewire/firedtv-avc.c
@@ -1096,7 +1096,7 @@ int avc_ca_pmt(struct firedtv *fdtv, cha
 
c-operand[15] = msg[1]; /* Program number */
c-operand[16] = msg[2];
-   c-operand[17] = 0x01; /* Version number=0 + current/next=1 */
+   c-operand[17] = msg[3]; /* Version number and current/next */
c-operand[18] = 0x00; /* Section number=0 */
c-operand[19] = 0x00; /* Last section number=0 */
c-operand[20] = 0x1f; /* PCR_PID=1FFF */

-- 
Stefan Richter
-=-==-=- --== =
http://arcgraph.de/sr/

--
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] firedtv: add parameter to fake ca_system_ids in CA_INFO

2010-03-01 Thread Stefan Richter
Date: Sun, 4 Oct 2009 15:00:36 +0200
From: Henrik Kurelid hen...@kurelid.se

The Digital Everywhere firmware have the shortcoming that ca_info_enq and
ca_info are not supported. This means that we can never retrieve the correct
ca_system_id to present in the CI message CA_INFO. Currently the driver uses
the application id retrieved using app_info_req and app_info, but this id
only match the correct ca_system_id as given in ca_info in some cases.
This patch adds a parameter to the driver in order for the user to override
what will be returned in the CA_INFO CI message. Up to four ca_system_ids can
be specified.
This is needed for users with CAMs that have different manufacturer id and
ca_system_id and that uses applications that take this into account, like
MythTV.

Signed-off-by: Henrik Kurelid hen...@kurelid.se
Signed-off-by: Stefan Richter stef...@s5r6.in-berlin.de (rebased, format of 
comment)
---

Would be good to get into an .34-rc too.

 drivers/media/dvb/firewire/firedtv-avc.c |   31 ---
 1 file changed, 27 insertions(+), 4 deletions(-)

Index: b/drivers/media/dvb/firewire/firedtv-avc.c
===
--- a/drivers/media/dvb/firewire/firedtv-avc.c
+++ b/drivers/media/dvb/firewire/firedtv-avc.c
@@ -130,6 +130,20 @@ MODULE_PARM_DESC(debug, Verbose logging
, FCP payloads =  __stringify(AVC_DEBUG_FCP_PAYLOADS)
, or a combination, or all = -1));
 
+/*
+ * This is a workaround since there is no vendor specific command to retrieve
+ * ca_info using AVC. If this parameter is not used, ca_system_id will be
+ * filled with application_manufacturer from ca_app_info.
+ * Digital Everywhere have said that adding ca_info is on their TODO list.
+ */
+static int num_fake_ca_system_ids;
+static int fake_ca_system_ids[4] = { -1, -1, -1, -1 };
+module_param_array(fake_ca_system_ids, int, num_fake_ca_system_ids, 0644);
+MODULE_PARM_DESC(fake_ca_system_ids, If your CAM application manufacturer 
+does not have the same ca_system_id as your CAS, you can 
+override what ca_system_ids are presented to the 
+application by setting this field to an array of ids.);
+
 static const char *debug_fcp_ctype(unsigned int ctype)
 {
static const char *ctypes[] = {
@@ -977,7 +991,7 @@ int avc_ca_info(struct firedtv *fdtv, ch
 {
struct avc_command_frame *c = (void *)fdtv-avc_data;
struct avc_response_frame *r = (void *)fdtv-avc_data;
-   int pos, ret;
+   int i, pos, ret;
 
mutex_lock(fdtv-avc_mutex);
 
@@ -1004,9 +1018,18 @@ int avc_ca_info(struct firedtv *fdtv, ch
app_info[0] = (EN50221_TAG_CA_INFO  16)  0xff;
app_info[1] = (EN50221_TAG_CA_INFO   8)  0xff;
app_info[2] = (EN50221_TAG_CA_INFO   0)  0xff;
-   app_info[3] = 2;
-   app_info[4] = r-operand[pos + 0];
-   app_info[5] = r-operand[pos + 1];
+   if (num_fake_ca_system_ids == 0) {
+   app_info[3] = 2;
+   app_info[4] = r-operand[pos + 0];
+   app_info[5] = r-operand[pos + 1];
+   } else {
+   app_info[3] = num_fake_ca_system_ids * 2;
+   for (i = 0; i  num_fake_ca_system_ids; i++) {
+   app_info[4 + i * 2] =
+   (fake_ca_system_ids[i]  8)  0xff;
+   app_info[5 + i * 2] = fake_ca_system_ids[i]  0xff;
+   }
+   }
*len = app_info[3] + 4;
 out:
mutex_unlock(fdtv-avc_mutex);

-- 
Stefan Richter
-=-==-=- --== =
http://arcgraph.de/sr/

--
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 05/11] ov534: Fix setting manual exposure

2010-03-01 Thread Antonio Ospite
On Sun, 28 Feb 2010 19:54:25 +0100
Antonio Ospite osp...@studenti.unina.it wrote:

 On Sun, 28 Feb 2010 19:38:14 +0100
 Jean-Francois Moine moin...@free.fr wrote:
 
  On Sat, 27 Feb 2010 21:20:22 +0100
  Antonio Ospite osp...@studenti.unina.it wrote:
  
   Exposure is now a u16 value, both MSB and LSB are set, but values in
   the v4l2 control are limited to the interval [0,506] as 0x01fa (506)
   is the maximum observed value with AEC enabled.
  [snip]
 .type= V4L2_CTRL_TYPE_INTEGER,
 .name= Exposure,
 .minimum = 0,
   - .maximum = 255,
   + .maximum = 506,
 .step= 1,
#define EXPO_DEF 120
 .default_value = EXPO_DEF,
  
  Hi Antonio,
  
  Do we need a so high precision for the exposure? Just setting the
  maximum value to 253 should solve the problem.
 
 
 JF, the intent here is to cover all the range of values available in
 Auto Exposure mode too, doesn't this make sense to you?
 
 I could set .maximum to 253 to limit the UI control precision but then
 I should use 2*value when setting the registers in order to cover the
 actual max value, this looks a little unclean.


Ok, I now see that that's exactly what current code does, sorry for the
noise. The patch then degenerates to a simpler one with some
documentation added, so others don't overlook the code like I did.

Sending it in a min.

Regards,
   Antonio

-- 
Antonio Ospite
http://ao2.it

PGP public key ID: 0x4553B001

A: Because it messes up the order in which people normally read text.
   See http://en.wikipedia.org/wiki/Posting_style
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?


pgpW3oPfs6eYu.pgp
Description: PGP signature


Re: How do private controls actually work?

2010-03-01 Thread Hans Verkuil

 On Mon, Mar 1, 2010 at 4:58 AM, Hans Verkuil hverk...@xs4all.nl wrote:
 New private controls should not use V4L2_CID_PRIVATE_BASE at all. That
 mechanism was a really bad idea. Instead a new control should be added
 to
 the appropriate control class and with a offset = 0x1000. See for
 example
 the CX2341X private controls in videodev2.h.

 So, you're suggesting that the following patch then is going to be
 NAK'd and that I'm going to have to go back and convert saa7115 to
 support the extended controls API, extend the em28xx driver to support
 the extended controls API, and retest with all the possible
 applications given how they might potentially be attempting to
 implement the rather poorly documented interface?

I have a lot to say on this subject, but unfortunately I'm swamped with
work at the moment. I'll get back to you on this tomorrow.

Regards,

   Hans


 http://kernellabs.com/hg/~dheitmueller/em28xx-test/rev/a7d50db75420

 And exactly what class of extended controls should I use for video
 decoders?  It would seem that a video decoder doesn't really fall into
 any of the existing categories - Old-style user controls, MPEG
 compression controls, Camera controls, or FM modulator controls.
 Are we saying that now I'm also going to be introducing a whole new
 class of control too?

 The EXT_G/S_CTRLS ioctls do not accept PRIVATE_BASE because I want to
 force driver developers to stop using PRIVATE_BASE. So only G/S_CTRL
 will
 support controls in that range for backwards compatibility.

 While we're on the topic, do you see any problem with the proposed fix
 for the regression you introduced?:

 http://kernellabs.com/hg/~dheitmueller/em28xx-test/rev/142ae5aa9e8e

 Between trying to figure out what the expected behavior is supposed to
 be (given the complete lack of documentation on how private controls
 are expected to be implemented in the extended controls API) and
 isolating and fixing the regression, it's hard not to be a little
 irritated at this situation.  This was supposed to be a very small
 change - a single private control to a mature driver.  And now it
 seems like I'm going to have to extend the basic infrastructure in the
 decoder driver, the bridge driver, add a new class of controls, all so
 I can poke one register?

 Devin

 --
 Devin J. Heitmueller - Kernel Labs
 http://www.kernellabs.com



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

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


Re: [PATCH] firedtv: add parameter to fake ca_system_ids in CA_INFO

2010-03-01 Thread Stefan Richter
 The Digital Everywhere firmware have the shortcoming that ca_info_enq and
 ca_info are not supported. This means that we can never retrieve the correct
 ca_system_id to present in the CI message CA_INFO. Currently the driver uses
 the application id retrieved using app_info_req and app_info, but this id
 only match the correct ca_system_id as given in ca_info in some cases.
 This patch adds a parameter to the driver in order for the user to override
 what will be returned in the CA_INFO CI message. Up to four ca_system_ids can
 be specified.
 This is needed for users with CAMs that have different manufacturer id and
 ca_system_id and that uses applications that take this into account, like
 MythTV.

This workaround is of course rather awkward.  Users who need this will
have a hard time to work out that this parameter needs to be set and
how.  Furthermore, the web site of Digital Everywhere says that hey
stopped manufacturing and ramped down support, hence it looks like this
issue will stay with us forever.

Isn't there a CA command that could be (mis)used for some kind of
probing of the CAM for correct system IDs?  E.g. a loop which retries a
kind of dummy operation with different system IDs until success,
initially during fdtv_dvb_register/ fdtv_ca_register?

(I don't know how CI works, and alas I don't have a CAM myself for
testing and am not very keen on getting one...)
-- 
Stefan Richter
-=-==-=- --== =
http://arcgraph.de/sr/

--
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 RC, REGRESSION] Didn't work IR RC

2010-03-01 Thread Andy Walls
On Mon, 2010-03-01 at 15:36 +0900, Dmitri Belimov wrote:
 Hi All
 
 After rework of the IR subsystem, IR RC no more work in our TV cards.
 As I see 
 call saa7134_probe_i2c_ir,
   configure i2c
   call i2c_new_device
 
 New i2c device not registred.
 
 The module kbd-i2c-ir loaded after i2c_new_device.

Jean,

There was also a problem reported with the cx23885 driver's I2C
connected IR by Timothy Lenz:

http://www.spinics.net/lists/linux-media/msg15122.html

The failure mode sounds similar to Dmitri's, but maybe they are
unrelated.

I worked a bit with Timothy on IRC and the remote device fails to be
detected whether ir-kbd-i2c is loaded before the cx23885 driver or after
the cx23885 driver.  I haven't found time to do any folow-up and I don't
have any of the hardware in question.

Do you have any thoughts or a suggested troubleshooting approach?

Regards,
Andy

 I try to found what happens.
 
 With my best regards, 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: Announcing v4l-utils-0.7.90 (which includes libv4l-0.7.90)

2010-03-01 Thread Julian Scheel
Hi,

Am Montag, 1. März 2010 10:26:47 schrieb Hans de Goede:
  I'm happy to announce the first (test / beta) release of v4l-utils,
  v4l-utils is the combination of various v4l and dvb utilities which
  used to be part of the v4l-dvb mercurial kernel tree and libv4l.

 Reading some more about dvb-apps, I have to side with the people
 who are voting for keeping dvb-apps separate. I do wonder
 if those people and you and Mauro are talking about the same dvb-apps,
 or if this is just a misunderstanding.
 
 The dvp-apps I'm talking about now, and of which I'm not in favor of
 merging them with v4l-utils are the ones, which can be downloaded
 here:
 http://linuxtv.org/downloads/
 http://linuxtv.org/hg/dvb-apps
 
 Although I must agree with the people who are in favor of
 integrating this into v4l-utils, that this needs much more active
 maintainership wrt to making regular tarbal releases for distro's
 to consume.
 
 Still I believe this should stay as a separate project, because
 so far it clearly was, and I see no huge advantages in integrating it.
 
 Signs that this clearly is a separate stand alone project:
 
 1) It has done several tarbal releases (these are ancient guys,
 this needs to be fixed).
 
 2) It has its own VCS
 
 3) It is packaged up by various distros:
 
 http://packages.debian.org/sid/video/dvb-apps
 http://packages.ubuntu.com/source/dapper/linuxtv-dvb-apps
 http://cvs.fedoraproject.org/viewvc/rpms/dvb-apps/
 http://rpm.pbone.net/index.php3?stat=3search=dvb-appssrodzaj=3
 http://gentoo-portage.com/media-tv/linuxtv-dvb-apps
 http://aur.archlinux.org/packages.php?ID=2034
 http://www.slax.org/modules.php?action=detailid=3143
 https://dev.openwrt.org/ticket/2804
 
 4) It is referenced as a standalone project by 3th parties:
 http://www.mythtv.org/wiki/Dvb-apps
 
 
 So given the stand alone nature, and that it is already widely packaged
 as a standalone project by distro's. For now I'm against ingrating this
 into v4l-utils.
 
 And the most important argument for me being against this, is that one
 of the 2 active contributors (judging from the hg tree), Manu Abraham,
 is very much against integration. And the people who are in favor
 (Hans Verkuil and Mauro) don't seem to have done any commits to the
 tree in question, for at least the last 2 years.
 
 So unless we can get some buy in for integrating this in to
 v4l-utils from active dvb-apps contributors I'm opposed to the integration.

I agree with you that dvb-apps should stay a seperate project as there are 
now. I don't see any reason for integrating them into one project with v4l-
utils. There are no developers actively working on both projects. This would 
lead to problematic release preparation for sure. Especially when keeping in 
mind that Mauro and Manu are not exactly happy with working together, so I 
really think it would be much easier to keep it seperated.
Also I don't think that all users who use dvb-apps would need to have all the 
v4l-utils and vice versa.
So please keep it seperate.
 
 With this all said, I must say: Manu please do a tarbal release real real
 soon, and make a habit out of doing so regularly!

This is of course right and should be done soon. I think this wasn't done for 
a long time due to the incompleteness of v5 API support. But afaik Manu is 
currently working on it, so it shouldn't take too long anymore.

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


Re: How do private controls actually work?

2010-03-01 Thread Andy Walls
On Mon, 2010-03-01 at 10:58 +0100, Hans Verkuil wrote:
  Hello Laurent,
 
  On Mon, Mar 1, 2010 at 3:57 AM, Laurent Pinchart
  laurent.pinch...@ideasonboard.com wrote:
  I don't think it should matter which API (the base one or the extended
  one)
  you use for controls, be they private, standard or whatever. I don't see
  a
  reason for disallowing some controls to be used through one or the other
  API.
 
  I would generally agree.  My original belief was that the extended
  control API was designed to be a superset of the older API and that it
  could be used for both types of controls.  Imagine my surprise to find
  that private controls were specifically excluded from the extended
  control interface.
 
 New private controls should not use V4L2_CID_PRIVATE_BASE at all. That
 mechanism was a really bad idea. Instead a new control should be added to
 the appropriate control class and with a offset = 0x1000. See for example
 the CX2341X private controls in videodev2.h.

I recall doing something like this a while ago:

#define CX18_AV_CID_USER_PRIV_BASE  (V4L2_CTRL_CLASS_USER | 0x1000)
#define CX18_AV_CID_EXTRA_12DB_GAIN (CX18_AV_CID_USER_PRIV_BASE+0)
.

http://linuxtv.org/hg/~awalls/v4l-dvb-ctls/file/e4b2c5d550b5/linux/drivers/media/video/cx18/cx18-av-core.h#l77

(I'm not sure if it's a good example though.)

I'm still just waiting for an approved method for implementing such
video decoder controls.  I don't care how, just that there is a way.

I don't have much in the way of plans to offer, because I really don't
grok all the existing issues with controls.

Regards,
Andy

 The EXT_G/S_CTRLS ioctls do not accept PRIVATE_BASE because I want to
 force driver developers to stop using PRIVATE_BASE. So only G/S_CTRL will
 support controls in that range for backwards compatibility.
 
 Regards,
 
 Hans


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


[PATCH v2 05/11] ov534: Fix and document setting manual exposure

2010-03-01 Thread Antonio Ospite
Document that even if the state is a u8 value, both MSB and LSB are set
as sd-exposure represents half of the value we are going to set into
registers.

Skip setting exposure when AEC is enabled.

Signed-off-by: Antonio Ospite osp...@studenti.unina.it
---
The code was already doing the right thing, I just overlooked it.

Regards,
   Antonio

 linux/drivers/media/video/gspca/ov534.c |9 +
 1 file changed, 9 insertions(+)

Index: gspca/linux/drivers/media/video/gspca/ov534.c
===
--- gspca.orig/linux/drivers/media/video/gspca/ov534.c
+++ gspca/linux/drivers/media/video/gspca/ov534.c
@@ -686,6 +686,15 @@
struct sd *sd = (struct sd *) gspca_dev;
u8 val;
 
+   if (sd-aec)
+   return;
+
+   /* 'val' is one byte and represents half of the exposure value we are
+* going to set into registers, a two bytes value:
+* 
+*MSB: ((u16) val  1)  8   == val  7
+*LSB: ((u16) val  1)  0xff == val  1
+*/
val = sd-exposure;
sccb_reg_write(gspca_dev, 0x08, val  7);
sccb_reg_write(gspca_dev, 0x10, val  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


[PATCH v2 09/11] ov534: Cosmetics: fix indentation and hex digits

2010-03-01 Thread Antonio Ospite

  * Indent with tabs, not with spaces, nor with mixed style.
  * Less indentation for controls index comments.
  * Use lowercase hex digits.

Signed-off-by: Antonio Ospite osp...@studenti.unina.it
---
Changes since v1:

Indent controls by one more level as JF requested.
Note that the controls index comments are still less indented than before,
it is more readable this way.

Thanks,
   Antonio

 linux/drivers/media/video/gspca/ov534.c |  260 
 1 file changed, 130 insertions(+), 130 deletions(-)

Index: gspca/linux/drivers/media/video/gspca/ov534.c
===
--- gspca.orig/linux/drivers/media/video/gspca/ov534.c
+++ gspca/linux/drivers/media/video/gspca/ov534.c
@@ -92,147 +92,147 @@
 static int sd_getcontrast(struct gspca_dev *gspca_dev, __s32 *val);
 
 static const struct ctrl sd_ctrls[] = {
-{  /* 0 */
-   {
-   .id  = V4L2_CID_BRIGHTNESS,
-   .type= V4L2_CTRL_TYPE_INTEGER,
-   .name= Brightness,
-   .minimum = 0,
-   .maximum = 255,
-   .step= 1,
+   {   /* 0 */
+   {
+   .id  = V4L2_CID_BRIGHTNESS,
+   .type= V4L2_CTRL_TYPE_INTEGER,
+   .name= Brightness,
+   .minimum = 0,
+   .maximum = 255,
+   .step= 1,
 #define BRIGHTNESS_DEF 0
-   .default_value = BRIGHTNESS_DEF,
-   },
-   .set = sd_setbrightness,
-   .get = sd_getbrightness,
-},
-{  /* 1 */
-   {
-   .id  = V4L2_CID_CONTRAST,
-   .type= V4L2_CTRL_TYPE_INTEGER,
-   .name= Contrast,
-   .minimum = 0,
-   .maximum = 255,
-   .step= 1,
+   .default_value = BRIGHTNESS_DEF,
+   },
+   .set = sd_setbrightness,
+   .get = sd_getbrightness,
+   },
+   {   /* 1 */
+   {
+   .id  = V4L2_CID_CONTRAST,
+   .type= V4L2_CTRL_TYPE_INTEGER,
+   .name= Contrast,
+   .minimum = 0,
+   .maximum = 255,
+   .step= 1,
 #define CONTRAST_DEF 32
-   .default_value = CONTRAST_DEF,
-   },
-   .set = sd_setcontrast,
-   .get = sd_getcontrast,
-},
-{  /* 2 */
-   {
-   .id  = V4L2_CID_GAIN,
-   .type= V4L2_CTRL_TYPE_INTEGER,
-   .name= Main Gain,
-   .minimum = 0,
-   .maximum = 63,
-   .step= 1,
+   .default_value = CONTRAST_DEF,
+   },
+   .set = sd_setcontrast,
+   .get = sd_getcontrast,
+   },
+   {   /* 2 */
+   {
+   .id  = V4L2_CID_GAIN,
+   .type= V4L2_CTRL_TYPE_INTEGER,
+   .name= Main Gain,
+   .minimum = 0,
+   .maximum = 63,
+   .step= 1,
 #define GAIN_DEF 20
-   .default_value = GAIN_DEF,
-   },
-   .set = sd_setgain,
-   .get = sd_getgain,
-},
-{  /* 3 */
-   {
-   .id  = V4L2_CID_EXPOSURE,
-   .type= V4L2_CTRL_TYPE_INTEGER,
-   .name= Exposure,
-   .minimum = 0,
-   .maximum = 255,
-   .step= 1,
+   .default_value = GAIN_DEF,
+   },
+   .set = sd_setgain,
+   .get = sd_getgain,
+   },
+   {   /* 3 */
+   {
+   .id  = V4L2_CID_EXPOSURE,
+   .type= V4L2_CTRL_TYPE_INTEGER,
+   .name= Exposure,
+   .minimum = 0,
+   .maximum = 255,
+   .step= 1,
 #define EXPO_DEF 120
-   .default_value = EXPO_DEF,
-   },
-   .set = sd_setexposure,
-   .get = sd_getexposure,
-},
-{  /* 4 */
-   {
-   .id  = V4L2_CID_AUTOGAIN,
-   .type= V4L2_CTRL_TYPE_BOOLEAN,
-   .name= Auto Gain,
-   .minimum = 0,
-   .maximum = 1,
-   .step= 1,
+   .default_value = EXPO_DEF,
+   },
+   .set = sd_setexposure,
+   .get = sd_getexposure,
+   },
+   {   /* 4 */
+   {
+   .id  = V4L2_CID_AUTOGAIN,
+   .type= V4L2_CTRL_TYPE_BOOLEAN,
+   .name 

[PATCH update] firedtv: add parameter to fake ca_system_ids in CA_INFO

2010-03-01 Thread Stefan Richter
From: Henrik Kurelid hen...@kurelid.se
Subject: firedtv: add parameter to fake ca_system_ids in CA_INFO

The Digital Everywhere firmware have the shortcoming that ca_info_enq and
ca_info are not supported. This means that we can never retrieve the correct
ca_system_id to present in the CI message CA_INFO. Currently the driver uses
the application id retrieved using app_info_req and app_info, but this id
only match the correct ca_system_id as given in ca_info in some cases.
This patch adds a parameter to the driver in order for the user to override
what will be returned in the CA_INFO CI message. Up to four ca_system_ids can
be specified.
This is needed for users with CAMs that have different manufacturer id and
ca_system_id and that uses applications that take this into account, like
MythTV.

Signed-off-by: Henrik Kurelid hen...@kurelid.se
Signed-off-by: Stefan Richter stef...@s5r6.in-berlin.de (rebased, type of 
num_fake_ca_system_ids, format of comment)
---

Update:  I found a sparse warning after the fact. num_fake_ca_system_ids
is meant to be unsigned, not signed.  Sorry that I missed it in my first
posting; it was hidden by an unrelated sparse error in
include/linux/skbuff.h which was introduced by commit 14d18a81.  I need
to have a word (again) with the author of this commit.

 drivers/media/dvb/firewire/firedtv-avc.c |   31 ---
 1 file changed, 27 insertions(+), 4 deletions(-)

Index: b/drivers/media/dvb/firewire/firedtv-avc.c
===
--- a/drivers/media/dvb/firewire/firedtv-avc.c
+++ b/drivers/media/dvb/firewire/firedtv-avc.c
@@ -130,6 +130,20 @@ MODULE_PARM_DESC(debug, Verbose logging
, FCP payloads =  __stringify(AVC_DEBUG_FCP_PAYLOADS)
, or a combination, or all = -1));
 
+/*
+ * This is a workaround since there is no vendor specific command to retrieve
+ * ca_info using AVC. If this parameter is not used, ca_system_id will be
+ * filled with application_manufacturer from ca_app_info.
+ * Digital Everywhere have said that adding ca_info is on their TODO list.
+ */
+static unsigned int num_fake_ca_system_ids;
+static int fake_ca_system_ids[4] = { -1, -1, -1, -1 };
+module_param_array(fake_ca_system_ids, int, num_fake_ca_system_ids, 0644);
+MODULE_PARM_DESC(fake_ca_system_ids, If your CAM application manufacturer 
+does not have the same ca_system_id as your CAS, you can 
+override what ca_system_ids are presented to the 
+application by setting this field to an array of ids.);
+
 static const char *debug_fcp_ctype(unsigned int ctype)
 {
static const char *ctypes[] = {
@@ -977,7 +991,7 @@ int avc_ca_info(struct firedtv *fdtv, ch
 {
struct avc_command_frame *c = (void *)fdtv-avc_data;
struct avc_response_frame *r = (void *)fdtv-avc_data;
-   int pos, ret;
+   int i, pos, ret;
 
mutex_lock(fdtv-avc_mutex);
 
@@ -1004,9 +1018,18 @@ int avc_ca_info(struct firedtv *fdtv, ch
app_info[0] = (EN50221_TAG_CA_INFO  16)  0xff;
app_info[1] = (EN50221_TAG_CA_INFO   8)  0xff;
app_info[2] = (EN50221_TAG_CA_INFO   0)  0xff;
-   app_info[3] = 2;
-   app_info[4] = r-operand[pos + 0];
-   app_info[5] = r-operand[pos + 1];
+   if (num_fake_ca_system_ids == 0) {
+   app_info[3] = 2;
+   app_info[4] = r-operand[pos + 0];
+   app_info[5] = r-operand[pos + 1];
+   } else {
+   app_info[3] = num_fake_ca_system_ids * 2;
+   for (i = 0; i  num_fake_ca_system_ids; i++) {
+   app_info[4 + i * 2] =
+   (fake_ca_system_ids[i]  8)  0xff;
+   app_info[5 + i * 2] = fake_ca_system_ids[i]  0xff;
+   }
+   }
*len = app_info[3] + 4;
 out:
mutex_unlock(fdtv-avc_mutex);

-- 
Stefan Richter
-=-==-=- --== =
http://arcgraph.de/sr/

--
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: Requested feedback on V4L2 driver design

2010-03-01 Thread Kumar, Purushotam
 How will the locking be handled ? I suppose opening a plane and closing
 a
 plane will just be a matter of sending one (or several) messages to the
 VPSS.
 In that case what would prevent a userspace application from sending a
 direct
 message to close a plane that a driver would have opened ? Will the
 firmware
 be able to identify if a close message comes from the same source as a
 previous open message, without any risk of identify spoofing ?

That is a good question.  Let me have one of the firmware guys answer this.  I 
too am assuming that some other application can't issue a close on a channel if 
they weren't the one to open it.  Puru, can you answer this?

Laurent,
You are correct in saying that opening of plan will be matter of sending one 
message but it is slightly different for closing of driver and other commands. 
As part of open, firmware returns specific identifier i.e. handle which has to 
be used for all further commands/messages related to specific plan. It means 
that close will also require this specific identifier i.e. handle and so it 
will not be possible for other application to close any driver unless specific 
identifier i.e. handle is also supplied along with close message. This 
identifier or handles helps in identifying source of open/close or any commands.

Regards,
Purushotam


-Original Message-
From: Maupin, Chase
Sent: Friday, February 26, 2010 9:05 PM
To: Laurent Pinchart
Cc: Hans Verkuil; sakari.ai...@maxwell.research.nokia.com; 
mche...@infradead.org; vpss_driver_des...@list.ti.com - This list is to discuss 
the VPSS driver design (May contain non-TIers); linux-media@vger.kernel.org; 
Kamoolkar, Mugdha
Subject: RE: Requested feedback on V4L2 driver design

Laurent,

Responses inline

Puru,

There is a question for you below.  Can you look at it and provide an answer?

Sincerely,
Chase Maupin
Software Applications
Catalog DSP Products
e-mail: chase.mau...@ti.com
phone: (281) 274-3285

For support:
Forums - http://community.ti.com/forums/
Wiki - http://wiki.davincidsp.com/

 -Original Message-
 From: Laurent Pinchart [mailto:laurent.pinch...@ideasonboard.com]
 Sent: Thursday, February 25, 2010 6:32 PM
 To: Maupin, Chase
 Cc: Hans Verkuil; sakari.ai...@maxwell.research.nokia.com;
 mche...@infradead.org; vpss_driver_des...@list.ti.com - This list is to
 discuss the VPSS driver design (May contain non-TIers); linux-
 me...@vger.kernel.org; Kamoolkar, Mugdha
 Subject: Re: Requested feedback on V4L2 driver design

 Hi Chase,

 On Friday 12 February 2010 17:46:55 Maupin, Chase wrote:
  Laurent,
 
  First let me thank you for taking time to review this.

 You're welcome.

 [snip]

   -Original Message-
   From: Laurent Pinchart [mailto:laurent.pinch...@ideasonboard.com]
   Sent: Thursday, February 11, 2010 7:23 PM
  
   On Monday 08 February 2010 16:08:37 Maupin, Chase wrote:

 [snip]

If you have additional questions or need more information please
 feel
free to contact us (we have setup a mailing list at
vpss_driver_des...@list.ti.com) so we can answer them.
  
   I'll answer here as the instructions provided in the wiki to subscribe
 to
   the vpss_driver_design mailing list are incorrect (http://list.ti.com/
   isn't accessible, the name has no A record associated to it). I've
 CC'ed
   the list in case subscription wouldn't be required to post.
 
  The page for subscribing to the list requires a my.TI login which you
 can
  setup at
 
 https://myportal.ti.com/portal/dt?provider=TIPassLoginSingleContainerlt=m
  ytij5=2j3=1goto=https%3A%2F%2Fmy.ti.com%3A443%2Fcgi-
 bin%2Fhome.pl%3FDCMP
  %3DTIHeaderTracking%26HQS%3DOther%2BOT%2Bhdr_my_ti.
  However, your reply to the list should be fine without subscribing.

 Thanks for the information, but http://list.ti.com/ still can't be
 accessed.
 The host list.ti.com has no A record, an HTTP connection can't thus be
 established.

I'm not sure what is going on here.  Let me file a ticket with our IT group and 
see if they can fix the problem.


   1. Multi-core design
   
  
   OMAP3 was already a dual-core system, OMAP4 (I assume all this is
 about
   the OMAP4 processors family) seems to push the concept one step
 further.
  
   With its heterogeneous multi-core design (ARM master CPU and slave
 DSPs),
   the OMAP architecture delivers high performances at the cost of higher
   development time and effort as users need to write software for
 completely
   different cores, usually using different toolchains. This is in my
 opinion
   a good (or at least acceptable) trade-off between CPU power,
 development
   time and power consumption (DSPs being more efficient at signal
 processing
   at the cost of a higher development complexity).
  
   I'm a bit puzzled, however, by how the VPSS MCU will help improving
 the
   situation compared to the OMAP3 design. The VPSS MCU will provide an
 API
   that will expose a fixed subset of the hardware capabilities. This is
 only
   a 

Re: Info

2010-03-01 Thread Adriano Gigante

Devin,
can you ask Prahal to keep this mailing list updated with the progress 
of develop?

People from the list could help him in any need.
Thank you.
Adri


On 02/14/2010 06:33 PM, Florent NOUVELLON wrote:
  Hi Devin,
 
  Did you with Prahal advanced the 0072/terratec hybrid xs fm support in
  linux-dvb driver ?
 
  If you need any kind of help (testing, or whatever) feel free to 
ask me.

 
  Regards,
  Florent
 
--
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 RC, REGRESSION] Didn't work IR RC

2010-03-01 Thread Mauro Carvalho Chehab
Andy Walls wrote:
 On Mon, 2010-03-01 at 15:36 +0900, Dmitri Belimov wrote:
 Hi All

 After rework of the IR subsystem, IR RC no more work in our TV cards.
 As I see 
 call saa7134_probe_i2c_ir,
   configure i2c
   call i2c_new_device

 New i2c device not registred.

 The module kbd-i2c-ir loaded after i2c_new_device.
 
 Jean,
 
 There was also a problem reported with the cx23885 driver's I2C
 connected IR by Timothy Lenz:
 
 http://www.spinics.net/lists/linux-media/msg15122.html
 
 The failure mode sounds similar to Dmitri's, but maybe they are
 unrelated.
 
 I worked a bit with Timothy on IRC and the remote device fails to be
 detected whether ir-kbd-i2c is loaded before the cx23885 driver or after
 the cx23885 driver.  I haven't found time to do any folow-up and I don't
 have any of the hardware in question.
 
 Do you have any thoughts or a suggested troubleshooting approach?

Andy/Dmitri,

With the current i2c approach, the bridge driver is responsible for binding
an i2c device into the i2c adapter. In other words, the bridge driver should
have some logic to know what devices use ir-kbd-i2c, loading it at the right
i2c address(es). Manually loading IR shouldn't make any difference.

From Andy's comment, I suspect that such logic is missing at cx23885 for the 
board
you're referring. Not sure if this is the same case of the boards Dmitri is
concerned about.

It should be noticed that the i2c redesign happened on 2.6.31 or 2.6.32, so,
if this is the case, a patch should be sent also to -stable.

In the case of saa7134, Jean worked on a fix for some boards:
http://patchwork.kernel.org/patch/75883/

He is currently waiting for someone with the affected boards to test it and
give some return.

-- 

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] Input: scancode in get/set_keycodes should be unsigned

2010-03-01 Thread Matthew Garrett
On Sat, Feb 27, 2010 at 10:13:11PM -0800, Dmitry Torokhov wrote:
 The HID layer has some scan codes of the form 0xffbc for logitech
 devices which do not work if scancode is typed as signed int, so we need
 to switch to unsigned int instead. While at it keycode being signed does
 not make much sense either.
 
 Signed-off-by: Dmitry Torokhov d...@mail.ru
 ---
Acked-by: Matthew Garrett m...@redhat.com
-- 
Matthew Garrett | mj...@srcf.ucam.org
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PULL] http://kernellabs.com/hg/~dheitmueller/v4l-dvb-as102-2

2010-03-01 Thread Mauro Carvalho Chehab
Devin Heitmueller wrote:
 Hello Mauro,
 
 Please PULL from
 http://kernellabs.com/hg/~dheitmueller/v4l-dvb-as102-2 for the
 following:
 
 as102: import initial as102 driver
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: Add Elgato EyeTV DTT Deluxe
 as102: properly handle multiple product names

Generating hg_14330_as102_properly_handle_multiple_product_names.patch
ERROR: Missing Signed-off-by: line(s)

It seems that you forgot to sign one of the patches... 

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


Re: [PULL] http://kernellabs.com/hg/~dheitmueller/v4l-dvb-as102-2

2010-03-01 Thread Devin Heitmueller
On Mon, Mar 1, 2010 at 10:08 AM, Mauro Carvalho Chehab
mche...@redhat.com wrote:
 Devin Heitmueller wrote:
 Hello Mauro,

 Please PULL from
 http://kernellabs.com/hg/~dheitmueller/v4l-dvb-as102-2 for the
 following:

 as102: import initial as102 driver
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: Add Elgato EyeTV DTT Deluxe
 as102: properly handle multiple product names

 Generating hg_14330_as102_properly_handle_multiple_product_names.patch
 ERROR: Missing Signed-off-by: line(s)

 It seems that you forgot to sign one of the patches...

Hi Mauro,

I have to admit I'm a bit confused.  I just double checked the patch
in question, and the SOB looks fine.

http://kernellabs.com/hg/~dheitmueller/v4l-dvb-as102-2/rev/22ef1bdca69a

Could you please clarify what the actual problem is?

Thanks,

Devin

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


Re: [PULL] http://kernellabs.com/hg/~dheitmueller/v4l-dvb-as102-2

2010-03-01 Thread Devin Heitmueller
On Mon, Mar 1, 2010 at 10:08 AM, Mauro Carvalho Chehab
mche...@redhat.com wrote:
 Devin Heitmueller wrote:
 Hello Mauro,

 Please PULL from
 http://kernellabs.com/hg/~dheitmueller/v4l-dvb-as102-2 for the
 following:

 as102: import initial as102 driver
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: checkpatch fixes
 as102: Add Elgato EyeTV DTT Deluxe
 as102: properly handle multiple product names

 Generating hg_14330_as102_properly_handle_multiple_product_names.patch
 ERROR: Missing Signed-off-by: line(s)

 It seems that you forgot to sign one of the patches...

Signed-off-by: Devin Heitmueller dheitmuel...@kernellabs.com

Thanks,

Devin

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


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

2010-03-01 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 Mar  1 19:00:17 CET 2010
path:http://www.linuxtv.org/hg/v4l-dvb
changeset:   14320:37ff78330942
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.32.6-armv5-davinci: WARNINGS
linux-2.6.33-armv5-davinci: WARNINGS
linux-2.6.32.6-armv5-dm365: ERRORS
linux-2.6.33-armv5-dm365: ERRORS
linux-2.6.32.6-armv5-ixp: OK
linux-2.6.33-armv5-ixp: OK
linux-2.6.32.6-armv5-omap2: OK
linux-2.6.33-armv5-omap2: OK
linux-2.6.22.19-i686: OK
linux-2.6.23.17-i686: OK
linux-2.6.24.7-i686: OK
linux-2.6.25.20-i686: OK
linux-2.6.26.8-i686: OK
linux-2.6.27.44-i686: OK
linux-2.6.28.10-i686: OK
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.32.6-m32r: OK
linux-2.6.33-m32r: OK
linux-2.6.32.6-mips: OK
linux-2.6.33-mips: OK
linux-2.6.32.6-powerpc64: WARNINGS
linux-2.6.33-powerpc64: WARNINGS
linux-2.6.22.19-x86_64: OK
linux-2.6.23.17-x86_64: OK
linux-2.6.24.7-x86_64: OK
linux-2.6.25.20-x86_64: OK
linux-2.6.26.8-x86_64: OK
linux-2.6.27.44-x86_64: OK
linux-2.6.28.10-x86_64: OK
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
spec: OK
sparse (linux-2.6.33): ERRORS
linux-2.6.16.62-i686: OK
linux-2.6.17.14-i686: OK
linux-2.6.18.8-i686: OK
linux-2.6.19.7-i686: OK
linux-2.6.20.21-i686: OK
linux-2.6.21.7-i686: OK
linux-2.6.16.62-x86_64: OK
linux-2.6.17.14-x86_64: OK
linux-2.6.18.8-x86_64: OK
linux-2.6.19.7-x86_64: OK
linux-2.6.20.21-x86_64: OK
linux-2.6.21.7-x86_64: OK

Detailed results are available here:

http://www.xs4all.nl/~hverkuil/logs/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: [PATCH 1/2] New driver for MI2020 sensor with GL860 bridge

2010-03-01 Thread Olivier Lorin
Hello,

light source is not related to LEDs, it is for the kind of light
source (tungsten, etc). The Windows driver had this control beside the
white balance. I could remove this new control as under Windows the
white balance is achieved by software and not hardware so the white
balance control is available with Linux.

About delay, they are required with at least 2 of four sensors managed
by the driver because there can be communication faults. It also
depends on the laptop as a same sensor driver is kown to always fails
with a laptop and not another one. I prefer now to secure the
communication with all four sensors with a small delay after a data
has been sent.
The delay is mostly stringent in the case of the MI2020 because there
is more than 400 USB messages sent to the webcam at startup and
initialisation time. Added with other required delay, several seconds
are needed to initialise the webcam. I know a msleep(1) lasts 5ms to
10ms depending on the scheduler. The msleep slows down too much the
communication. The OV2640 requires also more than 200 messages.
I never got any error with 850ms but we could use 900 or 1000ms. I
chose the less long delay.

Cheers,
OL

2010/3/1, Jean-Francois Moine moin...@free.fr:
 On Sun, 28 Feb 2010 21:19:25 +0100
 Olivier Lorin olori...@gmail.com wrote:

 - General changes for all drivers because of new MI2020 sensor
 driver :
   - add the light source control
   - control value changes only applied after an end of image
   - replace msleep with duration less than 5 ms by a busy loop
 - Fix for an irrelevant OV9655 image resolution identifier name

 Hello Olivier,

 What is this 'light source'? In the list, we are talking about the
 webcam LEDs and how to switch them on/off. Is it the same feature?

 Is it important to have a so precise delay in the webcam exchanges?

 Cheers.

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

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


Re: How do private controls actually work?

2010-03-01 Thread Mauro Carvalho Chehab
Hi Devin,

Devin Heitmueller wrote:
 On Mon, Mar 1, 2010 at 4:58 AM, Hans Verkuil hverk...@xs4all.nl wrote:
 New private controls should not use V4L2_CID_PRIVATE_BASE at all. That
 mechanism was a really bad idea. Instead a new control should be added to
 the appropriate control class and with a offset = 0x1000. See for example
 the CX2341X private controls in videodev2.h.

The better is to create a device-specific control, if the parameter you want 
to control is really specific to just one chip family. Otherwise, just add a 
new common control to the API.

 
 http://kernellabs.com/hg/~dheitmueller/em28xx-test/rev/a7d50db75420

FYI, v42-apps were moved to a separate tree.

-- 

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


Re: [linux-dvb] DVB-T USB Devices

2010-03-01 Thread Rodd Clarkson
On Mon, 2010-03-01 at 19:03 +1100, Rodd Clarkson wrote:

 usb 1-4: Manufacturer: Hauppauge Computer Works
 ...
 smscore_set_device_mode: firmware download success:
 sms1xxx-nova-b-dvbt-01.fw

I hate replying to myself, but I should have mentioned that

sms1xxx-nova-b-dvbt-01.fw is a renamed sms1xxx-hcw-55xxx-dvbt-01.fw

I've noticed that sms1xxx-hcw-55xxx-dvbt-02.fw seems to be out, but
haven't tried this.


R.

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


Audio4DJ (snd-usb-caiaq) noise when using DVB usb adapter

2010-03-01 Thread Pedro Ribeiro
Hi all,

I'm encountering a problem with the Audio4DJ audio card with a  DVB
USB adapter (Win-TV NOVA-T USB2 STICK).

The problem is strange because it only happens after I disconnect and
reconnect the audio card.

Procedure 1:
- boot from fresh
- plug the DVB adapter
- plug the Audio4DJ

Everything works correctly - meaning I can watch TV and my audio is fine.

Procedure 2:
- boot from fresh
- plug the Audio4DJ
- plug the DVB adapter

The audio starts cracking every few seconds, and constantly if I use jackd.

Procedure 3:
- boot from fresh
- plug the DVB adapter
- plug the Audio4DJ
(everything is correct, as above in Procedure 1)
- unplug the Audio4DJ
- plug it again

Cracking audio. I'm insisting in boot from fresh because from now on
(that is, from the moment that I unplug the Audio4DJ) I always get
cracking audio.

rmmod'ing the snd-usb-caiaq and the usb-dvb modules produces the same
result. I have to boot from fresh and do Procedure 1 for it to work
OK.


Can anyone please give a hint on how to debug this?

(Please CC me directly as I'm not in both lists).


Regards,
Pedro
--
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 RC, REGRESSION] Didn't work IR RC

2010-03-01 Thread hermann pitton
Hi,

Am Montag, den 01.03.2010, 10:37 -0300 schrieb Mauro Carvalho Chehab: 
 Andy Walls wrote:
  On Mon, 2010-03-01 at 15:36 +0900, Dmitri Belimov wrote:
  Hi All
 
  After rework of the IR subsystem, IR RC no more work in our TV cards.
  As I see 
  call saa7134_probe_i2c_ir,
configure i2c
call i2c_new_device
 
  New i2c device not registred.
 
  The module kbd-i2c-ir loaded after i2c_new_device.
  
  Jean,
  
  There was also a problem reported with the cx23885 driver's I2C
  connected IR by Timothy Lenz:
  
  http://www.spinics.net/lists/linux-media/msg15122.html
  
  The failure mode sounds similar to Dmitri's, but maybe they are
  unrelated.
  
  I worked a bit with Timothy on IRC and the remote device fails to be
  detected whether ir-kbd-i2c is loaded before the cx23885 driver or after
  the cx23885 driver.  I haven't found time to do any folow-up and I don't
  have any of the hardware in question.
  
  Do you have any thoughts or a suggested troubleshooting approach?
 
 Andy/Dmitri,
 
 With the current i2c approach, the bridge driver is responsible for binding
 an i2c device into the i2c adapter. In other words, the bridge driver should
 have some logic to know what devices use ir-kbd-i2c, loading it at the right
 i2c address(es). Manually loading IR shouldn't make any difference.

yes, we have info.addr at saa7134-input and Dmitri did add the Beholder
IR address there recently.

 From Andy's comment, I suspect that such logic is missing at cx23885 for the 
 board
 you're referring. Not sure if this is the same case of the boards Dmitri is
 concerned about.

On a first look, Andy seems not to provide the IR addr from the bridge
and without probing it can't work anymore.

 It should be noticed that the i2c redesign happened on 2.6.31 or 2.6.32, so,
 if this is the case, a patch should be sent also to -stable.
 
 In the case of saa7134, Jean worked on a fix for some boards:
   http://patchwork.kernel.org/patch/75883/
 
 He is currently waiting for someone with the affected boards to test it and
 give some return.

That fix should be unrelated and both variants of the patch are not
anywhere yet.

We can fake this single board in question on a P7131 Dual, but my
receiver is broken, else all looked O.K., and it seems not worth yet to
ask Mauro to lose time on faking it, assuming his IR receiver does still
work.

Here we can simply wait for Daro coming back from skiing, or can even
apply already Jean's solution per this card without any risk.

Else, do we not check for kernels  2.6.30 on hg v4l-dvb not using auto
probing anymore? I tested only on two machines with some 2.6.30 and one
with 2.6.29 and recent hg v4l-dvb. There at least all was fine, also
with the patch moving IR init1 to saa7134_input_init2 and also for
ir-kbd-ic2 for a early Pinnacle 310i under all conditions.

Dmitri, on what kernel and/or SCM version of v4l-dvb you discover that
flaw? Maybe I can reproduce it then.

Andy has reports, that ir-kbd-i2c is still fine on 2.6.31, but breaks on
2.6.32. Do we already run out of sync?

Cheers,
Hermann


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


Re: [IR RC, REGRESSION] Didn't work IR RC

2010-03-01 Thread Dmitri Belimov
Hi

Not work I2C IR RC. GPIO RC I think works well.

This patch remove addr of our RC from switch-case

http://linuxtv.org/hg/v4l-dvb/rev/f700bce82813

When I set debug for ir-kbd-i2c I get 

ir-kbd-i2c: :Unsupported device at address 0x2d

People with broken IR RC what addr has your I2C IR RC?

With my best regards, Dmitry.

 Hi,
 
 Am Montag, den 01.03.2010, 10:37 -0300 schrieb Mauro Carvalho Chehab: 
  Andy Walls wrote:
   On Mon, 2010-03-01 at 15:36 +0900, Dmitri Belimov wrote:
   Hi All
  
   After rework of the IR subsystem, IR RC no more work in our TV
   cards. As I see 
   call saa7134_probe_i2c_ir,
 configure i2c
 call i2c_new_device
  
   New i2c device not registred.
  
   The module kbd-i2c-ir loaded after i2c_new_device.
   
   Jean,
   
   There was also a problem reported with the cx23885 driver's I2C
   connected IR by Timothy Lenz:
   
   http://www.spinics.net/lists/linux-media/msg15122.html
   
   The failure mode sounds similar to Dmitri's, but maybe they are
   unrelated.
   
   I worked a bit with Timothy on IRC and the remote device fails to
   be detected whether ir-kbd-i2c is loaded before the cx23885
   driver or after the cx23885 driver.  I haven't found time to do
   any folow-up and I don't have any of the hardware in question.
   
   Do you have any thoughts or a suggested troubleshooting approach?
  
  Andy/Dmitri,
  
  With the current i2c approach, the bridge driver is responsible for
  binding an i2c device into the i2c adapter. In other words, the
  bridge driver should have some logic to know what devices use
  ir-kbd-i2c, loading it at the right i2c address(es). Manually
  loading IR shouldn't make any difference.
 
 yes, we have info.addr at saa7134-input and Dmitri did add the
 Beholder IR address there recently.
 
  From Andy's comment, I suspect that such logic is missing at
  cx23885 for the board
  you're referring. Not sure if this is the same case of the boards
  Dmitri is concerned about.
 
 On a first look, Andy seems not to provide the IR addr from the bridge
 and without probing it can't work anymore.
 
  It should be noticed that the i2c redesign happened on 2.6.31 or
  2.6.32, so, if this is the case, a patch should be sent also to
  -stable.
  
  In the case of saa7134, Jean worked on a fix for some boards:
  http://patchwork.kernel.org/patch/75883/
  
  He is currently waiting for someone with the affected boards to
  test it and give some return.
 
 That fix should be unrelated and both variants of the patch are not
 anywhere yet.
 
 We can fake this single board in question on a P7131 Dual, but my
 receiver is broken, else all looked O.K., and it seems not worth yet
 to ask Mauro to lose time on faking it, assuming his IR receiver does
 still work.
 
 Here we can simply wait for Daro coming back from skiing, or can even
 apply already Jean's solution per this card without any risk.
 
 Else, do we not check for kernels  2.6.30 on hg v4l-dvb not using
 auto probing anymore? I tested only on two machines with some 2.6.30
 and one with 2.6.29 and recent hg v4l-dvb. There at least all was
 fine, also with the patch moving IR init1 to saa7134_input_init2 and
 also for ir-kbd-ic2 for a early Pinnacle 310i under all conditions.
 
 Dmitri, on what kernel and/or SCM version of v4l-dvb you discover that
 flaw? Maybe I can reproduce it then.
 
 Andy has reports, that ir-kbd-i2c is still fine on 2.6.31, but breaks
 on 2.6.32. Do we already run out of sync?
 
 Cheers,
 Hermann
 
 
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: cx18: Unable to find blank work order form to schedule incoming mailbox ...

2010-03-01 Thread Mark Lord

On 03/01/10 20:34, Andy Walls wrote:

On Mon, 2010-03-01 at 11:07 -0500, Mark Lord wrote:

I'm using MythTV-0.21-fixes (from svn) on top of Linux-2.6.33 (from kernel.org),
with an HVR-1600 tuner card.  This card usually works okay (with workarounds for
the known analog recording bugs) in both analog and digital modes.

Last night, for the first time ever, MythTV chose to record from both the analog
and digital sides of the HVR-1600 card at exactly the same times..

The kernel driver failed, and neither recording was successful.
The only message in /var/log/messages was:

Feb 28 19:59:45 duke kernel: cx18-0: Unable to find blank work order form to 
schedule incoming mailbox command processing



This is really odd.  It means:

1. Your machine had a very busy burst of cx18 driver buffer handling
activity.  Stopping a number of different streams, MPEG, VBI, and (DTV)
TS at nearly the same time could do it

2. The firmware locked up.

3. The work handler kernel thread, cx18-0-in, got killed, if that's
possible, or the processor it was running on got really bogged down.

..

Yeah, it was pretty strange.
I wonder.. the system also has a Hauppauge 950Q USB tuner,
which is also partially controlled by the cx18 driver (I think).

I wonder if perhaps that had anything to do with it?


If you want to make the problem just go away then up this parameter in
cx18-driver.h:

#define CX18_MAX_IN_WORK_ORDERS (CX18_MAX_FW_MDLS_PER_STREAM + 7)
to something like
#define CX18_MAX_IN_WORK_ORDERS (2*CX18_MAX_FW_MDLS_PER_STREAM + 7)

..

Heh.. Yup, that's the first thing I did after looking at the code.  :)
Dunno if it'll help or not, but easy enough to do.

And if the cx18 is indeed being used by two cards (HVR-1600 and HVR-950Q),
then perhaps that number does need to be bigger or dynamic (?).

I've since tried to reproduce the failure on purpose, with no luck to date.

Thanks guys!
--
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