Re: [PATCH] omap: hsmmc: fix ocr mask usage
On Mon, Feb 21, 2011 at 9:40 PM, Kishore Kadiyala wrote: > On Mon, Feb 21, 2011 at 11:37 AM, Anand Gadiyar wrote: >> The OMAP HSMMC driver uses an ocr_mask to determine the >> list of voltages supported by the card. It populates this >> mask based on the list of voltages supported by the >> regulator that supplies the voltage. >> >> Commit 64be97822b (omap4 hsmmc: Update ocr mask for MMC2 for >> regulator to use) passed a fixed ocr_mask from the OMAP4 SDP >> board file to limit the voltage to 2.9-3.0 Volts, and updated >> the driver to use this mask if provided, instead of using the >> regulator's supported voltages. >> >> However the commit is buggy - the ocr_mask is overridden >> by the regulator's capabilities anyway. Fix this. >> >> (The bug shows up when a system-wide suspend is attempted >> on the OMAP4 SDP/Blaze platforms. The eMMC card comes up >> at 3V, but drops to 1.65V after the system resumes). >> >> Signed-off-by: Anand Gadiyar > > Tested this patch on OMAP4430SDP & OMAP4 Blaze. > > Tested-by: Kishore Kadiyala > Acked-by: Balaji T K Can you this patch be queued? >> Cc: Kishore Kadiyala >> Cc: Tony Lindgren >> Cc: Madhusudhan Chikkature >> Cc: Chris Ball >> --- >> Tony, Chris, >> >> This is only a partial fix. It fixes the obvious bug introduced >> in the commit I noted above, however it is not the final >> fix. I'm not convinced the way the regulators are handled >> in this driver is correct - I'm still studying the code and >> will come up with a proper fix later. >> >> However, this does fix a real bug and I believe the bug is >> obvious. Would be nice to get this into the -rc series if >> we still can. >> >> - Anand >> >> drivers/mmc/host/omap_hsmmc.c | 1 - >> 1 file changed, 1 deletion(-) >> >> Index: linux-2.6/drivers/mmc/host/omap_hsmmc.c >> === >> --- linux-2.6.orig/drivers/mmc/host/omap_hsmmc.c >> +++ linux-2.6/drivers/mmc/host/omap_hsmmc.c >> @@ -413,7 +413,6 @@ static int omap_hsmmc_reg_get(struct oma >> return -EINVAL; >> } >> } >> - mmc_slot(host).ocr_mask = mmc_regulator_get_ocrmask(reg); >> >> /* Allow an aux regulator */ >> reg = regulator_get(host->dev, "vmmc_aux"); >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in >> the body of a message to majord...@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > -- > To unsubscribe from this list: send the line "unsubscribe linux-mmc" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] omap: hsmmc: fix ocr mask usage
On Mon, Feb 21, 2011 at 11:37 AM, Anand Gadiyar wrote: > The OMAP HSMMC driver uses an ocr_mask to determine the > list of voltages supported by the card. It populates this > mask based on the list of voltages supported by the > regulator that supplies the voltage. > > Commit 64be97822b (omap4 hsmmc: Update ocr mask for MMC2 for > regulator to use) passed a fixed ocr_mask from the OMAP4 SDP > board file to limit the voltage to 2.9-3.0 Volts, and updated > the driver to use this mask if provided, instead of using the > regulator's supported voltages. > > However the commit is buggy - the ocr_mask is overridden > by the regulator's capabilities anyway. Fix this. > > (The bug shows up when a system-wide suspend is attempted > on the OMAP4 SDP/Blaze platforms. The eMMC card comes up > at 3V, but drops to 1.65V after the system resumes). > > Signed-off-by: Anand Gadiyar Tested this patch on OMAP4430SDP & OMAP4 Blaze. Tested-by: Kishore Kadiyala > Cc: Kishore Kadiyala > Cc: Tony Lindgren > Cc: Madhusudhan Chikkature > Cc: Chris Ball > --- > Tony, Chris, > > This is only a partial fix. It fixes the obvious bug introduced > in the commit I noted above, however it is not the final > fix. I'm not convinced the way the regulators are handled > in this driver is correct - I'm still studying the code and > will come up with a proper fix later. > > However, this does fix a real bug and I believe the bug is > obvious. Would be nice to get this into the -rc series if > we still can. > > - Anand > > drivers/mmc/host/omap_hsmmc.c | 1 - > 1 file changed, 1 deletion(-) > > Index: linux-2.6/drivers/mmc/host/omap_hsmmc.c > === > --- linux-2.6.orig/drivers/mmc/host/omap_hsmmc.c > +++ linux-2.6/drivers/mmc/host/omap_hsmmc.c > @@ -413,7 +413,6 @@ static int omap_hsmmc_reg_get(struct oma > return -EINVAL; > } > } > - mmc_slot(host).ocr_mask = mmc_regulator_get_ocrmask(reg); > > /* Allow an aux regulator */ > reg = regulator_get(host->dev, "vmmc_aux"); > -- > To unsubscribe from this list: send the line "unsubscribe linux-mmc" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] omap: hsmmc: fix ocr mask usage
The OMAP HSMMC driver uses an ocr_mask to determine the list of voltages supported by the card. It populates this mask based on the list of voltages supported by the regulator that supplies the voltage. Commit 64be97822b (omap4 hsmmc: Update ocr mask for MMC2 for regulator to use) passed a fixed ocr_mask from the OMAP4 SDP board file to limit the voltage to 2.9-3.0 Volts, and updated the driver to use this mask if provided, instead of using the regulator's supported voltages. However the commit is buggy - the ocr_mask is overridden by the regulator's capabilities anyway. Fix this. (The bug shows up when a system-wide suspend is attempted on the OMAP4 SDP/Blaze platforms. The eMMC card comes up at 3V, but drops to 1.65V after the system resumes). Signed-off-by: Anand Gadiyar Cc: Kishore Kadiyala Cc: Tony Lindgren Cc: Madhusudhan Chikkature Cc: Chris Ball --- Tony, Chris, This is only a partial fix. It fixes the obvious bug introduced in the commit I noted above, however it is not the final fix. I'm not convinced the way the regulators are handled in this driver is correct - I'm still studying the code and will come up with a proper fix later. However, this does fix a real bug and I believe the bug is obvious. Would be nice to get this into the -rc series if we still can. - Anand drivers/mmc/host/omap_hsmmc.c |1 - 1 file changed, 1 deletion(-) Index: linux-2.6/drivers/mmc/host/omap_hsmmc.c === --- linux-2.6.orig/drivers/mmc/host/omap_hsmmc.c +++ linux-2.6/drivers/mmc/host/omap_hsmmc.c @@ -413,7 +413,6 @@ static int omap_hsmmc_reg_get(struct oma return -EINVAL; } } - mmc_slot(host).ocr_mask = mmc_regulator_get_ocrmask(reg); /* Allow an aux regulator */ reg = regulator_get(host->dev, "vmmc_aux"); -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html