From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Devin Heitmueller <dheitmueller@kernellabs.com>,
linux-media@vger.kernel.org, srinivasa.deevi@conexant.com,
Maxime Ripard <maxime.ripard@free-electrons.com>
Subject: Re: cx231xx: DMA problem on ARM
Date: Fri, 23 Sep 2011 23:15:54 -0300 [thread overview]
Message-ID: <4E7D3D5A.6030008@redhat.com> (raw)
In-Reply-To: <20110923140404.5816c056@skate>
Em 23-09-2011 09:04, Thomas Petazzoni escreveu:
> Hello Devin,
>
> Le Thu, 22 Sep 2011 17:29:29 +0200,
> Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 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
next prev parent reply other threads:[~2011-09-24 2:16 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-21 11:56 cx231xx: DMA problem on ARM Thomas Petazzoni
2011-09-21 12:04 ` Devin Heitmueller
2011-09-21 19:17 ` Thomas Petazzoni
2011-09-22 14:45 ` Thomas Petazzoni
2011-09-22 15:09 ` Devin Heitmueller
2011-09-22 15:29 ` Thomas Petazzoni
2011-09-23 12:04 ` Thomas Petazzoni
2011-09-23 12:26 ` Sri Deevi
2011-09-24 18:04 ` Thomas Petazzoni
2011-09-24 2:15 ` Mauro Carvalho Chehab [this message]
2011-09-26 8:13 ` Thomas Petazzoni
2011-09-26 17:32 ` Mauro Carvalho Chehab
2011-09-26 19:02 ` Laurent Pinchart
2011-09-26 19:59 ` Thomas Petazzoni
2011-09-26 20:03 ` Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E7D3D5A.6030008@redhat.com \
--to=mchehab@redhat.com \
--cc=dheitmueller@kernellabs.com \
--cc=linux-media@vger.kernel.org \
--cc=maxime.ripard@free-electrons.com \
--cc=srinivasa.deevi@conexant.com \
--cc=thomas.petazzoni@free-electrons.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.