> Hi Hans,
>
> The GFP_DMA flag asks kmalloc to allocate from memory below 16Mb, i.e.
> the good old ISA DMA memory pool. To allocate memory that is DMA-able
> from the PCI bus, you need to use the pci_alloc_* functions, as
> explained in  linux/Documentation/DMA-mapping.txt.

I meant GFP_DMA32. And perhaps I should replace it by the pci_alloc
functions. Thanks for the hint.

       Hans

>
> Groeten,
> Bart
>
> Hans Verkuil wrote:
>> 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
>>
>>
>
>
> --
> Bart Hartgers - [EMAIL PROTECTED]
>
> _______________________________________________
> ivtv-devel mailing list
> [email protected]
> http://ivtvdriver.org/mailman/listinfo/ivtv-devel
>



_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

Reply via email to