4 Replies Latest reply on May 12, 2017 2:15 PM by Intel Corporation

    UHS-1 sd card not full speed after suspend (Linux 4.11)


      I have been working with the Joule and the associated dev board trying to get a UHS-1 SD card to run at full speed.  When the card is inserted, it is recognized as a SDR104 SDXC card and runs at full speed.  It is immediately suspended (change was introduced to the Linux kernel by Adrian.Hunter@intel.com on 4.12.2016 - setting MMC_CAP_AGGRESSIVE_PM).  When the card is resumed, it will only come back at low speed because the OCR bit read from the card to switch to 1.8v signaling (bit 24) is cleared because the card is already at 1.8v signaling from initialization and it was not powered down during suspend.  To debug this, I have removed the MMC_CAP_AGGRESSIVE_PM bit and since the card never suspends, I always get SDR104 speeds.  I have also ignored the bit 24 (S18A - switch to 1.8v accepted) which gave me SDR104 speeds as well after suspend. 


      So, my first question is, should the Joule SD host controller be suspending SD cards with the dev board designed the way it is?  If so, should the SD card be physically powered off while suspended?  That would mean a hardware change as the SD card is currently wired directly to V3.3.   If it should not be physically powered off, then there needs to be a kernel change to either "remember" that we are already at 1.8v or find a way to soft reset the SD card back to 3.3v so the normal init can take place.  I would be happy to help with any solution, please contact me.