Re: [PATCH] newport: newport_*wait() return 0 on timeout

2009-02-02 Thread Randy Dunlap
roel kluin wrote:
 2009/2/2 Mauro Carvalho Chehab mche...@infradead.org:
 Hi Roel,

 It seems that you've sent this driver to the wrong ML. Video adapters are 
 not handled on those ML's.
 
 Any idea where it should be sent?

drivers/video/* generally go to here AFAIK:

FRAMEBUFFER LAYER
P:  Antonino Daplas
M:  adap...@gmail.com
L:  linux-fbdev-de...@lists.sourceforge.net (moderated for non-subscribers)
W:  http://linux-fbdev.sourceforge.net/
S:  Maintained



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


[PULL] http://linuxtv.org/hg/~anttip/mc44s803/

2009-02-02 Thread Antti Palosaari

Hello Mauro,

Please pull from http://linuxtv.org/hg/~anttip/mc44s803/
for the following:

Add Freescale MC44S803 tuner driver
af9015: add MC44S803 support

Jochen, could you also test with your device that nothing has gone broken.

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


[PATCH] support for channel numbers in scan with Finnish DVB-C Welho

2009-02-02 Thread Anssi Kolehmainen
Hi,

Attached is small patch to enable channel numbering for FI DVB-C Welho
(similar to UK Freeview). Works for me though resulting list needs to be
sorted before using or else VDR gets channel numbers wrong.

-- 
Anssi Kolehmainen
anssi.kolehmai...@iki.fi
040-5085390
diff -r 98d3c06e5ef9 util/scan/scan.c
--- a/util/scan/scan.c	Tue Jan 27 12:39:11 2009 +0100
+++ b/util/scan/scan.c	Mon Feb 02 20:52:30 2009 +0200
@@ -363,6 +363,16 @@
 		}
 		buf += 4;
 	}
+}
+
+static void parse_cable_fi_channel_number (const unsigned char *buf, struct service *s)
+{
+	//We should have four bytes of data
+	if (buf[1] != 0x04)
+		return;
+
+	s-channel_num = buf[3];
+	verbosedebug(Channel number is %d\n, s-channel_num);
 }
 
 
@@ -685,6 +695,13 @@
 			 * problems when 0x83 is something entirely different... */
 			if (t == NIT  vdr_dump_channum)
 parse_terrestrial_uk_channel_number (buf, data);
+			break;
+		
+		case 0x91:
+			/* 0x91 is also in private range so parse only when we want
+			 * channel numbers */
+			if (t == SDT  vdr_dump_channum)
+parse_cable_fi_channel_number (buf, data);
 			break;
 
 		default:
@@ -2103,7 +2120,7 @@
 			Vdr version 1.3.x and up implies -p.\n
 		-l lnb-type (DVB-S Only) (use -l help to print types) or \n
 		-l low[,high[,switch]] in Mhz\n
-		-u  UK DVB-T Freeview channel numbering for VDR\n\n
+		-u  UK DVB-T Freeview / FI DVB-C Welho channel numbering for VDR\n\n
 		-P do not use ATSC PSIP tables for scanning\n
 		(but only PAT and PMT) (applies for ATSC only)\n
 		-A N	check for ATSC 1=Terrestrial [default], 2=Cable or 3=both\n


Re: TinyTwin (af9015) - tuner 0 not working

2009-02-02 Thread Antti Palosaari

Lindsay Mathieson wrote:

I've had a DigitalNow TinyTwin dual usb tuner working on my
mythbox for a week now (latest v4l-dvb trunk).

A odd problem with the tuner has surfaced. Today Tuner 0
stopped getting a lock on any channel. Signal strength is
95%+, Bit Errors are Zero.

However Tuner 1 is locking on and displaying channels just
fine. Tuner 0 used to work fine. I've rebooted, but the
problem hasn't gone away.

Any suggestions?


Have you tried replug stick? Hopefully it does not have burned.
Could you test whether this driver works:
http://linuxtv.org/hg/~anttip/af9015-mxl500x/
It uses different tuner driver.

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


[PATCH]Add green balance v4l2 ctrl support

2009-02-02 Thread Erik Andrén
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi,

The m5602 gspca driver has two sensors offering the possiblity to
control the green balance. This patch adds a v4l2 ctrl for this.

Regards,
Erik

Signed-off-by: Erik Andrén erik.and...@gmail.com

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkmHRhEACgkQN7qBt+4UG0FAKACgsnXERjLdZL/D+2Ze3KkC6GJc
PowAnAkr/0+IT2jB00qCUuqS7OhBmhtG
=UfNN
-END PGP SIGNATURE-
diff -r 24361cfb8615 linux/include/linux/videodev2.h
--- a/linux/include/linux/videodev2.h	Wed Jan 28 16:55:17 2009 +0100
+++ b/linux/include/linux/videodev2.h	Wed Jan 28 17:11:39 2009 +0100
@@ -879,8 +879,10 @@
 #define V4L2_CID_BACKLIGHT_COMPENSATION 	(V4L2_CID_BASE+28)
 #define V4L2_CID_CHROMA_AGC (V4L2_CID_BASE+29)
 #define V4L2_CID_COLOR_KILLER   (V4L2_CID_BASE+30)
+
+#define V4L2_CID_GREEN_BALANCE			(V4L2_CID_BASE+31)
 /* last CID + 1 */
-#define V4L2_CID_LASTP1 (V4L2_CID_BASE+31)
+#define V4L2_CID_LASTP1 (V4L2_CID_BASE+32)
 
 /*  MPEG-class control IDs defined by V4L2 */
 #define V4L2_CID_MPEG_BASE 			(V4L2_CTRL_CLASS_MPEG | 0x900)


Re: PXA Quick capture interface with HV7131RP-Camera

2009-02-02 Thread Bennet Fischer
struct pxacamera_platform_data gumstix_pxacamera_platform_data = {
.init   = gumstix_pxacamera_init,
.flags  = PXA_CAMERA_MASTER | PXA_CAMERA_DATAWIDTH_8 |
PXA_CAMERA_PCLK_EN | PXA_CAMERA_MCLK_EN | PXA_CAMERA_PCP,
.mclk_10khz = 1000,
};

^^ some register values are overwritten by my driver, so the more
interesting part are the register values of the quick capture
interface.

Here are the register values taken at the end of the capture:

CICR0: 93FF
- DMAEN = 1
- ENB = 1
- All interrupts masked

CICR1: 13F8012
- DW = 2 (8 Bit)
- COLOR_SP = 2 (YCbCr)
- PPL = 639

CICR2: 0

CICR3: 1DF
- LPF = 479

CICR4: D80005
- DIV = 5
- MCLK_EN = 1
- VSP = 1
- PCP = 1
- PCLK_EN = 1

CISR: 0
^^ No interrupt flag is set

CITOR: 0

CIFR: 0 (even by enabling the fifos with 7 it doesn't work)


So according to the registers it should work. I even checked if the
PCLK, FV and LV signals arrive at the CPU by reading the according
pins as GPIOs.



2009/2/1 Guennadi Liakhovetski g.liakhovet...@gmx.de:
 On Sat, 31 Jan 2009, Bennet Fischer wrote:

 Hi


 I am trying to get a camera to work together with an PXA270 processor.
 My system has the following specs:

 Platform: Gumstix Verdex Pro
 Camera: HV7131RP
 OS: Linux 2.6.28

 I wrote a simple driver for the camera which omits all the i2c-stuff
 because the camera starts already in a default configuration which
 works fine for me.
 A V4L2-device is generated and everything looks fine. But when i start
 to capture, no data arrives BUT the Quick Capture Interface outputs a
 MCLK and the camera responds with a PCLK, LV and FV (and data of
 couse).
 For getting a bit closer to the origin of the problem I disabled DMA
 in pxa_camera.c and enabled all Interrupts in the CICR0 register. No
 interrupt is generated. Even by disabling DMA and IRQ and looking into
 CISR nothing happens.
 I checked all the CIF registers bitwise. The polarity of the LV and FV
 is correct, the alternate pin functions are correct, the interrupt bit
 is non-masked, the size of the pixel matrix is correct. I'm a bit
 desperate because at the moment I have no idea what to do next. I
 would be thankful for any hint.

 Maybe you could post your platform data, i.e., your struct
 pxacamera_platform_data?

 Thanks
 Guennadi
 ---
 Guennadi Liakhovetski, Ph.D.
 Freelance Open-Source Software Developer

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


Bug in gspca USB webcam driver

2009-02-02 Thread Alan Stern
On Mon, 2 Feb 2009 kilg...@banach.math.auburn.edu wrote:

 The attached file is an extract from dmesg from the Pentium4 Dual Core
 machine. One can see that the camera has been attached, and then an svv
 session has been run. The kernel is the stock Slackware 2.6.27.7 kernel
 (*). We have a situation, again, in which svv (**) can not be exited. We 
 have an oops in the log, and we have a filesystem check on reboot, which 
 is going on as I write this.

Well, the problem is clear enough, and it is in the gspca.c module, not 
your sq905-3 driver.  I'm not sure what the best way is to fix it, so 
I'm CC'ing the people responsible for the gspca driver.

To summarize: Unplugging the camera while it is in use by a program 
causes an oops (particularly on an SMP machine).

The problem is that gspca_stream_off() calls destroy_urbs(), which in
turn calls usb_buffer_free() -- but this happens too late, after
gspca_disconnect() has returned.  By that time gspca_dev-dev is a
stale pointer, so it shouldn't be passed to usb_buffer_free().

What should happen is that as part of disconnect processing, the 
existing stream(s) should be put in an error state and destroy_urbs() 
should be called immediately.  Then when gspca_stream_off() calls 
destroy_urbs() again there would be no more work left to do.

Alan Stern

--
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: Bug in gspca USB webcam driver

2009-02-02 Thread Adam Baker
On Monday 02 February 2009, Alan Stern wrote:
 On Mon, 2 Feb 2009 kilg...@banach.math.auburn.edu wrote:
  The attached file is an extract from dmesg from the Pentium4 Dual Core
  machine. One can see that the camera has been attached, and then an svv
  session has been run. The kernel is the stock Slackware 2.6.27.7 kernel
  (*). We have a situation, again, in which svv (**) can not be exited. We
  have an oops in the log, and we have a filesystem check on reboot, which
  is going on as I write this.

 Well, the problem is clear enough, and it is in the gspca.c module, not
 your sq905-3 driver.  I'm not sure what the best way is to fix it, so
 I'm CC'ing the people responsible for the gspca driver.

Thanks for confirming that Alan. I'd been looking at this too and suspected 
this was the case but as it wouldn't fail on my uniprocessor machine I 
couldn't prove it. (Theodore, if you can generate the log we discussed of 
this failing it might still be helpful in tracking down the underlying 
problem.)

 To summarize: Unplugging the camera while it is in use by a program
 causes an oops (particularly on an SMP machine).

 The problem is that gspca_stream_off() calls destroy_urbs(), which in
 turn calls usb_buffer_free() -- but this happens too late, after
 gspca_disconnect() has returned.  By that time gspca_dev-dev is a
 stale pointer, so it shouldn't be passed to usb_buffer_free().


By my reading it should be OK for gspca_disconnect to have returned as long as 
video_unregister_device waits for the last close to complete before calling 
gspca_release. I know that there were some patches a while back that 
attempted to ensure that was the case so I suspect there is still a hole 
there.

 What should happen is that as part of disconnect processing, the
 existing stream(s) should be put in an error state and destroy_urbs()
 should be called immediately.  Then when gspca_stream_off() calls
 destroy_urbs() again there would be no more work left to do.

 Alan Stern


Adam Baker

--
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] newport: newport_*wait() return 0 on timeout

2009-02-02 Thread Mauro Carvalho Chehab
Hi Roel,

It seems that you've sent this driver to the wrong ML. Video adapters are not 
handled on those ML's.

On Sat, 31 Jan 2009 16:29:39 +0100
Roel Kluin roel.kl...@gmail.com wrote:

 With a postfix decrement t reaches -1 on timeout which results in a
 return of 0.
 
 Signed-off-by: Roel Kluin roel.kl...@gmail.com
 ---
 diff --git a/include/video/newport.h b/include/video/newport.h
 index 1f5ebea..001b935 100644
 --- a/include/video/newport.h
 +++ b/include/video/newport.h
 @@ -453,7 +453,7 @@ static __inline__ int newport_wait(struct newport_regs 
 *regs)
  {
   int t = BUSY_TIMEOUT;
  
 - while (t--)
 + while (--t)
   if (!(regs-cset.status  NPORT_STAT_GBUSY))
   break;
   return !t;
 @@ -463,7 +463,7 @@ static __inline__ int newport_bfwait(struct newport_regs 
 *regs)
  {
   int t = BUSY_TIMEOUT;
  
 - while (t--)
 + while (--t)
   if(!(regs-cset.status  NPORT_STAT_BBUSY))
   break;
   return !t;




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: Bug in gspca USB webcam driver

2009-02-02 Thread Alan Stern
On Mon, 2 Feb 2009, Adam Baker wrote:

 Thanks for confirming that Alan. I'd been looking at this too and suspected 
 this was the case but as it wouldn't fail on my uniprocessor machine I 
 couldn't prove it. (Theodore, if you can generate the log we discussed of 
 this failing it might still be helpful in tracking down the underlying 
 problem.)

Note that I'm looking at the gspca.c routine from 2.6.29-rc3.  If 
changes have been made since that version, I don't know what they are.

  To summarize: Unplugging the camera while it is in use by a program
  causes an oops (particularly on an SMP machine).
 
  The problem is that gspca_stream_off() calls destroy_urbs(), which in
  turn calls usb_buffer_free() -- but this happens too late, after
  gspca_disconnect() has returned.  By that time gspca_dev-dev is a
  stale pointer, so it shouldn't be passed to usb_buffer_free().
 
 
 By my reading it should be OK for gspca_disconnect to have returned as long 
 as 
 video_unregister_device waits for the last close to complete before calling 
 gspca_release. I know that there were some patches a while back that 
 attempted to ensure that was the case so I suspect there is still a hole 
 there.

gspca_disconnect() should _not_ wait for the last close.  It should do 
what it needs to do and return as quickly as possible.  This means 
there must be two paths for releasing USB resources: release upon last 
close and release upon disconnect.

I suppose the easiest way to work around the problem would be to take a
reference to the usb_device structure (usb_get_dev()) for each open and
to drop the reference when the stream is closed.  But it would be
preferable to do things the way I described before: Make disconnect put
an open stream into an error state and release all the USB resources
immediately.

Alan Stern

--
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] decrement address_err as well as retries.

