On Thu, 31 May 2018, Kai-Heng Feng wrote: > >> Perhaps what is needed is to use polling, but only when the mmc host > >> has been runtime resumed. > > > > That sounds right. I have no idea how to tell the MMC core to do this, > > but it should make everything work correctly. > > Maybe pm_suspend_ignore_children() a better choice here? No, I really don't think so. pm_suspend_ignore_children() tells the PM core that it's okay to put the parent rtsx_usb device into low power while keeping the children rtsx_usb_sdmmc and rtsx_usb_ms running normally. That wouldn't make any sense; if the USB link was runtime-suspended then the lower-level drivers would not be able to communicate with the device. > rtsx_usb_sdmmc and rtsx_usb_ms can be considered as "logic" devices of > rtsx_usb. > Both of them don't need any special power management other then keep the > parent powered up. How the runtime power management works here is up to you (or to whoever writes the code). Just bear in mind that the parent rtsx_usb will get put into low power mode unless there is some reason not to. If a card is present in the reader, that would be a good reason -- but the appropriate driver has to tell the PM core somehow. Alan Stern -- 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