Re: [PATCH 04/11] USB: musb: gadget: fix MUSB_TXMAXP and MUSB_RXMAXP configuration

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

 



On Thu, Nov 18, 2010 at 4:34 PM, Felipe Balbi <balbi@xxxxxx> wrote:
> Hi,
>
> On Tue, Nov 09, 2010 at 07:14:36AM -0600, Bob Liu wrote:
>>
>> According to our hardware reference manuel, big changes are needed to
>> support double buffer(eg. it depends on SOF interrupt and rxcsr
>> fifofull bit etc). We need more time to work on these.
>
> BTW, do you have the registers RxDPktBufDis and TxDPktBufDis ?
>

It's unlucky our hardware reference manuel have not that two registers.
And it said double buffer is auto enabled when max packet size is less
than half the actual FIFO size.

> In my manual they are located at offsets 0x340 and 0x342 respectively.
> If you set those registers to 0x7fff and you would disable double packet
> buffering for all rx and tx endpoints.
>
> can you try that ?
>

We just want to use single buffer currently, is there any solution ?

Patches like below is okay?
Because gpio_vrsel is only defined on blackfin platform, it willn't
affect other users.
And after we have enabled double buffer on our platform successfully i
will remove it just like Ming did in this patch.

==
--- a/musb_gadget.c
+++ b/musb_gadget.c
@@ -919,7 +919,7 @@ static int musb_gadget_enable(struct usb_ep *ep,
                 * to disable double buffering mode. Currently, It
seems that double
                 * buffering has problem if musb RTL revision number < 2.0.
                 */
-               if (musb->hwvers < MUSB_HWVERS_2000)
+               if (musb->hwvers < MUSB_HWVERS_2000 && musb->config->gpio_vrsel)
                        musb_writew(regs, MUSB_TXMAXP, hw_ep->max_packet_sz_tx);
                else
                        musb_writew(regs, MUSB_TXMAXP,
musb_ep->packet_sz | (musb_ep->hb_mult << 11));
@@ -958,7 +958,7 @@ static int musb_gadget_enable(struct usb_ep *ep,
                /* Set RXMAXP with the FIFO size of the endpoint
                 * to disable double buffering mode.
                 */
-               if (musb->hwvers < MUSB_HWVERS_2000)
+               if (musb->hwvers < MUSB_HWVERS_2000 && musb->config->gpio_vrsel)
                        musb_writew(regs, MUSB_RXMAXP, hw_ep->max_packet_sz_rx);
                else
                        musb_writew(regs, MUSB_RXMAXP,
musb_ep->packet_sz | (musb_ep->hb_mult << 11));

-- 
Thanks,
--Bob
--
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