All of lore.kernel.org
 help / color / mirror / Atom feed
From: nicolas.ferre@atmel.com (Nicolas Ferre)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] Bugfixing and improvement of the AT91 MCI driver
Date: Thu, 25 Feb 2010 10:35:12 +0100	[thread overview]
Message-ID: <4B864450.7090805@atmel.com> (raw)
In-Reply-To: <201002250859.49804.wolfgang.mues@auerswald.de>

Le 25/02/2010 08:59, Wolfgang M?es :
> Nicolas,

Hi Wolfgang,

Thanks a lot for your hard work on this driver and your patch.

> as we are working on a project regarding AT91SAM9260 and using the 
> MCI interface for SD/SDHC data transfer, we are forced to make a
> series of bugfixes and improvements to the AT91 MCI driver:
> 
> - Fix a buf in the dmabuf pointer calculation.
> - Use a fixed DMA buffer instead of allocating a DMA buffer
>   each time a data transfer is requested.
> - Fix address error in kunmap_atomic().
> - Use the dma buffer also for reads, because we found
>   that double buffering PDC was NOT working, and we need
>   a solution which allows bigger stream sizes.
> - Use dmac_flush_range() because flush_dcache_page()
>   was not OK if more than one page is transferred.
> - Extend card timeout to 2s because some cards need it.
> - Extend card detect time to 500ms (usefull if the user
>   is inserting the card gentle into the slot).
> - Fill in the mmc->max_ variables to allow the IO elevator
>   to do the job. Without these variables filled in,
>   each IO transfer is limited to 4096 bytes, which is limiting
>   transfer speed and - most important - is triggering
>   ACCELLERATED WEAR-OUT of the flash sectors of the card
>   (because the card has to do a lot of partial sector
>    erases).

A big amount of updates, indeed !

> We have tested this driver which a lot of SD and SDHC cards
> and we think the driver is ready for production use now.
> 
> For reads, we get about 90% of the expected maximum calculated
> speed (from the clock frequency). For writes, we get about 50%.


This is a precious feedback. Thanks.

> As we are using a slightly older kernel, I have ported this
> patch to latest 2.6.33 by hand. So please take care to compile
> and look for compile-time errors. I've done my very best.
> 
> Signed-off-by: Wolfgang Muees <wolfgang.mues@auerswald.de>

The problem is that we should change this big patch into a patch series
for integrating one enhancement at a time...

As you say that you are working on an old kernel release, I guess that
you may not have time to rework this patch and split it into a patch series?

In short, I see at least four patches:
- pointer calculation fixes
- timeouts and detect time
- use of dma buffer for read
- mmc->max_ variables update

So, tell me, and I will see how we can move forward together with those
very interesting enhancements...

Best regards,
-- 
Nicolas Ferre

       reply	other threads:[~2010-02-25  9:35 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <201002250859.49804.wolfgang.mues@auerswald.de>
2010-02-25  9:35 ` Nicolas Ferre [this message]
2010-02-25 14:32   ` [PATCH] Bugfixing and improvement of the AT91 MCI driver Wolfgang Mües
2010-02-24 13:53 Wolfgang Mües

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B864450.7090805@atmel.com \
    --to=nicolas.ferre@atmel.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.