Re: Videotext application crashes the kernel due to DVB-demux patch

2010-02-02 Thread Chicken Shack
Am Montag, den 01.02.2010, 21:00 -0500 schrieb Andy Walls:
 On Mon, 2010-02-01 at 07:41 -0500, Andy Walls wrote:
  On Mon, 2010-02-01 at 10:56 +0100, Chicken Shack wrote:
   Hi,
   
   here is a link to a patch which breaks backwards compatibility for a
   teletext software called alevt-dvb.
   
   http://www.mail-archive.com/linuxtv-comm...@linuxtv.org/msg04638.html
   
   The kernel patch was introduced with kernel 2.6.32-rc1.
   It was Signed-off-by Brandon Philips, Mauro Carvalho Chehab and its
   author, Andreas Oberritter.
   
 
   Regards
   
   CS
   
   P. S.: This is how the kernel crash looks like:
  
  The information below can get me started.  Could you please provide
  whole Ooops from the output dmesg or from your /var/log/messages file?
  
  I'll try to look at this tonight.
  
  Regards,
  Andy
  
   brian:~# alevt
   alevt: SDT: service_id 0xcf24 not in PAT
   
   sid:pmtpid:ttpid:type:provider:name:language:texttype:magazine:page
   
   28006:100:130:1:ZDFvision:ZDF:lang=deu:type=1:magazine=1:page=  0
   28011:600:630:1:ZDFvision:ZDFinfokanal:lang=deu:type=1:magazine=1:page=
   0
   28014:650:630:1:ZDFvision:zdf_neo:lang=deu:type=1:magazine=1:page=  0
   28016:1100:630:1:ZDFvision:ZDFtheaterkanal:lang=deu:type=1:magazine=1:page=
 0
   28007:200:230:1:ZDFvision:3sat:lang=deu:type=1:magazine=1:page=  0
   28008:300:330:1:ZDFvision:KiKa:lang=deu:type=1:magazine=1:page=  0
   28017:411:8191:2:ZDFvision:DRadio Wissen:lang=:type=0:magazine=0:page=
   0
   28012:700:8191:2:ZDFvision:DKULTUR:lang=:type=0:magazine=0:page=  0
   28013:800:8191:2:ZDFvision:DLF:lang=:type=0:magazine=0:page=  0
   
   Using: Service ID = 28006 ; PMT PID = 100 ; TXT PID = 130 ;
   Service type = 1 ; Provider Name = ZDFvision ; Service name = ZDF ;
   language = deu ; Text type = 1 ; Text Magazine = 1 ; Text page =   0
   alevt: ioctl: DMX_SET_PES_FILTER Invalid argument (22)
   Getötet
   brian:~# 
   Message from sysl...@brian at Jan 31 19:52:33 ...
kernel:[  116.563487] Oops:  [#1] PREEMPT SMP 
   
   Message from sysl...@brian at Jan 31 19:52:33 ...
kernel:[  116.563492] last sysfs
   file: /sys/devices/pci:00/:00:1d.7/usb1/1-0:1.0/uevent
   
   Message from sysl...@brian at Jan 31 19:52:33 ...
kernel:[  116.563589] Process alevt (pid: 1780, ti=e7934000
   task=e7915be0 task.ti=e7934000)
   
   Message from sysl...@brian at Jan 31 19:52:33 ...
kernel:[  116.563592] Stack:
   
   Message from sysl...@brian at Jan 31 19:52:33 ...
kernel:[  116.563622] Call Trace:
   
   Message from sysl...@brian at Jan 31 19:52:33 ...
kernel:[  116.563650] Code: f2 da 4c c8 8d 56 78 89 54 24 04 89 d0 e8
   e4 da 4c c8 89 f0 e8 31 ff ff ff 83 7e 4c 01 76 73 83 7e 48 02 75 49 8b
   46 04 8d 48 f8 8b 41 08 8d 58 f8 8d 7e 04 eb 28 8b 41 08 8b 51 0c 89
   50 04 89 
 
   Message from sysl...@brian at Jan 31 19:52:33 ...
kernel:[  116.563697] EIP: [f8cec1b2] dvb_demux_release+0x43/0x183
   [dvb_core] SS:ESP 0068:e7935f58
   
   Message from sysl...@brian at Jan 31 19:52:33 ...
kernel:[  116.563706] CR2: 
 
 I don't have a 32 bti machine set up to compile the module and compare
 the disassembly directly.  However, the kernel code above disassembles
 to this, and is supposedly in dvb_demux_release() but things have been
 inlined by the compiler:
 
   1c: 8d 56 78lea0x78(%esi),%edx
   1f: 89 54 24 04 mov%edx,0x4(%esp)
   23: 89 d0   mov%edx,%eax
   25: e8 e4 da 4c c8  call   0xc84cdb0e
   2a: 89 f0   mov%esi,%eax
   2c: e8 31 ff ff ff  call   0xff62
   (dmxdev.c:dvb_dmxdev_filter_reset() 
 appears to be inlined starting here
%esi holds dmxdevfilter)
   31: 83 7e 4c 01 cmpl   $0x1,0x4c(%esi)if 
 (dmxdevfilter-state  DMXDEV_STATE_SET)
   35: 76 73   jbe0xaa return 0;
   37: 83 7e 48 02 cmpl   $0x2,0x48(%esi)if 
 (dmxdevfilter-type == DMXDEV_TYPE_PES)
   3b: 75 49   jne0x86
   (dvb_dmxdev_delete_pids() appears to be 
 inlined starting here
%esi still holds dmxdevfilter)
   3d: 8b 46 04mov0x4(%esi),%eax %eax gets loaded with 
 dmxdevfilter-feed.ts  for list_for_each_entry_safe(feed, tmp, 
 dmxdevfilter-feed.ts, ...
   40: 8d 48 f8lea-0x8(%eax),%ecx%ecx is feed and 
 gets loaded with the next struct dmxdev_feed pointed to by the 
 dmxdevfilter-feed.ts list
   43: 8b 41 08mov0x8(%ecx),%eax Oops appears to 
 happen here: %ecx and hence feed was (craftily?) set to 0xfff8 based on 
 CR2 above
   46: 8d 58 f8lea-0x8(%eax),%ebx
   49: 8d 7e 04lea0x4(%esi),%edi
   4c: eb 28   jmp0x76
   4e: 8b 41 08mov

Re: [PATCH ] libv4l: skip false Pixart markers

2010-02-02 Thread Hans de Goede

Hi,

On 02/01/2010 11:13 PM, Németh Márton wrote:

From: Márton Némethnm...@freemail.hu

The byte sequence 0xff, 0xff, 0xff 0xff is not a real marker to skip, instead
it is one byte from the image and the following three 0xff bytes might belong
to a real marker. Modify pixart_fill_nbits() macro to pass the first 0xff byte
as an image data.



Oh, good catch. I'm still seeing the occasional bad frame though :(

While on the subject of the pac7302. I've been playing around a bit, and I have 
the
feeling that if we were to go for a lower auto gain target (set autogain off and
lower exposure, you can do this ie with v4l2ucp), combined with a gamma 
correction of
1500 (again use ie v4l2ucp), the images is much better (less over exposed, more
contrast).

Do you agree ?

Regards,

Hans



Signed-off-by: Márton Némethnm...@freemail.hu
---
diff -r f23c5a878fb1 v4l2-apps/libv4l/libv4lconvert/tinyjpeg.c
--- a/v4l2-apps/libv4l/libv4lconvert/tinyjpeg.c Mon Feb 01 13:32:46 2010 +0100
+++ b/v4l2-apps/libv4l/libv4lconvert/tinyjpeg.c Mon Feb 01 23:05:39 2010 +0100
@@ -339,10 +339,15 @@
} \
break; \
  case 0xff: \
-   if (stream[1] == 0xff  (stream[2]  7 || stream[2] == 0xff)) { \
- stream += 3; \
- c = *stream++; \
- break; \
+   if (stream[1] == 0xff) { \
+   if (stream[2]  7) { \
+   stream += 3; \
+   c = *stream++; \
+   break; \
+   } else if (stream[2] == 0xff) { \
+   /* four 0xff in a row: the first belongs to the image data 
*/ \
+   break; \
+   }\
} \
/* Error fall through */ \
  default: \

--
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: libv4l: possible problem found in PAC7302 JPEG decoding

2010-02-02 Thread Thomas Kaiser

On 02/01/2010 10:23 PM, Németh Márton wrote:

Hello Hans,

while I was dealing with Labtec Webcam 2200 and with gspca_pac7302 driver I 
recognised the
following behaviour. The stream received from the webcam is splitted by the 
gspca_pac7302
subdriver when the byte sequence 0xff, 0xff, 0x00, 0xff, 0x96 is found 
(pac_find_sof()).
Before transmitting the data to the userspace a JPEG header is added 
(pac_start_frame())
and the footer after the bytes 0xff, 0xd9 are removed.

The data buffer which arrives to userspace looks like as follows (maybe not 
every detail is exact):

 1. JPEG header

 2. Some bytes of image data (near to 1024 bytes)

 3. The byte sequence 0xff, 0xff, 0xff, 0x01 followed by 1024 bytes of data.
This marker sequence and data repeats a couple of time. Exactly how much
depends on the image content.

 4. The byte sequence 0xff, 0xff, 0xff, 0x02 followed by 512 bytes of data.
This marker sequence and data also repeats a couple of time.

 5. The byte sequence 0xff, 0xff, 0xff, 0x00 followed by a variable amount of
image data bytes.

 6. The End of Image (EOI) marker 0xff, 0xd9.

Now what can be wrong with the libv4l? In libv4lconvert/tinyjpeg.c, line 315 
there is a
huge macro which tries to remove the 0xff, 0xff, 0xff, xx byte sequence from 
the received
image. This fails, however, if the image contains 0xff bytes just before the 
0xff, 0xff,
0xff, xx sequence because one byte from the image data (the first 0xff) is 
removed, then
the three 0xff bytes from the marker is also removed. The xx (which really 
belongs to the
marker) is left in the image data instead of the original 0xff byte.

Based on my experiments this problem sometimes causes corrupted image decoding 
or that the
JPEG image cannot be decoded at all.



Hello Németh

I remember the problem as I was working on the PAC7311.
http://www.kaiser-linux.li/index.php?title=PAC7311


This is the code I used in the JPEG decoder to remove the 0xff 0xff 0xff 
 0xnn markers.


See http://www.kaiser-linux.li/files/PAC7311/gspcav1-PAC7311-20070425.tar.gz
decoder/gspcadecoder.c pac7311_decode()

Thomas

--
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] saa7134: Fix IR support of some ASUS TV-FM 7135 variants

2010-02-02 Thread Mauro Carvalho Chehab
Jean Delvare wrote:
 Hi Hermann,
 
 On Tue, 02 Feb 2010 02:47:53 +0100, hermann pitton wrote:
 Hi Jean,

 Am Montag, den 01.02.2010, 10:56 +0100 schrieb Jean Delvare:
 Hi Hermann,

 On Mon, 01 Feb 2010 02:16:35 +0100, hermann pitton wrote:
 For now, I only faked a P7131 Dual with a broken IR receiver on a 2.6.29
 with recent, you can see that gpio 0x4 doesn't go high, but your
 patch should enable the remote on that P7131 analog only.
 I'm not sure why you had to fake anything? What I'd like to know is
 simply if my first patch had any negative effect on other cards.
 because I simply don't have that Asus My Cinema analog only in question.

 To recap, you previously announced a patch, tested by Daro, claiming to
 get the remote up under auto detection for that device and I told you
 having some doubts on it.
 
 My first patch was not actually tested by Daro. What he tested was
 loading the driver with card=146. At first I thought it was equivalent,
 but since then I have realized it wasn't. That's the reason why the
 Tested-by: was turned into a mere Cc: on my second and third
 patches.
 
 Mauro prefers to have a fix for that single card in need for now.

 Since nobody else cares, For now, see above, I can confirm that your
 last patch for that single device should work to get IR up with auto
 detection in delay after we change the card such late with eeprom
 detection.

 The meaning of that byte in use here is unknown to me, we should avoid
 such as much we can! It can turn out to be only some pseudo service.

 If your call for testers on your previous attempt, really reaches some
 for some reason, I'm with you, but for now I have to keep the car
 operable within all such snow.
 
 That I understand. What I don't understand is: if you have a
 SAA7134-based card, why don't you test my second patch (the one moving
 the call to saa7134_input_init1 to saa7134_hwinit2) on it, without
 faking anything? This would be a first, useful data point.

The init1 code has 107 boards listed:

SAA7134_BOARD_10MOONSTVMASTER3
SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331
SAA7134_BOARD_ASUST
SAA7134_BOARD_AVACSSMARTTV
SAA7134_BOARD_AVERMEDIA_305
SAA7134_BOARD_AVERMEDIA_307
SAA7134_BOARD_AVERMEDIA_777
SAA7134_BOARD_AVERMEDIA_A169_B
SAA7134_BOARD_AVERMEDIA_A16AR
SAA7134_BOARD_AVERMEDIA_A16D
SAA7134_BOARD_AVERMEDIA_A700_HYBRID
SAA7134_BOARD_AVERMEDIA_A700_PRO
SAA7134_BOARD_AVERMEDIA_CARDBUS
SAA7134_BOARD_AVERMEDIA_CARDBUS_501
SAA7134_BOARD_AVERMEDIA_CARDBUS_506
SAA7134_BOARD_AVERMEDIA_GO_007_FM
SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS
SAA7134_BOARD_AVERMEDIA_M102
SAA7134_BOARD_AVERMEDIA_M103
SAA7134_BOARD_AVERMEDIA_M115
SAA7134_BOARD_AVERMEDIA_M135A
SAA7134_BOARD_AVERMEDIA_STUDIO_305
SAA7134_BOARD_AVERMEDIA_STUDIO_307
SAA7134_BOARD_AVERMEDIA_STUDIO_505
SAA7134_BOARD_AVERMEDIA_STUDIO_507
SAA7134_BOARD_BEHOLD_401
SAA7134_BOARD_BEHOLD_403
SAA7134_BOARD_BEHOLD_403FM
SAA7134_BOARD_BEHOLD_405
SAA7134_BOARD_BEHOLD_405FM
SAA7134_BOARD_BEHOLD_407
SAA7134_BOARD_BEHOLD_407FM
SAA7134_BOARD_BEHOLD_409
SAA7134_BOARD_BEHOLD_409FM
SAA7134_BOARD_BEHOLD_505FM
SAA7134_BOARD_BEHOLD_505RDS_MK3
SAA7134_BOARD_BEHOLD_505RDS_MK5
SAA7134_BOARD_BEHOLD_507_9FM
SAA7134_BOARD_BEHOLD_507RDS_MK3
SAA7134_BOARD_BEHOLD_507RDS_MK5
SAA7134_BOARD_BEHOLD_607FM_MK3
SAA7134_BOARD_BEHOLD_607FM_MK5
SAA7134_BOARD_BEHOLD_607RDS_MK3
SAA7134_BOARD_BEHOLD_607RDS_MK5
SAA7134_BOARD_BEHOLD_609FM_MK3
SAA7134_BOARD_BEHOLD_609FM_MK5
SAA7134_BOARD_BEHOLD_609RDS_MK3
SAA7134_BOARD_BEHOLD_609RDS_MK5
SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM
SAA7134_BOARD_BEHOLD_H6
SAA7134_BOARD_BEHOLD_M6
SAA7134_BOARD_BEHOLD_M63
SAA7134_BOARD_BEHOLD_M6_EXTRA
SAA7134_BOARD_BEHOLD_X7
SAA7134_BOARD_CINERGY400
SAA7134_BOARD_CINERGY400_CARDBUS
SAA7134_BOARD_CINERGY600
SAA7134_BOARD_CINERGY600_MK3
SAA7134_BOARD_ECS_TVP3XP
SAA7134_BOARD_ECS_TVP3XP_4CB5
SAA7134_BOARD_ECS_TVP3XP_4CB6
SAA7134_BOARD_ENCORE_ENLTV
SAA7134_BOARD_ENCORE_ENLTV_FM
SAA7134_BOARD_ENCORE_ENLTV_FM53
SAA7134_BOARD_FLYDVBS_LR300
SAA7134_BOARD_FLYDVBTDUO
SAA7134_BOARD_FLYDVBT_DUO_CARDBUS
SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS
SAA7134_BOARD_FLYDVBT_LR301
SAA7134_BOARD_FLYTVPLATINUM_FM
SAA7134_BOARD_FLYTVPLATINUM_MINI2
SAA7134_BOARD_FLYVIDEO2000
SAA7134_BOARD_FLYVIDEO3000
SAA7134_BOARD_FLYVIDEO3000_NTSC
SAA7134_BOARD_GENIUS_TVGO_A11MCE
SAA7134_BOARD_GOTVIEW_7135
SAA7134_BOARD_HAUPPAUGE_HVR1110
SAA7134_BOARD_HAUPPAUGE_HVR1120
SAA7134_BOARD_HAUPPAUGE_HVR1150
SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG
SAA7134_BOARD_KWORLD_TERMINATOR
SAA7134_BOARD_KWORLD_VSTREAM_XPERT
SAA7134_BOARD_KWORLD_XPERT
SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S
SAA7134_BOARD_MANLI_MTV001
SAA7134_BOARD_MANLI_MTV002
SAA7134_BOARD_MD2819
SAA7134_BOARD_MD5044
SAA7134_BOARD_MONSTERTV_MOBILE
SAA7134_BOARD_MSI_TVATANYWHERE_PLUS
SAA7134_BOARD_PINNACLE_300I_DVBT_PAL
SAA7134_BOARD_PINNACLE_PCTV_110
SAA7134_BOARD_PINNACLE_PCTV_310
SAA7134_BOARD_PROTEUS_2309
SAA7134_BOARD_REAL_ANGEL_220
SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM
SAA7134_BOARD_RTD_VFG7350
SAA7134_BOARD_SABRENT_SBTTVFM

Re: Lost remote after kernel/v4l update cx23885 chipset

2010-02-02 Thread Andy Walls
On Mon, 2010-02-01 at 12:03 -0700, Timothy D. Lenz wrote:
 
 On 1/24/2010 1:07 PM, Timothy D. Lenz wrote:
  After updating from kernel 2.6.26.8 to 2.6.32.2 and from v4l of
  05/19/2009 to 01/18/2010 I lost remote function with Dvico FusionHDTV7
  Dual Express. The driver is loading, but not creating an IR device. Went
  over it with awalls on IRC. The log is at: http://pastebin.com/m4b02ff0c
 
 
  I noticed that in the kern.log there where 2 different ways ir-kbd-i2c
  showed up. ir-kbd-i2c no longer shows up when loading drivers.
 
  Jan 17 14:59:32 LLLx64-32 kernel: input: i2c IR (FusionHDTV) as
  /devices/virtual/input/input5
  Jan 17 14:59:32 LLLx64-32 kernel: ir-kbd-i2c: i2c IR (FusionHDTV)
  detected at i2c-2/2-006b/ir0 [cx23885[0]]
  --
  Jan 18 17:23:27 LLLx64-32 kernel: input: i2c IR (FusionHDTV) as
  /devices/virtual/input/input5
  Jan 18 17:23:27 LLLx64-32 kernel: Creating IR device irrcv0
  Jan 18 17:23:27 LLLx64-32 kernel: ir-kbd-i2c: i2c IR (FusionHDTV)
  detected at i2c-1/1-006b/ir0 [cx23885[0]]
 
  Jan 18 18:28:50 LLLx64-32 kernel: input: i2c IR (FusionHDTV) as
  /devices/virtual/input/input5
  Jan 18 18:28:50 LLLx64-32 kernel: ir-kbd-i2c: i2c IR (FusionHDTV)
  detected at i2c-2/2-006b/ir0 [cx23885[0]]
 
  --
  A driver load that worked:
 
  Jan 17 11:22:35 LLLx64-32 kernel: Linux video capture interface: v2.00
  Jan 17 11:22:35 LLLx64-32 kernel: cx23885 driver version 0.0.2 loaded
  Jan 17 11:22:35 LLLx64-32 kernel: ACPI: PCI Interrupt :02:00.0[A] -
  Link [APC7] - GSI 16 (level, low) - IRQ 16
  Jan 17 11:22:35 LLLx64-32 kernel: CORE cx23885[0]: subsystem: 18ac:d618,
  board: DViCO FusionHDTV7 Dual Express [card=10,autodetected]
  Jan 17 11:22:35 LLLx64-32 kernel: cx23885_dvb_register() allocating 1
  frontend(s)
  Jan 17 11:22:35 LLLx64-32 kernel: cx23885[0]: cx23885 based dvb card
  Jan 17 11:22:35 LLLx64-32 kernel: xc5000 2-0064: creating new instance
  Jan 17 11:22:35 LLLx64-32 kernel: xc5000: Successfully identified at
  address 0x64
  Jan 17 11:22:35 LLLx64-32 kernel: xc5000: Firmware has not been loaded
  previously
  Jan 17 11:22:35 LLLx64-32 kernel: DVB: registering new adapter (cx23885[0])
  Jan 17 11:22:35 LLLx64-32 kernel: DVB: registering adapter 0 frontend 0
  (Samsung S5H1411 QAM/8VSB Frontend)...
  Jan 17 11:22:35 LLLx64-32 kernel: cx23885_dvb_register() allocating 1
  frontend(s)
  Jan 17 11:22:35 LLLx64-32 kernel: cx23885[0]: cx23885 based dvb card
  Jan 17 11:22:35 LLLx64-32 kernel: xc5000 3-0064: creating new instance
  Jan 17 11:22:35 LLLx64-32 kernel: xc5000: Successfully identified at
  address 0x64
  Jan 17 11:22:35 LLLx64-32 kernel: xc5000: Firmware has not been loaded
  previously
  Jan 17 11:22:35 LLLx64-32 kernel: DVB: registering new adapter (cx23885[0])
  Jan 17 11:22:35 LLLx64-32 kernel: DVB: registering adapter 1 frontend 0
  (Samsung S5H1411 QAM/8VSB Frontend)...
  Jan 17 11:22:35 LLLx64-32 kernel: cx23885_dev_checkrevision() Hardware
  revision = 0xb0
  Jan 17 11:22:35 LLLx64-32 kernel: cx23885[0]/0: found at :02:00.0,
  rev: 2, irq: 16, latency: 0, mmio: 0xfdc0
  Jan 17 11:22:35 LLLx64-32 kernel: PCI: Setting latency timer of device
  :02:00.0 to 64
  Jan 17 11:22:35 LLLx64-32 kernel: input: i2c IR (FusionHDTV) as
  /devices/virtual/input/input8
  Jan 17 11:22:35 LLLx64-32 kernel: ir-kbd-i2c: i2c IR (FusionHDTV)
  detected at i2c-2/2-006b/ir0 [cx23885[0]]
  Jan 17 11:22:36 LLLx64-32 kernel: xc5000: waiting for firmware upload
  (dvb-fe-xc5000-1.6.114.fw)...
  Jan 17 11:22:36 LLLx64-32 kernel: firmware: requesting
  dvb-fe-xc5000-1.6.114.fw
  Jan 17 11:22:36 LLLx64-32 kernel: xc5000: firmware read 12401 bytes.
  Jan 17 11:22:36 LLLx64-32 kernel: xc5000: firmware uploading...
  Jan 17 11:22:37 LLLx64-32 kernel: xc5000: firmware upload complete...
  Jan 17 11:22:37 LLLx64-32 kernel: xc5000: waiting for firmware upload
  (dvb-fe-xc5000-1.6.114.fw)...
  Jan 17 11:22:37 LLLx64-32 kernel: firmware: requesting
  dvb-fe-xc5000-1.6.114.fw
  Jan 17 11:22:37 LLLx64-32 kernel: xc5000: firmware read 12401 bytes.
  Jan 17 11:22:37 LLLx64-32 kernel: xc5000: firmware uploading...
  Jan 17 11:22:39 LLLx64-32 kernel: xc5000: firmware upload complete...
  --
 
  And what it does now:
  Jan 23 17:10:47 LLLx64-32 kernel: Linux video capture interface: v2.00
  Jan 23 17:10:47 LLLx64-32 kernel: cx23885 driver version 0.0.2 loaded
  Jan 23 17:10:47 LLLx64-32 kernel: cx23885 :02:00.0: PCI INT A -
  Link[APC7] - GSI 16 (level, low) - IRQ 16
  Jan 23 17:10:47 LLLx64-32 kernel: CORE cx23885[0]: subsystem: 18ac:d618,
  board: DViCO FusionHDTV7 Dual Express [card=10,autodetected]
  Jan 23 17:10:47 LLLx64-32 kernel: cx23885_dvb_register() allocating 1
  frontend(s)
  Jan 23 17:10:47 LLLx64-32 kernel: cx23885[0]: cx23885 based dvb card
  Jan 23 17:10:47 LLLx64-32 kernel: xc5000 1-0064: creating new instance
  Jan 23 17:10:47 LLLx64-32 kernel: xc5000: Successfully identified at
  address 0x64
  Jan 23 17:10:47 LLLx64-32 

[PATCH] dvb: return -ENOMEM if kzalloc failed in dvb_usb_device_init()

2010-02-02 Thread Roel Kluin
If in a cold state and the download succeeded ret is zero, but we
should return -ENOMEM.

Signed-off-by: Roel Kluin roel.kl...@gmail.com
---
Or shouldn't we?

diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-init.c 
b/drivers/media/dvb/dvb-usb/dvb-usb-init.c
index e331db8..5d91f70 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-init.c
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-init.c
@@ -243,7 +243,7 @@ int dvb_usb_device_init(struct usb_interface *intf,
d = kzalloc(sizeof(struct dvb_usb_device),GFP_KERNEL);
if (d == NULL) {
err(no memory for 'struct dvb_usb_device');
-   return ret;
+   return -ENOMEM;
}
 
d-udev = udev;
--
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] cx23885: fix support for TBS 6920 card

2010-02-02 Thread Mauro Carvalho Chehab
Hi Steven,

Steven Toth wrote:
 On 8/19/09 7:20 PM, Konstantin Dimitrov wrote:

 fix: GPIO initialization for TBS 6920
 fix: wrong I2C address for demod on TBS 6920
 fix: wrong I2C bus number for demod on TBS 6920
 fix: wrong gen_ctrl_val value for TS1 port on TBS 6920 (and some
 other cards)
 add: module_param lnb_pwr_ctrl as option to choose between type 0
 and type 1 of LNB power control (two TBS 6920 boards no matter that
 they are marked as the same hardware revision may have different types
 of LNB power control)
 fix: LNB power control function for type 0 doesn't preserve the
 previous GPIO state, which is critical
 add: LNB power control function for type 1

 Signed-off-by: Bob Liub...@turbosight.com
 Signed-off-by: Konstantin Dimitrovkosio.dimit...@gmail.com
 
 I got a weird HTML related email bounce from vger when I responded
 originally to this via gmail. Maybe this time via thunderbird will bring
 success.
 
 ...
 
 Hmm. A custom hanging off of a gpio to something that looks like an i2c
 power control device. I want to review some of these generic (and
 no-so-generic) changes before we merge this patch.
 
 Is the datasheet for the LNB power control device available to the
 public? I'd like to understand some of the register details.
 

What's the status of the current patch? It was submitted back on Aug, 2009,
and marked as under review since then. Btw, the patch is currently broken,
probably due to the changes on cx23885 driver during this period of time.

patching file drivers/media/video/cx23885/cx23885-cards.c
Hunk #1 FAILED at 704.
Hunk #2 succeeded at 1020 with fuzz 2 (offset 133 lines).
1 out of 2 hunks FAILED -- saving rejects to file 
drivers/media/video/cx23885/cx23885-cards.c.rej
patching file drivers/media/video/cx23885/cx23885-dvb.c
Hunk #1 FAILED at 55.
Hunk #2 succeeded at 75 (offset 3 lines).
Hunk #3 FAILED at 427.
Hunk #4 FAILED at 785.
Hunk #5 FAILED at 805.
4 out of 5 hunks FAILED -- saving rejects to file 
drivers/media/video/cx23885/cx23885-dvb.c.rej
patching file drivers/media/video/cx23885/Makefile
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file 
drivers/media/video/cx23885/Makefile.rej
patching file drivers/media/video/cx23885/tbs_lnb_pwr.c
patching file drivers/media/video/cx23885/tbs_lnb_pwr.h
Patch doesn't apply

---

Subject: cx23885: fix support for TBS 6920 card
Date: Wed, 19 Aug 2009 23:20:02 -
From: Konstantin Dimitrov kosio.dimit...@gmail.com
X-Patchwork-Id: 42777

fix: GPIO initialization for TBS 6920
fix: wrong I2C address for demod on TBS 6920
fix: wrong I2C bus number for demod on TBS 6920
fix: wrong gen_ctrl_val value for TS1 port on TBS 6920 (and some other cards)
add: module_param lnb_pwr_ctrl as option to choose between type 0 and type 
1 of LNB power control (two TBS 6920 boards no matter that they are marked as 
the same hardware revision may have different types of LNB power control)
fix: LNB power control function for type 0 doesn't preserve the previous GPIO 
state, which is critical
add: LNB power control function for type 1

Signed-off-by: Bob Liu b...@turbosight.com
Signed-off-by: Konstantin Dimitrov kosio.dimit...@gmail.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

--- a/drivers/media/video/cx23885/cx23885-cards.c   2009-08-19 
14:11:49.0 +0300
+++ a/drivers/media/video/cx23885/cx23885-cards.c   2009-08-19 
14:30:10.0 +0300
@@ -704,7 +704,14 @@ void cx23885_gpio_setup(struct cx23885_d
case CX23885_BOARD_TEVII_S470:
cx_write(MC417_CTL, 0x0036);
cx_write(MC417_OEN, 0x1000);
-   cx_write(MC417_RWD, 0x1800);
+
+   cx_set(MC417_RWD, 0x0002);
+   mdelay(200);
+
+   cx_clear(MC417_RWD, 0x0800);
+   mdelay(200);
+   cx_set(MC417_RWD, 0x0800);
+   mdelay(200);
break;
case CX23885_BOARD_NETUP_DUAL_DVBS2_CI:
/* GPIO-0 INTA from CiMax1
@@ -880,7 +887,7 @@ void cx23885_card_setup(struct cx23885_d
case CX23885_BOARD_TEVII_S470:
case CX23885_BOARD_TBS_6920:
case CX23885_BOARD_DVBWORLD_2005:
-   ts1-gen_ctrl_val  = 0x5; /* Parallel */
+   ts1-gen_ctrl_val  = 0x4; /* Parallel */
ts1-ts_clk_en_val = 0x1; /* Enable TS_CLK */
ts1-src_sel_val   = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
break;
--- a/drivers/media/video/cx23885/cx23885-dvb.c 2009-08-19 14:11:49.0 
+0300
+++ a/drivers/media/video/cx23885/cx23885-dvb.c 2009-08-19 15:25:57.0 
+0300
@@ -55,6 +55,7 @@
 #include netup-eeprom.h
 #include netup-init.h
 #include lgdt3305.h
+#include tbs_lnb_pwr.h
 
 static unsigned int debug;
 
@@ -71,6 +72,10 @@ MODULE_PARM_DESC(alt_tuner, Enable alte
 
 

Re: [PATCH 3/8] drivers/media/video/hdpvr: introduce missing kfree

2010-02-02 Thread Mauro Carvalho Chehab
Hi Janne,

Janne Grunau wrote:
 On Fri, Sep 11, 2009 at 06:21:35PM +0200, Julia Lawall wrote:
 Error handling code following a kzalloc should free the allocated data.
 
 Thanks for the report. I'll commit a different patch which adds the buffer
 to the buffer list as soon it is allocated. The hdpvr_free_buffers() in the
 error handling code will clean it up then. See below:

Any news about this subject? The current upstream code still misses the change 
bellow

 
 diff --git a/linux/drivers/media/video/hdpvr/hdpvr-video.c 
 b/linux/drivers/media/video/hdpvr/hdpvr-video.c
 --- a/linux/drivers/media/video/hdpvr/hdpvr-video.c
 +++ b/linux/drivers/media/video/hdpvr/hdpvr-video.c
 @@ -134,6 +134,8 @@
 v4l2_err(dev-v4l2_dev, cannot allocate buffer\n);
 goto exit;
 }
 +   list_add_tail(buf-buff_list, dev-free_buff_list);
 +
 buf-dev = dev;
 
 urb = usb_alloc_urb(0, GFP_KERNEL);
 @@ -158,7 +160,6 @@
   hdpvr_read_bulk_callback, buf);
 
 buf-status = BUFSTAT_AVAILABLE;
 -   list_add_tail(buf-buff_list, dev-free_buff_list);
 }
 return 0;
  exit:
 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html


-- 

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


Re: DM1105: could not attach frontend 195d:1105

2010-02-02 Thread Nameer Kazzaz

Hi Igor,
   What do you think ? if I can help you solve this, let me know what I 
can do.


Thanks
Nameer

Nameer Kazzaz wrote:

Hi there,
dmesg output with patched dm1105.c against current v4l-dvb 'modprob 
dm1105 card=4'


dm1105 :05:0f.0: PCI INT A - GSI 16 (level, low) - IRQ 16
DVB: registering new adapter (dm1105)
dm1105 :05:0f.0: MAC dd49b0dc
dm1105 :05:0f.0: could not attach frontend
dm1105 :05:0f.0: PCI INT A disabled

Thanks
Nameer Kazzaz

Igor M. Liplianin wrote:

On 20 ?? 2010 23:20:20 pau...@planar.id.au wrote:
 

Igor wrote:
   

Oh, that is wrong. It is registers addresses, Never touch this.

Let's look on that part of code:

/* GPIO's for LNB power control */
#define DM1105_LNB_MASK 0x // later in
  

code write it to

   

DM1105_GPIOCTR, all GPIO's as OUT
#define DM1105_LNB_OFF  0x0002 // later in
  

code write it to

   

DM1105_GPIOVAL, set GPIO17 to HIGH

But you have not to change this.
Right way is to write another entry in cards structure and so on.
Better leave it to me.

Regards
Igor
  
Thanks for all your help, I understand better now.  I have moved to 
code
like that at the bottom.  It still doesn't work, but feels a lot 
closer.


Before I keep playing with values, I want to check I'm on the right 
track.

Does it look right?  Specific questions:
1. I see there is a hw_init function.  Should I be using that?  I 
put the

logic into fe_attach because there was already card-specific logic in
there.  But this feels like hw initialisation.

2. Should I set the control to input or output?  I'm assuming input 
= 1.


3. Would pin 15 be numbered from the left or right - is it 0x4, or 
0x2000?


Thanks,

Paul

*** dm1105.c.old2010-01-13 16:15:00.0 +1100
--- dm1105.c2010-01-21 08:13:14.0 +1100
***
*** 51,56 
--- 51,57 
  #define DM1105_BOARD_DVBWORLD_20021
  #define DM1105_BOARD_DVBWORLD_20042
  #define DM1105_BOARD_AXESS_DM05   3
+ #define DM1105_BOARD_UNBRANDED4

  /* --- */
  /*
***
*** 171,176 
--- 172,181 
  #define DM05_LNB_13V  0x0002
  #define DM05_LNB_18V  0x0003

+ /* GPIO's for demod reset for unbranded 195d:1105 */
+ #define UNBRANDED_DEMOD_MASK  0x8000
+ #define UNBRANDED_DEMOD_RESET 0x8000
+
  static unsigned int card[]  = {[0 ... 3] = UNSET };
  module_param_array(card,  int, NULL, 0444);
  MODULE_PARM_DESC(card, card type);
***
*** 206,211 
--- 211,219 
[DM1105_BOARD_AXESS_DM05] = {
.name   = Axess/EasyTv DM05,
},
+   [DM1105_BOARD_UNBRANDED] = {
+   .name   = Unbranded 195d:1105,
+ },
  };

  static const struct dm1105_subid dm1105_subids[] = {
***
*** 229,234 
--- 237,246 
.subvendor = 0x195d,
.subdevice = 0x1105,
.card  = DM1105_BOARD_AXESS_DM05,
+   }, {
+   .subvendor = 0x195d,
+   .subdevice = 0x1105,
+   .card  = DM1105_BOARD_UNBRANDED,
},
  };

***
*** 698,703 
--- 710,727 
dm1105dvb-fe-ops.set_voltage =
dm1105dvb_set_voltage;

break;
+   case DM1105_BOARD_UNBRANDED:
+ printk(KERN_ERR Attaching as board_unbranded\n);
+   outl(UNBRANDED_DEMOD_MASK, dm_io_mem(DM1105_GPIOCTR));
+   outl(UNBRANDED_DEMOD_RESET , 
dm_io_mem(DM1105_GPIOVAL));

+   dm1105dvb-fe = dvb_attach(
+   si21xx_attach, serit_config,
+   dm1105dvb-i2c_adap);
+   if (dm1105dvb-fe)
+   dm1105dvb-fe-ops.set_voltage =
+   dm1105dvb_set_voltage;
+
+   break;
case DM1105_BOARD_DVBWORLD_2002:
case DM1105_BOARD_AXESS_DM05:
default:


Some things are missed, like keep GPIO15 high in set_voltage function.
Try attached patch against current v4l-dvb tree with modprobe option 
card=4

modprobe dm1105 card=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


Re: [PATCH] V4L/DVB: lgs8gxx: remove firmware for lgs8g75

2010-02-02 Thread Mauro Carvalho Chehab
Mauro Carvalho Chehab wrote:
 Ben Hutchings wrote:
 The recently added support for lgs8g75 included some 8051 machine code
 without accompanying source code.  Replace this with use of the
 firmware loader.

 Compile-tested only.

 Signed-off-by: Ben Hutchings b...@decadent.org.uk
 ---
 This firmware can be added to linux-firmware.git instead, and I will be
 requesting that very shortly.
 
 Had you submitted a patch for it already? Could you please test the patch 
 before we commit it at the tree?

Ping.

 
 Ben.

  drivers/media/dvb/frontends/Kconfig   |1 +
  drivers/media/dvb/frontends/lgs8gxx.c |   50 
 ++--
  2 files changed, 11 insertions(+), 40 deletions(-)

 diff --git a/drivers/media/dvb/frontends/Kconfig 
 b/drivers/media/dvb/frontends/Kconfig
 index d7c4837..26b00ab 100644
 --- a/drivers/media/dvb/frontends/Kconfig
 +++ b/drivers/media/dvb/frontends/Kconfig
 @@ -553,6 +553,7 @@ config DVB_LGS8GL5
  config DVB_LGS8GXX
  tristate Legend Silicon LGS8913/LGS8GL5/LGS8GXX DMB-TH demodulator
  depends on DVB_CORE  I2C
 +select FW_LOADER
  default m if DVB_FE_CUSTOMISE
  help
A DMB-TH tuner module. Say Y when you want to support this frontend.
 diff --git a/drivers/media/dvb/frontends/lgs8gxx.c 
 b/drivers/media/dvb/frontends/lgs8gxx.c
 index eabcadc..1bfcf85 100644
 --- a/drivers/media/dvb/frontends/lgs8gxx.c
 +++ b/drivers/media/dvb/frontends/lgs8gxx.c
 @@ -24,6 +24,7 @@
   */
  
  #include asm/div64.h
 +#include linux/firmware.h
  
  #include dvb_frontend.h
  
 @@ -46,42 +47,6 @@ module_param(fake_signal_str, int, 0644);
  MODULE_PARM_DESC(fake_signal_str, fake signal strength for LGS8913.
  Signal strength calculation is slow.(default:on).);
  
 -static const u8 lgs8g75_initdat[] = {
 -0x01, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 -0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 -0xE4, 0xF5, 0xA8, 0xF5, 0xB8, 0xF5, 0x88, 0xF5,
 -0x89, 0xF5, 0x87, 0x75, 0xD0, 0x00, 0x11, 0x50,
 -0x11, 0x50, 0xF4, 0xF5, 0x80, 0xF5, 0x90, 0xF5,
 -0xA0, 0xF5, 0xB0, 0x75, 0x81, 0x30, 0x80, 0x01,
 -0x32, 0x90, 0x80, 0x12, 0x74, 0xFF, 0xF0, 0x90,
 -0x80, 0x13, 0x74, 0x1F, 0xF0, 0x90, 0x80, 0x23,
 -0x74, 0x01, 0xF0, 0x90, 0x80, 0x22, 0xF0, 0x90,
 -0x00, 0x48, 0x74, 0x00, 0xF0, 0x90, 0x80, 0x4D,
 -0x74, 0x05, 0xF0, 0x90, 0x80, 0x09, 0xE0, 0x60,
 -0x21, 0x12, 0x00, 0xDD, 0x14, 0x60, 0x1B, 0x12,
 -0x00, 0xDD, 0x14, 0x60, 0x15, 0x12, 0x00, 0xDD,
 -0x14, 0x60, 0x0F, 0x12, 0x00, 0xDD, 0x14, 0x60,
 -0x09, 0x12, 0x00, 0xDD, 0x14, 0x60, 0x03, 0x12,
 -0x00, 0xDD, 0x90, 0x80, 0x42, 0xE0, 0x60, 0x0B,
 -0x14, 0x60, 0x0C, 0x14, 0x60, 0x0D, 0x14, 0x60,
 -0x0E, 0x01, 0xB3, 0x74, 0x04, 0x01, 0xB9, 0x74,
 -0x05, 0x01, 0xB9, 0x74, 0x07, 0x01, 0xB9, 0x74,
 -0x0A, 0xC0, 0xE0, 0x74, 0xC8, 0x12, 0x00, 0xE2,
 -0xD0, 0xE0, 0x14, 0x70, 0xF4, 0x90, 0x80, 0x09,
 -0xE0, 0x70, 0xAE, 0x12, 0x00, 0xF6, 0x12, 0x00,
 -0xFE, 0x90, 0x00, 0x48, 0xE0, 0x04, 0xF0, 0x90,
 -0x80, 0x4E, 0xF0, 0x01, 0x73, 0x90, 0x80, 0x08,
 -0xF0, 0x22, 0xF8, 0x7A, 0x0C, 0x79, 0xFD, 0x00,
 -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9,
 -0xF6, 0xDA, 0xF2, 0xD8, 0xEE, 0x22, 0x90, 0x80,
 -0x65, 0xE0, 0x54, 0xFD, 0xF0, 0x22, 0x90, 0x80,
 -0x65, 0xE0, 0x44, 0xC2, 0xF0, 0x22
 -};
 -
  /* LGS8GXX internal helper functions */
  
  static int lgs8gxx_write_reg(struct lgs8gxx_state *priv, u8 reg, u8 data)
 @@ -627,9 +592,14 @@ static int lgs8913_init(struct lgs8gxx_state *priv)
  
  static int lgs8g75_init_data(struct lgs8gxx_state *priv)
  {
 -const u8 *p = lgs8g75_initdat;
 +const struct firmware *fw;
 +int rc;
  int i;
  
 +rc = request_firmware(fw, lgs8g75.fw, priv-i2c-dev);
 +if (rc)
 +return rc;
 +
  lgs8gxx_write_reg(priv, 0xC6, 0x40);
  
  lgs8gxx_write_reg(priv, 0x3D, 0x04);
 @@ -640,16 +610,16 @@ static int lgs8g75_init_data(struct lgs8gxx_state 
 *priv)
  lgs8gxx_write_reg(priv, 0x3B, 0x00);
  lgs8gxx_write_reg(priv, 0x38, 0x00);
  
 -for (i = 0; i  sizeof(lgs8g75_initdat); i++) {
 +for (i = 0; i  fw-size; i++) {
  lgs8gxx_write_reg(priv, 0x38, 0x00);
  lgs8gxx_write_reg(priv, 0x3A, (u8)(i0xff));
  lgs8gxx_write_reg(priv, 0x3B, (u8)(i8));
 -lgs8gxx_write_reg(priv, 0x3C, *p);
 -p++;
 +lgs8gxx_write_reg(priv, 0x3C, fw-data[i]);
  }
  
  lgs8gxx_write_reg(priv, 0x38, 0x00);
  
 +release_firmware(fw);
  return 0;
  }
  
 
 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html


-- 

Cheers,
Mauro
--
To 

RE: [PATCH v3 1/6] V4L - vpfe capture - header files for ISIF driver

2010-02-02 Thread Karicheri, Muralidharan
Mauro,

If you scan the patch, you would see the status of this patch series. 

 ---
 Applies to linux-next tree of v4l-dvb
  - rebasing to latest for merge (v3)

Not sure if there is a better way to include this information. The arch part
of this series requires sign-off from Kevin who is copied on this. I have
seen your procedure for submitting patches and would send you an official
pull request as per your procedure once Kevin sign-off the arch part.

I have following questions though..

Should we always add [RFC PATCH] in the subject? It makes sense for
patches being reviewed. How to request sign-off? Do I only send patches
to the person, not to the list?


Murali Karicheri
Software Design Engineer
Texas Instruments Inc.
Germantown, MD 20874
phone: 301-407-9583
email: m-kariche...@ti.com

-Original Message-
From: Mauro Carvalho Chehab [mailto:mche...@redhat.com]
Sent: Monday, February 01, 2010 6:12 PM
To: Karicheri, Muralidharan
Cc: linux-media@vger.kernel.org
Subject: Re: [PATCH v3 1/6] V4L - vpfe capture - header files for ISIF
driver

m-kariche...@ti.com wrote:
 From: Murali Karicheri m-kariche...@ti.com

 This is the header file for ISIF driver on DM365.  ISIF driver is
equivalent
 to CCDC driver on DM355 and DM644x. This driver is tested for
 YUV capture from TVP514x driver. This patch contains the header files
required for
 this driver. The name of the file is changed to reflect the name of IP.

 Reviewed-by: Nori, Sekhar nsek...@ti.com
 Reviewed-by: Hans Verkuil hverk...@xs4all.nl

 Signed-off-by: Hans Verkuil hverk...@xs4all.nl
 Signed-off-by: Muralidharan Karicheri m-kariche...@ti.com
 ---
 Applies to linux-next tree of v4l-dvb
  - rebasing to latest for merge (v3)
  - Updated based on comments against v1 of the patch (v2)
  drivers/media/video/davinci/isif_regs.h |  269 
  include/media/davinci/isif.h|  531
+++
  2 files changed, 800 insertions(+), 0 deletions(-)
  create mode 100644 drivers/media/video/davinci/isif_regs.h
  create mode 100644 include/media/davinci/isif.h

Hi Murali,

As always, it is almost impossible for me to know if you're submitting yet
another RFC version
or a final version to be applied.

So, I kindly ask you to send all those patches that are still under
discussions with [RFC PATCH]
at the subject, and, on the final version, send it to me via a git pull
request.

Unfortunately, I don't have enough time to go inside every RFC patch that
are under discussion,
so I prefer to optimize my time focusing on the patch versions that are
considered ready for
inclusion, and where there's no c/c to any members-only ML.

--

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: dvb-usb-remote woes [was: HID: ignore afatech 9016]

2010-02-02 Thread Pekka Sarnila
Ok, that was it, I had the old firmware. Now it works with the patch. I 
can now see that the afateck driver does not use the HID 
interface/endpoint (1/83) at all, but vendor specific bulk endpoint (0/81).


The fact that manufacturers have started to more more use the usb vendor 
class instead of the HID class is probably partly a consequence of HID 
specification being poorly designed. Oh, well. More work for driver writers.


Anyway, I'm still of the opinion that the ir-to-code translate should be 
per remote controller not per tv-stick (ideally loaded by kernel from 
the userspace table, and easily modifiable by userspace program).


All in all the remote controller stack is IMHO a real mess: different 
level translates (in kernel and in user space), different user program 
interfaces (keyboard with or without the special keys (many programs 
recognize only the standard keyboard keys), lircd direct, lircd/dcop). 
Really easiest is to modify kernel to get what you want. For average 
user the task of getting remote to do what they want is close to mission 
impossible. Hope someone would do something about this.



Pekka


Antti Palosaari wrote:

On 02/01/2010 09:42 PM, Jiri Slaby wrote:


On 02/01/2010 07:28 PM, Jiri Kosina wrote:


On Mon, 1 Feb 2010, Pekka Sarnila wrote:


I pulled few days ago latest


git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git


and compiled it. Everything works fine including the tv-stick and the
remote. However I get:

   3af9015: command failed:255
   3dvb-usb: error while querying for an remote control event.



Yes, I saw this quite recently too. For me it appears when it is booted
up with the stick in. It's still to be fixed.



I suspect you are using old firmware, 4.65.0.0 probably, that does not 
support remote polling and thus this 255 errors seen.


regards
Antti

--
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: dvb-usb-remote woes [was: HID: ignore afatech 9016]

2010-02-02 Thread Pekka Sarnila

Please, no mail to this address, use only sarn...@adit.fi.

Pekka

Antti Palosaari wrote:

On 02/01/2010 09:42 PM, Jiri Slaby wrote:


On 02/01/2010 07:28 PM, Jiri Kosina wrote:


On Mon, 1 Feb 2010, Pekka Sarnila wrote:


I pulled few days ago latest


git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git


and compiled it. Everything works fine including the tv-stick and the
remote. However I get:

   3af9015: command failed:255
   3dvb-usb: error while querying for an remote control event.



Yes, I saw this quite recently too. For me it appears when it is booted
up with the stick in. It's still to be fixed.



I suspect you are using old firmware, 4.65.0.0 probably, that does not 
support remote polling and thus this 255 errors seen.


regards
Antti

--
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: dvb-usb-remote woes [was: HID: ignore afatech 9016]

2010-02-02 Thread Pekka Sarnila
In the old kernel (2.6.24) it did not work if it was plugged while 
booting. If I recall right then it was due to the order different layers 
are initialized (modules loaded).


Pekka


Jiri Slaby wrote:

On 02/01/2010 10:23 PM, Antti Palosaari wrote:


On 02/01/2010 09:42 PM, Jiri Slaby wrote:


On 02/01/2010 07:28 PM, Jiri Kosina wrote:


On Mon, 1 Feb 2010, Pekka Sarnila wrote:


  3af9015: command failed:255
  3dvb-usb: error while querying for an remote control event.


Yes, I saw this quite recently too. For me it appears when it is booted
up with the stick in. It's still to be fixed.


I suspect you are using old firmware, 4.65.0.0 probably, that does not
support remote polling and thus this 255 errors seen.



For me:
af9013: firmware version:4.95.0

As I wrote, for me it happens iff it is plugged-in while booting. I'll
investigate it further later -- that it a reason why I haven't reported
it yet.


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


Re: [PATCH] - tm6000 DVB support

2010-02-02 Thread Stefan Ringel
Am 02.02.2010 00:05, schrieb Mauro Carvalho Chehab:
 Stefan Ringel wrote:
   
 Am 01.02.2010 22:44, schrieb Devin Heitmueller:
 
 On Mon, Feb 1, 2010 at 4:23 PM, Stefan Ringel stefan.rin...@arcor.de 
 wrote:
   
   
 You should start by breaking it down into a patch series, so that the
 incremental changes can be reviewed.  That will allow you to explain
 in the patch descriptions why all the individual changes you have made
 are required.


   
   
 how can I generate it?
 
 
 You can use quilt to break it up into a patch series, or create a
 local hg clone of v4l-dvb.

   
   
 Why did you define a new callback for changing the tuner mode?  We
 have successfully provided infrastructure on other bridges to toggle
 GPIOs when changing modes.  For example, the em28xx has fields in the
 board profile that allow you to toggle GPIOs when going back and forth
 between digital and analog mode.


   
   
 I don't know, how you mean it. I'm amateur programmer.
 
 
 Look at how the .dvb_gpio and .gpio fields are used in the board
 profiles in em28xx-cards.c.  We toggle the GPIOs when switching the
 from analog to digital mode, without the tuner having to do any sort
 of callback.

   
   
 It's a bad example. em28xx use a reg-set, but tm6000 not !! It use a
 gpio usb request.

 tm6000_set_reg (dev, REQ_03_SET_GET_MCU_PIN, TM6010_GPIO_5, 1);


 I don't know, that it with the .gpio fields works. And when it switch
 from analog to digital, I don't see the way.
 
 All devices with Xceive tuners need to reset the chip via GPIO, in order to 
 load
 the firmware. On em28xx, I wrote a patch that moved all specific init code to
 a struct (basically used by gpio's), and a generic code to do the reset. It 
 basically
 contains what GPIO pins are used, and how many time it should wait.

 For example:

 /* Board Hauppauge WinTV HVR 900 digital */
 static struct em28xx_reg_seq hauppauge_wintv_hvr_900_digital[] = {
 {EM28XX_R08_GPIO,   0x2e,   ~EM_GPIO_4, 10},
 {EM2880_R04_GPO,0x04,   0x0f,   10},
 {EM2880_R04_GPO,0x0c,   0x0f,   10},
 { -1,   -1, -1, -1},
 };

 The first line of the above code will execute this logic:
   a = read(EM28XXR08_GPIO)  ~0x2e;
   write (a  ~EM_GPIO_4);
   msleep(10);


 So, it will basically preserve bits 8,7,6,4 and 1 of register 8,
 and will clear bit 4 (EM_GPIO_4 is 1  4 - e. g. bit 4).
 After that, it will sleep for 10 miliseconds, and will then do a
 reset on bit 3 of Register 4 (writing 0, then 1 to the bit).
   

reset example :

static struct tm6010_seq terratec[] = {
{TM6010_GPIO_2,1,60},  /* GPIO 2 going to high */
{TM6010_GPIO_2,0,75},  /* GPIO 2 going to lo */
{TM6010_GPIO_2,1,60},  /* GPIO 2 going to high */
{ -1 ,-1,-1},
}

Is that correct?


 
 What function does the tm6000 member in the zl10353 config do?  It
 doesn't seem to be used anywhere.


   
   
 I'll switch it next week to demodulator module.
 
 
 Are you saying the zl10353 isn't working right now in your patch?  I'm
 a bit confused.  If it doesn't work, then your patch title is a bit
 misleading since it suggests that your patch provides DVB support for
 the tm6000.  If it does work, then the tm6000 member shouldn't be
 needed at all in the zl10353 config.

   
   
 I'm emulating it in hack.c and the zl10353 module doesn't work, if I
 switch to it.
 
 the hack.c needs to be validated against the zl10353, in order to identify
 what are the exact needs for tm6000. Some devices require serial mode, while
 others require parallel mode.

 I bet that playing with zl10353_config, we'll find the proper init values 
 required by tm6000.

   

I have separately write in the hack.c the value from terratec hybrid
stick. The older value I haven't clean.

-- 
Stefan Ringel stefan.rin...@arcor.de

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


Re: [PATCH] - tm6000 DVB support

2010-02-02 Thread Mauro Carvalho Chehab
Stefan Ringel wrote:

 So, it will basically preserve bits 8,7,6,4 and 1 of register 8,
 and will clear bit 4 (EM_GPIO_4 is 1  4 - e. g. bit 4).
 After that, it will sleep for 10 miliseconds, and will then do a
 reset on bit 3 of Register 4 (writing 0, then 1 to the bit).
   
 
 reset example :
 
 static struct tm6010_seq terratec[] = {
 {TM6010_GPIO_2,1,60},  /* GPIO 2 going to high */
 {TM6010_GPIO_2,0,75},  /* GPIO 2 going to lo */
 {TM6010_GPIO_2,1,60},  /* GPIO 2 going to high */
 { -1 ,-1,-1},
 }
 
 Is that correct?

Yes. In the case of tm6010, it has separate registers for each GPIO, so, you
don't need a bitmask.

 the hack.c needs to be validated against the zl10353, in order to identify
 what are the exact needs for tm6000. Some devices require serial mode, while
 others require parallel mode.

 I bet that playing with zl10353_config, we'll find the proper init values 
 required by tm6000.

   
 
 I have separately write in the hack.c the value from terratec hybrid
 stick. The older value I haven't clean.

Ok, but maybe you missed my point: at the long term, we should get rid of 
hack.c, and
be sure that all needed initializations are done by zl10353 driver or by 
tm6010-dvb.


-- 

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: DM1105: could not attach frontend 195d:1105

2010-02-02 Thread Igor M. Liplianin
On 2 февраля 2010 17:21:46 Nameer Kazzaz wrote:
 Hi Igor,
 What do you think ? if I can help you solve this, let me know what I
 can do.

 Thanks
 Nameer

 Nameer Kazzaz wrote:
  Hi there,
  dmesg output with patched dm1105.c against current v4l-dvb 'modprob
  dm1105 card=4'
 
  dm1105 :05:0f.0: PCI INT A - GSI 16 (level, low) - IRQ 16
  DVB: registering new adapter (dm1105)
  dm1105 :05:0f.0: MAC dd49b0dc
  dm1105 :05:0f.0: could not attach frontend
  dm1105 :05:0f.0: PCI INT A disabled
 
  Thanks
  Nameer Kazzaz
 
  Igor M. Liplianin wrote:
  On 20 ?? 2010 23:20:20 pau...@planar.id.au wrote:
  Igor wrote:
  Oh, that is wrong. It is registers addresses, Never touch this.
 
  Let's look on that part of code:
 
  /* GPIO's for LNB power control */
  #define DM1105_LNB_MASK 0x // later in
 
  code write it to
 
  DM1105_GPIOCTR, all GPIO's as OUT
  #define DM1105_LNB_OFF  0x0002 // later in
 
  code write it to
 
  DM1105_GPIOVAL, set GPIO17 to HIGH
 
  But you have not to change this.
  Right way is to write another entry in cards structure and so on.
  Better leave it to me.
 
  Regards
  Igor
 
  Thanks for all your help, I understand better now.  I have moved to
  code
  like that at the bottom.  It still doesn't work, but feels a lot
  closer.
 
  Before I keep playing with values, I want to check I'm on the right
  track.
  Does it look right?  Specific questions:
  1. I see there is a hw_init function.  Should I be using that?  I
  put the
  logic into fe_attach because there was already card-specific logic in
  there.  But this feels like hw initialisation.
 
  2. Should I set the control to input or output?  I'm assuming input
  = 1.
 
  3. Would pin 15 be numbered from the left or right - is it 0x4, or
  0x2000?
 
  Thanks,
 
  Paul
 
  *** dm1105.c.old2010-01-13 16:15:00.0 +1100
  --- dm1105.c2010-01-21 08:13:14.0 +1100
  ***
  *** 51,56 
  --- 51,57 
#define DM1105_BOARD_DVBWORLD_20021
#define DM1105_BOARD_DVBWORLD_20042
#define DM1105_BOARD_AXESS_DM05   3
  + #define DM1105_BOARD_UNBRANDED4
 
/* --- */
/*
  ***
  *** 171,176 
  --- 172,181 
#define DM05_LNB_13V  0x0002
#define DM05_LNB_18V  0x0003
 
  + /* GPIO's for demod reset for unbranded 195d:1105 */
  + #define UNBRANDED_DEMOD_MASK  0x8000
  + #define UNBRANDED_DEMOD_RESET 0x8000
  +
static unsigned int card[]  = {[0 ... 3] = UNSET };
module_param_array(card,  int, NULL, 0444);
MODULE_PARM_DESC(card, card type);
  ***
  *** 206,211 
  --- 211,219 
  [DM1105_BOARD_AXESS_DM05] = {
  .name   = Axess/EasyTv DM05,
  },
  +   [DM1105_BOARD_UNBRANDED] = {
  +   .name   = Unbranded 195d:1105,
  + },
};
 
static const struct dm1105_subid dm1105_subids[] = {
  ***
  *** 229,234 
  --- 237,246 
  .subvendor = 0x195d,
  .subdevice = 0x1105,
  .card  = DM1105_BOARD_AXESS_DM05,
  +   }, {
  +   .subvendor = 0x195d,
  +   .subdevice = 0x1105,
  +   .card  = DM1105_BOARD_UNBRANDED,
  },
};
 
  ***
  *** 698,703 
  --- 710,727 
  dm1105dvb-fe-ops.set_voltage =
  dm1105dvb_set_voltage;
 
  break;
  +   case DM1105_BOARD_UNBRANDED:
  + printk(KERN_ERR Attaching as board_unbranded\n);
  +   outl(UNBRANDED_DEMOD_MASK, dm_io_mem(DM1105_GPIOCTR));
  +   outl(UNBRANDED_DEMOD_RESET ,
  dm_io_mem(DM1105_GPIOVAL));
  +   dm1105dvb-fe = dvb_attach(
  +   si21xx_attach, serit_config,
  +   dm1105dvb-i2c_adap);
  +   if (dm1105dvb-fe)
  +   dm1105dvb-fe-ops.set_voltage =
  +   dm1105dvb_set_voltage;
  +
  +   break;
  case DM1105_BOARD_DVBWORLD_2002:
  case DM1105_BOARD_AXESS_DM05:
  default:
 
  Some things are missed, like keep GPIO15 high in set_voltage function.
  Try attached patch against current v4l-dvb tree with modprobe option
  card=4
  modprobe dm1105 card=4
