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]

 



Hello.

On 18-11-2010 13:18, 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.

It will -- the other users just won't compile as gpio_vrsel is declared inside #ifdef.

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));

WBR, Sergei
--
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