Re: [PATCH] mmc: core: Set correct bus mode before card init

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Aaron,

On 09/16/2011 04:05 AM, Aaron Lu wrote:
Hi Ulf,

I'm not familiar with mmc, but I've some questions on sd below.

On Thu, Sep 15, 2011 at 05:50:38PM +0200, Ulf Hansson wrote:
Earlier all cards where initiated with bus mode set as OPENDRAIN, and then
later switched to PUSHPULL. According to the MMC/SD/SDIO specifications only
MMC cards use OPENDRAIN during init. For both SD and SDIO the bus mode shall
be PUSHPULL before attempting to init the card.
AFAIK, there is no open drain mode in sd, and the sd host controller
actually does not care about this setting(sdhci_set_ios does not
manipulate bus_mode stored in ios).

We are currently using a ARM PL18X derivative with added SDIO support meaning we have one host controller for both MMC, SD and SDIO. This means that we have to take action on the open drain bit in our host driver (mmci.c) and set it as indicated by the framework. During card detection (and likewise during reinitialization after being powered off due to power save features), the former implementation actually sets open drain as default, meaning that open drain is set during early card detection of both MMC, SD and SDIO cards/devices, and then later switched to push pull which we believe is not correct for SD and SDIO.

The consequence of having incorrect bus mode can lead to not being able
to detect the card. Therefore the default behavior have now been changed to
PUSHPULL in mmc_power_up, and will only be temporarily switched when trying
to attach or init a MMC card.
Do you see any sd cards that failed to be detected due to the incorrect
bus_mode setting?

We have not seen any SD card fail due to this, but the SDIO device we have connected (WLAN) does fail to be detected if bus mode is incorrectly set to open drain during card detect (mmc_rescan).


Anyway, your patch removed an unnecessary call to mmc_set_bus_mode which
should have no effect if the underlying controller is sdhci.

Great, thanks for your feeback! :o)

Best Regards

Stefan Nilsson
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux