1. 31 10月, 2013 6 次提交
  2. 26 8月, 2013 1 次提交
    • F
      mmc: omap_hsmmc: clear status flags before starting a new command · 7472bab2
      Francesco Lavra 提交于
      Commit 1f6b9fa4 consolidated writes to
      the STAT register in one location, moving them from omap_hsmmc_do_irq()
      to omap_hsmmc_irq(). This move has the unwanted side effect that the
      controller status flags are potentially cleared after a new command has
      been started as a consequence of reading the previous status flags.
      This means that if the new command changes the status flags before the
      IRQ routine returns, those flags may be cleared without handling the
      event which asserted them, and thus missing the event.
      Move the writing of the STAT register back in omap_hsmmc_do_irq(),
      before handling the status flags which generated the interrupt.
      Signed-off-by: NFrancesco Lavra <francescolavra.fl@gmail.com>
      Reviewed-and-Tested-by: NBalaji T K <balajitk@ti.com>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      7472bab2
  3. 25 8月, 2013 1 次提交
  4. 27 5月, 2013 4 次提交
  5. 22 3月, 2013 1 次提交
  6. 07 12月, 2012 10 次提交
  7. 29 11月, 2012 3 次提交
  8. 08 11月, 2012 2 次提交
  9. 16 10月, 2012 1 次提交
  10. 03 10月, 2012 1 次提交
    • V
      mmc: omap_hsmmc: Pass on the suspend failure to the PM core · c4c8eeb4
      Vaibhav Bedia 提交于
      In some cases mmc_suspend_host() is not able to claim the
      host and proceed with the suspend process. The core returns
      -EBUSY to the host controller driver. Unfortunately, the
      host controller driver does not pass on this information
      to the PM core and hence the system suspend process continues.
      
      	ret = mmc_suspend_host(host->mmc);
      	if (ret) {
      		host->suspended = 0;
      		if (host->pdata->resume) {
      			ret = host->pdata->resume(dev, host->slot_id);
      
      The return status from mmc_suspend_host() is overwritten by return
      status from host->pdata->resume. So the original return status is lost.
      
      In these cases the MMC core gets to an unexpected state
      during resume and multiple issues related to MMC crop up.
      1. Host controller driver starts accessing the device registers
      before the clocks are enabled which leads to a prefetch abort.
      2. A file copy thread which was launched before suspend gets
      stuck due to the host not being reclaimed during resume.
      
      To avoid such problems pass on the -EBUSY status to the PM core
      from the host controller driver. With this change, MMC core
      suspend might still fail but it does not end up making the
      system unusable. Suspend gets aborted and the user can try
      suspending the system again.
      Signed-off-by: NVaibhav Bedia <vaibhav.bedia@ti.com>
      Signed-off-by: NHebbar, Gururaja <gururaja.hebbar@ti.com>
      Acked-by: NVenkatraman S <svenkatr@ti.com>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      c4c8eeb4
  11. 11 9月, 2012 2 次提交
  12. 05 9月, 2012 5 次提交
  13. 02 9月, 2012 1 次提交
  14. 31 7月, 2012 2 次提交