Hi Martin,
I think it is caused by incorrect kmalloc flags in the driver: when
memory is allocated that must be accessible by DMA, then the __GFP_DMA
should be added to ensure it is allocated from the 32-bit memory. This
flag isn't set. I'll see if I can make a patch for you this weekend.
Regards,
Hans
On Wednesday 19 July 2006 23:07, Martin Berg wrote:
> Hi,
> I'm facing a problem with a hanging/non-responding capture from my
> PVR 500 card.
> I've tried to find some leads elsewhere - but none seems to match
> my problem.
> The ivtv-users list did not give any responses at all so I'm trying
> here as suggested by the "asking for help" instructions.
>
> Symptoms:
> When either attempting watching live TV in MythTV or
> "cat /dev/video0 > test.mpg" a hang persists for a couple of seconds
> and no output is generated.
> This happens at every attempt.
> The hang only happens for the capture - the rest of the system is
> responding as normal.
> The hang for the cat /dev/video0 > test.mpg is seen when ctrl-C is
> pressed - this takes a couple of seconds to terminate the command.
>
> Problem reproduces using both ivtv 0.4.4 and 0.4.6
>
> Interestingly the problem only occurs if I allow the CPU to map
> devices out of the normal 32-bit memory address space.
> A simple workaround is therefore to disable this functionality, but
> this will disable around 700MB from my 4GB of RAM, which is obviously
> not a preferred solution.
>
> Any suggestions ?
>
>
>
> Error messages (from dmesg):
> ivtv0 warning: ENC: REG_DMAXFER 2 wait failed
> ivtv0 warning: DEC: REG_ENCSG1LEN wait failed
> ivtv0 warning: ENC: DMA still Pending while stopping capture!
>
> System info:
> ASUS A8V Deluxe motherboard with the Via K8T800 Pro chipset (yep,
> the one with incompability problems with PVR500 - solved by setting
> PCI latency timer to 32 and by using newest BIOS)
> AMD Althon 64 3500
> 4GB RAM
> SuSE 10 (kernel 2.6.13) - 64 bit version
>
> dmesg output for Ivtv init (slightly edited to remove clearly
> irrelevant information about USB, NIC and APG stuff):
> ivtv: module not supported by Novell, setting U taint flag.
> ivtv: ==================== START INIT IVTV ====================
> ivtv: version 0.4.6 (tagged release) loading
> ivtv: Linux version: 2.6.13-15.8-default gcc-4.0
> ivtv: In case of problems please include the debug info between
> ivtv: the START INIT IVTV and END INIT IVTV lines, along with
> ivtv: any module options, when mailing the ivtv-users mailinglist.
> ivtv0: Autodetected WinTV PVR 150 card (cx23416 based)
> ACPI: PCI Interrupt 0000:02:08.0[A] -> GSI 16 (level, low) -> IRQ 185
> ivtv0: Unreasonably low latency timer, setting to 64 (was 32)
> tveeprom: module not supported by Novell, setting U taint flag.
> tveeprom: Second (radio) tuner idx 101
> tveeprom: ivtv version
> tveeprom: Hauppauge: model = 23659, rev = D491, serial# = 8092818
> tveeprom: tuner = Philips FQ1216AME MK4 (idx = 91, type = 56)
> tveeprom: tuner fmt = PAL(B/G) PAL(I) SECAM(L/L') PAL(D/K) (eeprom =
> 0x74, v4l2 = 0x00400e17)
> tveeprom: audio processor = CX25843 (type = 25)
> tveeprom: decoder processor = CX25843 (type = 1e)
> ivtv0: i2c attach to card #0 ok [client=tveeprom, addr=50]
> ivtv0: This is the first unit of a PVR500
> tuner: module not supported by Novell, setting U taint flag.
> tuner (ivtv): chip found at addr 0xc0 i2c-bus ivtv i2c driver #0
> TEA5767 detected.
> ivtv0: i2c attach to card #0 ok [client=(tuner unset), addr=60]
> tuner: type set to 62 (Philips TEA5767HN FM Radio) by autodetect
> type set to 62 (Philips TEA5767HN FM Radio)
> tuner (ivtv): chip found at addr 0xc2 i2c-bus ivtv i2c driver #0
> ivtv0: i2c attach to card #0 ok [client=(tuner unset), addr=61]
> cx25840: module not supported by Novell, setting U taint flag.
> cx25840 1-0044: ivtv driver
> cx25840 1-0044: cx25843-23 found @ 0x88 (ivtv i2c driver #0)
> BIOS EDD facility v0.16 2004-Jun-25, 5 devices found
> ieee1394: Host added: ID:BUS[0-00:1023] GUID[0011d800000592c6]
> nvidia: module not supported by Novell, setting U taint flag.
> nvidia: module license 'NVIDIA' taints kernel.
> ACPI-0212: *** Warning: Device is not power manageable
> ACPI: PCI Interrupt 0000:00:11.5[C] -> GSI 22 (level, low) -> IRQ 201
> PCI: Via IRQ fixup for 0000:00:11.5, from 5 to 9
> PCI: Setting latency timer of device 0000:00:11.5 to 64
> ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 185
> cx25840 1-0044: loaded v4l-cx25840.fw firmware (14264 bytes)
> ivtv0: i2c attach to card #0 ok [client=cx25840, addr=44]
> wm8775: module not supported by Novell, setting U taint flag.
> wm8775 1-001b: ivtv driver
> wm8775 1-001b: chip found @ 0x36 (ivtv i2c driver #0)
> ivtv0: i2c attach to card #0 ok [client=wm8775, addr=1b]
> tda9887: module not supported by Novell, setting U taint flag.
> tda9887 1-0043: (ivtv) chip found @ 0x86 (ivtv i2c driver #0)
> ivtv0: i2c attach to card #0 ok [client=tda9887, addr=43]
> ivtv0: Detected a TEA5767 radio tuner. Enabling radio support.
> ivtv0: loaded v4l-cx2341x-enc.fw firmware (262144 bytes)
> ivtv0: Encoder revision: 0x02050032
> ivtv0: Allocate DMA encoder MPEG stream: 128 x 32768 buffers (4096KB
> total) ivtv0: Allocate DMA encoder YUV stream: 161 x 12960 buffers
> (2048KB total) ivtv0: Allocate DMA encoder VBI stream: 80 x 26208
> buffers (2048KB total) ivtv0: Allocate DMA encoder PCM audio stream:
> 455 x 4608 buffers (2048KB total)
> ivtv0: Create encoder radio stream
> tuner: type set to 56 (Philips PAL/SECAM multi (FQ1216AME MK4)) by
> ivtv i2c driver #0
> ivtv0: Initialized WinTV PVR 500 (unit #1), card #0
> ivtv: ====================== NEXT CARD ======================
> ivtv1: Autodetected WinTV PVR 150 card (cx23416 based)
> ACPI: PCI Interrupt 0000:02:09.0[A] -> GSI 17 (level, low) -> IRQ 169
> ivtv1: Unreasonably low latency timer, setting to 64 (was 32)
> tveeprom: Second (radio) tuner idx 101
> tveeprom: ivtv version
> tveeprom: Hauppauge: model = 23659, rev = D491, serial# = 8092818
> tveeprom: tuner = Philips FQ1216AME MK4 (idx = 91, type = 56)
> tveeprom: tuner fmt = PAL(B/G) PAL(I) SECAM(L/L') PAL(D/K) (eeprom =
> 0x74, v4l2 = 0x00400e17)
> tveeprom: audio processor = CX25843 (type = 25)
> tveeprom: decoder processor = CX25843 (type = 1e)
> ivtv1: i2c attach to card #1 ok [client=tveeprom, addr=50]
> tuner (ivtv): chip found at addr 0xc2 i2c-bus ivtv i2c driver #1
> ivtv1: i2c attach to card #1 ok [client=(tuner unset), addr=61]
> cx25840 2-0044: ivtv driver
> cx25840 2-0044: cx25843-23 found @ 0x88 (ivtv i2c driver #1)
> cx25840 2-0044: loaded v4l-cx25840.fw firmware (14264 bytes)
> ivtv1: i2c attach to card #1 ok [client=cx25840, addr=44]
> wm8775 2-001b: ivtv driver
> wm8775 2-001b: chip found @ 0x36 (ivtv i2c driver #1)
> ivtv1: i2c attach to card #1 ok [client=wm8775, addr=1b]
> tda9887 2-0043: (ivtv) chip found @ 0x86 (ivtv i2c driver #1)
> ivtv1: i2c attach to card #1 ok [client=tda9887, addr=43]
> ivtv1: This is the second unit of a PVR500
> ivtv1: Correcting tveeprom data: no radio present on second unit
> ivtv1: loaded v4l-cx2341x-enc.fw firmware (262144 bytes)
> w83627hf 3-0290: Reading VID from GPIO5
> ivtv1: Encoder revision: 0x02050032
> ivtv1: Allocate DMA encoder MPEG stream: 128 x 32768 buffers (4096KB
> total) ivtv1: Allocate DMA encoder YUV stream: 161 x 12960 buffers
> (2048KB total) ivtv1: Allocate DMA encoder VBI stream: 80 x 26208
> buffers (2048KB total) ivtv1: Allocate DMA encoder PCM audio stream:
> 455 x 4608 buffers (2048KB total)
> tuner: type set to 56 (Philips PAL/SECAM multi (FQ1216AME MK4)) by
> ivtv i2c driver #1
> ivtv1: Initialized WinTV PVR 500 (unit #2), card #1
> NVRM: loading NVIDIA Linux x86_64 NVIDIA Kernel Module 1.0-7676 Fri
> Jul 29 13:15:16 PDT 2005
> NVRM: WARNING: You are probably using the kernel's swiotlb
> interface. NVRM: Be very careful with this interface, as it is easy
> NVRM: to exhaust this interface's memory buffer, at which
> NVRM: point it panics the kernel. Please increase the size
> NVRM: of this buffer by specifying a larger buffer size with
> NVRM: the swiotlb kernel option, eg: "swiotlb=65536"
> ivtv: ==================== END INIT IVTV ====================
>
> lspci:
> 02:08.0 Multimedia video controller: Internext Compression Inc iTVC16
> (CX23416) MPEG-2 Encoder (rev 01)
> Subsystem: Hauppauge computer works Inc.: Unknown device e807
> Flags: bus master, medium devsel, latency 64, IRQ 185
> Memory at 00000000f0000000 (32-bit, prefetchable) [size=64M]
> Capabilities: [44] Power Management version 2
>
> 02:09.0 Multimedia video controller: Internext Compression Inc iTVC16
> (CX23416) MPEG-2 Encoder (rev 01)
> Subsystem: Hauppauge computer works Inc.: Unknown device e817
> Flags: bus master, medium devsel, latency 64, IRQ 169
> Memory at 00000000f4000000 (32-bit, prefetchable) [size=64M]
> Capabilities: [44] Power Management version 2
_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel