Commit 46d22934 authored by Anton Vorontsov's avatar Anton Vorontsov Committed by Kumar Gala

powerpc/qe: QE also shuts down on MPC8568

It appears that QE shuts down on all MPC85xx CPUs (i.e. MPC8568 and
MPC8569) and thus needs reset upon resume.

So modify qe_alive_during_sleep() to account that.
Signed-off-by: default avatarAnton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
parent 0c7b87b0
...@@ -154,7 +154,28 @@ int qe_get_snum(void); ...@@ -154,7 +154,28 @@ int qe_get_snum(void);
void qe_put_snum(u8 snum); void qe_put_snum(u8 snum);
unsigned int qe_get_num_of_risc(void); unsigned int qe_get_num_of_risc(void);
unsigned int qe_get_num_of_snums(void); unsigned int qe_get_num_of_snums(void);
int qe_alive_during_sleep(void);
static inline int qe_alive_during_sleep(void)
{
/*
* MPC8568E reference manual says:
*
* "...power down sequence waits for all I/O interfaces to become idle.
* In some applications this may happen eventually without actively
* shutting down interfaces, but most likely, software will have to
* take steps to shut down the eTSEC, QUICC Engine Block, and PCI
* interfaces before issuing the command (either the write to the core
* MSR[WE] as described above or writing to POWMGTCSR) to put the
* device into sleep state."
*
* MPC8569E reference manual has a similar paragraph.
*/
#ifdef CONFIG_PPC_85xx
return 0;
#else
return 1;
#endif
}
/* we actually use cpm_muram implementation, define this for convenience */ /* we actually use cpm_muram implementation, define this for convenience */
#define qe_muram_init cpm_muram_init #define qe_muram_init cpm_muram_init
......
...@@ -65,19 +65,6 @@ static unsigned int qe_num_of_snum; ...@@ -65,19 +65,6 @@ static unsigned int qe_num_of_snum;
static phys_addr_t qebase = -1; static phys_addr_t qebase = -1;
int qe_alive_during_sleep(void)
{
static int ret = -1;
if (ret != -1)
return ret;
ret = !of_find_compatible_node(NULL, NULL, "fsl,mpc8569-pmc");
return ret;
}
EXPORT_SYMBOL(qe_alive_during_sleep);
phys_addr_t get_qe_base(void) phys_addr_t get_qe_base(void)
{ {
struct device_node *qe; struct device_node *qe;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment