Re: [PATCH V2 1/2] mmc: sdhci: Add support for setting parent clock

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

 



On Fri, Mar 17, 2017 at 09:25:31AM +0000, Jon Hunter wrote:
> It is common for SD/MMC host controllers to set the parent clock that
> drives the SD/MMC interface in order to support various operating
> speeds. Typically, this is performed by calling common clock framework
> APIs such as clk_set_rate(). The problem is that these APIs may sleep
> and must not be called from within atomic sections and therefore, these
> functions cannot be called within the existing 'set_clock' SDHCI
> operator because they are called from within the context of a spinlock.
> Add a new 'set_parent_clock' operator for the SDHCI driver that is
> called early during the SDHCI 'set_ios' before the spinlock is aquired
> to give the platform driver the opportunity to set the parent clock
> rate.
> 
> Please note that the Tegra and MSM SDHCI drivers currently appear to
> mis-use the 'set_clock' operator by calling clk_set_rate(). In the case
> of Tegra, occasionally but not always, 'scheduling while atomic' errors
> are reported (so most of the time we are getting lucky). In the of the
> MSM SDHCI driver, it is releasing and re-acquiring the spinlock which is
> bad.
> 
> Signed-off-by: Jon Hunter <jonathanh@xxxxxxxxxx>
> ---
> 
> Changes since V1:
> - Fixed idiotic copy-paste error and testing thoroughly!
> 
>  drivers/mmc/host/sdhci.c | 3 +++
>  drivers/mmc/host/sdhci.h | 2 ++
>  2 files changed, 5 insertions(+)

Reviewed-by: Thierry Reding <treding@xxxxxxxxxx>

Attachment: signature.asc
Description: PGP signature


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

  Powered by Linux