2009-02-02 Thread Roel Kluin
Since we want to determine whether every retry we had an address_err,
and we decrement retries, we should decrement address_err as well.

Signed-off-by: Roel Kluin roel.kl...@gmail.com
---
diff --git a/drivers/media/common/saa7146_i2c.c 
b/drivers/media/common/saa7146_i2c.c
index c11da4d..2fac001 100644
--- a/drivers/media/common/saa7146_i2c.c
+++ b/drivers/media/common/saa7146_i2c.c
@@ -293,7 +293,7 @@ static int saa7146_i2c_transfer(struct saa7146_dev *dev, 
const struct i2c_msg *m
int i = 0, count = 0;
__le32 *buffer = dev-d_i2c.cpu_addr;
int err = 0;
-   int address_err = 0;
+   int address_err = retries;
int short_delay = 0;
 
if (mutex_lock_interruptible(dev-i2c_lock))
@@ -342,7 +342,7 @@ static int saa7146_i2c_transfer(struct saa7146_dev *dev, 
const struct i2c_msg *m
if( 0 != (SAA7146_USE_I2C_IRQ  
dev-ext-flags)) {
goto out;
}
-   address_err++;
+   address_err--;
}
DEB_I2C((error while sending message(s). 
starting again.\n));
break;
--
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] Re : Technotrend Budget S2-3200 Digital artefacts on HDchannels

2009-02-02 Thread Chris Silva
On Tue, Jan 27, 2009 at 9:13 PM, Manu Abraham abraham.m...@gmail.com wrote:
 Alex Betis wrote:
 On Tue, Jan 27, 2009 at 9:56 PM, Manu Abraham abraham.m...@gmail.comwrote:

 Hmm OK, but is there by any chance a fix for those issues somewhere or
 in the pipe at least? I am willing to test (as I already offered), I
 can compile the drivers, spread printk or whatever else is needed to
 get useful reports. Let me know if I can help sort this problem. BTW in
 my case it is DVB-S2 3 SR and FEC 5/6.
 It was quite not appreciable on my part to provide a fix or reply in
 time nor spend much time on it earlier, but that said i was quite
 stuck up with some other things.

 Can you please pull a copy of the multiproto tree
 http://jusst.de/hg/multiproto or the v4l-dvb tree from
 http://jusst.de/hg/v4l-dvb

 and apply the following patch and comment what your result is ?
 Before applying please do check whether you still have the issues.

 Manu,
 I've tried to increase those timers long ago when played around with my card
 (Twinhan 1041) and scan utility.
 I must say that I've concentrated mostly on DVB-S channels that wasn't
 always locking.
 I didn't notice much improvements. The thing that did help was increasing
 the resolution of scan zigzags.

 With regards to the zig-zag, one bug is fixed in the v4l-dvb tree.
 Most likely you haven't tried that change.

 I've sent a patch on that ML and people were happy with the results.

 I did look at your patch, but that was completely against the tuning
 algorithm.

 [..]

 I believe DVB-S2 lock suffer from the same problem, but in that case the
 zigzag is done in the chip and not in the driver.

 Along with the patch i sent, does the attached patch help you in
 anyway (This works out for DVB-S2 only)?


Manu,

I've tried both multiproto branches you indicated above, *with* and
*without* the patches you sent to the ML (fix_iterations.patch and
increase timeout.patch) on this thread.
Sadly, same behavior as S2API V4L-DVB current branch. No lock on 3
3/4 channels. It achieves a 0.5 second jittery sound but no image. It
seems the driver is struggling to correctly lock on that channel, but
doesn't get there in time... Or maybe the hardware... Dunno...

Channels like

ASTRA 
HD+;BetaDigital:11914:hC910M2O35S1:S19.2E:27500:1279=27:0;1283=deu:0:0:131:133:6:0
PREMIERE HD,PREM
HD;PREMIERE:11914:hC910M2O35S1:S19.2E:27500:767=27:0;771=deu,772=eng:32:1837,1833,1834,9C4:129:133:6:0
DISCOVERY HD,DISC
HD;PREMIERE:11914:hC910M2O35S1:S19.2E:27500:1023=27:0;1027=deu:32:1837,1833,1834,9C4:130:133:6

work just fine.

But channels like

National Geographic HD;National Geographic
HD:11731:vC34M5O25S1:S30.0W:29000:6496=27:6497:0:1802:943:54:47:0
MOV HD;MOV HD:11731:vC34M5O25S1:S30.0W:29000:6512=27:6513=por:0:1802:944:54:47:0
Sport TV - HD;Sport TV -
HD:11731:vC34M5O25S1:S30.0W:29000:6528=27:6529=por:0:1802:945:54:47:0
RTP HD;RTP HD:11731:vC34M5O25S1:S30.0W:29000:6544=27:6545:0:1802:946:54:47:0
TVCine 4 HD;TVCine 4
HD:11731:vC34M5O25S1:S30.0W:29000:6560=27:6561:0:1802:947:54:47:0
Disney Cinemagic
HD:11731:vC34M5O25S1:S30.0W:29000:6576=27:6577=por:0:1802:948:54:47:0
Eurosport HD:11731:vC34M5O25S1:S30.0W:29000:6592=27:6593=por:0:1802:949:54:47:0

or

[0065];:12012:hC34M5S1:S30.0W:3:4097:4098:4100:100:101:0:0:0
[0066];:12012:hC34M5S1:S30.0W:3:4105:4106:4100:100:102:0:0:0
[0067];:12012:hC34M5S1:S30.0W:3:4113:4114:4100:100:103:0:0:0
[0068];:12012:hC34M5S1:S30.0W:3:4121:4122:4100:100:104:0:0:0
[0069];:12012:hC34M5S1:S30.0W:3:4129:4130:4100:100:105:0:0:0
[006a];:12012:hC34M5S1:S30.0W:3:4137:4138:4100:100:106:0:0:0
[006b];:12012:hC34M5S1:S30.0W:3:4145:4146:4100:100:107:0:0:0

simply don't work.

