182182#define csr_xchg32 (val , mask , reg ) __csrxchg_w(val, mask, reg)
183183#define csr_xchg64 (val , mask , reg ) __csrxchg_d(val, mask, reg)
184184
185+ #ifdef CONFIG_32BIT
186+ #define csr_read (reg ) csr_read32(reg)
187+ #define csr_write (val , reg ) csr_write32(val, reg)
188+ #define csr_xchg (val , mask , reg ) csr_xchg32(val, mask, reg)
189+ #else
190+ #define csr_read (reg ) csr_read64(reg)
191+ #define csr_write (val , reg ) csr_write64(val, reg)
192+ #define csr_xchg (val , mask , reg ) csr_xchg64(val, mask, reg)
193+ #endif
194+
185195/* IOCSR */
186196#define iocsr_read32 (reg ) __iocsrrd_w(reg)
187197#define iocsr_read64 (reg ) __iocsrrd_d(reg)
@@ -1223,6 +1233,7 @@ static inline unsigned int get_csr_cpuid(void)
12231233 return csr_read32 (LOONGARCH_CSR_CPUID );
12241234}
12251235
1236+ #ifdef CONFIG_64BIT
12261237static inline void csr_any_send (unsigned int addr , unsigned int data ,
12271238 unsigned int data_mask , unsigned int cpu )
12281239{
@@ -1234,6 +1245,7 @@ static inline void csr_any_send(unsigned int addr, unsigned int data,
12341245 val |= ((uint64_t )data << IOCSR_ANY_SEND_BUF_SHIFT );
12351246 iocsr_write64 (val , LOONGARCH_IOCSR_ANY_SEND );
12361247}
1248+ #endif
12371249
12381250static inline unsigned int read_csr_excode (void )
12391251{
@@ -1257,22 +1269,22 @@ static inline void write_csr_pagesize(unsigned int size)
12571269
12581270static inline unsigned int read_csr_tlbrefill_pagesize (void )
12591271{
1260- return (csr_read64 (LOONGARCH_CSR_TLBREHI ) & CSR_TLBREHI_PS ) >> CSR_TLBREHI_PS_SHIFT ;
1272+ return (csr_read (LOONGARCH_CSR_TLBREHI ) & CSR_TLBREHI_PS ) >> CSR_TLBREHI_PS_SHIFT ;
12611273}
12621274
12631275static inline void write_csr_tlbrefill_pagesize (unsigned int size )
12641276{
1265- csr_xchg64 (size << CSR_TLBREHI_PS_SHIFT , CSR_TLBREHI_PS , LOONGARCH_CSR_TLBREHI );
1277+ csr_xchg (size << CSR_TLBREHI_PS_SHIFT , CSR_TLBREHI_PS , LOONGARCH_CSR_TLBREHI );
12661278}
12671279
12681280#define read_csr_asid () csr_read32(LOONGARCH_CSR_ASID)
12691281#define write_csr_asid (val ) csr_write32(val, LOONGARCH_CSR_ASID)
1270- #define read_csr_entryhi () csr_read64 (LOONGARCH_CSR_TLBEHI)
1271- #define write_csr_entryhi (val ) csr_write64 (val, LOONGARCH_CSR_TLBEHI)
1272- #define read_csr_entrylo0 () csr_read64 (LOONGARCH_CSR_TLBELO0)
1273- #define write_csr_entrylo0 (val ) csr_write64 (val, LOONGARCH_CSR_TLBELO0)
1274- #define read_csr_entrylo1 () csr_read64 (LOONGARCH_CSR_TLBELO1)
1275- #define write_csr_entrylo1 (val ) csr_write64 (val, LOONGARCH_CSR_TLBELO1)
1282+ #define read_csr_entryhi () csr_read (LOONGARCH_CSR_TLBEHI)
1283+ #define write_csr_entryhi (val ) csr_write (val, LOONGARCH_CSR_TLBEHI)
1284+ #define read_csr_entrylo0 () csr_read (LOONGARCH_CSR_TLBELO0)
1285+ #define write_csr_entrylo0 (val ) csr_write (val, LOONGARCH_CSR_TLBELO0)
1286+ #define read_csr_entrylo1 () csr_read (LOONGARCH_CSR_TLBELO1)
1287+ #define write_csr_entrylo1 (val ) csr_write (val, LOONGARCH_CSR_TLBELO1)
12761288#define read_csr_ecfg () csr_read32(LOONGARCH_CSR_ECFG)
12771289#define write_csr_ecfg (val ) csr_write32(val, LOONGARCH_CSR_ECFG)
12781290#define read_csr_estat () csr_read32(LOONGARCH_CSR_ESTAT)
@@ -1282,20 +1294,20 @@ static inline void write_csr_tlbrefill_pagesize(unsigned int size)
12821294#define read_csr_euen () csr_read32(LOONGARCH_CSR_EUEN)
12831295#define write_csr_euen (val ) csr_write32(val, LOONGARCH_CSR_EUEN)
12841296#define read_csr_cpuid () csr_read32(LOONGARCH_CSR_CPUID)
1285- #define read_csr_prcfg1 () csr_read64 (LOONGARCH_CSR_PRCFG1)
1286- #define write_csr_prcfg1 (val ) csr_write64 (val, LOONGARCH_CSR_PRCFG1)
1287- #define read_csr_prcfg2 () csr_read64 (LOONGARCH_CSR_PRCFG2)
1288- #define write_csr_prcfg2 (val ) csr_write64 (val, LOONGARCH_CSR_PRCFG2)
1289- #define read_csr_prcfg3 () csr_read64 (LOONGARCH_CSR_PRCFG3)
1290- #define write_csr_prcfg3 (val ) csr_write64 (val, LOONGARCH_CSR_PRCFG3)
1297+ #define read_csr_prcfg1 () csr_read (LOONGARCH_CSR_PRCFG1)
1298+ #define write_csr_prcfg1 (val ) csr_write (val, LOONGARCH_CSR_PRCFG1)
1299+ #define read_csr_prcfg2 () csr_read (LOONGARCH_CSR_PRCFG2)
1300+ #define write_csr_prcfg2 (val ) csr_write (val, LOONGARCH_CSR_PRCFG2)
1301+ #define read_csr_prcfg3 () csr_read (LOONGARCH_CSR_PRCFG3)
1302+ #define write_csr_prcfg3 (val ) csr_write (val, LOONGARCH_CSR_PRCFG3)
12911303#define read_csr_stlbpgsize () csr_read32(LOONGARCH_CSR_STLBPGSIZE)
12921304#define write_csr_stlbpgsize (val ) csr_write32(val, LOONGARCH_CSR_STLBPGSIZE)
12931305#define read_csr_rvacfg () csr_read32(LOONGARCH_CSR_RVACFG)
12941306#define write_csr_rvacfg (val ) csr_write32(val, LOONGARCH_CSR_RVACFG)
12951307#define write_csr_tintclear (val ) csr_write32(val, LOONGARCH_CSR_TINTCLR)
1296- #define read_csr_impctl1 () csr_read64 (LOONGARCH_CSR_IMPCTL1)
1297- #define write_csr_impctl1 (val ) csr_write64 (val, LOONGARCH_CSR_IMPCTL1)
1298- #define write_csr_impctl2 (val ) csr_write64 (val, LOONGARCH_CSR_IMPCTL2)
1308+ #define read_csr_impctl1 () csr_read (LOONGARCH_CSR_IMPCTL1)
1309+ #define write_csr_impctl1 (val ) csr_write (val, LOONGARCH_CSR_IMPCTL1)
1310+ #define write_csr_impctl2 (val ) csr_write (val, LOONGARCH_CSR_IMPCTL2)
12991311
13001312#define read_csr_perfctrl0 () csr_read64(LOONGARCH_CSR_PERFCTRL0)
13011313#define read_csr_perfcntr0 () csr_read64(LOONGARCH_CSR_PERFCNTR0)
0 commit comments