* Yegor Yefremov <yegorslists@xxxxxxxxxxxxxx> [191001 09:20]: > On Tue, Oct 1, 2019 at 10:03 AM Johan Hovold <johan@xxxxxxxxxx> wrote: > > > > On Mon, Sep 30, 2019 at 09:54:11PM +0200, Sebastian Reichel wrote: > > > Hi, > > > > > > On Mon, Sep 30, 2019 at 08:23:30AM -0700, Tony Lindgren wrote: > > > > > > Actually playing with the cppi41 timeout might be more suitable here, > > > > they use the same module clock from what I remember though. So > > > > maybe increase the cppi41 autosuspend_timeout from 100 ms to 500 ms > > > > or higher: > > > > > > > > # echo 500 > /sys/bus/platform/drivers/cppi41-dma-engine/47400000.dma-controller/power/autosuspend_delay_ms > > > > > > > > If changing the autosuspend_timeout_ms value does not help, then > > > > try setting control to on there. > > > > > > I did not check the details, but from the cover-letter this might be > > > woth looking into: > > > > > > https://lore.kernel.org/lkml/20190930161205.18803-1-johan@xxxxxxxxxx/ > > > > No, that one should be unrelated as it would only prevent later suspends after > > a driver has been unbound (and rebound). > > I've tried to increase the autosuspend_delay_ms and to set control to > "on" but nothing changes. Below you can see the output of my testing > script [1] (Py2 only). As one can see, the first cycle i.e. after the > port is open for the first time, fails. But the subsequent cycle is > successful. If you invoke the script again, everything repeats. > > I've also made printk() in cppi41_run_queue() and it looks like this > routine will be called from cppi41_dma_issue_pending() only in the > beginning of the second test cycle. So sounds like for you intially cppi41_dma_issue_pending() has !cdd->is_suspended and just adds the request to the queue. And then cppi41_run_queue() never gets called if this happens while we have cppi41_runtime_resume() is still running? Can you check that cppi41_dma_issue_pending() really gets called for the first request and it adds the request to the queue by adding a printk to cppi41_dma_issue_pending()? > [1] http://ftp.visionsystems.de/temp/serialtest.py For me this script somehow fails to configure the ports with: $ python2 serialtest.py -c2 /dev/ttyUSB0 /dev/ttyUSB0 Openning one of the serial ports failed Openning one of the serial ports failed The permissions are set properly as I have minicom working.. So still no luck reproducing. Regards, Tony