BTW, I think the channels above that don't work have a 0x0B stream
indication. Satellite operators are misleading on the stream (h.222)
when in fact they are h.264. Read that were on the ML. Don't know if
it affects anything, but hey... I have to try everything! ;)

I'm available to any tests necessary to fix this once and for all, if possible.

Just let me know.

Thanks for all your hard work.

Chris
--
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: PV143N watchdog

2009-02-02 Thread Matthias Schwarzott
On Monday 02 February 2009 10:34, Getcho Getchev wrote:
 Greetings,
 I am trying to control the PV143N watchdog via bttv driver under linux
 kernel 2.6.24.3.
 According to the specification the watchdog is located at address
 0x56, subaddress 0x01.
 However when I try to write something (a value of 0, 1 or 2) on that
 address I get NACK result.
 I am using i2c_master_send() function and software bitbanging
 algorithm, implemented in bttv-i2c.c
 At the beginning I suspected the SCL line (the clock for the
 communication must be set at 100 KHz) but when I saw the delay time is
 5 microseconds I realized the period is 10 microseconds which makes
 100 KHz. I tried to write the same data on address 0x2B and I
 succeeded (although I do not know what is there on that address) so it

That really sounds like a common i2c miss-understanding.
Linux kernel i2c functions use only the 7bit address part of the i2c address.
So it sounds like your device has address 0x56 for writing and 0x57 for 
reading. (is this correct?)
Now you give i2c_master_send or i2c_transfer the 7bit part, 0x56  1, and 
that is 0x2B.

Regards
Matthias
--
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: Bug in gspca USB webcam driver

2009-02-02 Thread Adam Baker
On Monday 02 February 2009, Alan Stern wrote:
 On Mon, 2 Feb 2009, Adam Baker wrote:
snip
   To summarize: Unplugging the camera while it is in use by a program
   causes an oops (particularly on an SMP machine).
  
   The problem is that gspca_stream_off() calls destroy_urbs(), which in
   turn calls usb_buffer_free() -- but this happens too late, after
   gspca_disconnect() has returned.  By that time gspca_dev-dev is a
   stale pointer, so it shouldn't be passed to usb_buffer_free().
 
  By my reading it should be OK for gspca_disconnect to have returned as
  long as video_unregister_device waits for the last close to complete
  before calling gspca_release. I know that there were some patches a while
  back that attempted to ensure that was the case so I suspect there is
  still a hole there.

 gspca_disconnect() should _not_ wait for the last close.  It should do
 what it needs to do and return as quickly as possible.  This means
 there must be two paths for releasing USB resources: release upon last
 close and release upon disconnect.


I was being slightly imprecise in saying it waits, it uses the 
device_register / unregister mechanism so it does effectively set a flag that 
results in the release being called on last close. video_unregister_device 
does use a mutex while updating some internal flags but as far as I can tell 
the USB subsystem won't call gspca_disconnect in interrupt context so that 
should be OK.

What I hadn't noticed before is that usb_buffer_free needs the usb device 
pointer and as you say that is no longer valid after gspca_disconnect returns 
even if gspca_release hasn't freed the rest of the gspca struct. If that is 
the problem then I presume the correct behaviour is for gspca_disconnect to 
ensure that all URBs are killed and freed before gspca_disconnect returns. 
This shouldn't be a problem for sq905 (which doesn't use these URBs) or 
isochronous cameras (which don't need to resubmit URBs) but the finepix 
driver (the other supported bulk device) will need some careful consideration 
to avoid a race between killing the URB and resubmitting it.

Theodore, could you check if adding a call to destroy_urbs() in 
gspca_disconnect fixes the crash. (destroy_urbs only frees non NULL urb 
pointers so should be safe to call from both disconnect and stream_off, 
whichever occurs first).

 I suppose the easiest way to work around the problem would be to take a
 reference to the usb_device structure (usb_get_dev()) for each open and
 to drop the reference when the stream is closed.  But it would be
 preferable to do things the way I described before: Make disconnect put
 an open stream into an error state and release all the USB resources
 immediately.

 Alan Stern

Adam
--
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] newport: newport_*wait() return 0 on timeout

2009-02-02 Thread roel kluin
2009/2/2 Mauro Carvalho Chehab mche...@infradead.org:
 Hi Roel,

 It seems that you've sent this driver to the wrong ML. Video adapters are not 
 handled on those ML's.

Any idea where it should be sent?

Thanks,

Roel
--
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] Re : Technotrend Budget S2-3200 Digital artefacts on HDchannels

2009-02-02 Thread Manu
Le 02.02.2009 18:43:33, Chris Silva a écrit :
 On Tue, Jan 27, 2009 at 9:13 PM, Manu Abraham 
 abraham.m...@gmail.com
 wrote:
  Alex Betis wrote:
  On Tue, Jan 27, 2009 at 9:56 PM, Manu Abraham
 abraham.m...@gmail.comwrote:
 
  Hmm OK, but is there by any chance a fix for those issues
 somewhere or
  in the pipe at least? I am willing to test (as I already
 offered), I
  can compile the drivers, spread printk or whatever else is 
 needed
 to
  get useful reports. Let me know if I can help sort this problem.
 BTW in
  my case it is DVB-S2 3 SR and FEC 5/6.
  It was quite not appreciable on my part to provide a fix or reply
 in
  time nor spend much time on it earlier, but that said i was quite
  stuck up with some other things.
 
  Can you please pull a copy of the multiproto tree
  http://jusst.de/hg/multiproto or the v4l-dvb tree from
  http://jusst.de/hg/v4l-dvb
 
  and apply the following patch and comment what your result is ?
  Before applying please do check whether you still have the 
 issues.
 
  Manu,
  I've tried to increase those timers long ago when played around
 with my card
  (Twinhan 1041) and scan utility.
  I must say that I've concentrated mostly on DVB-S channels that
 wasn't
  always locking.
  I didn't notice much improvements. The thing that did help was
 increasing
  the resolution of scan zigzags.
 
  With regards to the zig-zag, one bug is fixed in the v4l-dvb tree.
  Most likely you haven't tried that change.
 
  I've sent a patch on that ML and people were happy with the
 results.
 
  I did look at your patch, but that was completely against the 
 tuning
  algorithm.
 
  [..]
 
  I believe DVB-S2 lock suffer from the same problem, but in that
 case the
  zigzag is done in the chip and not in the driver.
 
  Along with the patch i sent, does the attached patch help you in
  anyway (This works out for DVB-S2 only)?
 
 
 Manu,
 
 I've tried both multiproto branches you indicated above, *with* and
 *without* the patches you sent to the ML (fix_iterations.patch and
 increase timeout.patch) on this thread.
 Sadly, same behavior as S2API V4L-DVB current branch. No lock on 
 3
 3/4 channels. It achieves a 0.5 second jittery sound but no image. It
 seems the driver is struggling to correctly lock on that channel, but
 doesn't get there in time... Or maybe the hardware... Dunno...
 
 Channels like
 
 ASTRA HD
 +;BetaDigital:11914:hC910M2O35S1:S19.2E:27500:1279=27:0;1283=deu:0:0:131:133:6:0
 PREMIERE HD,PREM
 HD;PREMIERE:11914:hC910M2O35S1:S19.2E:27500:767=27:0;771=deu,772=eng:32:1837,1833,1834,9C4:129:133:6:0
 DISCOVERY HD,DISC
 HD;PREMIERE:11914:hC910M2O35S1:S19.2E:27500:1023=27:0;1027=deu:32:1837,1833,1834,9C4:130:133:6
 
 work just fine.
 
 But channels like
 
 National Geographic HD;National Geographic
 HD:11731:vC34M5O25S1:S30.0W:29000:6496=27:6497:0:1802:943:54:47:0
 MOV HD;MOV 
 HD:11731:vC34M5O25S1:S30.0W:29000:6512=27:6513=por:0:1802:944:54:47:0
 Sport TV - HD;Sport TV -
 HD:11731:vC34M5O25S1:S30.0W:29000:6528=27:6529=por:0:1802:945:54:47:0
 RTP HD;RTP 
 HD:11731:vC34M5O25S1:S30.0W:29000:6544=27:6545:0:1802:946:54:47:0
 TVCine 4 HD;TVCine 4
 HD:11731:vC34M5O25S1:S30.0W:29000:6560=27:6561:0:1802:947:54:47:0
 Disney Cinemagic
 HD:11731:vC34M5O25S1:S30.0W:29000:6576=27:6577=por:0:1802:948:54:47:0
 Eurosport 
 HD:11731:vC34M5O25S1:S30.0W:29000:6592=27:6593=por:0:1802:949:54:47:0
 
 or
 
 [0065];:12012:hC34M5S1:S30.0W:3:4097:4098:4100:100:101:0:0:0
 [0066];:12012:hC34M5S1:S30.0W:3:4105:4106:4100:100:102:0:0:0
 [0067];:12012:hC34M5S1:S30.0W:3:4113:4114:4100:100:103:0:0:0
 [0068];:12012:hC34M5S1:S30.0W:3:4121:4122:4100:100:104:0:0:0
 [0069];:12012:hC34M5S1:S30.0W:3:4129:4130:4100:100:105:0:0:0
 [006a];:12012:hC34M5S1:S30.0W:3:4137:4138:4100:100:106:0:0:0
 [006b];:12012:hC34M5S1:S30.0W:3:4145:4146:4100:100:107:0:0:0
 
 simply don't work.
 
 BTW, I think the channels above that don't work have a 0x0B stream
 indication. Satellite operators are misleading on the stream (h.222)
 when in fact they are h.264. Read that were on the ML. Don't know if
 it affects anything, but hey... I have to try everything! ;)
 
 I'm available to any tests necessary to fix this once and for all, if
 possible.

Could I suggest something (probably stupid): I think that the TT 3650 
is the same card but using USB, right (I mean it uses the stb0899/
stb6100 chips also)? So if someone could sniff the usb transactions 
during a successfull lock on a problematic channel (using windows 
then), we could see what is different.
I do not have neither Windows, neither this card, but a good soul could 
help us here.
Manu, is that sensible?
Bye
Manu (the other one ;-)

--
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: Bug in gspca USB webcam driver

2009-02-02 Thread kilgota



On Mon, 2 Feb 2009, Adam Baker wrote:


On Monday 02 February 2009, Alan Stern wrote:

On Mon, 2 Feb 2009, Adam Baker wrote:

snip

To summarize: Unplugging the camera while it is in use by a program
causes an oops (particularly on an SMP machine).

The problem is that gspca_stream_off() calls destroy_urbs(), which in
turn calls usb_buffer_free() -- but this happens too late, after
gspca_disconnect() has returned.  By that time gspca_dev-dev is a
stale pointer, so it shouldn't be passed to usb_buffer_free().


By my reading it should be OK for gspca_disconnect to have returned as
long as video_unregister_device waits for the last close to complete
before calling gspca_release. I know that there were some patches a while
back that attempted to ensure that was the case so I suspect there is
still a hole there.


gspca_disconnect() should _not_ wait for the last close.  It should do
what it needs to do and return as quickly as possible.  This means
there must be two paths for releasing USB resources: release upon last
close and release upon disconnect.



I was being slightly imprecise in saying it waits, it uses the
device_register / unregister mechanism so it does effectively set a flag that
results in the release being called on last close. video_unregister_device
does use a mutex while updating some internal flags but as far as I can tell
the USB subsystem won't call gspca_disconnect in interrupt context so that
should be OK.

What I hadn't noticed before is that usb_buffer_free needs the usb device
pointer and as you say that is no longer valid after gspca_disconnect returns
even if gspca_release hasn't freed the rest of the gspca struct. If that is
the problem then I presume the correct behaviour is for gspca_disconnect to
ensure that all URBs are killed and freed before gspca_disconnect returns.
This shouldn't be a problem for sq905 (which doesn't use these URBs) or
isochronous cameras (which don't need to resubmit URBs) but the finepix
driver (the other supported bulk device) will need some careful consideration
to avoid a race between killing the URB and resubmitting it.

Theodore, could you check if adding a call to destroy_urbs() in
gspca_disconnect fixes the crash. (destroy_urbs only frees non NULL urb
pointers so should be safe to call from both disconnect and stream_off,
whichever occurs first).


Yes, this seems to help a great deal. I have tried it at this point on 
both machines. Now we have


void gspca_disconnect(struct usb_interface *intf)
{
struct gspca_dev *gspca_dev = usb_get_intfdata(intf);

gspca_dev-present = 0;
destroy_urbs(gspca_dev);

usb_set_intfdata(intf, NULL);

/* release the device */
/* (this will call gspca_release() immediatly or on last close) */
video_unregister_device(gspca_dev-vdev);

PDEBUG(D_PROBE, disconnect complete);
}

and the results are as follows:

The Pentium 4 Dual Core:
	No visible problems, no error messages. I pulled the cord and then 
in a very leisurely way killed the window. New on this machine and the 
other one, too, is the very desirable side effect that svv can be killed 
by clicking the x on the window which used not to work! Then dmesg 
(with gspca_main in debug mode, too) has many times gspca:dqbuf (obvious: 
I had not yet closed the window). After that come, in the order that they 
are listed,


kill transfer
stream off OK
svv close
frame free
close done
device released

(all of these preceded by gspca:)

So this all looks very nice.

The Athlon K8 dual core:

Not so excellent, but still not bad. The experiment has been simiilarly 
conducted, as before. The output of dmesg says pretty much the same thing. 
The difference is, lots of repetitions of an error message in the 
xterm which says


libv4l2: error dequeuing buf: Resource temporarily unavailable

This could of course result from libv4l2 and not from the modules. I feel 
pretty sure that I am not running the same version on both machines. The 
one on the Pentium 4 is quite likely to be newer than what is on the 
Athlon box.


It seems to me that with this we are much better on the way.

Theodore Kilgore
--
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 review 1/8] radio-mr800: codingstyle cleanups

2009-02-02 Thread Alexey Klimov
Cleanups of many if-check constructions.

Signed-off-by: Alexey Klimov klimov.li...@gmail.com

--
diff -r 1dce9d4e2179 linux/drivers/media/radio/radio-mr800.c
--- a/linux/drivers/media/radio/radio-mr800.c   Sun Feb 01 11:40:27 2009 -0200
+++ b/linux/drivers/media/radio/radio-mr800.c   Mon Feb 02 02:22:56 2009 +0300
@@ -378,13 +378,15 @@
struct v4l2_frequency *f)
 {
struct amradio_device *radio = video_get_drvdata(video_devdata(file));
+   int retval;
 
/* safety check */
if (radio-removed)
return -EIO;
 
radio-curfreq = f-frequency;
-   if (amradio_setfreq(radio, radio-curfreq)  0)
+   retval = amradio_setfreq(radio, radio-curfreq);
+   if (retval  0)
amradio_dev_warn(radio-videodev-dev,
set frequency failed\n);
return 0;
@@ -443,6 +445,7 @@
struct v4l2_control *ctrl)
 {
struct amradio_device *radio = video_get_drvdata(video_devdata(file));
+   int retval;
 
/* safety check */
if (radio-removed)
@@ -451,13 +454,15 @@
switch (ctrl-id) {
case V4L2_CID_AUDIO_MUTE:
if (ctrl-value) {
-   if (amradio_stop(radio)  0) {
+   retval = amradio_stop(radio);
+   if (retval  0) {
amradio_dev_warn(radio-videodev-dev,
amradio_stop failed\n);
return -1;
}
} else {
-   if (amradio_start(radio)  0) {
+   retval = amradio_start(radio);
+   if (retval  0) {
amradio_dev_warn(radio-videodev-dev,
amradio_start failed\n);
return -1;
@@ -508,20 +513,24 @@
 static int usb_amradio_open(struct file *file)
 {
struct amradio_device *radio = video_get_drvdata(video_devdata(file));
+   int retval;
 
lock_kernel();
 
radio-users = 1;
radio-muted = 1;
 
-   if (amradio_start(radio)  0) {
+   retval = amradio_start(radio);
+   if (retval  0) {
amradio_dev_warn(radio-videodev-dev,
radio did not start up properly\n);
radio-users = 0;
unlock_kernel();
return -EIO;
}
-   if (amradio_setfreq(radio, radio-curfreq)  0)
+
+   retval = amradio_setfreq(radio, radio-curfreq);
+   if (retval  0)
amradio_dev_warn(radio-videodev-dev,
set frequency failed\n);
 
@@ -554,8 +563,10 @@
 static int usb_amradio_suspend(struct usb_interface *intf, pm_message_t 
message)
 {
struct amradio_device *radio = usb_get_intfdata(intf);
+   int retval;
 
-   if (amradio_stop(radio)  0)
+   retval = amradio_stop(radio);
+   if (retval  0)
dev_warn(intf-dev, amradio_stop failed\n);
 
dev_info(intf-dev, going into suspend..\n);
@@ -567,8 +578,10 @@
 static int usb_amradio_resume(struct usb_interface *intf)
 {
struct amradio_device *radio = usb_get_intfdata(intf);
+   int retval;
 
-   if (amradio_start(radio)  0)
+   retval = amradio_start(radio);
+   if (retval  0)
dev_warn(intf-dev, amradio_start failed\n);
 
dev_info(intf-dev, coming out of suspend..\n);
@@ -619,16 +632,16 @@
.release= usb_amradio_device_release,
 };
 
-/* check if the device is present and register with v4l and
-usb if it is */
+/* check if the device is present and register with v4l and usb if it is */
 static int usb_amradio_probe(struct usb_interface *intf,
const struct usb_device_id *id)
 {
struct amradio_device *radio;
+   int retval;
 
radio = kmalloc(sizeof(struct amradio_device), GFP_KERNEL);
 
-   if (!(radio))
+   if (!radio)
return -ENOMEM;
 
radio-buffer = kmalloc(BUFFER_LENGTH, GFP_KERNEL);
@@ -657,7 +670,8 @@
mutex_init(radio-lock);
 
video_set_drvdata(radio-videodev, radio);
-   if (video_register_device(radio-videodev, VFL_TYPE_RADIO, radio_nr)) {
+   retval = video_register_device(radio-videodev, VFL_TYPE_RADIO, 
radio_nr);
+   if (retval  0) {
dev_warn(intf-dev, could not register video device\n);
video_device_release(radio-videodev);
kfree(radio-buffer);


-- 
Best regards, Klimov Alexey

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


[patch review 3/8] radio-mr800: add more dev_err messages in probe

2009-02-02 Thread Alexey Klimov
Patch adds 3 dev_err messages in usb_amradio_probe() function.

Signed-off-by: Alexey Klimov klimov.li...@gmail.com

--
diff -r c9f51bda84de linux/drivers/media/radio/radio-mr800.c
--- a/linux/drivers/media/radio/radio-mr800.c   Mon Feb 02 02:53:50 2009 +0300
+++ b/linux/drivers/media/radio/radio-mr800.c   Mon Feb 02 03:08:13 2009 +0300
@@ -641,19 +641,23 @@
 
radio = kmalloc(sizeof(struct amradio_device), GFP_KERNEL);
 
-   if (!radio)
+   if (!radio) {
+   dev_err(intf-dev, kmalloc for amradio_device failed\n);
return -ENOMEM;
+   }
 
radio-buffer = kmalloc(BUFFER_LENGTH, GFP_KERNEL);
 
-   if (!(radio-buffer)) {
+   if (!radio-buffer) {
+   dev_err(intf-dev, kmalloc for radio-buffer failed\n);
kfree(radio);
return -ENOMEM;
}
 
radio-videodev = video_device_alloc();
 
-   if (!(radio-videodev)) {
+   if (!radio-videodev) {
+   dev_err(intf-dev, video_device_alloc failed\n);
kfree(radio-buffer);
kfree(radio);
return -ENOMEM;


-- 
Best regards, Klimov Alexey

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


[patch review 6/8] radio-mr800: add stereo support

2009-02-02 Thread Alexey Klimov
Patch introduces new amradio_set_stereo function.
Driver calls this func to make stereo radio reception.

Signed-off-by: Alexey Klimov klimov.li...@gmail.com

--
diff -r 34b045702595 linux/drivers/media/radio/radio-mr800.c
--- a/linux/drivers/media/radio/radio-mr800.c   Tue Feb 03 03:02:39 2009 +0300
+++ b/linux/drivers/media/radio/radio-mr800.c   Tue Feb 03 03:04:54 2009 +0300
@@ -94,10 +94,15 @@
  */
 #define AMRADIO_SET_FREQ   0xa4
 #define AMRADIO_SET_MUTE   0xab
+#define AMRADIO_SET_MONO   0xae
 
 /* Comfortable defines for amradio_set_mute */
 #define AMRADIO_START  0x00
 #define AMRADIO_STOP   0x01
+
+/* Comfortable defines for amradio_set_stereo */
+#define WANT_STEREO0x00
+#define WANT_MONO  0x01
 
 /* module parameter */
 static int radio_nr = -1;
@@ -266,12 +271,48 @@
return retval;
}
 
-   radio-stereo = 0;
+   mutex_unlock(radio-lock);
+
+   return retval;
+}
+
+static int amradio_set_stereo(struct amradio_device *radio, char argument)
+{
+   int retval;
+   int size;
+
+   /* safety check */
+   if (radio-removed)
+   return -EIO;
+
+   mutex_lock(radio-lock);
+
+   radio-buffer[0] = 0x00;
+   radio-buffer[1] = 0x55;
+   radio-buffer[2] = 0xaa;
+   radio-buffer[3] = 0x00;
+   radio-buffer[4] = AMRADIO_SET_MONO;
+   radio-buffer[5] = argument;
+   radio-buffer[6] = 0x00;
+   radio-buffer[7] = 0x00;
+
+   retval = usb_bulk_msg(radio-usbdev, usb_sndintpipe(radio-usbdev, 2),
+   (void *) (radio-buffer), BUFFER_LENGTH, size, USB_TIMEOUT);
+
+   if (retval) {
+   radio-stereo = -1;
+   mutex_unlock(radio-lock);
+   return retval;
+   }
+
+   radio-stereo = 1;
 
mutex_unlock(radio-lock);
 
return retval;
 }
+
+
 
 /* USB subsystem interface begins here */
 
@@ -310,6 +351,7 @@
struct v4l2_tuner *v)
 {
struct amradio_device *radio = video_get_drvdata(video_devdata(file));
+   int retval;
 
/* safety check */
if (radio-removed)
@@ -321,7 +363,16 @@
 /* TODO: Add function which look is signal stereo or not
  * amradio_getstat(radio);
  */
-   radio-stereo = -1;
+
+/* we call amradio_set_stereo to set radio-stereo
+ * Honestly, amradio_getstat should cover this in future and
+ * amradio_set_stereo shouldn't be here
+ */
+   retval = amradio_set_stereo(radio, WANT_STEREO);
+   if (retval  0)
+   amradio_dev_warn(radio-videodev-dev,
+   set stereo failed\n);
+
strcpy(v-name, FM);
v-type = V4L2_TUNER_RADIO;
v-rangelow = FREQ_MIN * FREQ_MUL;
@@ -342,6 +393,7 @@
struct v4l2_tuner *v)
 {
struct amradio_device *radio = video_get_drvdata(video_devdata(file));
+   int retval;
 
/* safety check */
if (radio-removed)
@@ -349,6 +401,25 @@
 
if (v-index  0)
return -EINVAL;
+
+   /* mono/stereo selector */
+   switch (v-audmode) {
+   case V4L2_TUNER_MODE_MONO:
+   retval = amradio_set_stereo(radio, WANT_MONO);
+   if (retval  0)
+   amradio_dev_warn(radio-videodev-dev,
+   set mono failed\n);
+   break;
+   case V4L2_TUNER_MODE_STEREO:
+   retval = amradio_set_stereo(radio, WANT_STEREO);
+   if (retval  0)
+   amradio_dev_warn(radio-videodev-dev,
+   set stereo failed\n);
+   break;
+   default:
+   return -EINVAL;
+   }
+
return 0;
 }
 
@@ -508,6 +579,11 @@
return -EIO;
}
 
+   retval = amradio_set_stereo(radio, WANT_STEREO);
+   if (retval  0)
+   amradio_dev_warn(radio-videodev-dev,
+   set stereo failed\n);
+
retval = amradio_setfreq(radio, radio-curfreq);
if (retval  0)
amradio_dev_warn(radio-videodev-dev,
@@ -649,6 +725,7 @@
radio-users = 0;
radio-usbdev = interface_to_usbdev(intf);
radio-curfreq = 95.16 * FREQ_MUL;
+   radio-stereo = -1;
 
mutex_init(radio-lock);
 


-- 
Best regards, Klimov Alexey

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


Re: KWorld ATSC 115 all static

2009-02-02 Thread David Engel
On Sun, Jan 18, 2009 at 01:10:16PM -0500, CityK wrote:
 But as I have demonstrated above, and as Mauro explained, the previous
 hack/workaround no longer works in the case of with the Hans source
 code.  The if case fails!  Consequently, the else case should be
 don't merge.  Why?  Because we have now gone from:
 * circa pre-2.6.25, Mauro's changes that  broke the boards analog TV
 support, but which could somewhat be corrected by Mike's hack/workaround
 * to present, where merging Hans' code eliminates the usability of
 Mike's hack/workaround ... in essence, analog TV function has now been
 completely killed with these boards.
 
 Now, if it is a case that a resolution to the problem is imminently
 forthcoming, then I don't think that the merge would be much of a
 problem.  However, given the breadth of the conversation so far (and I
 really do appreciate the depth of Trent's and Jean's
 discussion/consideration on the matter), it is entirely unclear to me
 that such a resolution will be found in short order  (although, I don't
 discount the possibility of it either).

As far as I can tell, this thread petered out without a resolution.
CityK later posted on avsforum, however, that analog on his card was
after more changes by Hans.  I'm confused.  Is analog on the KWorld
115 supposed to be working again or not?  I saw that some changes by
Hans made it into the main Hg repository, but as of yesterday, analog
still didn't work for me.

David
-- 
David Engel
da...@istwok.net
--
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] radio-si470x Documentation: add note about mplayer

2009-02-02 Thread Alexey Klimov
Hello, all

This small patch adds information about si470x radio listening.
Probably, it's useful to add such notes in doc file, right ?
Feel free to change words in the right way due to my possible bad
english.

---
Patch adds information in si470x doc file about mplayer using to
listening to the radio with this radio device.

Signed-off-by: Alexey Klimov klimov.li...@gmail.com

--
diff -r aba639a17195 linux/Documentation/video4linux/si470x.txt
--- a/linux/Documentation/video4linux/si470x.txtMon Feb 02 21:09:06 
2009 +0300
+++ b/linux/Documentation/video4linux/si470x.txtTue Feb 03 06:20:29 
2009 +0300
@@ -52,6 +52,8 @@
 - gradio - GTK FM radio tuner
 - kradio - Comfortable Radio Application for KDE
 - radio - ncurses-based radio application
+- mplayer - media player for Linux http://www.mplayerhq.hu/
+(see Audio Listening section below)
 
 There is also a library libv4l, which can be used. It's going to have a 
function
 for frequency seeking, either by using hardware functionality as in 
radio-si470x
@@ -80,6 +82,12 @@
 If you use arts try:
 arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B -
 
+You can also try mplayer:
+mplayer radio://95.23/capture -radio adevice=hw=1.0:arate=96000 -rawaudio 
rate=96000
+Of course, you should place right adevice=hw=x.x option, and you can read
+man mplayer to know more about others parameters. Mplayer handles both 
v4l2-radio
+control and sound redirecting, that's why this method is interesting.
+
 
 Module Parameters
 =




-- 
Best regards, Klimov Alexey

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


Re: [PATCH] Documentation update for New V4L2 ioctls for OMAP

2009-02-02 Thread Hans Verkuil
On Tuesday 03 February 2009 07:30:14 Hardik Shah wrote:
 1.  Added documentation for VIDIOC_COLOR_S_SPACE_CONV and
 VIDIOC_G_COLOR_SPACE_CONV
 2.  Added documentation for new CID V4L2_CID_ROTATION and
 V4L2_CID_BG_COLOR

See comments below.

 Signed-off-by: Brijesh Jadav brijes...@ti.com
 Signed-off-by: Hari Nagalla hnaga...@ti.com
 Signed-off-by: Hardik Shah hardik.s...@ti.com
 Signed-off-by: Vaibhav Hiremath hvaib...@ti.com
 ---
  Makefile   |4 +
  controls.sgml  |   12 +++-
  v4l2.sgml  |1 +
  vidioc-g-color-space-conv.sgml |  182
  4 files changed, 198
 insertions(+), 1 deletions(-)
  create mode 100644 vidioc-g-color-space-conv.sgml

 diff --git a/Makefile b/Makefile
 index 9a13c91..b76b4a7 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -67,6 +67,7 @@ SGMLS = \
   vidioc-g-audio.sgml \
   vidioc-g-audioout.sgml \
   vidioc-dbg-g-chip-ident.sgml \
 + vidioc-g-color-space-conv.sgml \
   vidioc-g-crop.sgml \
   vidioc-g-ctrl.sgml \
   vidioc-g-enc-index.sgml \
 @@ -156,6 +157,7 @@ IOCTLS = \
   VIDIOC_ENUM_FRAMESIZES \
   VIDIOC_G_AUDIO \
   VIDIOC_G_AUDOUT \
 + VIDIOC_G_COLOR_SPACE_CONV \
   VIDIOC_G_CROP \
   VIDIOC_G_CTRL \
   VIDIOC_G_ENC_INDEX \
 @@ -186,6 +188,7 @@ IOCTLS = \
   VIDIOC_STREAMON \
   VIDIOC_S_AUDIO \
   VIDIOC_S_AUDOUT \
 + VIDIOC_S_COLOR_SPACE_CONV \
   VIDIOC_S_CROP \
   VIDIOC_S_CTRL \
   VIDIOC_S_EXT_CTRLS \
 @@ -249,6 +252,7 @@ STRUCTS = \
   v4l2_capability \
   v4l2_captureparm \
   v4l2_clip \
 + v4l2_color_space_conv \
   v4l2_control \
   v4l2_crop \
   v4l2_cropcap \
 diff --git a/controls.sgml b/controls.sgml
 index 0df57dc..c9ef5e8 100644
 --- a/controls.sgml
 +++ b/controls.sgml
 @@ -272,10 +272,20 @@ minimum value disables backlight
 compensation./entry entryEnable the color killer (ie; force a black
 amp; white image in case of a weak video signal)./entry /row
 row
 + entryconstantV4L2_CID_ROTATION/constant/entry
 + entryinteger/entry
 + entryRotates the image by specified angle./entry

Please specify the units. How does this affect other ioctls like 
VIDIOC_S_FMT when it comes to width/height settings? Depending on how this 
works the VIDIOC_S_FMT documentation might have to refer back to this 
control as well.

 +   /row
 +   row
 + entryconstantV4L2_CID_BG_COLOR/constant/entry
 + entryinteger/entry
 + entrySets the background color on the current output
 device/entry +/row

How is the color specified? RGB? YUV? See the V4L2_CID_MPEG_VIDEO_MUTE_YUV 
control description on how to specify the color format exactly.

 +   row
   entryconstantV4L2_CID_LASTP1/constant/entry
   entry/entry
   entryEnd of the predefined control IDs (currently
 -constantV4L2_CID_COLOR_KILLER/constant + 1)./entry
 +constantV4L2_CID_BG_COLOR/constant + 1)./entry
 /row
 row
   entryconstantV4L2_CID_PRIVATE_BASE/constant/entry
 diff --git a/v4l2.sgml b/v4l2.sgml
 index 9f43b6d..f9f0986 100644
 --- a/v4l2.sgml
 +++ b/v4l2.sgml
 @@ -435,6 +435,7 @@ available here: ulink
 url=http://linuxtv.org/downloads/video4linux/API/V4L2_AP sub-querystd;
  sub-reqbufs;
  sub-s-hw-freq-seek;
 +sub-g-color-space-conv;
  sub-streamon;
  !-- End of ioctls. --
  sub-mmap;
 diff --git a/vidioc-g-color-space-conv.sgml
 b/vidioc-g-color-space-conv.sgml new file mode 100644
 index 000..a24ae4c
 --- /dev/null
 +++ b/vidioc-g-color-space-conv.sgml
 @@ -0,0 +1,182 @@
 +refentry id=vidioc-g-color-space-conv
 +  refmeta
 +refentrytitleioctl VIDIOC_S_COLOR_SPACE_CONV,
 VIDIOC_G_COLOR_SPACE_CONV/refentrytitle +manvol;
 +  /refmeta
 +
 +  refnamediv
 +refnameVIDIOC_S_COLOR_SPACE_CONV/refname
 +refnameVIDIOC_G_COLOR_SPACE_CONV/refname
 +refpurposeGet or Set the color space conversion matrix
 /refpurpose +  /refnamediv
 +
 +  refsynopsisdiv
 +funcsynopsis
 +  funcprototype
 + funcdefint functionioctl/function/funcdef
 + paramdefint parameterfd/parameter/paramdef
 + paramdefint parameterrequest/parameter/paramdef
 + paramdefstruct v4l2_color_space_conv
 +*parameterargp/parameter/paramdef
 +  /funcprototype
 +/funcsynopsis
 +  /refsynopsisdiv
 +
 +  refsect1
 +titleArguments/title
 +
 +variablelist
 +  varlistentry
 + termparameterfd/parameter/term
 + listitem
 +   parafd;/para
 + /listitem
 +  /varlistentry
 +  varlistentry
 + termparameterrequest/parameter/term
 + listitem
 +   paraVIDIOC_G_COLOR_SPACE_CONV, VIDIOC_S_COLOR_SPACE_CONV/para
 + /listitem
 +  /varlistentry
 +  varlistentry
 + termparameterargp/parameter/term
 + listitem
 +   para/para
 + /listitem
 +  /varlistentry
 +/variablelist
 +  /refsect1
 +
 +  refsect1
 +