[PATCH 1/1] v4l: Remove experimental tag from certain API elements

2012-09-02 Thread Sakari Ailus
Remove experimantal tag from the following API elements:

V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY buffer type.
V4L2_CAP_VIDEO_OUTPUT_OVERLAY capability flag.
VIDIOC_ENUM_FRAMESIZES IOCTL.
VIDIOC_G_ENC_INDEX IOCTL.
VIDIOC_ENCODER_CMD and VIDIOC_TRY_ENCODER_CMD IOCTLs.
VIDIOC_DECODER_CMD and VIDIOC_TRY_DECODER_CMD IOCTLs.

Signed-off-by: Sakari Ailus sakari.ai...@iki.fi
---
VIDIOC_ENUM_FRAMEINTERVALS is already no longer experimental.

 Documentation/DocBook/media/v4l/compat.xml |   23 
 Documentation/DocBook/media/v4l/dev-osd.xml|7 --
 Documentation/DocBook/media/v4l/io.xml |3 +-
 .../DocBook/media/v4l/vidioc-decoder-cmd.xml   |7 --
 .../DocBook/media/v4l/vidioc-encoder-cmd.xml   |7 --
 .../DocBook/media/v4l/vidioc-enum-framesizes.xml   |7 --
 .../DocBook/media/v4l/vidioc-g-enc-index.xml   |7 --
 7 files changed, 1 insertions(+), 60 deletions(-)

diff --git a/Documentation/DocBook/media/v4l/compat.xml 
b/Documentation/DocBook/media/v4l/compat.xml
index 98e8d08..578135e 100644
--- a/Documentation/DocBook/media/v4l/compat.xml
+++ b/Documentation/DocBook/media/v4l/compat.xml
@@ -2555,29 +2555,6 @@ and may change in the future./para
  paraVideo Output Overlay (OSD) Interface, xref
linkend=osd /./para
 /listitem
-   listitem
- paraconstantV4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY/constant,
-   v4l2-buf-type;, xref linkend=v4l2-buf-type /./para
-/listitem
-listitem
- paraconstantV4L2_CAP_VIDEO_OUTPUT_OVERLAY/constant,
-VIDIOC-QUERYCAP; ioctl, xref linkend=device-capabilities /./para
-/listitem
-listitem
- paraVIDIOC-ENUM-FRAMESIZES; and
-VIDIOC-ENUM-FRAMEINTERVALS; ioctls./para
-/listitem
-listitem
- paraVIDIOC-G-ENC-INDEX; ioctl./para
-/listitem
-listitem
- paraVIDIOC-ENCODER-CMD; and VIDIOC-TRY-ENCODER-CMD;
-ioctls./para
-/listitem
-listitem
- paraVIDIOC-DECODER-CMD; and VIDIOC-TRY-DECODER-CMD;
-ioctls./para
-/listitem
 listitem
  paraVIDIOC-DBG-G-REGISTER; and VIDIOC-DBG-S-REGISTER;
 ioctls./para
diff --git a/Documentation/DocBook/media/v4l/dev-osd.xml 
b/Documentation/DocBook/media/v4l/dev-osd.xml
index 479d943..dd91d61 100644
--- a/Documentation/DocBook/media/v4l/dev-osd.xml
+++ b/Documentation/DocBook/media/v4l/dev-osd.xml
@@ -1,13 +1,6 @@
   titleVideo Output Overlay Interface/title
   subtitleAlso known as On-Screen Display (OSD)/subtitle
 
-  note
-titleExperimental/title
-
-paraThis is an link linkend=experimentalexperimental/link
-interface and may change in the future./para
-  /note
-
   paraSome video output devices can overlay a framebuffer image onto
 the outgoing video signal. Applications can set up such an overlay
 using this interface, which borrows structures and ioctls of the link
diff --git a/Documentation/DocBook/media/v4l/io.xml 
b/Documentation/DocBook/media/v4l/io.xml
index 1885cc0..2512649 100644
--- a/Documentation/DocBook/media/v4l/io.xml
+++ b/Documentation/DocBook/media/v4l/io.xml
@@ -827,8 +827,7 @@ should set this to 0./entry

entryconstantV4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY/constant/entry
entry8/entry
entryBuffer for video output overlay (OSD), see xref
-   linkend=osd /. Status: link
-linkend=experimentalExperimental/link./entry
+   linkend=osd /./entry
  /row
  row
entryconstantV4L2_BUF_TYPE_PRIVATE/constant/entry
diff --git a/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml 
b/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml
index 74b87f6..9215627 100644
--- a/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml
@@ -49,13 +49,6 @@
   refsect1
 titleDescription/title
 
-note
-  titleExperimental/title
-
-  paraThis is an link linkend=experimentalexperimental/link
-interface and may change in the future./para
-/note
-
 paraThese ioctls control an audio/video (usually MPEG-) decoder.
 constantVIDIOC_DECODER_CMD/constant sends a command to the
 decoder, constantVIDIOC_TRY_DECODER_CMD/constant can be used to
diff --git a/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml 
b/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml
index f431b3b..0619ca5 100644
--- a/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml
@@ -49,13 +49,6 @@
   refsect1
 titleDescription/title
 
-note
-  titleExperimental/title
-
-  paraThis is an link linkend=experimentalexperimental/link
-interface and may change in the future./para
-/note
-
 paraThese ioctls control an audio/video (usually MPEG-) encoder.
 constantVIDIOC_ENCODER_CMD/constant sends a command to the
 encoder, constantVIDIOC_TRY_ENCODER_CMD/constant can be used to
diff --git 

[PATCH] tda8261: add printk levels

2012-09-02 Thread Jiri Kosina
From: Alan Cox a...@linux.intel.com

This is done as a minimal printk updating patch to ensure correctness. Yes
it should all one day use dev_foo(), but that's one for the maintainers.

Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=32932
Signed-off-by: Alan Cox a...@linux.intel.com
Signed-off-by: Jiri Kosina jkos...@suse.cz
---

The file has been moved in -next, so to avoid unnecessary conflicts, I am 
passing this one over from trivial tree to media maintainers.

Thanks.

 drivers/media/dvb-frontends/tda8261.c |   28 ++--
 1 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/media/dvb-frontends/tda8261.c 
b/drivers/media/dvb-frontends/tda8261.c
index 53c7d8f..19c4888 100644
--- a/drivers/media/dvb-frontends/tda8261.c
+++ b/drivers/media/dvb-frontends/tda8261.c
@@ -43,7 +43,7 @@ static int tda8261_read(struct tda8261_state *state, u8 *buf)
struct i2c_msg msg = { .addr= config-addr, .flags = I2C_M_RD,.buf 
= buf,  .len = 1 };
 
if ((err = i2c_transfer(state-i2c, msg, 1)) != 1)
-   printk(%s: read error, err=%d\n, __func__, err);
+   pr_err(%s: read error, err=%d\n, __func__, err);
 
return err;
 }
@@ -55,7 +55,7 @@ static int tda8261_write(struct tda8261_state *state, u8 *buf)
struct i2c_msg msg = { .addr = config-addr, .flags = 0, .buf = buf, 
.len = 4 };
 
if ((err = i2c_transfer(state-i2c, msg, 1)) != 1)
-   printk(%s: write error, err=%d\n, __func__, err);
+   pr_err(%s: write error, err=%d\n, __func__, err);
 
return err;
 }
@@ -69,11 +69,11 @@ static int tda8261_get_status(struct dvb_frontend *fe, u32 
*status)
*status = 0;
 
if ((err = tda8261_read(state, result))  0) {
-   printk(%s: I/O Error\n, __func__);
+   pr_err(%s: I/O Error\n, __func__);
return err;
}
if ((result  6)  0x01) {
-   printk(%s: Tuner Phase Locked\n, __func__);
+   pr_debug(%s: Tuner Phase Locked\n, __func__);
*status = 1;
}
 
@@ -98,7 +98,7 @@ static int tda8261_get_state(struct dvb_frontend *fe,
tstate-bandwidth = 4000; /* FIXME! need to calculate 
Bandwidth */
break;
default:
-   printk(%s: Unknown parameter (param=%d)\n, __func__, param);
+   pr_err(%s: Unknown parameter (param=%d)\n, __func__, param);
err = -EINVAL;
break;
}
@@ -124,11 +124,11 @@ static int tda8261_set_state(struct dvb_frontend *fe,
 */
frequency = tstate-frequency;
if ((frequency  95) || (frequency  215)) {
-   printk(%s: Frequency beyond limits, frequency=%d\n, 
__func__, frequency);
+   pr_warn(%s: Frequency beyond limits, frequency=%d\n, 
__func__, frequency);
return -EINVAL;
}
N = (frequency + (div_tab[config-step_size] - 1)) / 
div_tab[config-step_size];
-   printk(%s: Step size=%d, Divider=%d, PG=0x%02x (%d)\n,
+   pr_debug(%s: Step size=%d, Divider=%d, PG=0x%02x (%d)\n,
__func__, config-step_size, 
div_tab[config-step_size], N, N);
 
buf[0] = (N  8)  0xff;
@@ -144,25 +144,25 @@ static int tda8261_set_state(struct dvb_frontend *fe,
 
/* Set params */
if ((err = tda8261_write(state, buf))  0) {
-   printk(%s: I/O Error\n, __func__);
+   pr_err(%s: I/O Error\n, __func__);
return err;
}
/* sleep for some time */
-   printk(%s: Waiting to Phase LOCK\n, __func__);
+   pr_debug(%s: Waiting to Phase LOCK\n, __func__);
msleep(20);
/* check status */
if ((err = tda8261_get_status(fe, status))  0) {
-   printk(%s: I/O Error\n, __func__);
+   pr_err(%s: I/O Error\n, __func__);
return err;
}
if (status == 1) {
-   printk(%s: Tuner Phase locked: status=%d\n, __func__, 
status);
+   pr_debug(%s: Tuner Phase locked: status=%d\n, 
__func__, status);
state-frequency = frequency; /* cache successful state 
*/
} else {
-   printk(%s: No Phase lock: status=%d\n, __func__, 
status);
+   pr_debug(%s: No Phase lock: status=%d\n, __func__, 
status);
}
} else {
-   printk(%s: Unknown parameter (param=%d)\n, __func__, param);
+   pr_err(%s: Unknown parameter (param=%d)\n, __func__, param);
return -EINVAL;
}
 
@@ -214,7 +214,7 @@ struct dvb_frontend *tda8261_attach(struct dvb_frontend *fe,
 
 // printk(%s: 

Re: [PATCH] [media] davinci: vpfe: Add documentation

2012-09-02 Thread Hans Verkuil
On Sat September 1 2012 16:22:30 Laurent Pinchart wrote:
 Hi Sakari,
 
 On Saturday 01 September 2012 12:57:07 Sakari Ailus wrote:
  On Wed, Aug 29, 2012 at 08:11:50PM +0530, Prabhakar Lad wrote:
 
 [snip]
 
   For test pattern you meant control to enable/disable it ?
  
  There are two approaches I can think of.
  
  One is a menu control which can be used to choose the test pattern (or
  disable it). The control could be standardised but the menu items would have
  to be hardware-specific since the test patterns themselves are not
  standardised.
 
 Agreed. The test patterns themselves are highly hardware-specific.
 
 From personal experience with sensors, most devices implement a small, fixed 
 set of test patterns that can be exposed through a menu control. However, 
 some 
 devices also implement more configurable test patterns. For instance the 
 MT9V032 can generate horizontal, vertical or diagonal test patterns, or a 
 uniform grey test pattern with a user-configurable value. This would then 
 require two controls.
 
  The alternative is to have a boolean control to enable (and disable) the
  test pattern and then a menu control to choose which one to use. Using or
  implemeting the control to select the test pattern isn't even strictly
  necessary to get a test pattern out of the device: one can enable it without
  knowing which one it is.
  
  So which one would be better? Similar cases include V4L2_CID_SCENE_MODE
  which is used to choose the scene mode from a list of alternatives. The main
  difference to this case is that the menu items of the scene mode control
  are standardised, too.
  
  I'd be inclined to have a single menu control, even if the other menu items
  will be device-specific. The first value (0) still has to be documented to
  mean the test pattern is disabled.
  
  Laurent, Hans: what do you think?
 
 A menu control with value 0 meaning test pattern disabled has my preference 
 as 
 well.

+1

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: [PATCHv3 2/9] ir-rx51: Handle signals properly

2012-09-02 Thread Timo Kokkonen
Terve,

On 09/01/12 20:14, Sakari Ailus wrote:
 Moi,
 
 On Thu, Aug 30, 2012 at 08:54:24PM +0300, Timo Kokkonen wrote:
 @@ -273,9 +281,18 @@ static ssize_t lirc_rx51_write(struct file *file, const 
 char *buf,
  
  /*
   * Don't return back to the userspace until the transfer has
 - * finished
 + * finished. However, we wish to not spend any more than 500ms
 + * in kernel. No IR code TX should ever take that long.
 + */
 +i = wait_event_timeout(lirc_rx51-wqueue, lirc_rx51-wbuf_index  0,
 +HZ / 2);
 
 Why such an arbitrary timeout? In reality it might not bite the user space
 in practice ever, but is it (and if so, why) really required in the first
 place?

Well, I can think of two cases:

1) Something goes wrong. Such before I converted the patch to use the up
to date PM QoS implementation, the transmitting could take very long
time because the interrupts were not waking up the MPU. Now that this is
sorted out only unknown bugs can cause transmitting to hang indefinitely.

2) User is (intentionally?) doing something wrong. For example by
feeding in an IR code that has got very long pulses, he could end up
having the lircd process hung in kernel unkillable for long time. That
could be avoided quite easily by counting the pulse lengths and
rejecting any IR codes that are obviously too long. But since I'd like
to also protect against 1) case, I think this solution works just fine.

In the end, this is just safety measure that this driver behaves well.

-Timo
--
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: [PATCHv3 9/9] ir-rx51: Add missing quote mark in Kconfig text

2012-09-02 Thread Timo Kokkonen
On 09/01/12 20:16, Sakari Ailus wrote:
 Moi,
 
 On Thu, Aug 30, 2012 at 08:54:31PM +0300, Timo Kokkonen wrote:
 This trivial fix cures the following warning message:

 drivers/media/rc/Kconfig:275:warning: multi-line strings not supported

 Signed-off-by: Timo Kokkonen timo.t.kokko...@iki.fi
 ---
  drivers/media/rc/Kconfig | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
 index 4a68014..1300655 100644
 --- a/drivers/media/rc/Kconfig
 +++ b/drivers/media/rc/Kconfig
 @@ -272,7 +272,7 @@ config IR_IGUANA
 be called iguanair.
  
  config IR_RX51
 -tristate Nokia N900 IR transmitter diode
 +tristate Nokia N900 IR transmitter diode
  depends on OMAP_DM_TIMER  LIRC
  ---help---
 Say Y or M here if you want to enable support for the IR
 
 This should be combined with patch 1.
 

Actually I'd rather keep the patch 1 as is as it has already a purpose.
Instead, I'd squash this into patch 3 as it already touches the Kconfig
file and it has also the other trivial fixes combined in it.

-Timo

--
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: [PATCHv3 2/9] ir-rx51: Handle signals properly

2012-09-02 Thread Sakari Ailus

Heippa,

Timo Kokkonen wrote:

Terve,

On 09/01/12 20:14, Sakari Ailus wrote:

Moi,

On Thu, Aug 30, 2012 at 08:54:24PM +0300, Timo Kokkonen wrote:

@@ -273,9 +281,18 @@ static ssize_t lirc_rx51_write(struct file *file, const 
char *buf,

/*
 * Don't return back to the userspace until the transfer has
-* finished
+* finished. However, we wish to not spend any more than 500ms
+* in kernel. No IR code TX should ever take that long.
+*/
+   i = wait_event_timeout(lirc_rx51-wqueue, lirc_rx51-wbuf_index  0,
+   HZ / 2);


Why such an arbitrary timeout? In reality it might not bite the user space
in practice ever, but is it (and if so, why) really required in the first
place?


Well, I can think of two cases:

1) Something goes wrong. Such before I converted the patch to use the up
to date PM QoS implementation, the transmitting could take very long
time because the interrupts were not waking up the MPU. Now that this is
sorted out only unknown bugs can cause transmitting to hang indefinitely.

2) User is (intentionally?) doing something wrong. For example by
feeding in an IR code that has got very long pulses, he could end up
having the lircd process hung in kernel unkillable for long time. That
could be avoided quite easily by counting the pulse lengths and
rejecting any IR codes that are obviously too long. But since I'd like
to also protect against 1) case, I think this solution works just fine.

In the end, this is just safety measure that this driver behaves well.


In that case I think you should use wait_event_interruptible() instead. 
It's not the driver's job to decide what the user can do with the 
hardware and what not, is it?


Terveisin,

--
Sakari Ailus
sakari.ai...@iki.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


Re: [PATCHv3 2/9] ir-rx51: Handle signals properly

2012-09-02 Thread Timo Kokkonen
On 09.02 2012 18:06:34, Sakari Ailus wrote:
 Heippa,
 
 Timo Kokkonen wrote:
  Terve,
 
  On 09/01/12 20:14, Sakari Ailus wrote:
  Moi,
 
  On Thu, Aug 30, 2012 at 08:54:24PM +0300, Timo Kokkonen wrote:
  @@ -273,9 +281,18 @@ static ssize_t lirc_rx51_write(struct file *file, 
  const char *buf,
 
/*
 * Don't return back to the userspace until the transfer has
  -  * finished
  +  * finished. However, we wish to not spend any more than 500ms
  +  * in kernel. No IR code TX should ever take that long.
  +  */
  + i = wait_event_timeout(lirc_rx51-wqueue, lirc_rx51-wbuf_index  0,
  + HZ / 2);
 
  Why such an arbitrary timeout? In reality it might not bite the user space
  in practice ever, but is it (and if so, why) really required in the first
  place?
 
  Well, I can think of two cases:
 
  1) Something goes wrong. Such before I converted the patch to use the up
  to date PM QoS implementation, the transmitting could take very long
  time because the interrupts were not waking up the MPU. Now that this is
  sorted out only unknown bugs can cause transmitting to hang indefinitely.
 
  2) User is (intentionally?) doing something wrong. For example by
  feeding in an IR code that has got very long pulses, he could end up
  having the lircd process hung in kernel unkillable for long time. That
  could be avoided quite easily by counting the pulse lengths and
  rejecting any IR codes that are obviously too long. But since I'd like
  to also protect against 1) case, I think this solution works just fine.
 
  In the end, this is just safety measure that this driver behaves well.
 
 In that case I think you should use wait_event_interruptible() instead. 

Well, that's what I had there in the first place. With interruptible
wait we are left with problem with signals. I was told by Sean Young
that the lirc API expects the write call to finish only after the IR
code is transmitted.

 It's not the driver's job to decide what the user can do with the 
 hardware and what not, is it?

Yeah, policy should be decided by the user space. However, kernel
should not leave any objvious denial of service holes open
either. Allowing a process to get stuck unkillable within kernel for
long time sounds like one to me.

Anyway, we are trying to cover some rare corner cases here, I'm not
sure how it should work exactly..

-Timo

 
 Terveisin,
 
 -- 
 Sakari Ailus
 sakari.ai...@iki.fi
 --
 To unsubscribe from this list: send the line unsubscribe linux-omap 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


gspca_pac7302 driver broken ?

2012-09-02 Thread Frank Schäfer
Hi,

can anyone who owns such a device confirm that the gspca_pac7302 driver
(kernel 3.6.0-rc1+) is fine ?

Today I stumbled over a webcam which we do not support yet. The Windows
driver of this device is called pac7302.sys, so I added it's USB-ID to
the gspca-driver but couldn't get the device working.
When I started capturing, the LED turned on for about a second and then
off again. No frames are received. There were no error messages.

I didn't have enough time for looking into this deeper today, but I
think I could borrow this device again in a few days.

Regards,
Frank Schäfer
--
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: [PATCHv3 2/9] ir-rx51: Handle signals properly

2012-09-02 Thread Sakari Ailus
On Sun, Sep 02, 2012 at 06:20:27PM +0300, Timo Kokkonen wrote:
 On 09.02 2012 18:06:34, Sakari Ailus wrote:
  Heippa,
  
  Timo Kokkonen wrote:
   Terve,
  
   On 09/01/12 20:14, Sakari Ailus wrote:
   Moi,
  
   On Thu, Aug 30, 2012 at 08:54:24PM +0300, Timo Kokkonen wrote:
   @@ -273,9 +281,18 @@ static ssize_t lirc_rx51_write(struct file *file, 
   const char *buf,
  
   /*
* Don't return back to the userspace until the transfer has
   -* finished
   +* finished. However, we wish to not spend any more than 500ms
   +* in kernel. No IR code TX should ever take that long.
   +*/
   +   i = wait_event_timeout(lirc_rx51-wqueue, lirc_rx51-wbuf_index 
0,
   +   HZ / 2);
  
   Why such an arbitrary timeout? In reality it might not bite the user 
   space
   in practice ever, but is it (and if so, why) really required in the first
   place?
  
   Well, I can think of two cases:
  
   1) Something goes wrong. Such before I converted the patch to use the up
   to date PM QoS implementation, the transmitting could take very long
   time because the interrupts were not waking up the MPU. Now that this is
   sorted out only unknown bugs can cause transmitting to hang indefinitely.
  
   2) User is (intentionally?) doing something wrong. For example by
   feeding in an IR code that has got very long pulses, he could end up
   having the lircd process hung in kernel unkillable for long time. That
   could be avoided quite easily by counting the pulse lengths and
   rejecting any IR codes that are obviously too long. But since I'd like
   to also protect against 1) case, I think this solution works just fine.
  
   In the end, this is just safety measure that this driver behaves well.
  
  In that case I think you should use wait_event_interruptible() instead. 
 
 Well, that's what I had there in the first place. With interruptible
 wait we are left with problem with signals. I was told by Sean Young
 that the lirc API expects the write call to finish only after the IR
 code is transmitted.
 
  It's not the driver's job to decide what the user can do with the 
  hardware and what not, is it?
 
 Yeah, policy should be decided by the user space. However, kernel
 should not leave any objvious denial of service holes open
 either. Allowing a process to get stuck unkillable within kernel for
 long time sounds like one to me.

It's interruptible, so the user space can interrupt that wait if it chooses
so. Besides, if you call this denial of service, then capturing video on
V4L2 is, too, since others can't use the device in the meantime. :-)

 Anyway, we are trying to cover some rare corner cases here, I'm not
 sure how it should work exactly..

If there was a generic maximum timeout for sending a code, wouldn't it make
sense to enforce that in the LIRC framework instead?

Terveisin,

-- 
Sakari Ailus
e-mail: sakari.ai...@iki.fi XMPP: sai...@retiisi.org.uk
--
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: media_tree daily build: WARNINGS

2012-09-02 Thread Hans Verkuil
This message is generated daily by a cron job that builds media_tree for
the kernels and architectures in the list below.

Results of the daily build of media_tree:

date:Sun Sep  2 19:00:22 CEST 2012
git hash:79e8c7bebb467bbc3f2514d75bba669a3f354324
gcc version:  i686-linux-gcc (GCC) 4.7.1
host hardware:x86_64
host os:  3.4.07-marune

linux-git-arm-eabi-davinci: WARNINGS
linux-git-arm-eabi-exynos: OK
linux-git-arm-eabi-omap: WARNINGS
linux-git-i686: WARNINGS
linux-git-m32r: WARNINGS
linux-git-mips: WARNINGS
linux-git-powerpc64: WARNINGS
linux-git-x86_64: WARNINGS
linux-2.6.31.12-x86_64: WARNINGS
linux-2.6.32.6-x86_64: WARNINGS
linux-2.6.33-x86_64: WARNINGS
linux-2.6.34-x86_64: WARNINGS
linux-2.6.35.3-x86_64: WARNINGS
linux-2.6.36-x86_64: WARNINGS
linux-2.6.37-x86_64: WARNINGS
linux-2.6.38.2-x86_64: WARNINGS
linux-2.6.39.1-x86_64: WARNINGS
linux-3.0-x86_64: WARNINGS
linux-3.1-x86_64: WARNINGS
linux-3.2.1-x86_64: WARNINGS
linux-3.3-x86_64: WARNINGS
linux-3.4-x86_64: WARNINGS
linux-3.5-x86_64: WARNINGS
linux-3.6-rc2-x86_64: WARNINGS
linux-2.6.31.12-i686: WARNINGS
linux-2.6.32.6-i686: WARNINGS
linux-2.6.33-i686: WARNINGS
linux-2.6.34-i686: WARNINGS
linux-2.6.35.3-i686: WARNINGS
linux-2.6.36-i686: WARNINGS
linux-2.6.37-i686: WARNINGS
linux-2.6.38.2-i686: WARNINGS
linux-2.6.39.1-i686: WARNINGS
linux-3.0-i686: WARNINGS
linux-3.1-i686: WARNINGS
linux-3.2.1-i686: WARNINGS
linux-3.3-i686: WARNINGS
linux-3.4-i686: WARNINGS
linux-3.5-i686: WARNINGS
linux-3.6-rc2-i686: WARNINGS
apps: WARNINGS
spec-git: OK
sparse: ERRORS

Detailed results are available here:

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

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Sunday.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: [PATCHv3 9/9] ir-rx51: Add missing quote mark in Kconfig text

2012-09-02 Thread Sakari Ailus
On Sun, Sep 02, 2012 at 05:57:25PM +0300, Timo Kokkonen wrote:
 On 09/01/12 20:16, Sakari Ailus wrote:
  Moi,
  
  On Thu, Aug 30, 2012 at 08:54:31PM +0300, Timo Kokkonen wrote:
  This trivial fix cures the following warning message:
 
  drivers/media/rc/Kconfig:275:warning: multi-line strings not supported
 
  Signed-off-by: Timo Kokkonen timo.t.kokko...@iki.fi
  ---
   drivers/media/rc/Kconfig | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)
 
  diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
  index 4a68014..1300655 100644
  --- a/drivers/media/rc/Kconfig
  +++ b/drivers/media/rc/Kconfig
  @@ -272,7 +272,7 @@ config IR_IGUANA
be called iguanair.
   
   config IR_RX51
  -  tristate Nokia N900 IR transmitter diode
  +  tristate Nokia N900 IR transmitter diode
 depends on OMAP_DM_TIMER  LIRC
 ---help---
Say Y or M here if you want to enable support for the IR
  
  This should be combined with patch 1.
  
 
 Actually I'd rather keep the patch 1 as is as it has already a purpose.
 Instead, I'd squash this into patch 3 as it already touches the Kconfig
 file and it has also the other trivial fixes combined in it.

Sounds good, that's actually a better place for it.

-- 
Sakari Ailus
e-mail: sakari.ai...@iki.fi XMPP: sai...@retiisi.org.uk
--
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: [PATCHv3 2/9] ir-rx51: Handle signals properly

2012-09-02 Thread Timo Kokkonen
On 09/02/12 22:41, Sakari Ailus wrote:
 On Sun, Sep 02, 2012 at 06:20:27PM +0300, Timo Kokkonen wrote:
 On 09.02 2012 18:06:34, Sakari Ailus wrote:
 Heippa,

 Timo Kokkonen wrote:
 Terve,

 On 09/01/12 20:14, Sakari Ailus wrote:
 Moi,

 On Thu, Aug 30, 2012 at 08:54:24PM +0300, Timo Kokkonen wrote:
 @@ -273,9 +281,18 @@ static ssize_t lirc_rx51_write(struct file *file, 
 const char *buf,

  /*
   * Don't return back to the userspace until the transfer has
 - * finished
 + * finished. However, we wish to not spend any more than 500ms
 + * in kernel. No IR code TX should ever take that long.
 + */
 +i = wait_event_timeout(lirc_rx51-wqueue, lirc_rx51-wbuf_index 
  0,
 +HZ / 2);

 Why such an arbitrary timeout? In reality it might not bite the user space
 in practice ever, but is it (and if so, why) really required in the first
 place?

 Well, I can think of two cases:

 1) Something goes wrong. Such before I converted the patch to use the up
 to date PM QoS implementation, the transmitting could take very long
 time because the interrupts were not waking up the MPU. Now that this is
 sorted out only unknown bugs can cause transmitting to hang indefinitely.

 2) User is (intentionally?) doing something wrong. For example by
 feeding in an IR code that has got very long pulses, he could end up
 having the lircd process hung in kernel unkillable for long time. That
 could be avoided quite easily by counting the pulse lengths and
 rejecting any IR codes that are obviously too long. But since I'd like
 to also protect against 1) case, I think this solution works just fine.

 In the end, this is just safety measure that this driver behaves well.

 In that case I think you should use wait_event_interruptible() instead. 

 Well, that's what I had there in the first place. With interruptible
 wait we are left with problem with signals. I was told by Sean Young
 that the lirc API expects the write call to finish only after the IR
 code is transmitted.

 It's not the driver's job to decide what the user can do with the 
 hardware and what not, is it?

 Yeah, policy should be decided by the user space. However, kernel
 should not leave any objvious denial of service holes open
 either. Allowing a process to get stuck unkillable within kernel for
 long time sounds like one to me.
 
 It's interruptible, so the user space can interrupt that wait if it chooses
 so. Besides, if you call this denial of service, then capturing video on
 V4L2 is, too, since others can't use the device in the meantime. :-)
 

Well, of course there is no problem if we use interruptible waits. But I
was told by Sean that the lirc API expects the IR TX to be finished
always when the write call returns. I guess the assumption is to avoid
breaking the transmission in the middle in case the process is signaled.
And that's why we shouldn't use interruptible waits.

However, if we allow simply breaking the transmitting in case the
process is signaled any way during the transmission, then the handling
would be trivial in the driver. That is, if someone for example kills or
stops the lirc daemon process, then the IR code just wouldn't finish ever.

Sean, do you have an opinion how this should or is allowed to work?

 Anyway, we are trying to cover some rare corner cases here, I'm not
 sure how it should work exactly..
 
 If there was a generic maximum timeout for sending a code, wouldn't it make
 sense to enforce that in the LIRC framework instead?
 

Yes, I agree it makes sense to leave unrestricted. But in that case we
definitely have to use interruptible waits in case user space is doing
something stupid and regrets it later :)

 Terveisin,
 

--
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: gspca_pac7302 driver broken ?

2012-09-02 Thread Ezequiel Garcia
Hi Frank,

On Sun, Sep 2, 2012 at 2:15 PM, Frank Schäfer
fschaefer@googlemail.com wrote:
 Hi,

 can anyone who owns such a device confirm that the gspca_pac7302 driver
 (kernel 3.6.0-rc1+) is fine ?


It's working here with latest media-tree kernel.

Driver Info:
Driver name   : gspca_pac7302
Card type : USB Camera (093a:2625)
Bus info  : usb-:00:12.0-1
Driver version: 3.6.0
Capabilities  : 0x8501
Video Capture
Read/Write
Streaming
Device Capabilities
Device Caps   : 0x0501
Video Capture
Read/Write
Streaming

Hope this helps,
Ezequiel.
--
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] mxl5005s: implement get_if_frequency()

2012-09-02 Thread Antti Palosaari
Signed-off-by: Antti Palosaari cr...@iki.fi
---
 drivers/media/tuners/mxl5005s.c | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/drivers/media/tuners/mxl5005s.c b/drivers/media/tuners/mxl5005s.c
index 6133315..b473b76 100644
--- a/drivers/media/tuners/mxl5005s.c
+++ b/drivers/media/tuners/mxl5005s.c
@@ -4054,6 +4054,16 @@ static int mxl5005s_get_bandwidth(struct dvb_frontend 
*fe, u32 *bandwidth)
return 0;
 }
 
