Skip site navigation (1)Skip section navigation (2)
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>