Merge "scsi: ufs-qcom: configure ufs clocks core memory"
This commit is contained in:
commit
d58d587e95
1 changed files with 23 additions and 0 deletions
|
@ -349,6 +349,28 @@ out:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ufs_qcom_force_mem_config(struct ufs_hba *hba)
|
||||||
|
{
|
||||||
|
struct ufs_clk_info *clki;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Configure the behavior of ufs clocks core and peripheral
|
||||||
|
* memory state when they are turned off.
|
||||||
|
* This configuration is required to allow retaining
|
||||||
|
* ICE crypto configuration (including keys) when
|
||||||
|
* core_clk_ice is turned off, and powering down
|
||||||
|
* non-ICE RAMs of host controller.
|
||||||
|
*/
|
||||||
|
list_for_each_entry(clki, &hba->clk_list_head, list) {
|
||||||
|
if (!strcmp(clki->name, "core_clk_ice"))
|
||||||
|
clk_set_flags(clki->clk, CLKFLAG_RETAIN_MEM);
|
||||||
|
else
|
||||||
|
clk_set_flags(clki->clk, CLKFLAG_NORETAIN_MEM);
|
||||||
|
clk_set_flags(clki->clk, CLKFLAG_NORETAIN_PERIPH);
|
||||||
|
clk_set_flags(clki->clk, CLKFLAG_PERIPH_OFF_CLEAR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static int ufs_qcom_hce_enable_notify(struct ufs_hba *hba,
|
static int ufs_qcom_hce_enable_notify(struct ufs_hba *hba,
|
||||||
enum ufs_notify_change_status status)
|
enum ufs_notify_change_status status)
|
||||||
{
|
{
|
||||||
|
@ -357,6 +379,7 @@ static int ufs_qcom_hce_enable_notify(struct ufs_hba *hba,
|
||||||
|
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case PRE_CHANGE:
|
case PRE_CHANGE:
|
||||||
|
ufs_qcom_force_mem_config(hba);
|
||||||
ufs_qcom_power_up_sequence(hba);
|
ufs_qcom_power_up_sequence(hba);
|
||||||
/*
|
/*
|
||||||
* The PHY PLL output is the source of tx/rx lane symbol
|
* The PHY PLL output is the source of tx/rx lane symbol
|
||||||
|
|
Loading…
Add table
Reference in a new issue