Date: Thu, 22 Mar 2018 13:07:59 +0100 From: Hans Petter Selasky <hps@selasky.org> To: Andrew Turner <andrew@fubar.geek.nz> Cc: Kyle Evans <kevans@freebsd.org>, src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r331306 - head/sys/dev/usb/controller Message-ID: <e34763f5-c77f-012d-6ba9-562c46a239a0@selasky.org> In-Reply-To: <8722C20F-9581-4C58-98D8-86FD0016BC6B@fubar.geek.nz> References: <201803211517.w2LFHsHf007714@repo.freebsd.org> <CACNAnaHCf8paMB3RP1SSnP45xPTSKEcJp-qKyKievLE0E_svWA@mail.gmail.com> <b8627a61-adde-a9b4-8cd1-af9435b9ea92@selasky.org> <898DF1A6-F1D2-474C-92B5-12F65DC71A40@fubar.geek.nz> <00c43a84-893e-cbd8-ff6d-f7a551ae3beb@selasky.org> <8722C20F-9581-4C58-98D8-86FD0016BC6B@fubar.geek.nz>
next in thread | previous in thread | raw e-mail | index | archive | help
On 03/22/18 13:02, Andrew Turner wrote:
>> On 21 Mar 2018, at 21:54, Hans Petter Selasky <hps@selasky.org> wrote:
>>
>> On 03/21/18 17:45, Andrew Turner wrote:
>>>> On 21 Mar 2018, at 15:37, Hans Petter Selasky <hps@selasky.org> wrote:
>>>>
>>>> On 03/21/18 16:24, Kyle Evans wrote:
>>>>>> + {
>>>>>> + .ep_end = 7,
>>>>>> + .ep_fifosz_shift = 9,
>>>>>> + .ep_fifosz_reg = MUSB2_VAL_FIFOSZ_512 | MUSB2_MASK_FIFODB,
>>>>>> + },
>>>>> I'm afraid I'm not familiar with this- why did .ep_fifosz_shift for
>>>>> this case drop to 9? frx = 10 in the temp < 8 case in the removals of
>>>>> the following hunks. Mostly curious because the others seemed to stay
>>>>> the same.
>>>>
>>>> Hi Andrew,
>>>>
>>>> It might be an idea to keep the fifosz_shift at 10, else high-speed BULK traffic won't be double buffered, and this might affect performance.
>>> Should the endpoint 1 size also be fixed? The register has it at 4k, but it wasn’t an 8k buffer.
>>
>> No, because High-Speed BULK will only use 512 byte packets, and 4k is reserved for isochronous, which doesn't need double buffering at the moment.
>
> Ok, in that case should we remove the double buffer flag on endpoint 1? The Linux driver seems to always use a 512 byte buffer there, and always doubles the offset increment when the double buffer flag is set.
Hi Andrew,
That's a good question. I think you should leave the double buffer flag
on for this register. Double buffering is then later on re-programmed by:
> static void
> musbotg_clear_stall_sub(struct musbotg_softc *sc, uint16_t wMaxPacket,
> uint8_t ep_no, uint8_t ep_type, uint8_t ep_dir)
If you look at the writes to MUSB2_REG_TXDBDIS and MUSB2_REG_RXDBDIS.
I think those registers override the "master" register. You might want
to check the PRM to be absolutely sure.
--HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?e34763f5-c77f-012d-6ba9-562c46a239a0>
