Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Nov 2015 13:22:18 +0100
From:      Sebastian Huber <sebastian.huber@embedded-brains.de>
To:        Hans Petter Selasky <hps@selasky.org>, freebsd-usb@freebsd.org
Subject:   Re: [PATCH] dwc_otg: Reduce interrupt load
Message-ID:  <5637557A.1070007@embedded-brains.de>
In-Reply-To: <56338480.3090607@selasky.org>
References:  <1446212307-4660-1-git-send-email-sebastian.huber@embedded-brains.de> <56338480.3090607@selasky.org>

next in thread | previous in thread | raw e-mail | index | archive | help


On 30/10/15 15:53, Hans Petter Selasky wrote:
> On 10/30/15 14:38, Sebastian Huber wrote:
>> Tested on an Altera Cyclone V development kit.  Here the controller ha=
s
>> 16 host channels.  This change significantly reduced the time spent in
>> the dwc_otg_interrupt_poll_locked() function.
>
> Hi,
>
> Thank you for your optimisation patch:
>
> https://svnweb.freebsd.org/changeset/base/290195

Thanks.

>
>
> How does the DWC OTG driver from FreeBSD work with your setup?=20

After an update of the USB stack from 9.3 to current it worked out of=20
the box. Thanks a lot for your great USB stack!

It seems that this driver doesn't support DMA. I see a quite high CPU=20
utilization in this area:

static void
dwc_otg_interrupt_poll_locked(struct dwc_otg_softc *sc)
{
[...]
         if (sc->sc_last_rx_status !=3D 0) {
[...]
             temp =3D GRXSTSRD_BCNT_GET(
                 sc->sc_last_rx_status);
             ep_no =3D GRXSTSRD_CHNUM_GET(
                 sc->sc_last_rx_status);

             /* receive data, if any */
             if (temp !=3D 0) {
                 DPRINTF("Reading %d bytes from ep %d\n", temp, ep_no);
                 bus_space_read_region_4(sc->sc_io_tag, sc->sc_io_hdl,
                     DOTG_DFIFO(ep_no),
                     sc->sc_rx_bounce_buffer, (temp + 3) / 4);
             }

--=20
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine gesch=E4ftliche Mitteilung im Sinne des EHUG.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5637557A.1070007>