Hi Nameer,
You can modify sended by me patch to guess GPIO pin. Simply try all of them, it 
is only 17. 
Just replace all appearances DM1105_GPIO(15) with number you want.
-- 
Igor M. Liplianin
Microsoft Windows Free Zone - Linux used for all Computing Tasks
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  

Re: [PATCH v3 1/6] V4L - vpfe capture - header files for ISIF driver

2010-02-02 Thread Mauro Carvalho Chehab
Karicheri, Muralidharan wrote:
 Mauro,
 
 If you scan the patch, you would see the status of this patch series. 

Ok, but it is not script-able. So, I need to have an easy way to know when
a patch is still under discussion at the ML or if it is ready for merging.

I need something that I can write an script on my machine to update Patchwork
status and remove the stuff that are still under discussions from my pull queue.

On most cases, the level of detail between two revisions of the omap drivers
are due to some intrinsic details of the driver or the arch. So, it makes
no sense for me to keep checking all reviews. I would love to, but unfortunately
I have no spare time for it. That's why I prefer to review only the final 
revision,
when the patch is submitted.

 ---
 Applies to linux-next tree of v4l-dvb
  - rebasing to latest for merge (v3)
 
 Not sure if there is a better way to include this information. The arch part
 of this series requires sign-off from Kevin who is copied on this. I have
 seen your procedure for submitting patches and would send you an official
 pull request as per your procedure once Kevin sign-off the arch part.

The pull request is enough for me. I'll review when I receive it. 

 I have following questions though..
 
 Should we always add [RFC PATCH] in the subject? It makes sense for
 patches being reviewed. How to request sign-off? Do I only send patches
 to the person, not to the list?

For the patches exchanged via the ML, I need some scriptable way to mark them
as RFC at the Patchwork. 

So, adding [RFC PATCH] or [PATCH RFC] works. It also works if you add something 
like [PATCH OMAP] or [PATCH OMAP V4L], and provided that all other contributors 
to the patches you'll be sending me a pull request do exactly the same.

I'll then write an specific script to mark those patches as RFC and remove from 
my
queue, until I receive your [PULL] request.

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


Re: [PATCH] - tm6000 DVB support

2010-02-02 Thread Stefan Ringel
Am 01.02.2010 23:52, schrieb Mauro Carvalho Chehab:
 Stefan Ringel wrote:
   
 add Terratec Cinergy Hybrid XE
 bugfix i2c transfer
 add frontend callback
 add init for tm6010
 add digital-init for tm6010
 add callback for analog/digital switch
 bugfix usb transfer in DVB-mode

 signed-off-by: Stefan Ringel stefan.rin...@arcor.de
 
 Devin is right with respect to the changes: you should break into small
 patches for us to better understand what you're doing. 

 In particular, some parts of the changes (like tuner-xc2028) are known 
 to be working fine with other drivers, so any change there should be done 
 with the enough care to not break other drivers.

   
 diff --git a/drivers/media/common/tuners/tuner-xc2028.c
 b/drivers/media/common/tuners/tuner-xc2028.c
 index ed50168..2297c00 100644
 --- a/drivers/media/common/tuners/tuner-xc2028.c
 +++ b/drivers/media/common/tuners/tuner-xc2028.c
 @@ -15,6 +15,7 @@
  #include linux/delay.h
  #include media/tuner.h
  #include linux/mutex.h
 +#include compat.h
  #include asm/unaligned.h
  #include tuner-i2c.h
  #include tuner-xc2028.h
 @@ -994,6 +995,13 @@ static int generic_set_freq(struct dvb_frontend
 *fe, u32 freq /* in HZ */,
 buf[0], buf[1], buf[2], buf[3],
 freq / 100, (freq % 100) / 1000);
  
 +if (priv-ctrl.switch_mode) {
 +if (new_mode == T_ANALOG_TV)
 +do_tuner_callback(fe, SWITCH_TV_MODE, 0);
 +if (new_mode == T_DIGITAL_TV)
 +do_tuner_callback(fe, SWITCH_TV_MODE, 1);
 +}
 +   
  rc = 0;
 
 The decision taken at the driver were the opposite: the bridge driver should
 have the logic to reset the tuner. This works perfectly on em28xx and other
 drivers that use xc3028.

 I don't see a good reason to revert the logic here. Also, such change should
 be done on all drivers that use xc3028 and xc5000.

   
  
  ret:
 @@ -1114,7 +1122,11 @@ static int xc2028_set_params(struct dvb_frontend *fe,
  
  /* All S-code tables need a 200kHz shift */
  if (priv-ctrl.demod) {
 -demod = priv-ctrl.demod + 200;
 +if (priv-ctrl.fname == xc3028L-v36.fw) {
 +demod = priv-ctrl.demod;
 +} else {
 +demod = priv-ctrl.demod + 200;
 +}
 
 Instead, you should be using the firmware version. 

 As the firmware version is written at the firmware file, it is easy to do the 
 tests 
 based on the firmware version, even on devices like tm6000 where the version 
 read
 method may fail.
   
Not with the i2c patch, see down.
  
 Yet, I suspect that the currently available v36 firmwares already take this 
 into 
 consideration (or the drivers that use those firmwares do the offset 
 internally).

 So, this change needs to be checked against the existing drivers.

   
  /*
   * The DTV7 S-code table needs a 700 kHz shift.
   * Thanks to Terry Wu terrywu2...@gmail.com for reporting this
 @@ -1123,8 +1135,8 @@ static int xc2028_set_params(struct dvb_frontend *fe,
   * use this firmware after initialization, but a tune to a UHF
   * channel should then cause DTV78 to be used.
   */
 -if (type  DTV7)
 -demod += 500;
 +if (type   DTV7)
 +demod += 500;
 
 This hunk is wrong.

   
Why that generated the git diff, I cannot say. It must be the older once.
  }
  
  return generic_set_freq(fe, p-frequency,
 @@ -1240,6 +1252,10 @@ static const struct dvb_tuner_ops
 xc2028_dvb_tuner_ops = {
  .get_rf_strength   = xc2028_signal,
  .set_params= xc2028_set_params,
  .sleep = xc2028_sleep,
 +#if 0
 +int (*get_bandwidth)(struct dvb_frontend *fe, u32 *bandwidth);
 +int (*get_status)(struct dvb_frontend *fe, u32 *status);
 +#endif
  };
  
  struct dvb_frontend *xc2028_attach(struct dvb_frontend *fe,
 diff --git a/drivers/media/common/tuners/tuner-xc2028.h
 b/drivers/media/common/tuners/tuner-xc2028.h
 index 9778c96..c9a4fb4 100644
 --- a/drivers/media/common/tuners/tuner-xc2028.h
 +++ b/drivers/media/common/tuners/tuner-xc2028.h
 @@ -42,6 +42,7 @@ struct xc2028_ctrl {
  unsigned intdisable_power_mgmt:1;
  unsigned intread_not_reliable:1;
  unsigned intdemod;
 +unsigned intswitch_mode:1;
 
 This struct is meant to pass static parameters to the driver. the 
 analog/digital
 mode is dynamic, so, this is not the right place for doing it.

   
Can you tell me how that work? Where would call it? Switch it after read
demodulator status or before? This switch switches the  tuner output to
the demodulator or adc input and if it read status before it switch
thoughts the apps  no digital found.
  enum firmware_typetype:2;
  };
  
 @@ -54,6 +55,7 @@ struct xc2028_config {
  /* xc2028 commands for callback */
  #define XC2028_TUNER_RESET0
  #define XC2028_RESET_CLK1
 +#define SWITCH_TV_MODE2
  
  #if defined(CONFIG_MEDIA_TUNER_XC2028) ||
 

Re: [PATCH] - tm6000 DVB support

2010-02-02 Thread Stefan Ringel
Am 02.02.2010 17:44, schrieb Mauro Carvalho Chehab:
 Stefan Ringel wrote:

   
 So, it will basically preserve bits 8,7,6,4 and 1 of register 8,
 and will clear bit 4 (EM_GPIO_4 is 1  4 - e. g. bit 4).
 After that, it will sleep for 10 miliseconds, and will then do a
 reset on bit 3 of Register 4 (writing 0, then 1 to the bit).
   
   
 reset example :

 static struct tm6010_seq terratec[] = {
 {TM6010_GPIO_2,1,60},  /* GPIO 2 going to high */
 {TM6010_GPIO_2,0,75},  /* GPIO 2 going to lo */
 {TM6010_GPIO_2,1,60},  /* GPIO 2 going to high */
 { -1 ,-1,-1},
 }

 Is that correct?
 
 Yes. In the case of tm6010, it has separate registers for each GPIO, so, you
 don't need a bitmask.

   
 the hack.c needs to be validated against the zl10353, in order to identify
 what are the exact needs for tm6000. Some devices require serial mode, while
 others require parallel mode.

 I bet that playing with zl10353_config, we'll find the proper init values 
 required by tm6000.

   
   
 I have separately write in the hack.c the value from terratec hybrid
 stick. The older value I haven't clean.
 
 Ok, but maybe you missed my point: at the long term, we should get rid of 
 hack.c, and
 be sure that all needed initializations are done by zl10353 driver or by 
 tm6010-dvb.
   
I think I all are done by zl10353 driver.

I thinbk all config param is usefull and .tm6000 for tm6000 specific
once. For what is .parallel_ts ?

int tm6000_dvb_attach_frontend(struct tm6000_core *dev)
{
struct tm6000_dvb *dvb = dev-dvb;

if(dev-caps.has_zl10353) {
struct zl10353_config config =
{.demod_address = dev-demod_addr,
 .no_tuner = 1,
 .parallel_ts = 1,
 .if2 = 45700,
 .disable_i2c_gate_ctrl = 1,
 .tm6000 = 1,
};

dvb-frontend = pseudo_zl10353_attach(dev, config,
//dvb-frontend = dvb_attach (zl10353_attach, config,
   dev-i2c_adap);
}
else {
printk(KERN_ERR tm6000: no frontend defined for the device!\n);
return -1;
}

return (!dvb-frontend) ? -1 : 0;
}


-- 
Stefan Ringel stefan.rin...@arcor.de

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


Re: [PATCH v3 1/6] V4L - vpfe capture - header files for ISIF driver

2010-02-02 Thread Mauro Carvalho Chehab
Karicheri, Muralidharan wrote:
 Mauro,
 
 How to request sign-off? Do I only send patches
 to the person, not to the list?
 
 I think you have not answered this.
 For the patches exchanged via the ML, I need some scriptable way to mark
 them
 as RFC at the Patchwork.

 So, adding [RFC PATCH] or [PATCH RFC] works. It also works if you add
 something
 like [PATCH OMAP] or [PATCH OMAP V4L], and provided that all other
 contributors
 to the patches you'll be sending me a pull request do exactly the same.
 
 
 Not sure what the last part of your statement (beginning with provided 
 that) means.

I mean: the better is if everybody sending such patches to do the same way. So, 
it
would be really good if all traffic at the ML for those RFC patches to have the
same tag.

 The patches always go through multiple iterations. In future
 I will add [RFC PATCH] for such patches. But this request was sent to Kevin
 to ack my patches so that I can send a pull request. How do I handle this?
 A direct email to Kevin without copying to linux-media ?

You don't need to c/c the linux-media ML for it, but, of course you can do it.
Anyway, at the pull requests that are touching on arch, please C/C the arch
maintainer on it (even having their SOB). This will help them to track what's
happening on the files under their responsibility.

-- 

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 ] libv4l: skip false Pixart markers

2010-02-02 Thread Németh Márton
Hans de Goede wrote:
 Hi,
 
 On 02/01/2010 11:13 PM, Németh Márton wrote:
 From: Márton Némethnm...@freemail.hu

 The byte sequence 0xff, 0xff, 0xff 0xff is not a real marker to skip, instead
 it is one byte from the image and the following three 0xff bytes might belong
 to a real marker. Modify pixart_fill_nbits() macro to pass the first 0xff 
 byte
 as an image data.

 
 Oh, good catch. I'm still seeing the occasional bad frame though :(

The same at my side, this patch alone does not solve the whole problem complete.
I have the feeling that at least same of the corrupted frames will not come with
this patch, through I haven't verified this with measurement.

On the other hand, in my previous email used a little bit different code: I 
jumped
over the 1024 and 512 bytes without parsing it. That would be maybe necessary
to add.

By the way, is there any reason why pixart_fill_nbits() is a macro?

 While on the subject of the pac7302. I've been playing around a bit, and I 
 have the
 feeling that if we were to go for a lower auto gain target (set autogain off 
 and
 lower exposure, you can do this ie with v4l2ucp), combined with a gamma 
 correction of
 1500 (again use ie v4l2ucp), the images is much better (less over exposed, 
 more
 contrast).
 
 Do you agree ?

Well, my Labtec Webcam 2200 works only with acceptable indoors, when I try to
capture something outdoors under direct sunshine conditions I get overexposed
frames. I found, however, an interesting pointer in two cameras' user's manual,
see the Note column:

  http://linuxtv.org/wiki/index.php/PixArt_PAC7301/PAC7302#Identification

There is a setting indoor/outdoor which is currently not available in 
gspca_pac7302
driver. Maybe this would be an interesting point to figure out which register
is related to this setting.

Regards,

Márton Németh

 Signed-off-by: Márton Némethnm...@freemail.hu
 ---
 diff -r f23c5a878fb1 v4l2-apps/libv4l/libv4lconvert/tinyjpeg.c
 --- a/v4l2-apps/libv4l/libv4lconvert/tinyjpeg.c  Mon Feb 01 13:32:46 
 2010 +0100
 +++ b/v4l2-apps/libv4l/libv4lconvert/tinyjpeg.c  Mon Feb 01 23:05:39 
 2010 +0100
 @@ -339,10 +339,15 @@
  } \
  break; \
case 0xff: \
 -if (stream[1] == 0xff  (stream[2]  7 || stream[2] == 0xff)) { \
 -  stream += 3; \
 -  c = *stream++; \
 -  break; \
 +if (stream[1] == 0xff) { \
 +if (stream[2]  7) { \
 +stream += 3; \
 +c = *stream++; \
 +break; \
 +} else if (stream[2] == 0xff) { \
 +/* four 0xff in a row: the first belongs to the image data 
 */ \
 +break; \
 +}\
  } \
  /* Error fall through */ \
default: \
 
 

--
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: libv4l: possible problem found in PAC7302 JPEG decoding

2010-02-02 Thread Németh Márton
Hi Thomas,
Thomas Kaiser wrote:
 On 02/01/2010 10:23 PM, Németh Márton wrote:
 Hello Hans,

 while I was dealing with Labtec Webcam 2200 and with gspca_pac7302 driver I 
 recognised the
 following behaviour. The stream received from the webcam is splitted by the 
 gspca_pac7302
 subdriver when the byte sequence 0xff, 0xff, 0x00, 0xff, 0x96 is found 
 (pac_find_sof()).
 Before transmitting the data to the userspace a JPEG header is added 
 (pac_start_frame())
 and the footer after the bytes 0xff, 0xd9 are removed.

 The data buffer which arrives to userspace looks like as follows (maybe not 
 every detail is exact):

  1. JPEG header

  2. Some bytes of image data (near to 1024 bytes)

  3. The byte sequence 0xff, 0xff, 0xff, 0x01 followed by 1024 bytes of data.
 This marker sequence and data repeats a couple of time. Exactly how much
 depends on the image content.

  4. The byte sequence 0xff, 0xff, 0xff, 0x02 followed by 512 bytes of data.
 This marker sequence and data also repeats a couple of time.

  5. The byte sequence 0xff, 0xff, 0xff, 0x00 followed by a variable amount of
 image data bytes.

  6. The End of Image (EOI) marker 0xff, 0xd9.

 Now what can be wrong with the libv4l? In libv4lconvert/tinyjpeg.c, line 315 
 there is a
 huge macro which tries to remove the 0xff, 0xff, 0xff, xx byte sequence from 
 the received
 image. This fails, however, if the image contains 0xff bytes just before the 
 0xff, 0xff,
 0xff, xx sequence because one byte from the image data (the first 0xff) is 
 removed, then
 the three 0xff bytes from the marker is also removed. The xx (which really 
 belongs to the
 marker) is left in the image data instead of the original 0xff byte.

 Based on my experiments this problem sometimes causes corrupted image 
 decoding or that the
 JPEG image cannot be decoded at all.

 
 Hello Németh
 
 I remember the problem as I was working on the PAC7311.
 http://www.kaiser-linux.li/index.php?title=PAC7311
 
 
 This is the code I used in the JPEG decoder to remove the 0xff 0xff 0xff 
   0xnn markers.
 
 See http://www.kaiser-linux.li/files/PAC7311/gspcav1-PAC7311-20070425.tar.gz
 decoder/gspcadecoder.c pac7311_decode()

Do you remember whether this code was working properly always?

Regards,

Márton Németh



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


Re: [PATCH] saa7134: Fix IR support of some ASUS TV-FM 7135 variants

2010-02-02 Thread Mauro Carvalho Chehab
Hi Jean,

 From: Jean Delvare kh...@linux-fr.org
 Subject: saa7134: Fix IR support of some ASUS TV-FM 7135 variants
 
 Some variants of the ASUS TV-FM 7135 are handled as the ASUSTeK P7131
 Analog (card=146). However, by the time we find out, some
 card-specific initialization is missed. In particular, the fact that
 the IR is GPIO-based. Set it when we change the card type, and run
 saa7134_input_init1().
 
 Signed-off-by: Jean Delvare kh...@linux-fr.org
 Cc: Daro ghost-ri...@aster.pl
 Cc: Roman Kellner muzu...@gmx.net
 ---
  linux/drivers/media/video/saa7134/saa7134-cards.c |5 +
  1 file changed, 5 insertions(+)
 
 --- v4l-dvb.orig/linux/drivers/media/video/saa7134/saa7134-cards.c
 2010-01-30 10:56:50.0 +0100
 +++ v4l-dvb/linux/drivers/media/video/saa7134/saa7134-cards.c 2010-01-30 
 11:52:18.0 +0100
 @@ -7299,6 +7299,11 @@ int saa7134_board_init2(struct saa7134_d
  printk(KERN_INFO %s: P7131 analog only, using 
  entry of %s\n,
  dev-name, saa7134_boards[dev-board].name);
 +
 + /* IR init has already happened for other cards, so
 +  * we have to catch up. */
 + dev-has_remote = SAA7134_REMOTE_GPIO;
 + saa7134_input_init1(dev);
  }
  break;
   case SAA7134_BOARD_HAUPPAUGE_HVR1150:

This version of your patch makes sense to me. 

This logic will only apply for board SAA7134_BOARD_ASUSTeK_P7131_ANALOG, 
so, provided that someone with this board test it, I'm OK with it.

Had Roman or Daro already test it?

-- 

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


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

2010-02-02 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:Tue Feb  2 19:00:06 CET 2010
path:http://www.linuxtv.org/hg/v4l-dvb
changeset:   14096:860d29bfa3a7
gcc version: i686-linux-gcc (GCC) 4.4.3
host hardware:x86_64
host os: 2.6.32.5

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

Detailed results are available here:

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

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Tuesday.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: libv4l: possible problem found in PAC7302 JPEG decoding

2010-02-02 Thread Thomas Kaiser

On 02/02/2010 07:59 PM, Németh Márton wrote:

Hi Thomas,
Thomas Kaiser wrote:

On 02/01/2010 10:23 PM, Németh Márton wrote:

Hello Hans,

while I was dealing with Labtec Webcam 2200 and with gspca_pac7302 driver I 
recognised the
following behaviour. The stream received from the webcam is splitted by the 
gspca_pac7302
subdriver when the byte sequence 0xff, 0xff, 0x00, 0xff, 0x96 is found 
(pac_find_sof()).
Before transmitting the data to the userspace a JPEG header is added 
(pac_start_frame())
and the footer after the bytes 0xff, 0xd9 are removed.

The data buffer which arrives to userspace looks like as follows (maybe not 
every detail is exact):

 1. JPEG header

 2. Some bytes of image data (near to 1024 bytes)

 3. The byte sequence 0xff, 0xff, 0xff, 0x01 followed by 1024 bytes of data.
This marker sequence and data repeats a couple of time. Exactly how much
depends on the image content.

 4. The byte sequence 0xff, 0xff, 0xff, 0x02 followed by 512 bytes of data.
This marker sequence and data also repeats a couple of time.

 5. The byte sequence 0xff, 0xff, 0xff, 0x00 followed by a variable amount of
image data bytes.

 6. The End of Image (EOI) marker 0xff, 0xd9.

Now what can be wrong with the libv4l? In libv4lconvert/tinyjpeg.c, line 315 
there is a
huge macro which tries to remove the 0xff, 0xff, 0xff, xx byte sequence from 
the received
image. This fails, however, if the image contains 0xff bytes just before the 
0xff, 0xff,
0xff, xx sequence because one byte from the image data (the first 0xff) is 
removed, then
the three 0xff bytes from the marker is also removed. The xx (which really 
belongs to the
marker) is left in the image data instead of the original 0xff byte.

Based on my experiments this problem sometimes causes corrupted image decoding 
or that the
JPEG image cannot be decoded at all.


Hello Németh

I remember the problem as I was working on the PAC7311.
http://www.kaiser-linux.li/index.php?title=PAC7311


This is the code I used in the JPEG decoder to remove the 0xff 0xff 0xff 
  0xnn markers.


See http://www.kaiser-linux.li/files/PAC7311/gspcav1-PAC7311-20070425.tar.gz
decoder/gspcadecoder.c pac7311_decode()


Do you remember whether this code was working properly always?


Hello Németh

I am not 100% sure but it looked OK for me.

Anyway, we have to throw away these markers before the JPEG decoding 
starts. I don't think this code will fail when you parse the Byte stream 
(frame header removed before!).

We don't know these markers, so we don't need them.

Thomas

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


Re: [PATCH] - tm6000 DVB support

2010-02-02 Thread Mauro Carvalho Chehab
Stefan Ringel wrote:
 Am 01.02.2010 23:52, schrieb Mauro Carvalho Chehab:
 This struct is meant to pass static parameters to the driver. the 
 analog/digital
 mode is dynamic, so, this is not the right place for doing it.

   
 Can you tell me how that work? Where would call it? Switch it after read
 demodulator status or before? This switch switches the  tuner output to
 the demodulator or adc input and if it read status before it switch
 thoughts the apps  no digital found.

Basically, this is done by check_firmware. It is called by
xc2028_set_analog_freq()
or
xc2028_set_params()

So, when the frontend (digital) or the tuner (analog) is called to set an 
analog frequency
or to set DVB parameters.

All that it is needed for this to work is that both analog and DVB part should 
call
xc2028_attach() with the proper parameters.

For the analog side, you need a code like that (modified from em28xx-cards.c):

if ((dev-tuner_type != TUNER_ABSENT)  (dev-tuner_type)) {
tun_setup.type   = TUNER_XC2028;
tun_setup.addr   = dev-tuner_addr;

v4l2_device_call_all(dev-v4l2_dev, 0, tuner, s_type_addr, 
tun_setup);
}

With this code, tuner-core set_type() will register the analog side of the 
driver.

For the digital part, you need to call xc2028_attach() manually (from 
em28xx-dvb):

fe = dvb_attach(xc2028_attach, dev-dvb-frontend, cfg);

When the driver wants to switch to an specific mode, all it needs is to set an 
analog or
digital frequency. The frontend or tuner driver will do the rest.

 @@ -45,6 +45,8 @@ struct zl10353_config
  /* clock control registers (0x51-0x54) */
  u8 clock_ctl_1;  /* default: 0x46 */
  u8 pll_0;/* default: 0x15 */
 +   
 +int tm6000:1;
 
 This doesn't make sense. The zl10353 doesn't need to know if the device is
 a tm6000 or not. If the tm6000 driver needs something special, then we need
 to discover what he is doing and name the zl10353 feature accordingly.


   
 that is for todo in next week, when I switch from hack.c to zl10353
 kernel module, but it can remove if it don't use.

OK.

 +tm6000_read_write_usb(tm6000_dev,0xc0,0x10,0x0b1f,0,data,2);
 +printk(KERN_INFO buf %#x %#x \n, data[0], data[1]);
 +msleep(40);
 
 The same comment here: maybe the above code only applies to tm6010.

   
 It little different to the other hack code. The lastest lines are
 reading demod status.

If you're reading the demod status, the proper way is to call the corresponding
code at the tm6000-dvb part and use the standard i2c way of doing it.

The demod status depends on what demod you have, so the code there should be
board dependent. While currently only one demod is supported, there are devices
like Nova-S USB that have different demods (the Nova-S is DVB-S).

 --- a/drivers/staging/tm6000/tm6000-cards.c
 +++ b/drivers/staging/tm6000/tm6000-cards.c
 @@ -32,7 +32,7 @@
  #include tm6000.h
  #include tm6000-regs.h
  #include tuner-xc2028.h
 -#include tuner-xc5000.h
 +#include xc5000.h
 
 Please send this hunk on a separate patch. Since it fixes compilation, I'll
 need to apply it before the Kconfig changes, when tm6000 upstream.

   
 o.k. but I cannot know how. I have no idea with diff or something.

The better way is to clone a tree and write your patches there, committing every
patch.

If you want to break an already existing diff into small diffs, you may copy it
by hand and remove the uneeded hunks.

For example, if you just save this into a file:

--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -32,7 +32,7 @@
 #include tm6000.h
 #include tm6000-regs.h
 #include tuner-xc2028.h
-#include tuner-xc5000.h
+#include xc5000.h
 
 #define TM6000_BOARD_UNKNOWN   0
 #define TM5600_BOARD_GENERIC   1

and apply to your new tree, you'll have just one change there.

A hunk starts with @@. the numbers after - are the line number and the number 
of lines
of the original code. The numbers after + are the line number/line count 
after the patch.
For example, on this hunk:

@@ -402,6 +448,7 @@ static int tm6000_init_dev(struct tm6000_core *dev)
}
 #endif
}
+   return 0;
 
 err2:
v4l2_device_unregister(dev-v4l2_dev);

It is changing the content of line number 402 of the source code. The original 
code has 6 lines
(the 3 lines before and the 3 lines after the insertion). It is adding one line 
(the line with +).
The resulting code will be at line #448 and will have 7 lines.

If you copy the above, plus the name of the file to patch (the lines with --- 
and +++):

--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -402,6 +448,7 @@ static int tm6000_init_dev(struct tm6000_core *dev)
}
 #endif
}
+   return 0;
 
 err2:
v4l2_device_unregister(dev-v4l2_dev);


You'll have a patch that just adds return 0.

On 

Re: [PATCH] - tm6000 DVB support

2010-02-02 Thread Mauro Carvalho Chehab
Stefan Ringel wrote:

 Ok, but maybe you missed my point: at the long term, we should get rid of 
 hack.c, and
 be sure that all needed initializations are done by zl10353 driver or by 
 tm6010-dvb.
   
 I think I all are done by zl10353 driver.
 
 I thinbk all config param is usefull and .tm6000 for tm6000 specific
 once. For what is .parallel_ts ?

zl10353 may be connected via a serial or via a parallel interface to the chip.
So, it basically depends on how the wiring between zl10353 and the bridge is 
done.

 
 int tm6000_dvb_attach_frontend(struct tm6000_core *dev)
 {
 struct tm6000_dvb *dvb = dev-dvb;
 
 if(dev-caps.has_zl10353) {
 struct zl10353_config config =
 {.demod_address = dev-demod_addr,
  .no_tuner = 1,
  .parallel_ts = 1,
  .if2 = 45700,
  .disable_i2c_gate_ctrl = 1,
  .tm6000 = 1,
 };
 
 dvb-frontend = pseudo_zl10353_attach(dev, config,
 //dvb-frontend = dvb_attach (zl10353_attach, config,
dev-i2c_adap);
 }
 else {
 printk(KERN_ERR tm6000: no frontend defined for the device!\n);
 return -1;
 }
 
 return (!dvb-frontend) ? -1 : 0;
 }
 
 


-- 

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


[PATCH] Updated procedures for patch submission

2010-02-02 Thread Mauro Carvalho Chehab
Updates the procedures to reflect the -git tree support on LinuxTV.

The previous version of the document were already a little outdated, since
it assumed that all patches were sent via -hg. So, email submission weren't
mentioned. Also it used to mix mercurial procedures with best practices.

With the usage of -git, the document needs to be reviewed, to incorporate
the new procedures.

Basically the changes on this document does:
- Add the git procedures submitted for RFC, and updated at LinuxTV wiki:
http://linuxtv.org/wiki/index.php/Maintaining_Git_trees

- Move the procedures specific to -hg to a separate section;

- Add a general explanation about patch management;

- Add git specific procedures;

- Add mail submission procedures.

Signed-off-by: Mauro Carvalho Chehab mche...@redhat.com


diff --git a/README.patches b/README.patches
--- a/README.patches
+++ b/README.patches
@@ -1,5 +1,5 @@
 Mauro Carvalho Chehab mchehab at infradead dot org
-   Updated on 2009 February 9
+   Updated on 2010 January 30
 
 This file describes the general procedures used by the LinuxTV team (*)
 and by the v4l-dvb community.
@@ -13,58 +13,135 @@ TV and radio broadcast AM/FM.
CONTENTS

 
-   1. A brief introduction about patch management
-   2. Git trees' relationships with v4l/dvb development
-   3. Mercurial trees used for v4l/dvb development
-   4. Community best practices
-   5. Knowing about newer patches committed at master hg repository
-   6. Patch handling for kernel submission
-   7. Patch submission from the community
-   8. Identifying regressions with Mercurial
-   9. Creating a newer driver
+ Part I - Patch management on LinuxTV
+1. A brief introduction about patch management
+   2. Git and Mercurial trees hosted on LinuxTV site
+3. Git and Mercurial trees' relationships with v4l/dvb development
+4. Patch submission process overall
+5. Other Git trees used for v4l/dvb development
+6. Other Mercurial trees used for v4l/dvb development
+
+ Part II - Git trees
+1. Kernel development procedures at the kernel upstream
+  1.1 Subsystem procedures for merging patches upstream
+  1.2 A practical example
+  1.3 Patches for stable
+2. Kernel development procedures for V4L/DVB
+  2.1 Fixes and linux-next patches
+  2.2 How to solve those issues?
+3. How to submit a -git pull request
+  3.1 Tags that a patch receive after its submission
+4. Patches submitted via email
+  4.1 Example
+
+ Part III - Best Practices
+1. Community best practices
+2. Mercurial specific procedures
+3. Knowing about newer patches committed at the development 
repositories
+4. Patch submission from the community
+5. Identifying regressions with Mercurial
+6. Identifying regressions with Git
+7. Creating a newer driver
+  7.1. Simple drivers
+  7.2. Bigger drivers
+
+===
+PART I. PATCH MANAGEMENT ON LINUXTV
+===
+
 
 1. A brief introduction about patch management
-   ==
+   ===
 
-Current V4L/DVB development is based on a modern SCM system that
-fits better into kernel development model, called Mercurial (aka hg).
+V4L/DVB development is based on modern SCM (Source Code Management) systems
+that fits better into kernel development model.
 
-Kernel development model is based on a similar SCM, called git. While
-very powerful for distributed development, git usage is not simple for
-final users. That's the reason why hg was selected for V4L/DVB
-development.
+At the beginning, the usage CVS for of a SCM (Source Code Management) were
+choosen on V4L/DVB. Both of the original V4L and DVB trees were developed with
+the help of cvs. On that time, upstream Linux kernel used to have another tree
+(BitKeeper).
 
-There are some tutorials, FAQs and other valuable information at
-http://selenic.com/mercurial/ about hg usage.
+In 2005, Upstream Kernel development model changed to use git (a SCM tool
+developed by Linus Torvalds, the inventor and main maintainer of the Linux
+Kernel).
 
-Mercurial is a distributed SCM, which means every developer gets his
-own full copy of the repository (including the complete revision
-history), and can work and commit locally without network connection.
-The resulting changesets can then be exchanged between repositories and
-finally merged into a common repository on linuxtv.org.
+Also in 2005, both V4L and DVB trees got merged into one cvs repository, and
+the community discussed about what would be the better SCM solution. It were
+mainly availed the usage of svn, hg and git. On that time, both hg and git were
+new technologies, based on 

Re: [PATCH] - tm6000 DVB support

2010-02-02 Thread Stefan Ringel
Am 02.02.2010 21:03, schrieb Mauro Carvalho Chehab:

 Those tuner callback initializations are board-specific. So, it is better 
 to test
 for your board model, if you need something different than what's currently 
 done.

   
   
 This tuner reset works with my stick, but I think that can test with
 other tm6000 based sticks and if it not works then I can say this as a
 board-specific.
 
 It won't work on my boards. The GPIO pin used by each board is different.

   
Have you the right gpio pin in the card struct. I have the
.gpio_addr_tun_reset the correct gpio pin

   [TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE] = {
+.name = Terratec Cinergy Hybrid XE,
+.tuner_type   = TUNER_XC2028, /* has a XC3028 */
+.tuner_addr   = 0xc2  1,
+.demod_addr   = 0x1e  1,
+.type = TM6010,
+.caps = {
+.has_tuner= 1,
+.has_dvb  = 1,
+.has_zl10353  = 1,
+.has_eeprom   = 1,
+.has_remote   = 1,
+},
+.gpio_addr_tun_reset = TM6010_GPIO_2, /* here */
+}
 };
 


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


Re: [PATCH] - tm6000 DVB support

2010-02-02 Thread Mauro Carvalho Chehab
Stefan Ringel wrote:
 Am 02.02.2010 21:03, schrieb Mauro Carvalho Chehab:
 Those tuner callback initializations are board-specific. So, it is better 
 to test
 for your board model, if you need something different than what's 
 currently done.

   
   
 This tuner reset works with my stick, but I think that can test with
 other tm6000 based sticks and if it not works then I can say this as a
 board-specific.
 
 It won't work on my boards. The GPIO pin used by each board is different.

   
 Have you the right gpio pin in the card struct. I have the
 .gpio_addr_tun_reset the correct gpio pin
 
[TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE] = {
 +.name = Terratec Cinergy Hybrid XE,
 +.tuner_type   = TUNER_XC2028, /* has a XC3028 */
 +.tuner_addr   = 0xc2  1,
 +.demod_addr   = 0x1e  1,
 +.type = TM6010,
 +.caps = {
 +.has_tuner= 1,
 +.has_dvb  = 1,
 +.has_zl10353  = 1,
 +.has_eeprom   = 1,
 +.has_remote   = 1,
 +},
 +.gpio_addr_tun_reset = TM6010_GPIO_2, /* here */
 +}
  };
  

Ok, this works :) All needed pins should be customized there, either 
individually
or via an struct similar to the one done at em28xx driver. Both ways have 
advantages
and disadvantages.


-- 

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

2010-02-02 Thread Németh Márton
Hi,

Hans Verkuil wrote:
 This message is generated daily by a cron job that builds v4l-dvb for
 the kernels and architectures in the list below.
 
 [snip]
 Detailed results are available here:
 
 http://www.xs4all.nl/~hverkuil/logs/Tuesday.log

 linux-2.6.16.62-i686: ERRORS

 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:48:29: error: 
 linux/usb/input.h: No such file or directory
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c: In function 
 'gspca_input_connect':
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:182: warning: implicit 
 declaration of function 'usb_to_input_id'
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:186: error: request for 
 member 'parent' in something not a structure or union
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:192: error: request for 
 member 'parent' in something not a structure or union

 linux-2.6.17.14-i686: ERRORS

 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:48:29: error: 
 linux/usb/input.h: No such file or directory
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c: In function 
 'gspca_input_connect':
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:182: warning: implicit 
 declaration of function 'usb_to_input_id'
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:186: error: request for 
 member 'parent' in something not a structure or union
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:192: error: request for 
 member 'parent' in something not a structure or union

 linux-2.6.18.8-i686: ERRORS

 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c: In function 
 'gspca_input_connect':
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:186: error: request for 
 member 'parent' in something not a structure or union
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:192: error: request for 
 member 'parent' in something not a structure or union

 linux-2.6.19.7-i686: ERRORS

 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c: In function 
 'gspca_input_connect':
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:186: error: 'struct 
 input_dev' has no member named 'dev'
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:192: error: 'struct 
 input_dev' has no member named 'dev'

 linux-2.6.20.21-i686: ERRORS

 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c: In function 
 'gspca_input_connect':
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:186: error: 'struct 
 input_dev' has no member named 'dev'
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:192: error: 'struct 
 input_dev' has no member named 'dev'

 linux-2.6.21.7-i686: ERRORS

 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c: In function 
 'gspca_input_connect':
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:186: error: 'struct 
 input_dev' has no member named 'dev'
 /home/hans/work/build/v4l-dvb-master/v4l/gspca.c:192: error: 'struct 
 input_dev' has no member named 'dev'


It seems that the camera button input support is not compatible with kernel
version 2.6.21.7 and before because of different reasons.

1. Between 2.6.16.62 and 2.6.17.14: there is no linux/usb/input.h .
   The linux/usb/input.h was earlier linux/usb_input.h, see
   
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=history;f=include/linux/usb/input.h;h=0e010b220e85b3f9ea861f2ab009809d17014910;hb=HEAD

2. Between 2.6.16.62 and 2.6.17.14: there is no 'usb_to_input_id'. This was
   introduced with the commit 16a334c0de5a94b1d10a1ac9a33f4dedac89a075, exactly
   in the same place: in linux/usb_input.h .
   
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=16a334c0de5a94b1d10a1ac9a33f4dedac89a075

3. Between 2.6.16.62 and 2.6.18.8: there is no 'parent' field of struct device.
   The struct device is defined in linux/device.h . I couldn't find what exactly
   happened here, yet.
   
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=history;f=include/linux/device.h;h=a62799f2ab0019863d30e4f55f7677c5bd97d124;hb=HEAD

4. Between linux-2.6.19.7 and 2.6.21.7: 'struct input_dev' has no member named 
'dev'.
   The 'dev' member was introduced with commit 
9657d75c5f0f7d0a9cb507521d3ad1436aea28c9
   when a convert was made from class devices to standard devices.
   
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9657d75c5f0f7d0a9cb507521d3ad1436aea28c9

The main question is that does gspca need to support kernel version 2.6.21.7
and before? If yes, then should the input support disabled in 2.6.21.7 and 
before?

Regards,

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


Re: [PATCH] - tm6000 DVB support

2010-02-02 Thread Stefan Ringel
Am 02.02.2010 21:03, schrieb Mauro Carvalho Chehab:

 @@ -404,6 +432,7 @@ int tm6000_init (struct tm6000_core *dev)
  {
  int board, rc=0, i, size;
  struct reg_init *tab;
 +u8 buf[40];
 
 
 Why 40 ? Please avoid using magic numbers here, especially if you're
 not checking at the logic if you're writing outside the buffer.

   
   
 It important for tm6010 init sequence to enable the demodulator, because
 the demodulator haven't found after init tuner.
 
 Probably, there is some i2c gate to enable/disable the i2c access to the
 demodulator. The better way is to add a call to the tm6000-dvb and let it
 init the demodulator.

 Also, since there's a gate for the demodulator, the proper way is to add
 a callback to control it. Please take a look at saa7134 and seek for 
 i2c_gate_ctrl
 to see how such logic works.

   
It has followed structure schema without the GPIOs:
1. tm6010 init
2. enable zl10353
3. tm6010 re-init

If it board specific then it's better when board number definition 
switch from tm6000-card.c to tm6000.h . We can use in all tm6000*.c
files the board definition .

-- 
Stefan Ringel stefan.rin...@arcor.de

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


Re: [PATCH] - tm6000 DVB support

2010-02-02 Thread Mauro Carvalho Chehab
Stefan Ringel wrote:
 Am 02.02.2010 21:03, schrieb Mauro Carvalho Chehab:
 @@ -404,6 +432,7 @@ int tm6000_init (struct tm6000_core *dev)
  {
  int board, rc=0, i, size;
  struct reg_init *tab;
 +u8 buf[40];
 
 
 Why 40 ? Please avoid using magic numbers here, especially if you're
 not checking at the logic if you're writing outside the buffer.

   
   
 It important for tm6010 init sequence to enable the demodulator, because
 the demodulator haven't found after init tuner.
 
 Probably, there is some i2c gate to enable/disable the i2c access to the
 demodulator. The better way is to add a call to the tm6000-dvb and let it
 init the demodulator.

 Also, since there's a gate for the demodulator, the proper way is to add
 a callback to control it. Please take a look at saa7134 and seek for 
 i2c_gate_ctrl
 to see how such logic works.

   
 It has followed structure schema without the GPIOs:
 1. tm6010 init
 2. enable zl10353
 3. tm6010 re-init
 
 If it board specific then it's better when board number definition 
 switch from tm6000-card.c to tm6000.h . We can use in all tm6000*.c
 files the board definition .

What's board specific: all stuff that has GPIO, and the demod/frontend enable 
code.
In order to have a better structure, the demod/frontend enable code should be 
at the tm6000-dvb,
just like the other drivers. There, you'll have a switch for those devices that 
have DVB
(Among others, I have here one 10moons device that is analog-only, with a 
tm5600 - a stripped
down version of tm6000, without the DVB part).

-- 

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


Re: [PATCH] - tm6000 DVB support

2010-02-02 Thread Stefan Ringel
Am 02.02.2010 21:52, schrieb Mauro Carvalho Chehab:
 Stefan Ringel wrote:
   
 Am 02.02.2010 21:03, schrieb Mauro Carvalho Chehab:
 
 @@ -404,6 +432,7 @@ int tm6000_init (struct tm6000_core *dev)
  {
  int board, rc=0, i, size;
  struct reg_init *tab;
 +u8 buf[40];
 
 
 
 Why 40 ? Please avoid using magic numbers here, especially if you're
 not checking at the logic if you're writing outside the buffer.

   
   
   
 It important for tm6010 init sequence to enable the demodulator, because
 the demodulator haven't found after init tuner.
 
 
 Probably, there is some i2c gate to enable/disable the i2c access to the
 demodulator. The better way is to add a call to the tm6000-dvb and let it
 init the demodulator.

 Also, since there's a gate for the demodulator, the proper way is to add
 a callback to control it. Please take a look at saa7134 and seek for 
 i2c_gate_ctrl
 to see how such logic works.

   
   
 It has followed structure schema without the GPIOs:
 1. tm6010 init
 2. enable zl10353
 3. tm6010 re-init

 If it board specific then it's better when board number definition 
 switch from tm6000-card.c to tm6000.h . We can use in all tm6000*.c
 files the board definition .
 
 What's board specific: all stuff that has GPIO, and the demod/frontend enable 
 code.
 In order to have a better structure, the demod/frontend enable code should be 
 at the tm6000-dvb,
 just like the other drivers. There, you'll have a switch for those devices 
 that have DVB
 (Among others, I have here one 10moons device that is analog-only, with a 
 tm5600 - a stripped
 down version of tm6000, without the DVB part).

   
I have additional information to enable demodulator, it must enable
before firmware load after that it cannot find zl10353, I think. Should
I test it!

-- 
Stefan Ringel stefan.rin...@arcor.de

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


[PATCH] Add support for Twinhan 1027 DVB-S card (once again)

2010-02-02 Thread Sergey Ivanov
This patch is the modified version of sfstudio (Denis Romanenko)
patch, adapted for current mercurial revision.

Previous patch seems to be broken.
So submit once again.


-- 
WBR Sergey Kash Ivanov.


vp1027.patch
Description: Binary data


Re: DM1105: could not attach frontend 195d:1105

2010-02-02 Thread Nameer Kazzaz

Nameer Kazzaz wrote:

Igor M. Liplianin wrote:

On 2 февраля 2010 17:21:46 Nameer Kazzaz wrote:
 

Hi Igor,
What do you think ? if I can help you solve this, let me know 
what I

can do.

Thanks
Nameer

Nameer Kazzaz wrote:
   

Hi there,
dmesg output with patched dm1105.c against current v4l-dvb 'modprob
dm1105 card=4'

dm1105 :05:0f.0: PCI INT A - GSI 16 (level, low) - IRQ 16
DVB: registering new adapter (dm1105)
dm1105 :05:0f.0: MAC dd49b0dc
dm1105 :05:0f.0: could not attach frontend
dm1105 :05:0f.0: PCI INT A disabled

Thanks
Nameer Kazzaz

Igor M. Liplianin wrote:
 

On 20 ?? 2010 23:20:20 pau...@planar.id.au wrote:
   

Igor wrote:
 

Oh, that is wrong. It is registers addresses, Never touch this.

Let's look on that part of code:

/* GPIO's for LNB power control */
#define DM1105_LNB_MASK 0x // 
later in


code write it to

 

DM1105_GPIOCTR, all GPIO's as OUT
#define DM1105_LNB_OFF  0x0002 // 
later in


code write it to

 

DM1105_GPIOVAL, set GPIO17 to HIGH

But you have not to change this.
Right way is to write another entry in cards structure and so on.
Better leave it to me.

Regards
Igor


Thanks for all your help, I understand better now.  I have moved to
code
like that at the bottom.  It still doesn't work, but feels a lot
closer.

Before I keep playing with values, I want to check I'm on the right
track.
Does it look right?  Specific questions:
1. I see there is a hw_init function.  Should I be using that?  I
put the
logic into fe_attach because there was already card-specific 
logic in

there.  But this feels like hw initialisation.

2. Should I set the control to input or output?  I'm assuming input
= 1.

3. Would pin 15 be numbered from the left or right - is it 0x4, or
0x2000?

Thanks,

Paul

*** dm1105.c.old2010-01-13 16:15:00.0 +1100
--- dm1105.c2010-01-21 08:13:14.0 +1100
***
*** 51,56 
--- 51,57 
  #define DM1105_BOARD_DVBWORLD_20021
  #define DM1105_BOARD_DVBWORLD_20042
  #define DM1105_BOARD_AXESS_DM05   3
+ #define DM1105_BOARD_UNBRANDED4

  /* --- */
  /*
***
*** 171,176 
--- 172,181 
  #define DM05_LNB_13V  0x0002
  #define DM05_LNB_18V  0x0003

+ /* GPIO's for demod reset for unbranded 195d:1105 */
+ #define UNBRANDED_DEMOD_MASK  0x8000
+ #define UNBRANDED_DEMOD_RESET 0x8000
+
  static unsigned int card[]  = {[0 ... 3] = UNSET };
  module_param_array(card,  int, NULL, 0444);
  MODULE_PARM_DESC(card, card type);
***
*** 206,211 
--- 211,219 
[DM1105_BOARD_AXESS_DM05] = {
.name   = Axess/EasyTv DM05,
},
+   [DM1105_BOARD_UNBRANDED] = {
+   .name   = Unbranded 195d:1105,
+ },
  };

  static const struct dm1105_subid dm1105_subids[] = {
***
*** 229,234 
--- 237,246 
.subvendor = 0x195d,
.subdevice = 0x1105,
.card  = DM1105_BOARD_AXESS_DM05,
+   }, {
+   .subvendor = 0x195d,
+   .subdevice = 0x1105,
+   .card  = DM1105_BOARD_UNBRANDED,
},
  };

***
*** 698,703 
--- 710,727 
dm1105dvb-fe-ops.set_voltage =
dm1105dvb_set_voltage;

break;
+   case DM1105_BOARD_UNBRANDED:
+ printk(KERN_ERR Attaching as board_unbranded\n);
+   outl(UNBRANDED_DEMOD_MASK, 
dm_io_mem(DM1105_GPIOCTR));

+   outl(UNBRANDED_DEMOD_RESET ,
dm_io_mem(DM1105_GPIOVAL));
+   dm1105dvb-fe = dvb_attach(
+   si21xx_attach, serit_config,
+   dm1105dvb-i2c_adap);
+   if (dm1105dvb-fe)
+   dm1105dvb-fe-ops.set_voltage =
+   dm1105dvb_set_voltage;
+
+   break;
case DM1105_BOARD_DVBWORLD_2002:
case DM1105_BOARD_AXESS_DM05:
default:
  
Some things are missed, like keep GPIO15 high in set_voltage 
function.

Try attached patch against current v4l-dvb tree with modprobe option
card=4
modprobe dm1105 card=4


Hi Nameer,
You can modify sended by me patch to guess GPIO pin. Simply try all 
of them, it is only 17. Just replace all appearances DM1105_GPIO(15) 
with number you want.
  

Ok I will do that.

Thanks
Nameer

Hi Igor,
   I tried all DM1105_GPIO(0) to DM1105_GPIO(17), same error. Any Idea ?

Nameer
--
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 3/7] drivers/media/video/Kconfig: add VIDEO_DEV dependency as needed in drivers/media/video/Kconfig

2010-02-02 Thread akpm
From: Mike Pagano mpag...@gentoo.org

Add VIDEO_DEV as dependency of VIDEO_CAPTURE_DRIVERS and all of the
devices listed under this setting.

Signed-off-by: Mike Pagano mpag...@gentoo.org
Cc: Mauro Carvalho Chehab mche...@infradead.org
Signed-off-by: Andrew Morton a...@linux-foundation.org
---

 drivers/media/video/Kconfig |   20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff -puN 
drivers/media/video/Kconfig~drivers-media-video-kconfig-add-video_dev-dependency-as-needed-in-drivers-media-video-kconfig
 drivers/media/video/Kconfig
--- 
a/drivers/media/video/Kconfig~drivers-media-video-kconfig-add-video_dev-dependency-as-needed-in-drivers-media-video-kconfig
+++ a/drivers/media/video/Kconfig
@@ -51,14 +51,14 @@ config VIDEO_TUNER
 
 menuconfig VIDEO_CAPTURE_DRIVERS
bool Video capture adapters
-   depends on VIDEO_V4L2
+   depends on VIDEO_V4L2  VIDEO_DEV
default y
---help---
  Say Y here to enable selecting the video adapters for
  webcams, analog TV, and hybrid analog/digital TV.
  Some of those devices also supports FM radio.
 
-if VIDEO_CAPTURE_DRIVERS  VIDEO_V4L2
+if VIDEO_DEV  VIDEO_CAPTURE_DRIVERS  VIDEO_V4L2
 
 config VIDEO_ADV_DEBUG
bool Enable advanced debug functionality
@@ -500,7 +500,7 @@ endmenu # encoder / decoder chips
 
 config DISPLAY_DAVINCI_DM646X_EVM
tristate DM646x EVM Video Display
-   depends on VIDEO_DEV  MACH_DAVINCI_DM6467_EVM
+   depends on MACH_DAVINCI_DM6467_EVM
select VIDEOBUF_DMA_CONTIG
select VIDEO_DAVINCI_VPIF
select VIDEO_ADV7343
@@ -513,7 +513,7 @@ config DISPLAY_DAVINCI_DM646X_EVM
 
 config CAPTURE_DAVINCI_DM646X_EVM
tristate DM646x EVM Video Capture
-   depends on VIDEO_DEV  MACH_DAVINCI_DM6467_EVM
+   depends on MACH_DAVINCI_DM6467_EVM
select VIDEOBUF_DMA_CONTIG
select VIDEO_DAVINCI_VPIF
help
@@ -533,7 +533,7 @@ config VIDEO_DAVINCI_VPIF
 
 config VIDEO_VIVI
tristate Virtual Video Driver
-   depends on VIDEO_DEV  VIDEO_V4L2  !SPARC32  !SPARC64
+   depends on VIDEO_V4L2  !SPARC32  !SPARC64
select VIDEOBUF_VMALLOC
default n
---help---
@@ -889,7 +889,7 @@ config MX1_VIDEO
 
 config VIDEO_MX1
tristate i.MX1/i.MXL CMOS Sensor Interface driver
-   depends on VIDEO_DEV  ARCH_MX1  SOC_CAMERA
+   depends on ARCH_MX1  SOC_CAMERA
select FIQ
select VIDEOBUF_DMA_CONTIG
select MX1_VIDEO
@@ -901,7 +901,7 @@ config MX3_VIDEO
 
 config VIDEO_MX3
tristate i.MX3x Camera Sensor Interface driver
-   depends on VIDEO_DEV  MX3_IPU  SOC_CAMERA
+   depends on MX3_IPU  SOC_CAMERA
select VIDEOBUF_DMA_CONTIG
select MX3_VIDEO
---help---
@@ -909,21 +909,21 @@ config VIDEO_MX3
 
 config VIDEO_PXA27x
tristate PXA27x Quick Capture Interface driver
-   depends on VIDEO_DEV  PXA27x  SOC_CAMERA
+   depends on PXA27x  SOC_CAMERA
select VIDEOBUF_DMA_SG
---help---
  This is a v4l2 driver for the PXA27x Quick Capture Interface
 
 config VIDEO_SH_MOBILE_CEU
tristate SuperH Mobile CEU Interface driver
-   depends on VIDEO_DEV  SOC_CAMERA  HAS_DMA  HAVE_CLK
+   depends on SOC_CAMERA  HAS_DMA  HAVE_CLK
select VIDEOBUF_DMA_CONTIG
---help---
  This is a v4l2 driver for the SuperH Mobile CEU Interface
 
 config VIDEO_OMAP2
tristate OMAP2 Camera Capture Interface driver
-   depends on VIDEO_DEV  ARCH_OMAP2
+   depends on ARCH_OMAP2
select VIDEOBUF_DMA_SG
---help---
  This is a v4l2 driver for the TI OMAP2 camera capture interface
_
--
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 2/7] drivers/media/video/pms.c needs version.h

2010-02-02 Thread akpm
From: Andrew Morton a...@linux-foundation.org

i386 allmodconfig:

drivers/media/video/pms.c: In function 'pms_querycap':
drivers/media/video/pms.c:682: error: implicit declaration of function 
'KERNEL_VERSION'

Cc: Mauro Carvalho Chehab mche...@infradead.org
Cc: Hans Verkuil hverk...@xs4all.nl
Signed-off-by: Andrew Morton a...@linux-foundation.org
---

 drivers/media/video/pms.c |1 +
 1 file changed, 1 insertion(+)

diff -puN drivers/media/video/pms.c~drivers-media-video-pmsc-needs-versionh 
drivers/media/video/pms.c
--- a/drivers/media/video/pms.c~drivers-media-video-pmsc-needs-versionh
+++ a/drivers/media/video/pms.c
@@ -24,6 +24,7 @@
 #include linux/delay.h
 #include linux/errno.h
 #include linux/fs.h
+#include linux/version.h
 #include linux/kernel.h
 #include linux/slab.h
 #include linux/mm.h
_
--
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 5/7] drivers/media/video/cx18/cx18-alsa-pcm.c: fix printk warning

2010-02-02 Thread akpm
From: Andrew Morton a...@linux-foundation.org

drivers/media/video/cx18/cx18-alsa-pcm.c: In function 
'cx18_alsa_announce_pcm_data':
drivers/media/video/cx18/cx18-alsa-pcm.c:82: warning: format '%d' expects type 
'int', but argument 5 has type 'size_t'

Cc: Andy Walls awa...@radix.net
Cc: Mauro Carvalho Chehab mche...@infradead.org
Signed-off-by: Andrew Morton a...@linux-foundation.org
---

 drivers/media/video/cx18/cx18-alsa-pcm.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff -puN 
drivers/media/video/cx18/cx18-alsa-pcm.c~drivers-media-video-cx18-cx18-alsa-pcmc-fix-printk-warning
 drivers/media/video/cx18/cx18-alsa-pcm.c
--- 
a/drivers/media/video/cx18/cx18-alsa-pcm.c~drivers-media-video-cx18-cx18-alsa-pcmc-fix-printk-warning
+++ a/drivers/media/video/cx18/cx18-alsa-pcm.c
@@ -79,7 +79,7 @@ void cx18_alsa_announce_pcm_data(struct 
int period_elapsed = 0;
int length;
 
-   dprintk(cx18 alsa announce ptr=%p data=%p num_bytes=%d\n, cxsc,
+   dprintk(cx18 alsa announce ptr=%p data=%p num_bytes=%zd\n, cxsc,
pcm_data, num_bytes);
 
substream = cxsc-capture_pcm_substream;
_
--
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 4/7] radio: add support for SAA7706H Car Radio DSP

2010-02-02 Thread akpm
From: Richard Röjfors richard.rojf...@pelagicore.com

Initial support for the SAA7706H Car Radio DSP.

It is a I2C device and currently the mute control is supported.

When the device is unmuted it is brought out of reset and initiated using
the proposed intialisation sequence.

When muted the DSP is brought into reset state.

[a...@linux-foundation.org: include delay.h]
Signed-off-by: Richard Röjfors richard.rojf...@pelagicore.com
Cc: Mauro Carvalho Chehab mche...@infradead.org
Cc: Douglas Schilling Landgraf dougsl...@gmail.com
Cc: Hans Verkuil hverk...@xs4all.nl
Cc: Randy Dunlap randy.dun...@oracle.com
Signed-off-by: Andrew Morton a...@linux-foundation.org
---

 drivers/media/radio/Kconfig |   12 
 drivers/media/radio/Makefile|1 
 drivers/media/radio/saa7706h.c  |  451 ++
 include/media/v4l2-chip-ident.h |3 
 4 files changed, 467 insertions(+)

diff -puN 
drivers/media/radio/Kconfig~radio-add-the-saa7706h-car-radio-dsp-to-v4l2-chip-identh
 drivers/media/radio/Kconfig
--- 
a/drivers/media/radio/Kconfig~radio-add-the-saa7706h-car-radio-dsp-to-v4l2-chip-identh
+++ a/drivers/media/radio/Kconfig
@@ -417,6 +417,18 @@ config RADIO_TEA5764_XTAL
  Say Y here if TEA5764 have a 32768 Hz crystal in circuit, say N
  here if TEA5764 reference frequency is connected in FREQIN.
 
+config RADIO_SAA7706H
+   tristate SAA7706H Car Radio DSP
+   depends on I2C  VIDEO_V4L2
+   ---help---
+ Say Y here if you want to use the SAA7706H Car radio Digital
+ Signal Processor, found for instance on the Russellville development
+ board. On the russellville the device is connected to internal
+ timberdale I2C bus.
+
+ To compile this driver as a module, choose M here: the
+ module will be called SAA7706H.
+
 config RADIO_TEF6862
tristate TEF6862 Car Radio Enhanced Selectivity Tuner
depends on I2C  VIDEO_V4L2
diff -puN 
drivers/media/radio/Makefile~radio-add-the-saa7706h-car-radio-dsp-to-v4l2-chip-identh
 drivers/media/radio/Makefile
--- 
a/drivers/media/radio/Makefile~radio-add-the-saa7706h-car-radio-dsp-to-v4l2-chip-identh
+++ a/drivers/media/radio/Makefile
@@ -23,6 +23,7 @@ obj-$(CONFIG_USB_DSBR) += dsbr100.o
 obj-$(CONFIG_RADIO_SI470X) += si470x/
 obj-$(CONFIG_USB_MR800) += radio-mr800.o
 obj-$(CONFIG_RADIO_TEA5764) += radio-tea5764.o
+obj-$(CONFIG_RADIO_SAA7706H) += saa7706h.o
 obj-$(CONFIG_RADIO_TEF6862) += tef6862.o
 
 EXTRA_CFLAGS += -Isound
diff -puN /dev/null drivers/media/radio/saa7706h.c
--- /dev/null
+++ a/drivers/media/radio/saa7706h.c
@@ -0,0 +1,451 @@
+/*
+ * saa7706.c Philips SAA7706H Car Radio DSP driver
+ * Copyright (c) 2009 Intel Corporation
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include linux/module.h
+#include linux/init.h
+#include linux/delay.h
+#include linux/errno.h
+#include linux/kernel.h
+#include linux/interrupt.h
+#include linux/i2c.h
+#include media/v4l2-device.h
+#include media/v4l2-chip-ident.h
+
+#define DRIVER_NAME saa7706h
+
+/* the I2C memory map looks like this
+
+   $1C00 - $ Not Used
+   $2200 - $3FFF Reserved YRAM (DSP2) space
+   $2000 - $21FF YRAM (DSP2)
+   $1FF0 - $1FFF Hardware Registers
+   $1280 - $1FEF Reserved XRAM (DSP2) space
+   $1000 - $127F XRAM (DSP2)
+   $0FFFDSP CONTROL
+   $0A00 - $0FFE Reserved
+   $0980 - $09FF Reserved YRAM (DSP1) space
+   $0800 - $097F YRAM (DSP1)
+   $0200 - $07FF Not Used
+   $0180 - $01FF Reserved XRAM (DSP1) space
+   $ - $017F XRAM (DSP1)
+*/
+
+#define SAA7706H_REG_CTRL  0x0fff
+#define SAA7706H_CTRL_BYP_PLL  0x0001
+#define SAA7706H_CTRL_PLL_DIV_MASK 0x003e
+#define SAA7706H_CTRL_PLL3_62975MHZ0x003e
+#define SAA7706H_CTRL_DSP_TURBO0x0040
+#define SAA7706H_CTRL_PC_RESET_DSP10x0080
+#define SAA7706H_CTRL_PC_RESET_DSP20x0100
+#define SAA7706H_CTRL_DSP1_ROM_EN_MASK 0x0600
+#define SAA7706H_CTRL_DSP1_FUNC_PROM   0x
+#define SAA7706H_CTRL_DSP2_ROM_EN_MASK 0x1800
+#define SAA7706H_CTRL_DSP2_FUNC_PROM   0x
+#define SAA7706H_CTRL_DIG_SIL_INTERPOL 0x8000
+
+#define SAA7706H_REG_EVALUATION0x1ff0
+#define SAA7706H_EVAL_DISABLE_CHARGE_PUMP  0x01
+#define SAA7706H_EVAL_DCS_CLOCK0x02
+#define SAA7706H_EVAL_GNDRC1_ENABLE

[patch 7/7] drivers/media/dvb/frontends/stv090x.c: fix use-uninitlalised

2010-02-02 Thread akpm
From: Andrew Morton a...@linux-foundation.org

Mad guess.

Cc: Manu Abraham m...@linuxtv.org
Cc: Mauro Carvalho Chehab mche...@redhat.com
Signed-off-by: Andrew Morton a...@linux-foundation.org
---

 drivers/media/dvb/frontends/stv090x.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff -puN 
drivers/media/dvb/frontends/stv090x.c~drivers-media-dvb-frontends-stv090xc-fix-use-uninitlalised
 drivers/media/dvb/frontends/stv090x.c
--- 
a/drivers/media/dvb/frontends/stv090x.c~drivers-media-dvb-frontends-stv090xc-fix-use-uninitlalised
+++ a/drivers/media/dvb/frontends/stv090x.c
@@ -2047,7 +2047,7 @@ static int stv090x_chk_tmg(struct stv090
u32 reg;
s32 tmg_cpt = 0, i;
u8 freq, tmg_thh, tmg_thl;
-   int tmg_lock;
+   int tmg_lock = 0;
 
freq = STV090x_READ_DEMOD(state, CARFREQ);
tmg_thh = STV090x_READ_DEMOD(state, TMGTHRISE);
_
--
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 7/7] drivers/media/dvb/frontends/stv090x.c: fix use-uninitlalised

2010-02-02 Thread Manu Abraham
Hi Andrew,

On Wed, Feb 3, 2010 at 2:40 AM,  a...@linux-foundation.org wrote:
 From: Andrew Morton a...@linux-foundation.org

 Mad guess.

 Cc: Manu Abraham m...@linuxtv.org
 Cc: Mauro Carvalho Chehab mche...@redhat.com
 Signed-off-by: Andrew Morton a...@linux-foundation.org
 ---

  drivers/media/dvb/frontends/stv090x.c |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

 diff -puN 
 drivers/media/dvb/frontends/stv090x.c~drivers-media-dvb-frontends-stv090xc-fix-use-uninitlalised
  drivers/media/dvb/frontends/stv090x.c
 --- 
 a/drivers/media/dvb/frontends/stv090x.c~drivers-media-dvb-frontends-stv090xc-fix-use-uninitlalised
 +++ a/drivers/media/dvb/frontends/stv090x.c
 @@ -2047,7 +2047,7 @@ static int stv090x_chk_tmg(struct stv090
        u32 reg;
        s32 tmg_cpt = 0, i;
        u8 freq, tmg_thh, tmg_thl;
 -       int tmg_lock;
 +       int tmg_lock = 0;

        freq = STV090x_READ_DEMOD(state, CARFREQ);
        tmg_thh = STV090x_READ_DEMOD(state, TMGTHRISE);
 _


Looks good

Reviewed-by: Manu Abraham m...@linuxtv.org
Acked-by: Manu Abraham m...@linuxtv.org

Thanks,
Manu
--
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


Any saa711x users out there?

2010-02-02 Thread Devin Heitmueller
Hello all,

I am doing some quality improvements for a couple of the
em28xx/saa7113 designs, and I found a pretty serious problem which
appears to have been there for some time.

In fact, the regression was introduced when the saa7115 support was
added in 2005 (hg revision 2750).  This change resulted in the
anti-alias filtering being disabled by default for the saa7113 (the
saa7115_init_misc block clears bit 7 of register 0x02).  Without this
change, vertical lines appear in the chroma on a fixed interval.

The big issue is that the driver is shared with other saa7113
products, as well as products that have the saa7111, saa7114, and
saa7115.  So I have to figure out whether to just force on the AA
filter for the saa7113, or whether it should be enabled for the
others, or whether I can even turn it on for saa7113 in general or
need to hack something in there to only do it for the two or three
products I am testing with.

So here's where I could use some help:  If you have a product that
uses one of the above chips, please speak up.  I will be setting up a
test tree where people can try out the change and see if it makes
their situation better, worse, or no change.

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 6/7] drivers/media/dvb/frontends/stv090x.c: fix use-uninitialised

2010-02-02 Thread Manu Abraham
On Wed, Feb 3, 2010 at 2:40 AM,  a...@linux-foundation.org wrote:
 From: Andrew Morton a...@linux-foundation.org

 drivers/media/dvb/frontends/stv090x.c: In function 'stv090x_blind_search':
 drivers/media/dvb/frontends/stv090x.c:1967: warning: 'coarse_fail' may be 
 used uninitialized in this function

 Cc: Manu Abraham m...@linuxtv.org
 Cc: Mauro Carvalho Chehab mche...@redhat.com
 Signed-off-by: Andrew Morton a...@linux-foundation.org
 ---

  drivers/media/dvb/frontends/stv090x.c |    3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

 diff -puN 
 drivers/media/dvb/frontends/stv090x.c~drivers-media-dvb-frontends-stv090xc-fix-use-uninitialised
  drivers/media/dvb/frontends/stv090x.c
 --- 
 a/drivers/media/dvb/frontends/stv090x.c~drivers-media-dvb-frontends-stv090xc-fix-use-uninitialised
 +++ a/drivers/media/dvb/frontends/stv090x.c
 @@ -1964,7 +1964,8 @@ static int stv090x_blind_search(struct s
        u32 agc2, reg, srate_coarse;
        s32 cpt_fail, agc2_ovflw, i;
        u8 k_ref, k_max, k_min;
 -       int coarse_fail, lock;
 +       int coarse_fail = 0;
 +       int lock;

        k_max = 110;
        k_min = 10;
 _


Looks good

Reviewed-by: Manu Abraham m...@linuxtv.org
Acked-by: Manu Abraham m...@linuxtv.org

Thanks,
Manu
--
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] saa7134: Fix IR support of some ASUS TV-FM 7135 variants

2010-02-02 Thread hermann pitton

Hi Jean, Mauro and all,

Am Dienstag, den 02.02.2010, 08:54 +0100 schrieb Jean Delvare:
 Hi Hermann,
 
 On Tue, 02 Feb 2010 02:47:53 +0100, hermann pitton wrote:
  Hi Jean,
  
  Am Montag, den 01.02.2010, 10:56 +0100 schrieb Jean Delvare:
   Hi Hermann,
   
   On Mon, 01 Feb 2010 02:16:35 +0100, hermann pitton wrote:
For now, I only faked a P7131 Dual with a broken IR receiver on a 2.6.29
with recent, you can see that gpio 0x4 doesn't go high, but your
patch should enable the remote on that P7131 analog only.
   
   I'm not sure why you had to fake anything? What I'd like to know is
   simply if my first patch had any negative effect on other cards.
  
  because I simply don't have that Asus My Cinema analog only in question.
  
  To recap, you previously announced a patch, tested by Daro, claiming to
  get the remote up under auto detection for that device and I told you
  having some doubts on it.
 
 My first patch was not actually tested by Daro. What he tested was
 loading the driver with card=146. At first I thought it was equivalent,
 but since then I have realized it wasn't. That's the reason why the
 Tested-by: was turned into a mere Cc: on my second and third
 patches.
 
  Mauro prefers to have a fix for that single card in need for now.
  
  Since nobody else cares, For now, see above, I can confirm that your
  last patch for that single device should work to get IR up with auto
  detection in delay after we change the card such late with eeprom
  detection.
  
  The meaning of that byte in use here is unknown to me, we should avoid
  such as much we can! It can turn out to be only some pseudo service.
  
  If your call for testers on your previous attempt, really reaches some
  for some reason, I'm with you, but for now I have to keep the car
  operable within all such snow.
 
 That I understand. What I don't understand is: if you have a
 SAA7134-based card, why don't you test my second patch (the one moving
 the call to saa7134_input_init1 to saa7134_hwinit2) on it, without
 faking anything? This would be a first, useful data point.
 

