Re: [PATCH] isp1760-hcd: rework usb errata poller to isr

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

 



Hi Arvid,

On Fri, May 04, 2012 at 09:40:36PM +0000, Arvid Brodin wrote:
> On 2012-05-01 09:13, Michael Grzeschik wrote:

[...]

> > Did you find time to test this patch? This one has not yet been applied
> > onto usb-next.
> 
> I didn't have time for this yesterday but today I've done some testing. I didn't find any
> major issues, but two minor things popped up:
> 
> 1) A performance issue (easily fixed, I believe). Below are two runs of the testusb suite
> (the test 14 error is normal, apparently; the default params don't work with this test):
> 
> a) before the "rework" patch:
> 
> # ./testusb -a
> unknown speed	/proc/bus/usb/001/003
> /proc/bus/usb/001/003 test 0,    0.003234 secs
> /proc/bus/usb/001/003 test 1,    1.135052 secs
> /proc/bus/usb/001/003 test 2,    1.314615 secs
> /proc/bus/usb/001/003 test 3,    1.145597 secs
> /proc/bus/usb/001/003 test 4,    1.337246 secs
> /proc/bus/usb/001/003 test 5,   21.063552 secs
> /proc/bus/usb/001/003 test 6,   22.070504 secs
> /proc/bus/usb/001/003 test 7,   21.089739 secs
> /proc/bus/usb/001/003 test 8,   22.077262 secs
> /proc/bus/usb/001/003 test 9,    5.025091 secs
> /proc/bus/usb/001/003 test 10,   12.446566 secs
> /proc/bus/usb/001/003 test 11,   16.002608 secs
> /proc/bus/usb/001/003 test 12,   16.021846 secs
> /proc/bus/usb/001/003 test 13,   10.608179 secs
> /proc/bus/usb/001/003 test 14 --> 22 (error 22)
> 
> 
> b) after the "rework" patch:
> 
> # ./testusb -a
> unknown speed	/proc/bus/usb/001/003
> /proc/bus/usb/001/003 test 0,    0.003304 secs
> /proc/bus/usb/001/003 test 1,    1.167813 secs
> /proc/bus/usb/001/003 test 2,    1.345984 secs
> /proc/bus/usb/001/003 test 3,    1.171061 secs
> /proc/bus/usb/001/003 test 4,    1.348574 secs
> /proc/bus/usb/001/003 test 5,   33.349864 secs
> /proc/bus/usb/001/003 test 6,   33.353429 secs
> /proc/bus/usb/001/003 test 7,   33.338316 secs
> /proc/bus/usb/001/003 test 8,   33.348851 secs
> /proc/bus/usb/001/003 test 9,   15.947056 secs
> /proc/bus/usb/001/003 test 10,   88.002466 secs
> /proc/bus/usb/001/003 test 11,   16.008327 secs
> /proc/bus/usb/001/003 test 12,   16.004116 secs
> /proc/bus/usb/001/003 test 13,   26.069834 secs
> /proc/bus/usb/001/003 test 14 --> 22 (error 22)
> 
> 
> I've seen this before, and the reason is that the patch disables ATL and INT interrupts
> when enabling SOF interrupts. This change in isp1760-hcd.h fixes it (and I've tested it
> quite extensively too):
> 
> -#define INTERRUPT_ENABLE_MASK	(HC_INTL_INT | HC_ATL_INT)
> -#define INTERRUPT_ENABLE_SOT_MASK	(HC_SOT_INT)
> +#define INTERRUPT_ENABLE_MASK		(HC_INTL_INT | HC_ATL_INT)
> +#define INTERRUPT_ENABLE_SOT_MASK	(HC_INTL_INT | HC_ATL_INT | HC_SOT_INT)

I cross tested this change again, with my scenario. It appears that with
both Interrupt-Sources (ATL + SOT) enabled, we run very fast into a
stalled situation, where no interrupt will trigger anymore.

Since I don't trust this piece of hardware very much I would really
prefer to stick to the precise description of the errata2 issue and its
workaround from the manufacturer. It mentioned to use SOT instead of ATL.

The tests which are affected by this change seem to be sglist (tests:
5-8), control endpoint (tests: 9, 10) and ep halt related (13) which
are probably kind of unrelated problems.

> 2) I did manage to trigger "isp1760 isp1760: errata2 issue!" a couple of times during
> testing. I'm not sure if this is a problem (I didn't notice anything out of the ordinary
> afterward). If not, perhaps this printout should be removed?

How about using dev_dbg instead then?

> With the above change to isp1760-hcd.h, feel free to add
> Tested-by: Arvid Brodin <arvid.brodin@xxxxxxxx>
> to the patch.

I will wait for your opinion to the SOT vs. ATL workaround, before I
send the v2.

Regards,
Michael

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux