Skip to content

Commit

Permalink
powerpc/qe: QE also shuts down on MPC8568
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Anton Vorontsov authored and Kumar Gala committed Nov 12, 2009
1 parent 0c7b87b commit 46d2293
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 14 deletions.
23 changes: 22 additions & 1 deletion arch/powerpc/include/asm/qe.h
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,28 @@ int qe_get_snum(void);
void qe_put_snum(u8 snum);
unsigned int qe_get_num_of_risc(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 */
#define qe_muram_init cpm_muram_init
Expand Down
13 changes: 0 additions & 13 deletions arch/powerpc/sysdev/qe_lib/qe.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,19 +65,6 @@ static unsigned int qe_num_of_snum;

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)
{
struct device_node *qe;
Expand Down

0 comments on commit 46d2293

Please sign in to comment.