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]

 



2010/11/18 Bob Liu <lliubbo@xxxxxxxxx>:
> 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);

Are you sure full speed of musb on bfin is OK if you still do that above?
Just now someone has complained the full speed issue on musb of omap,
which is caused by this.

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



-- 
Lei Ming
--
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