On Sat, Jul 16, 2011 at 4:22 AM, Sergei Shtylyov <sshtyl...@mvista.com> wrote:
>
> Hello.
>
> On 16-07-2011 3:44, Vikram Pandita wrote:
>
>> From: Vikram Pandita <vikram.pand...@ti.com>
>
>> This patch enables the DMA mode1 RX support.
>> This feature is enabled based on the short_not_ok flag passed from
>> gadget drivers.
>
>> This will result in a thruput performance gain of around
>> 40% for USB mass-storage/mtp use cases.
>
>> Based on Original work by
>> Anand Gadiyar<gadi...@ti.com>  on 2.6.35 kernel
>
>> Tested on OMAP4460 Blaze board.
>
>> Signed-off-by: Moiz Sonasath <m-sonas...@ti.com>
>> Signed-off-by: Vikram Pandita <vikram.pand...@ti.com>
>> ---
>>  drivers/usb/musb/musb_gadget.c |   42 
>> ++++++++++++++++++++++++++++-----------
>>  1 files changed, 30 insertions(+), 12 deletions(-)
>
>> diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
>> index 9412410..e643ec2 100644
>> --- a/drivers/usb/musb/musb_gadget.c
>> +++ b/drivers/usb/musb/musb_gadget.c
>> @@ -624,6 +624,7 @@ void musb_g_tx(struct musb *musb, u8 epnum)
>>  /*
>>   * Context: controller locked, IRQs blocked, endpoint selected
>>   */
>> +
>
>   Why?

typo - will fix in v2

>
>>  static void rxstate(struct musb *musb, struct musb_request *req)
>>  {
>>        const u8                epnum = req->epnum;
>> @@ -714,10 +728,13 @@ static void rxstate(struct musb *musb, struct 
>> musb_request *req)
>>         * then becomes usable as a runtime "use mode 1" hint...
>>         */
>>
>> -                               csr |= MUSB_RXCSR_DMAENAB;
>> -#ifdef USE_MODE1
>> +       /* Experimental: Mode1 works with mass storage use cases
>> +        */
>> +               if (use_mode_1) {
>
>   No, you can't put the code at the arbitrary indentation levels. Please 
> indent properly.

agree. v2 will address.

>
>>                                csr |= MUSB_RXCSR_AUTOCLEAR;
>> -                               /* csr |= MUSB_RXCSR_DMAMODE; */
>> +                               musb_writew(epio, MUSB_RXCSR, csr);
>> +                               csr |= MUSB_RXCSR_DMAENAB;
>> +                               musb_writew(epio, MUSB_RXCSR, csr);
>>
>>                                /* this special sequence (enabling and then
>>                                 * disabling MUSB_RXCSR_DMAMODE) is required
>> @@ -725,26 +742,27 @@ static void rxstate(struct musb *musb, struct 
>> musb_request *req)
>>                                 */
>>                                musb_writew(epio, MUSB_RXCSR,
>>                                        csr | MUSB_RXCSR_DMAMODE);
>> -#else
>> +                               musb_writew(epio, MUSB_RXCSR, csr);
>> +
>> +               } else {
>>                                if (!musb_ep->hb_mult &&
>>                                        musb_ep->hw_ep->rx_double_buffered)
>>                                        csr |= MUSB_RXCSR_AUTOCLEAR;
>> -#endif
>> +                               csr |= MUSB_RXCSR_DMAENAB;
>>                                musb_writew(epio, MUSB_RXCSR, csr);
>> +               }
>>
>>                                if (request->actual<  request->length) {
>>                                        int transfer_size = 0;
>> -#ifdef USE_MODE1
>> +               if (use_mode_1) {
>
>   Same here.

agree. v2 will address.


>
>>                                        transfer_size = min(request->length - 
>> request->actual,
>>                                                        channel->max_len);
>> -#else
>> +                                       musb_ep->dma->desired_mode = 1;
>> +               } else {
>>                                        transfer_size = min(request->length - 
>> request->actual,
>>                                                        (unsigned)len);
>> -#endif
>> -                                       if (transfer_size <= 
>> musb_ep->packet_sz)
>> -                                               musb_ep->dma->desired_mode = 
>> 0;
>> -                                       else
>> -                                               musb_ep->dma->desired_mode = 
>> 1;
>> +                                       musb_ep->dma->desired_mode = 0;
>> +               }
>>
>>                                        use_dma = c->channel_program(
>>                                                        channel,
>
> WBR, Sergei
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to