Re: [RFC 3/4] mmc: sdhci-esdhc-mcf: do not use readl()/writel() on ColdFire
From: Greg Ungerer
Date: Mon May 18 2026 - 03:21:24 EST
Hi Angelo,
On 18/5/26 05:00, Angelo Dureghello wrote:
Hi Greg,[snip]
On Thu, May 07, 2026 at 12:26:46AM +1000, Greg Ungerer wrote:
From: Greg Ungerer <gerg@xxxxxxxxxxxxxx>
The implementation of the readX() and writeX() family of IO access
functions is non-standard on ColdFire platforms. They check the supplied
IO address and will return either big or little endian results based on
that check. This is non-standard, they are expected to always return
little-endian byte ordered data. Unfortunately this behavior also means
that ioreadX()/iowroteX() and their big-endian counter parts
ioreadXbe()/iowriteXbe() are wrong. This is now in the process of being
cleaned up and fixed.
Change the use of the readX() and writeX() access functions in this driver
to use the recently defined specific ColdFire internal SoC hardware IO
access functions mcf_read8()/mcf_read16()/mcf_read32() and
mcf_write8()/mcf_write16()/mcf_write32().
There is no functional change to the driver. Though it does have the
effect of making the IO access slightly more efficient, since there is
no longer a need to do the address check at every register access.
Signed-off-by: Greg Ungerer <gerg@xxxxxxxxxxxxxx>
Tested this now on stmark2, sdcard mount/umount/read/write/erase works
as usual. Thanks.
Acked-by: Angelo Dureghello <adureghello@xxxxxxxxxxxx>
Tested-by: Angelo Dureghello <adureghello@xxxxxxxxxxxx>
Fantastic, thanks testing.
Regards
Greg