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: Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
committed by
Kumar Gala
parent
0c7b87b085
commit
46d2293470
@@ -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;
|
|||||||
|
|
||||||
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;
|
||||||
|
Reference in New Issue
Block a user