+static int mxl5005s_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)
+{
+   struct mxl5005s_state *state = fe-tuner_priv;
+   dprintk(1, %s()\n, __func__);
+
+   *frequency = state-IF_OUT;
+
+   return 0;
+}
+
 static int mxl5005s_release(struct dvb_frontend *fe)
 {
dprintk(1, %s()\n, __func__);
@@ -4076,6 +4086,7 @@ static const struct dvb_tuner_ops mxl5005s_tuner_ops = {
.set_params= mxl5005s_set_params,
.get_frequency = mxl5005s_get_frequency,
.get_bandwidth = mxl5005s_get_bandwidth,
+   .get_if_frequency = mxl5005s_get_if_frequency,
 };
 
 struct dvb_frontend *mxl5005s_attach(struct dvb_frontend *fe,
-- 
1.7.11.4

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


[PATCH] af9013: add debug for IF frequency

2012-09-02 Thread Antti Palosaari
Used IF frequency is one of the most important parameter to know.

Signed-off-by: Antti Palosaari cr...@iki.fi
---
 drivers/media/dvb-frontends/af9013.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/media/dvb-frontends/af9013.c 
b/drivers/media/dvb-frontends/af9013.c
index 5bc570d..2dac314 100644
--- a/drivers/media/dvb-frontends/af9013.c
+++ b/drivers/media/dvb-frontends/af9013.c
@@ -606,6 +606,8 @@ static int af9013_set_frontend(struct dvb_frontend *fe)
else
if_frequency = state-config.if_frequency;
 
+   dbg(%s: if_frequency=%d, __func__, if_frequency);
+
sampling_freq = if_frequency;
 
while (sampling_freq  (state-config.clock / 2))
-- 
1.7.11.4

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


[PATCH] mc44s803: implement get_if_frequency()

2012-09-02 Thread Antti Palosaari
Signed-off-by: Antti Palosaari cr...@iki.fi
---
 drivers/media/tuners/mc44s803.c | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/media/tuners/mc44s803.c b/drivers/media/tuners/mc44s803.c
index 5ddce7e..f1b7640 100644
--- a/drivers/media/tuners/mc44s803.c
+++ b/drivers/media/tuners/mc44s803.c
@@ -298,6 +298,12 @@ static int mc44s803_get_frequency(struct dvb_frontend *fe, 
u32 *frequency)
return 0;
 }
 
+static int mc44s803_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)
+{
+   *frequency = MC44S803_IF2; /* 36.125 MHz */
+   return 0;
+}
+
 static const struct dvb_tuner_ops mc44s803_tuner_ops = {
.info = {
.name   = Freescale MC44S803,
@@ -309,7 +315,8 @@ static const struct dvb_tuner_ops mc44s803_tuner_ops = {
.release   = mc44s803_release,
.init  = mc44s803_init,
.set_params= mc44s803_set_params,
-   .get_frequency = mc44s803_get_frequency
+   .get_frequency = mc44s803_get_frequency,
+   .get_if_frequency = mc44s803_get_if_frequency,
 };
 
 /* This functions tries to identify a MC44S803 tuner by reading the ID
-- 
1.7.11.4

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


[PATCH] Add the usb id of the Trekstor DVB-T Stick Terres 2.0

2012-09-02 Thread Philipp Dreimann
It needs the e4000 tuner driver.

Signed-off-by: Philipp Dreimann phil...@dreimann.net
---
 drivers/media/dvb-core/dvb-usb-ids.h|1 +
 drivers/media/usb/dvb-usb-v2/rtl28xxu.c |2 ++
 2 files changed, 3 insertions(+)

diff --git a/drivers/media/dvb-core/dvb-usb-ids.h 
b/drivers/media/dvb-core/dvb-usb-ids.h
index 26c4481..fed6dcd 100644
--- a/drivers/media/dvb-core/dvb-usb-ids.h
+++ b/drivers/media/dvb-core/dvb-usb-ids.h
@@ -82,6 +82,7 @@
 #define USB_PID_AFATECH_AF9035_10030x1003
 #define USB_PID_AFATECH_AF9035_90350x9035
 #define USB_PID_TREKSTOR_DVBT  0x901b
+#define USB_PID_TREKSTOR_TERRES_2_00xC803
 #define USB_VID_ALINK_DTU  0xf170
 #define USB_PID_ANSONIC_DVBT_USB   0x6000
 #define USB_PID_ANYSEE 0x861f
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 
b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
index 88b5ea1..d0d23f2 100644
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
@@ -1236,6 +1236,8 @@ static const struct usb_device_id rtl28xxu_id_table[] = {
rtl2832u_props, NOXON DAB/DAB+ USB dongle, NULL) },
{ DVB_USB_DEVICE(USB_VID_REALTEK, 0x2838,
rtl2832u_props, Realtek RTL2832U reference design, NULL) },
+   { DVB_USB_DEVICE(USB_VID_GTEK, USB_PID_TREKSTOR_TERRES_2_0,
+   rtl2832u_props, Trekstor DVB-T Stick Terres 2.0, NULL) },
{ }
 };
 MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table);
-- 
1.7.9.5

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