[PATCH 2/3] powerpc/esdhc: add property to disable the CMD23

Kumar Gala galak at kernel.crashing.org
Thu Sep 13 22:47:33 EST 2012


On Sep 12, 2012, at 9:02 PM, Huang Changming-R66093 wrote:

>>> 
>>>> -----Original Message-----
>>>> From: Chris Ball [mailto:cjb at laptop.org]
>>>> Sent: Wednesday, September 12, 2012 4:59 AM
>>>> To: Kumar Gala
>>>> Cc: Huang Changming-R66093; linuxppc-dev at lists.ozlabs.org list;
>>>> linux- mmc at vger.kernel.org; Anton Vorontsov
>>>> Subject: Re: [PATCH 2/3] powerpc/esdhc: add property to disable the
>>>> CMD23
>>>> 
>>>> Hi,
>>>> 
>>>> On Tue, Sep 11 2012, Kumar Gala wrote:
>>>>> thanks for the info.  Do you know what's required on controller side
>>>>> to handle cards that support CMD23?
>>>>> 
>>>>> I'm trying to figure out if older controller's on FSL SoCs are
>>>>> missing some feature to allow CMD23 to work (vs Auto-CMD23).
>>>> 
>>>> It seems plausible that it's just not implemented on these controllers.
>>>> It's a little strange, since the command's been specified for so long
>>>> and we haven't seen any other controllers with problems.  The patch
>>>> would be correct if this is true.
>>>> 
>>> 
>>> I didn't find any description about it, but after testing on FSL
>> silicones, I got this result:
>>> Some silicones support this command, and some silicones don't support
>> it, which will cause I/O error.
>> 
>> Can you list out which SoCs support it and which don't.  Having this list
>> will be useful in understanding which controller versions supported it.
>> 
> P1020, p1021, p1022, p1024, p1015 and p4080 can't support it.
> Mpc8536, p2020, and the other current DPAA silicon (e.g. p5020, p3041) support it.

Based on this, why don't we use the HOSTVER register to detect instead of device tree:


#define FSL_SDHC_VER_1_0	0x00
#define FSL_SDHC_VER_1_1	0x01
#define FSL_SDHC_VER_2_0	0x10
#define FSL_SDHC_VER_2_1	0x11
#define FSL_SDHC_VER_2_2	0x12
#define FSL_SDHC_VER_2_3	0x13

unsigned int vendor_version;

vendor_version = sdhci_readw(host, SDHCI_HOST_VERSION);
vendor_version = (vendor_version & SDHCI_VENDOR_VER_MASK) >> SDHCI_VENDOR_VER_SHIFT;

if ((vendor_version == FSL_SDHC_VER_1_1) || (vendor_version == FSL_SDHC_VER_2_2))
	host->quirks2 |= SDHCI_QUIRK2_HOST_NO_CMD23;

- k





More information about the Linuxppc-dev mailing list