]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-powerpc/spu_csa.h
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
[linux-2.6-omap-h63xx.git] / include / asm-powerpc / spu_csa.h
index d1d537de4f5c54fdaa44a4e7b2d6ab0d2c9c1ea2..bdbf906a767f0ef75201514681a387ad7f291dc9 100644 (file)
@@ -22,6 +22,7 @@
 
 #ifndef _SPU_CSA_H_
 #define _SPU_CSA_H_
+#ifdef __KERNEL__
 
 /*
  * Total number of 128-bit registers.
@@ -85,12 +86,18 @@ struct spu_lscsa {
        struct spu_reg128 event_mask;
        struct spu_reg128 srr0;
        struct spu_reg128 stopped_status;
-       struct spu_reg128 pad[119];     /* 'ls' must be page-aligned. */
-       unsigned char ls[LS_SIZE];
-};
 
-#ifdef __KERNEL__
+       /*
+        * 'ls' must be page-aligned on all configurations.
+        * Since we don't want to rely on having the spu-gcc
+        * installed to build the kernel and this structure
+        * is used in the SPU-side code, make it 64k-page
+        * aligned for now.
+        */
+       unsigned char ls[LS_SIZE] __attribute__((aligned(65536)));
+};
 
+#ifndef __SPU__
 /*
  * struct spu_problem_collapsed - condensed problem state area, w/o pads.
  */
@@ -144,7 +151,6 @@ struct spu_priv1_collapsed {
        u64 mfc_fir_chkstp_enable_RW;
        u64 smf_sbi_signal_sel;
        u64 smf_ato_signal_sel;
-       u64 mfc_sdr_RW;
        u64 tlb_index_hint_RO;
        u64 tlb_index_W;
        u64 tlb_vpn_RW;
@@ -200,7 +206,6 @@ struct spu_priv2_collapsed {
        u64 spu_chnlcnt_RW;
        u64 spu_chnldata_RW;
        u64 spu_cfg_RW;
-       u64 spu_pm_trace_tag_status_RW;
        u64 spu_tag_status_query_RW;
        u64 spu_cmd_buf1_RW;
        u64 spu_cmd_buf2_RW;
@@ -242,6 +247,7 @@ struct spu_state {
        unsigned long suspend_time;
        u64 slb_esid_RW[8];
        u64 slb_vsid_RW[8];
+       spinlock_t register_lock;
 };
 
 extern void spu_init_csa(struct spu_state *csa);
@@ -251,6 +257,7 @@ extern int spu_restore(struct spu_state *new, struct spu *spu);
 extern int spu_switch(struct spu_state *prev, struct spu_state *new,
                      struct spu *spu);
 
+#endif /* !__SPU__ */
 #endif /* __KERNEL__ */
 #endif /* !__ASSEMBLY__ */
 #endif /* _SPU_CSA_H_ */