mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-03 23:58:05 +00:00
soc: ti: pm33xx: Move the am33xx_push_sram_idle to the top
Move the am33xx_push_sram_idle function to the top as a preparation for rtc+ddr mode as the function will be called by multiple functions currently present before it. No functional changes. Signed-off-by: Keerthy <j-keerthy@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
44c22a2d12
commit
1c6c035450
1 changed files with 50 additions and 50 deletions
|
@ -49,6 +49,56 @@ static u32 sram_suspend_address(unsigned long addr)
|
||||||
AMX3_PM_SRAM_SYMBOL_OFFSET(addr));
|
AMX3_PM_SRAM_SYMBOL_OFFSET(addr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int am33xx_push_sram_idle(void)
|
||||||
|
{
|
||||||
|
struct am33xx_pm_ro_sram_data ro_sram_data;
|
||||||
|
int ret;
|
||||||
|
u32 table_addr, ro_data_addr;
|
||||||
|
void *copy_addr;
|
||||||
|
|
||||||
|
ro_sram_data.amx3_pm_sram_data_virt = ocmcram_location_data;
|
||||||
|
ro_sram_data.amx3_pm_sram_data_phys =
|
||||||
|
gen_pool_virt_to_phys(sram_pool_data, ocmcram_location_data);
|
||||||
|
ro_sram_data.rtc_base_virt = pm_ops->get_rtc_base_addr();
|
||||||
|
|
||||||
|
/* Save physical address to calculate resume offset during pm init */
|
||||||
|
am33xx_do_wfi_sram_phys = gen_pool_virt_to_phys(sram_pool,
|
||||||
|
ocmcram_location);
|
||||||
|
|
||||||
|
am33xx_do_wfi_sram = sram_exec_copy(sram_pool, (void *)ocmcram_location,
|
||||||
|
pm_sram->do_wfi,
|
||||||
|
*pm_sram->do_wfi_sz);
|
||||||
|
if (!am33xx_do_wfi_sram) {
|
||||||
|
dev_err(pm33xx_dev,
|
||||||
|
"PM: %s: am33xx_do_wfi copy to sram failed\n",
|
||||||
|
__func__);
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
|
||||||
|
table_addr =
|
||||||
|
sram_suspend_address((unsigned long)pm_sram->emif_sram_table);
|
||||||
|
ret = ti_emif_copy_pm_function_table(sram_pool, (void *)table_addr);
|
||||||
|
if (ret) {
|
||||||
|
dev_dbg(pm33xx_dev,
|
||||||
|
"PM: %s: EMIF function copy failed\n", __func__);
|
||||||
|
return -EPROBE_DEFER;
|
||||||
|
}
|
||||||
|
|
||||||
|
ro_data_addr =
|
||||||
|
sram_suspend_address((unsigned long)pm_sram->ro_sram_data);
|
||||||
|
copy_addr = sram_exec_copy(sram_pool, (void *)ro_data_addr,
|
||||||
|
&ro_sram_data,
|
||||||
|
sizeof(ro_sram_data));
|
||||||
|
if (!copy_addr) {
|
||||||
|
dev_err(pm33xx_dev,
|
||||||
|
"PM: %s: ro_sram_data copy to sram failed\n",
|
||||||
|
__func__);
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SUSPEND
|
#ifdef CONFIG_SUSPEND
|
||||||
static int am33xx_pm_suspend(suspend_state_t suspend_state)
|
static int am33xx_pm_suspend(suspend_state_t suspend_state)
|
||||||
{
|
{
|
||||||
|
@ -219,56 +269,6 @@ static int am33xx_pm_alloc_sram(void)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int am33xx_push_sram_idle(void)
|
|
||||||
{
|
|
||||||
struct am33xx_pm_ro_sram_data ro_sram_data;
|
|
||||||
int ret;
|
|
||||||
u32 table_addr, ro_data_addr;
|
|
||||||
void *copy_addr;
|
|
||||||
|
|
||||||
ro_sram_data.amx3_pm_sram_data_virt = ocmcram_location_data;
|
|
||||||
ro_sram_data.amx3_pm_sram_data_phys =
|
|
||||||
gen_pool_virt_to_phys(sram_pool_data, ocmcram_location_data);
|
|
||||||
ro_sram_data.rtc_base_virt = pm_ops->get_rtc_base_addr();
|
|
||||||
|
|
||||||
/* Save physical address to calculate resume offset during pm init */
|
|
||||||
am33xx_do_wfi_sram_phys = gen_pool_virt_to_phys(sram_pool,
|
|
||||||
ocmcram_location);
|
|
||||||
|
|
||||||
am33xx_do_wfi_sram = sram_exec_copy(sram_pool, (void *)ocmcram_location,
|
|
||||||
pm_sram->do_wfi,
|
|
||||||
*pm_sram->do_wfi_sz);
|
|
||||||
if (!am33xx_do_wfi_sram) {
|
|
||||||
dev_err(pm33xx_dev,
|
|
||||||
"PM: %s: am33xx_do_wfi copy to sram failed\n",
|
|
||||||
__func__);
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
table_addr =
|
|
||||||
sram_suspend_address((unsigned long)pm_sram->emif_sram_table);
|
|
||||||
ret = ti_emif_copy_pm_function_table(sram_pool, (void *)table_addr);
|
|
||||||
if (ret) {
|
|
||||||
dev_dbg(pm33xx_dev,
|
|
||||||
"PM: %s: EMIF function copy failed\n", __func__);
|
|
||||||
return -EPROBE_DEFER;
|
|
||||||
}
|
|
||||||
|
|
||||||
ro_data_addr =
|
|
||||||
sram_suspend_address((unsigned long)pm_sram->ro_sram_data);
|
|
||||||
copy_addr = sram_exec_copy(sram_pool, (void *)ro_data_addr,
|
|
||||||
&ro_sram_data,
|
|
||||||
sizeof(ro_sram_data));
|
|
||||||
if (!copy_addr) {
|
|
||||||
dev_err(pm33xx_dev,
|
|
||||||
"PM: %s: ro_sram_data copy to sram failed\n",
|
|
||||||
__func__);
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int am33xx_pm_probe(struct platform_device *pdev)
|
static int am33xx_pm_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct device *dev = &pdev->dev;
|
struct device *dev = &pdev->dev;
|
||||||
|
|
Loading…
Reference in a new issue