Re: cx231xx: DMA problem on ARM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em 23-09-2011 09:04, Thomas Petazzoni escreveu:
> Hello Devin,
> 
> Le Thu, 22 Sep 2011 17:29:29 +0200,
> Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx> a écrit :
> 
>> I guess you're talking about 44ecf1df9493e6684cd1bb34abb107a0ffe1078a,
>> which ensures a 10ms msleep call. We don't have this patch, but as with
>> CONFIG_HZ=100, msleep() calls are anyway rounded up to 10ms, so I'm not
>> sure this patch will have a huge impact. But we will try.
>>
>> Then, there is also de99d5328c6d54694471da28711a05adec708c3b, but it
>> doesn't seem to be related to our problem. But we will also try with
>> that one.
> 
> So, we have now tried with Linux 3.0 and the following additional
> patches:
> 
>  * 992299e84a4891275ea5924e30b66ce39a701e5e (Fix regression
>    introduced which broke the Hauppauge USBLive 2)
>  * 44ecf1df9493e6684cd1bb34abb107a0ffe1078a (cx231xx: Fix power ramping
>    issue)
>  * de99d5328c6d54694471da28711a05adec708c3b (cx231xx: Provide
>    signal lock status in G_INPUT)
>  * the DMA fix
> 
> And still the result is the same: we get a first frame, and then
> nothing more, and we have a large number of error messages in the
> kernel logs.

I don't think that this is related to the power manager anymore. It can
be related to cache coherency and/or to iommu support.

> 
> [   18.833587] cx231xx v4l2 driver loaded.
> [   18.833831] cx231xx #0: New device Hauppauge Hauppauge Device @ 480 Mbps (2040:c200) with 5 interfaces
> [   18.833862] cx231xx #0: registering interface 1
> [   18.854492] cx231xx #0: can't change interface 3 alt no. to 3: Max. Pkt size = 0
> [   19.185943] cx231xx #0: can't change interface 4 alt no. to 1: Max. Pkt size = 0
> [   19.405700] cx231xx #0: Identified as Hauppauge USB Live 2 (card=9)
> [   19.692993] cx231xx #0: cx231xx_dif_set_standard: setStandard to ffffffff
> [   20.238159] cx25840 4-0044: cx23102 A/V decoder found @ 0x88 (cx231xx #0)
> [   20.333740] cx25840 4-0044:  Firmware download size changed to 16 bytes max length
> [   21.783569] smsc95xx 1-2.1:1.0: eth0: link up, 100Mbps, full-duplex, lpa 0xC5E1
> [   22.921936] cx25840 4-0044: loaded v4l-cx231xx-avcore-01.fw firmware (16382 bytes)
> [   22.960815] cx231xx #0: cx231xx #0: v4l2 driver version 0.0.1
> [   22.989715] cx231xx #0: cx231xx_dif_set_standard: setStandard to ffffffff
> [   23.042663] cx231xx #0: video_mux : 0
> [   23.042694] cx231xx #0: do_mode_ctrl_overrides : 0xb000
> [   23.043548] cx231xx #0: do_mode_ctrl_overrides NTSC
> [   23.056213] cx231xx #0: cx231xx #0/0: registered device video0 [v4l2]
> [   23.061035] cx231xx #0: cx231xx #0/0: registered device vbi0
> [   23.061065] cx231xx #0: V4L2 device registered as video0 and vbi0
> [   23.061096] cx231xx #0: EndPoint Addr 0x84, Alternate settings: 5
> [   23.061096] cx231xx #0: Alternate setting 0, max size= 512
> [   23.061126] cx231xx #0: Alternate setting 1, max size= 184
> [   23.061126] cx231xx #0: Alternate setting 2, max size= 728
> [   23.061157] cx231xx #0: Alternate setting 3, max size= 2892
> [   23.061157] cx231xx #0: Alternate setting 4, max size= 1800
> [   23.061187] cx231xx #0: EndPoint Addr 0x85, Alternate settings: 2
> [   23.061187] cx231xx #0: Alternate setting 0, max size= 512
> [   23.061218] cx231xx #0: Alternate setting 1, max size= 512
> [   23.061218] cx231xx #0: EndPoint Addr 0x86, Alternate settings: 2
> [   23.061248] cx231xx #0: Alternate setting 0, max size= 512
> [   23.061248] cx231xx #0: Alternate setting 1, max size= 576
> [   23.067108] usbcore: registered new interface driver cx231xx
> [   23.360412] cx231xx #0:  setPowerMode::mode = 48, No Change req.
> [   23.365905] cx231xx #0: cx231xx_stop_stream():: ep_mask = 8
> [   23.367156] cx231xx #0: cx231xx_stop_stream():: ep_mask = 8
> [   23.872253] cx231xx #0: cx231xx-audio.c: probing for cx231xx non standard usbaudio
> [   23.875762] cx231xx #0: EndPoint Addr 0x83, Alternate settings: 3
> [   23.875793] cx231xx #0: Alternate setting 0, max size= 512
> [   23.875793] cx231xx #0: Alternate setting 1, max size= 28
> [   23.875823] cx231xx #0: Alternate setting 2, max size= 52
> [   23.875823] cx231xx: Cx231xx Audio Extension initialized
> [   24.794891] lp: driver loaded but no devices found
> [   24.880157] ppdev: user-space parallel port driver
> [   30.872589] eth0: no IPv6 routers present
> [  183.789154] omap_device: omap-mcbsp.2: new worst case activate latency 0: 30517
> [  183.829803] omap_device: omap-mcbsp.2: new worst case deactivate latency 0: 30517
> [  184.355712] omap_device: omap-mcbsp.2: new worst case deactivate latency 0: 61035
> [  186.400878] cx231xx #0: cx231xx_start_stream():: ep_mask = 4
> [  186.401855] cx231xx #0: cx231xx_stop_stream():: ep_mask = 4
> [  186.404571] cx231xx #0: cx231xx_start_stream():: ep_mask = 4
> [  186.405578] cx231xx #0: cx231xx_stop_stream():: ep_mask = 4
> [  186.408050] cx231xx #0: cx231xx_start_stream():: ep_mask = 4
> [  186.409332] cx231xx #0: cx231xx_stop_stream():: ep_mask = 4
> [  186.412109] cx231xx #0: cx231xx_start_stream():: ep_mask = 4
> [  186.414306] cx231xx #0: cx231xx_stop_stream():: ep_mask = 4
> [  186.416961] cx231xx #0: cx231xx_start_stream():: ep_mask = 4
> [  186.418060] cx231xx #0: cx231xx_stop_stream():: ep_mask = 4
> [  186.427520] cx231xx #0: cx231xx_start_stream():: ep_mask = 4
> [  186.498504] cx231xx #0: cx231xx_init_audio_isoc: Starting ISO AUDIO transfers
> [  194.358123] cx231xx #0: cx231xx_stop_stream():: ep_mask = 4
> [  393.839813] cx231xx #0:  setPowerMode::mode = 48, No Change req.
> [  393.842834] cx231xx #0: cx231xx_stop_stream():: ep_mask = 8
> [  393.844024] cx231xx #0:  setPowerMode::mode = 48, No Change req.
> [  394.126953] cx231xx #0: cx231xx_stop_stream():: ep_mask = 8
> [  394.133605] cx231xx #0: cx231xx_initialize_stream_xfer: set video registers
> [  394.134094] cx231xx #0: cx231xx_start_stream():: ep_mask = 8
> [  559.661468] cx231xx #0: UsbInterface::sendCommand, failed with status --71
> [  559.665985] cx231xx #0: UsbInterface::sendCommand, failed with status --71
> [  559.721374] cx231xx #0: cx231xx_stop_stream():: ep_mask = 8
> [  559.731079] cx231xx #0: can't change interface 3 alt no. to 0 (err=-71)
> [  942.321258] cx231xx #0:  setPowerMode::mode = 48, No Change req.
> [  942.325469] cx231xx #0: cannot change alt number to 3 (error=-71)
> [  942.414031] cx231xx #0: UsbInterface::sendCommand, failed with status --71
> [  942.418243] cx231xx #0: UsbInterface::sendCommand, failed with status --71
> [  942.426574] cx231xx #0: UsbInterface::sendCommand, failed with status --71
> [  942.436218] cx231xx #0: UsbInterface::sendCommand, failed with status --71
> [  942.440032] cx231xx #0: cx231xx_stop_stream():: ep_mask = 8
> [  942.486846] cx231xx #0: can't change interface 3 alt no. to 0 (err=-71)
> [  954.314727] cx231xx #0:  setPowerMode::mode = 48, No Change req.
> [  954.319030] cx231xx #0: cannot change alt number to 3 (error=-71)
> [  954.333618] cx231xx #0: UsbInterface::sendCommand, failed with status --71
> [  954.337860] cx231xx #0: UsbInterface::sendCommand, failed with status --71
> [  954.342315] cx231xx #0: UsbInterface::sendCommand, failed with status --71
> [  954.348052] cx231xx #0: UsbInterface::sendCommand, failed with status --71
> [  955.153045] cx231xx #0: cx231xx_stop_stream():: ep_mask = 8
> [  955.162963] cx231xx #0: cx231xx_initialize_stream_xfer: set video registers
> [  955.172302] cx231xx #0: UsbInterface::sendCommand, failed with status --71
> [  955.176788] cx231xx #0: UsbInterface::sendCommand, failed with status --71
> [  977.247924] cx231xx #0: UsbInterface::sendCommand, failed with status --71
> [  977.252502] cx231xx #0: UsbInterface::sendCommand, failed with status --71
> [  977.329895] cx231xx #0: cx231xx_stop_stream():: ep_mask = 8
> [  977.339508] cx231xx #0: can't change interface 3 alt no. to 0 (err=-71)
> 
> We will try to increase PWR_SLEEP_INTERVAL even further (up to 50
> msec), but if you have other ideas to try, we would definitely be
> interested. For the record, the same driver works just fine on x86,
> those problems are seen on an OMAP3 based ARM platform.
> 
> Thanks!
> 
> Thomas

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


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux