[CELL] spufs: change decrementer restore timing
The SPU decrementer should be restored after the LSCSA DMA has completed. Signed-off-by: Masato Noguchi <Masato.Noguchi@jp.sony.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
This commit is contained in:
parent
cf17df223c
commit
ca53da3abb
|
@ -84,7 +84,7 @@ static inline void restore_decr(void)
|
||||||
unsigned int decr_running;
|
unsigned int decr_running;
|
||||||
unsigned int decr;
|
unsigned int decr;
|
||||||
|
|
||||||
/* Restore, Step 6:
|
/* Restore, Step 6(moved):
|
||||||
* If the LSCSA "decrementer running" flag is set
|
* If the LSCSA "decrementer running" flag is set
|
||||||
* then write the SPU_WrDec channel with the
|
* then write the SPU_WrDec channel with the
|
||||||
* decrementer value from LSCSA.
|
* decrementer value from LSCSA.
|
||||||
|
@ -318,10 +318,10 @@ int main()
|
||||||
build_dma_list(lscsa_ea); /* Step 3. */
|
build_dma_list(lscsa_ea); /* Step 3. */
|
||||||
restore_upper_240kb(lscsa_ea); /* Step 4. */
|
restore_upper_240kb(lscsa_ea); /* Step 4. */
|
||||||
/* Step 5: done by 'exit'. */
|
/* Step 5: done by 'exit'. */
|
||||||
restore_decr(); /* Step 6. */
|
|
||||||
enqueue_putllc(lscsa_ea); /* Step 7. */
|
enqueue_putllc(lscsa_ea); /* Step 7. */
|
||||||
set_tag_update(); /* Step 8. */
|
set_tag_update(); /* Step 8. */
|
||||||
read_tag_status(); /* Step 9. */
|
read_tag_status(); /* Step 9. */
|
||||||
|
restore_decr(); /* moved Step 6. */
|
||||||
read_llar_status(); /* Step 10. */
|
read_llar_status(); /* Step 10. */
|
||||||
write_ppu_mb(); /* Step 11. */
|
write_ppu_mb(); /* Step 11. */
|
||||||
write_ppuint_mb(); /* Step 12. */
|
write_ppuint_mb(); /* Step 12. */
|
||||||
|
|
|
@ -93,26 +93,21 @@ static unsigned int spu_restore_code[] __attribute__((__aligned__(128))) = {
|
||||||
0x18020204,
|
0x18020204,
|
||||||
0x24000282,
|
0x24000282,
|
||||||
0x217ffa09,
|
0x217ffa09,
|
||||||
0x04000403,
|
0x04000402,
|
||||||
0x21a00803,
|
0x21a00802,
|
||||||
0x3fbe0502,
|
0x3fbe0504,
|
||||||
0x3fe30102,
|
0x3fe30204,
|
||||||
0x04000105,
|
0x21a00884,
|
||||||
0x21a00885,
|
|
||||||
0x42074002,
|
0x42074002,
|
||||||
0x21a00902,
|
0x21a00902,
|
||||||
0x40803c03,
|
0x40803c03,
|
||||||
0x21a00983,
|
0x21a00983,
|
||||||
0x04000484,
|
0x04000485,
|
||||||
0x21a00a04,
|
0x21a00a05,
|
||||||
0x40802202,
|
0x40802202,
|
||||||
0x21a00a82,
|
0x21a00a82,
|
||||||
0x30809c03,
|
0x21a00805,
|
||||||
0x34000182,
|
0x21a00884,
|
||||||
0x14004102,
|
|
||||||
0x21002782,
|
|
||||||
0x21a00804,
|
|
||||||
0x21a00885,
|
|
||||||
0x3fbf0582,
|
0x3fbf0582,
|
||||||
0x3f200102,
|
0x3f200102,
|
||||||
0x3fbe0102,
|
0x3fbe0102,
|
||||||
|
@ -120,13 +115,17 @@ static unsigned int spu_restore_code[] __attribute__((__aligned__(128))) = {
|
||||||
0x21a00902,
|
0x21a00902,
|
||||||
0x40804003,
|
0x40804003,
|
||||||
0x21a00983,
|
0x21a00983,
|
||||||
0x21a00a04,
|
0x21a00a05,
|
||||||
0x40805a02,
|
0x40805a02,
|
||||||
0x21a00a82,
|
0x21a00a82,
|
||||||
0x40800083,
|
0x40800083,
|
||||||
0x21a00b83,
|
0x21a00b83,
|
||||||
0x01a00c02,
|
0x01a00c02,
|
||||||
0x01a00d84,
|
0x30809c03,
|
||||||
|
0x34000182,
|
||||||
|
0x14004102,
|
||||||
|
0x21002082,
|
||||||
|
0x01a00d82,
|
||||||
0x3080a003,
|
0x3080a003,
|
||||||
0x34000182,
|
0x34000182,
|
||||||
0x21a00e02,
|
0x21a00e02,
|
||||||
|
@ -145,9 +144,10 @@ static unsigned int spu_restore_code[] __attribute__((__aligned__(128))) = {
|
||||||
0x3080aa03,
|
0x3080aa03,
|
||||||
0x34000182,
|
0x34000182,
|
||||||
0x21a00b02,
|
0x21a00b02,
|
||||||
|
0x4020007f,
|
||||||
0x3080ae02,
|
0x3080ae02,
|
||||||
0x3080ac04,
|
|
||||||
0x42004805,
|
0x42004805,
|
||||||
|
0x3080ac04,
|
||||||
0x34000103,
|
0x34000103,
|
||||||
0x34000202,
|
0x34000202,
|
||||||
0x1cffc183,
|
0x1cffc183,
|
||||||
|
@ -193,7 +193,7 @@ static unsigned int spu_restore_code[] __attribute__((__aligned__(128))) = {
|
||||||
0x34000182,
|
0x34000182,
|
||||||
0x21a00382,
|
0x21a00382,
|
||||||
0x4020007f,
|
0x4020007f,
|
||||||
0x327fd700,
|
0x327fde00,
|
||||||
0x409ffe02,
|
0x409ffe02,
|
||||||
0x30801203,
|
0x30801203,
|
||||||
0x40800206,
|
0x40800206,
|
||||||
|
|
Loading…
Reference in New Issue