Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36e11ab2 authored by Steven Miao's avatar Steven Miao Committed by Mike Frysinger
Browse files

Blackfin: pm: drop irq save/restore in standby and suspend to mem callback



Since linux-2.6.31, the kernel suspend framework will do disable_irq/enable_irq,
so save/restore irq in standby and suspend to mem callback should be dropped.
Otherwise the common code notices things are enabled and complains.

Signed-off-by: default avatarSteven Miao <realmz6@gmail.com>
Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
parent 527a1a83
Loading
Loading
Loading
Loading
+0 −10
Original line number Original line Diff line number Diff line
@@ -23,9 +23,6 @@


void bfin_pm_suspend_standby_enter(void)
void bfin_pm_suspend_standby_enter(void)
{
{
	unsigned long flags;

	flags = hard_local_irq_save();
	bfin_pm_standby_setup();
	bfin_pm_standby_setup();


#ifdef CONFIG_PM_BFIN_SLEEP_DEEPER
#ifdef CONFIG_PM_BFIN_SLEEP_DEEPER
@@ -55,8 +52,6 @@ void bfin_pm_suspend_standby_enter(void)
#else
#else
	bfin_write_SIC_IWR(IWR_DISABLE_ALL);
	bfin_write_SIC_IWR(IWR_DISABLE_ALL);
#endif
#endif

	hard_local_irq_restore(flags);
}
}


int bf53x_suspend_l1_mem(unsigned char *memptr)
int bf53x_suspend_l1_mem(unsigned char *memptr)
@@ -127,7 +122,6 @@ static void flushinv_all_dcache(void)


int bfin_pm_suspend_mem_enter(void)
int bfin_pm_suspend_mem_enter(void)
{
{
	unsigned long flags;
	int wakeup, ret;
	int wakeup, ret;


	unsigned char *memptr = kmalloc(L1_CODE_LENGTH + L1_DATA_A_LENGTH
	unsigned char *memptr = kmalloc(L1_CODE_LENGTH + L1_DATA_A_LENGTH
@@ -149,12 +143,9 @@ int bfin_pm_suspend_mem_enter(void)
	wakeup |= GPWE;
	wakeup |= GPWE;
#endif
#endif


	flags = hard_local_irq_save();

	ret = blackfin_dma_suspend();
	ret = blackfin_dma_suspend();


	if (ret) {
	if (ret) {
		hard_local_irq_restore(flags);
		kfree(memptr);
		kfree(memptr);
		return ret;
		return ret;
	}
	}
@@ -178,7 +169,6 @@ int bfin_pm_suspend_mem_enter(void)
	bfin_gpio_pm_hibernate_restore();
	bfin_gpio_pm_hibernate_restore();
	blackfin_dma_resume();
	blackfin_dma_resume();


	hard_local_irq_restore(flags);
	kfree(memptr);
	kfree(memptr);


	return 0;
	return 0;