sorry, the snow fall did not stop and we will need trucks next day to
get it out of town. No place left.

I did not reread any single line of code until now, but told you that
Roman has tested a equivalent patch on his P7131_ANALOG already and I
can confirm that it also had no side effects on a FlyVideo3000 card=2.

For now, I would at least need some time to see, if input_init can be
decoupled from all other hardware init, what you seem to suggest, and
looking closer to Mauro's concerns.

Thought you are asking for some test with a i2c remote next to confirm
your analysis there. No such card in any machine currently, but can be
done.

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: [PATCH] uvcvideo: check minimum border of control

2010-02-02 Thread Laurent Pinchart
Hi Márton,


On Tuesday 26 January 2010 22:37:52 Németh Márton wrote:
 Check also the minimum border of a value before setting it
 to a control value.
 
 See also http://bugzilla.kernel.org/show_bug.cgi?id=12824 .
 
 Signed-off-by: Márton Németh nm...@freemail.hu

I've updated the previous patch in the uvcvideo git repository, could you 
please test it ? 

-- 
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] Video : pwc : Fix regression in pwc_set_shutter_speed caused by bad constant = sizeof conversion.

2010-02-02 Thread Laurent Pinchart
On Saturday 30 January 2010 17:26:51 Martin Fuzzey wrote:
 Regression was caused by my commit 6b35ca0d3d586b8ecb8396821af21186e20afaf0
 which determined message size using sizeof rather than hardcoded constants.
 
 Unfortunately pwc_set_shutter_speed reuses a 2 byte buffer for a one byte
 message too so the sizeof was bogus in this case.
 
 All other uses of sizeof checked and are ok.
 
 Signed-off-by: Martin Fuzzey mfuz...@gmail.com

Acked-by: Laurent Pinchart laurent.pinch...@ideasonboard.com

 
 ---
 
  drivers/media/video/pwc/pwc-ctrl.c |2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
 
 diff --git a/drivers/media/video/pwc/pwc-ctrl.c
  b/drivers/media/video/pwc/pwc-ctrl.c index 50b415e..f7f7e04 100644
 --- a/drivers/media/video/pwc/pwc-ctrl.c
 +++ b/drivers/media/video/pwc/pwc-ctrl.c
 @@ -753,7 +753,7 @@ int pwc_set_shutter_speed(struct pwc_device *pdev, int
  mode, int value) buf[0] = 0xff; /* fixed */
 
   ret = send_control_msg(pdev,
 - SET_LUM_CTL, SHUTTER_MODE_FORMATTER, buf, sizeof(buf));
 + SET_LUM_CTL, SHUTTER_MODE_FORMATTER, buf, 1);
 
   if (!mode  ret = 0) {
   if (value  0)
 

-- 
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: Any saa711x users out there?

2010-02-02 Thread Mauro Carvalho Chehab
Devin Heitmueller wrote:
 Hello all,
 
 I am doing some quality improvements for a couple of the
 em28xx/saa7113 designs, and I found a pretty serious problem which
 appears to have been there for some time.
 
 In fact, the regression was introduced when the saa7115 support was
 added in 2005 (hg revision 2750).  This change resulted in the
 anti-alias filtering being disabled by default for the saa7113 (the
 saa7115_init_misc block clears bit 7 of register 0x02).  Without this
 change, vertical lines appear in the chroma on a fixed interval.
 
 The big issue is that the driver is shared with other saa7113
 products, as well as products that have the saa7111, saa7114, and
 saa7115.  So I have to figure out whether to just force on the AA
 filter for the saa7113, or whether it should be enabled for the
 others, or whether I can even turn it on for saa7113 in general or
 need to hack something in there to only do it for the two or three
 products I am testing with.
 
 So here's where I could use some help:  If you have a product that
 uses one of the above chips, please speak up.  I will be setting up a
 test tree where people can try out the change and see if it makes
 their situation better, worse, or no change.

The better is to allow enabling/disabling the anti-alias via ctrl.
Whatever default is chosen, the driver may adjust the control default
at the board initialization, or even blocking the control when the
other mode of operation is broken.

I have here a few devices with saa7113 and saa7114. I think I have
also one device with saa7111, but I need to check. If I'm right, it will
take some time for me to prepare the saa7111 environment. The saa7113/7114
devices are easier to setup, as they are usb.

-- 

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: Videotext application crashes the kernel due to DVB-demux patch

2010-02-02 Thread hermann pitton

Am Dienstag, den 02.02.2010, 07:52 -0500 schrieb Andy Walls:
 On Tue, 2010-02-02 at 10:11 +0100, Chicken Shack wrote:
  Am Montag, den 01.02.2010, 21:00 -0500 schrieb Andy Walls:
   On Mon, 2010-02-01 at 07:41 -0500, Andy Walls wrote:
On Mon, 2010-02-01 at 10:56 +0100, Chicken Shack wrote:
 Hi,
 
 here is a link to a patch which breaks backwards compatibility for a
 teletext software called alevt-dvb.
 
 http://www.mail-archive.com/linuxtv-comm...@linuxtv.org/msg04638.html
 
 The kernel patch was introduced with kernel 2.6.32-rc1.
 It was Signed-off-by Brandon Philips, Mauro Carvalho Chehab and its
 author, Andreas Oberritter.
 
   
 Regards
 
 CS
 
 P. S.: This is how the kernel crash looks like:

The information below can get me started.  Could you please provide
whole Ooops from the output dmesg or from your /var/log/messages file?

I'll try to look at this tonight.

Regards,
Andy

 brian:~# alevt
 alevt: SDT: service_id 0xcf24 not in PAT
 
 alevt: ioctl: DMX_SET_PES_FILTER Invalid argument (22)
 Getötet
 brian:~# 
 Message from sysl...@brian at Jan 31 19:52:33 ...
  kernel:[  116.563487] Oops:  [#1] PREEMPT SMP 
 
 Message from sysl...@brian at Jan 31 19:52:33 ...
  kernel:[  116.563492] last sysfs
 file: /sys/devices/pci:00/:00:1d.7/usb1/1-0:1.0/uevent
 
 Message from sysl...@brian at Jan 31 19:52:33 ...
  kernel:[  116.563589] Process alevt (pid: 1780, ti=e7934000
 task=e7915be0 task.ti=e7934000)
 
 Message from sysl...@brian at Jan 31 19:52:33 ...
  kernel:[  116.563592] Stack:
 
 Message from sysl...@brian at Jan 31 19:52:33 ...
  kernel:[  116.563622] Call Trace:
 
 Message from sysl...@brian at Jan 31 19:52:33 ...
  kernel:[  116.563650] Code: f2 da 4c c8 8d 56 78 89 54 24 04 89 d0 e8
 e4 da 4c c8 89 f0 e8 31 ff ff ff 83 7e 4c 01 76 73 83 7e 48 02 75 49 
 8b
 46 04 8d 48 f8 8b 41 08 8d 58 f8 8d 7e 04 eb 28 8b 41 08 8b 51 0c 89
 50 04 89 
   
 Message from sysl...@brian at Jan 31 19:52:33 ...
  kernel:[  116.563697] EIP: [f8cec1b2] dvb_demux_release+0x43/0x183
 [dvb_core] SS:ESP 0068:e7935f58
 
 Message from sysl...@brian at Jan 31 19:52:33 ...
  kernel:[  116.563706] CR2: 
   
   I don't have a 32 bti machine set up to compile the module and compare
   the disassembly directly.  However, the kernel code above disassembles
   to this, and is supposedly in dvb_demux_release() but things have been
   inlined by the compiler:
   
 1c: 8d 56 78lea0x78(%esi),%edx
 1f: 89 54 24 04 mov%edx,0x4(%esp)
 23: 89 d0   mov%edx,%eax
 25: e8 e4 da 4c c8  call   0xc84cdb0e
 2a: 89 f0   mov%esi,%eax
 2c: e8 31 ff ff ff  call   0xff62
 (dmxdev.c:dvb_dmxdev_filter_reset() 
   appears to be inlined starting here
  %esi holds dmxdevfilter)
 31: 83 7e 4c 01 cmpl   $0x1,0x4c(%esi)if 
   (dmxdevfilter-state  DMXDEV_STATE_SET)
 35: 76 73   jbe0xaa return 
   0;
 37: 83 7e 48 02 cmpl   $0x2,0x48(%esi)if 
   (dmxdevfilter-type == DMXDEV_TYPE_PES)
 3b: 75 49   jne0x86
 (dvb_dmxdev_delete_pids() appears to be 
   inlined starting here
  %esi still holds dmxdevfilter)
 3d: 8b 46 04mov0x4(%esi),%eax %eax gets 
   loaded with dmxdevfilter-feed.ts  for list_for_each_entry_safe(feed, 
   tmp, dmxdevfilter-feed.ts, ...
 40: 8d 48 f8lea-0x8(%eax),%ecx%ecx is 
   feed and gets loaded with the next struct dmxdev_feed pointed to by the 
   dmxdevfilter-feed.ts list
 43: 8b 41 08mov0x8(%ecx),%eax Oops appears 
   to happen here: %ecx and hence feed was (craftily?) set to 0xfff8 
   based on CR2 above
 46: 8d 58 f8lea-0x8(%eax),%ebx
 49: 8d 7e 04lea0x4(%esi),%edi
 4c: eb 28   jmp0x76
 4e: 8b 41 08mov0x8(%ecx),%eax
 51: 8b 51 0cmov0xc(%ecx),%edx
 54: 89 50 04mov%edx,0x4(%eax)
   
   
   So there is something wrong with the list manipulations or, if needed,
   locking around the the list manipulations of the list that was
   introduced in the patch you identified as the problem.  That is what is
   causing the Ooops on close().  It will take a some more scrutiny to see
   what exactly is wrong.
 
 With further thought, a very likely of a list's next pointer being
 NULL would be either:
 
 1. Failing to init 

Re: [PATCH v2 00/10] add linux driver for chip TLG2300

2010-02-02 Thread Huang Shijie



I'm assuming that you're referring to the analog part, right?
   

right.
 The country code only effects the Analog TV and radio, it has no 
effect on DVB-T.



Instead of a country code, the driver should use the V4L2_STD_ macros to
   
If we are in the radio mode, I do not have any video standard, how can I 
choose

the right audio setting in this situation?



determine the audio standard. Please take a look at saa7134-tvaudio code. It has
an interesting logic to associate the V4L2_STD with the corresponding audio 
settings:

For example, the audio carrier frequency and the audio standard are at tvaudio 
array:
   tatic struct saa7134_tvaudio tvaudio[] = {
   


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


Re: [PATCH v2 00/10] add linux driver for chip TLG2300

2010-02-02 Thread Mauro Carvalho Chehab
Huang Shijie wrote:
 
 I'm assuming that you're referring to the analog part, right?

 right.
  The country code only effects the Analog TV and radio, it has no effect
 on DVB-T.
 
 Instead of a country code, the driver should use the V4L2_STD_ macros to

 If we are in the radio mode, I do not have any video standard, how can I
 choose
 the right audio setting in this situation?

In the case of radio, the frequency ranges are controlled via the tuner
ioctls. There's no standard way to control the preemphasis, but I recommend
adding a ctrl to select between 50us/75us and no preemphasis.


-- 

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://www.linuxtv.org/hg/~hverkuil/v4l-dvb

2010-02-02 Thread Hans Verkuil

Hi Mauro,

On Fri, 29 Jan 2010, Hans Verkuil wrote:


(resent: forgot to mail it to the linux-media list)

Hi Mauro,

Please pull from http://www.linuxtv.org/hg/~hverkuil/v4l-dvb for the following:

- saa7134: remove stray unlock_kernel

This is a high-prio bugfix that must go to 2.6.33!

Dmitri, this patch will fix the kernel oops in your latest stack trace.


Just to remind you:

When will this regression fix be merged? It is important that this is sent
upstream for 2.6.33!

Regards,

   Hans



Thanks,

   Hans

diffstat:
saa7134-empress.c |8 +++-
1 file changed, 3 insertions(+), 5 deletions(-)

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


--
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 3/7] drivers/media/video/Kconfig: add VIDEO_DEV dependency as needed in drivers/media/video/Kconfig

2010-02-02 Thread Mauro Carvalho Chehab
a...@linux-foundation.org wrote:
 From: Mike Pagano mpag...@gentoo.org
 
 Add VIDEO_DEV as dependency of VIDEO_CAPTURE_DRIVERS and all of the
 devices listed under this setting.
 
 Signed-off-by: Mike Pagano mpag...@gentoo.org
 Cc: Mauro Carvalho Chehab mche...@infradead.org
 Signed-off-by: Andrew Morton a...@linux-foundation.org
 ---
 
  drivers/media/video/Kconfig |   20 ++--
  1 file changed, 10 insertions(+), 10 deletions(-)
 
 diff -puN 
 drivers/media/video/Kconfig~drivers-media-video-kconfig-add-video_dev-dependency-as-needed-in-drivers-media-video-kconfig
  drivers/media/video/Kconfig
 --- 
 a/drivers/media/video/Kconfig~drivers-media-video-kconfig-add-video_dev-dependency-as-needed-in-drivers-media-video-kconfig
 +++ a/drivers/media/video/Kconfig
 @@ -51,14 +51,14 @@ config VIDEO_TUNER
  
  menuconfig VIDEO_CAPTURE_DRIVERS
   bool Video capture adapters
 - depends on VIDEO_V4L2
 + depends on VIDEO_V4L2  VIDEO_DEV

VIDEO_V4L2 is defined as:

config VIDEO_V4L2_COMMON
tristate
depends on (I2C || I2C=n)  VIDEO_DEV
default (I2C || I2C=n)  VIDEO_DEV

config VIDEO_V4L2
tristate
depends on VIDEO_DEV  VIDEO_V4L2_COMMON
default VIDEO_DEV  VIDEO_V4L2_COMMON

As VIDEO_V4L2 already depends on VIDEO_DEV, there's no need to add VIDEO_DEV
for VIDEO_CAPTURE_DRIVERS.

   default y
   ---help---
 Say Y here to enable selecting the video adapters for
 webcams, analog TV, and hybrid analog/digital TV.
 Some of those devices also supports FM radio.
  
 -if VIDEO_CAPTURE_DRIVERS  VIDEO_V4L2
 +if VIDEO_DEV  VIDEO_CAPTURE_DRIVERS  VIDEO_V4L2

Idem.

  config VIDEO_ADV_DEBUG
   bool Enable advanced debug functionality
 @@ -500,7 +500,7 @@ endmenu # encoder / decoder chips
  
  config DISPLAY_DAVINCI_DM646X_EVM
   tristate DM646x EVM Video Display
 - depends on VIDEO_DEV  MACH_DAVINCI_DM6467_EVM
 + depends on MACH_DAVINCI_DM6467_EVM
   select VIDEOBUF_DMA_CONTIG
   select VIDEO_DAVINCI_VPIF
   select VIDEO_ADV7343
 @@ -513,7 +513,7 @@ config DISPLAY_DAVINCI_DM646X_EVM
  
  config CAPTURE_DAVINCI_DM646X_EVM
   tristate DM646x EVM Video Capture
 - depends on VIDEO_DEV  MACH_DAVINCI_DM6467_EVM
 + depends on MACH_DAVINCI_DM6467_EVM
   select VIDEOBUF_DMA_CONTIG
   select VIDEO_DAVINCI_VPIF
   help
 @@ -533,7 +533,7 @@ config VIDEO_DAVINCI_VPIF
  
  config VIDEO_VIVI
   tristate Virtual Video Driver
 - depends on VIDEO_DEV  VIDEO_V4L2  !SPARC32  !SPARC64
 + depends on VIDEO_V4L2  !SPARC32  !SPARC64
   select VIDEOBUF_VMALLOC
   default n
   ---help---
 @@ -889,7 +889,7 @@ config MX1_VIDEO
  
  config VIDEO_MX1
   tristate i.MX1/i.MXL CMOS Sensor Interface driver
 - depends on VIDEO_DEV  ARCH_MX1  SOC_CAMERA
 + depends on ARCH_MX1  SOC_CAMERA
   select FIQ
   select VIDEOBUF_DMA_CONTIG
   select MX1_VIDEO
 @@ -901,7 +901,7 @@ config MX3_VIDEO
  
  config VIDEO_MX3
   tristate i.MX3x Camera Sensor Interface driver
 - depends on VIDEO_DEV  MX3_IPU  SOC_CAMERA
 + depends on MX3_IPU  SOC_CAMERA
   select VIDEOBUF_DMA_CONTIG
   select MX3_VIDEO
   ---help---
 @@ -909,21 +909,21 @@ config VIDEO_MX3
  
  config VIDEO_PXA27x
   tristate PXA27x Quick Capture Interface driver
 - depends on VIDEO_DEV  PXA27x  SOC_CAMERA
 + depends on PXA27x  SOC_CAMERA
   select VIDEOBUF_DMA_SG
   ---help---
 This is a v4l2 driver for the PXA27x Quick Capture Interface
  
  config VIDEO_SH_MOBILE_CEU
   tristate SuperH Mobile CEU Interface driver
 - depends on VIDEO_DEV  SOC_CAMERA  HAS_DMA  HAVE_CLK
 + depends on SOC_CAMERA  HAS_DMA  HAVE_CLK
   select VIDEOBUF_DMA_CONTIG
   ---help---
 This is a v4l2 driver for the SuperH Mobile CEU Interface
  
  config VIDEO_OMAP2
   tristate OMAP2 Camera Capture Interface driver
 - depends on VIDEO_DEV  ARCH_OMAP2
 + depends on ARCH_OMAP2
   select VIDEOBUF_DMA_SG
   ---help---
 This is a v4l2 driver for the TI OMAP2 camera capture interface

I suspect that it is needed to keep at least some of the above dependencies, 
since VIDEO_DEV
is tristate. Otherwise, someone may do things like selecting VIDEO_DEV=m, and 
select 
DISPLAY_DAVINCI_DM646X_EVM=y.

Yet, your proposed patch ringed the bells.

Extra care should be taken with drivers that depend on VIDEO_DEV instead of 
VIDEO_V4L2, due
to the driver I2C dependencies. If I2C=m and VIDEO_DEV=y, and the driver has 
any call to an
i2c core code, the driver should not be allowed to be compiled builtin. 

So, if one of the above drivers that depend on VIDEO_DEV has access to i2c, it 
should
depend, instead, of VIDEO_V4L2 (where the I2C particular case were already 
addressed).

I suspect that this is the case for soc_camera. So, the above dependencies 
should be, instead,
VIDEO_V4L2. I'm not sure if all those DaVinci/OMAP drivers require i2c.

Guennadi/Murali,