include: Remove redundant csr_read_n() and csr_write_n()

The patch removes redundant csr_read_n() and csr_write_n()
because same thing can be achieved by using __ASM_STR()
macro in csr_read() and csr_write() macros.

Signed-off-by: Anup Patel <anup.patel@wdc.com>
This commit is contained in:
Anup Patel
2018-12-31 10:25:42 +05:30
committed by Anup Patel
parent d0bbbbb8fd
commit 81e8950abe
2 changed files with 42 additions and 59 deletions

View File

@@ -140,16 +140,7 @@
#define csr_read(csr) \ #define csr_read(csr) \
({ \ ({ \
register unsigned long __v; \ register unsigned long __v; \
__asm__ __volatile__ ("csrr %0, " #csr \ __asm__ __volatile__ ("csrr %0, " __ASM_STR(csr) \
: "=r" (__v) : \
: "memory"); \
__v; \
})
#define csr_read_n(csr_num) \
({ \
register unsigned long __v; \
__asm__ __volatile__ ("csrr %0, " __ASM_STR(csr_num) \
: "=r" (__v) : \ : "=r" (__v) : \
: "memory"); \ : "memory"); \
__v; \ __v; \
@@ -158,15 +149,7 @@
#define csr_write(csr, val) \ #define csr_write(csr, val) \
({ \ ({ \
unsigned long __v = (unsigned long)(val); \ unsigned long __v = (unsigned long)(val); \
__asm__ __volatile__ ("csrw " #csr ", %0" \ __asm__ __volatile__ ("csrw " __ASM_STR(csr) ", %0" \
: : "rK" (__v) \
: "memory"); \
})
#define csr_write_n(csr_num, val) \
({ \
unsigned long __v = (unsigned long)(val); \
__asm__ __volatile__ ("csrw " __ASM_STR(csr_num) ", %0" \
: : "rK" (__v) \ : : "rK" (__v) \
: "memory"); \ : "memory"); \
}) })

View File

@@ -17,64 +17,64 @@ unsigned long csr_read_num(int csr_num)
switch (csr_num) { switch (csr_num) {
case CSR_PMPCFG0: case CSR_PMPCFG0:
ret = csr_read_n(CSR_PMPCFG0); ret = csr_read(CSR_PMPCFG0);
break; break;
case CSR_PMPCFG1: case CSR_PMPCFG1:
ret = csr_read_n(CSR_PMPCFG1); ret = csr_read(CSR_PMPCFG1);
break; break;
case CSR_PMPCFG2: case CSR_PMPCFG2:
ret = csr_read_n(CSR_PMPCFG2); ret = csr_read(CSR_PMPCFG2);
break; break;
case CSR_PMPCFG3: case CSR_PMPCFG3:
ret = csr_read_n(CSR_PMPCFG3); ret = csr_read(CSR_PMPCFG3);
break; break;
case CSR_PMPADDR0: case CSR_PMPADDR0:
ret = csr_read_n(CSR_PMPADDR0); ret = csr_read(CSR_PMPADDR0);
break; break;
case CSR_PMPADDR1: case CSR_PMPADDR1:
ret = csr_read_n(CSR_PMPADDR1); ret = csr_read(CSR_PMPADDR1);
break; break;
case CSR_PMPADDR2: case CSR_PMPADDR2:
ret = csr_read_n(CSR_PMPADDR2); ret = csr_read(CSR_PMPADDR2);
break; break;
case CSR_PMPADDR3: case CSR_PMPADDR3:
ret = csr_read_n(CSR_PMPADDR3); ret = csr_read(CSR_PMPADDR3);
break; break;
case CSR_PMPADDR4: case CSR_PMPADDR4:
ret = csr_read_n(CSR_PMPADDR4); ret = csr_read(CSR_PMPADDR4);
break; break;
case CSR_PMPADDR5: case CSR_PMPADDR5:
ret = csr_read_n(CSR_PMPADDR5); ret = csr_read(CSR_PMPADDR5);
break; break;
case CSR_PMPADDR6: case CSR_PMPADDR6:
ret = csr_read_n(CSR_PMPADDR6); ret = csr_read(CSR_PMPADDR6);
break; break;
case CSR_PMPADDR7: case CSR_PMPADDR7:
ret = csr_read_n(CSR_PMPADDR7); ret = csr_read(CSR_PMPADDR7);
break; break;
case CSR_PMPADDR8: case CSR_PMPADDR8:
ret = csr_read_n(CSR_PMPADDR8); ret = csr_read(CSR_PMPADDR8);
break; break;
case CSR_PMPADDR9: case CSR_PMPADDR9:
ret = csr_read_n(CSR_PMPADDR9); ret = csr_read(CSR_PMPADDR9);
break; break;
case CSR_PMPADDR10: case CSR_PMPADDR10:
ret = csr_read_n(CSR_PMPADDR10); ret = csr_read(CSR_PMPADDR10);
break; break;
case CSR_PMPADDR11: case CSR_PMPADDR11:
ret = csr_read_n(CSR_PMPADDR11); ret = csr_read(CSR_PMPADDR11);
break; break;
case CSR_PMPADDR12: case CSR_PMPADDR12:
ret = csr_read_n(CSR_PMPADDR12); ret = csr_read(CSR_PMPADDR12);
break; break;
case CSR_PMPADDR13: case CSR_PMPADDR13:
ret = csr_read_n(CSR_PMPADDR13); ret = csr_read(CSR_PMPADDR13);
break; break;
case CSR_PMPADDR14: case CSR_PMPADDR14:
ret = csr_read_n(CSR_PMPADDR14); ret = csr_read(CSR_PMPADDR14);
break; break;
case CSR_PMPADDR15: case CSR_PMPADDR15:
ret = csr_read_n(CSR_PMPADDR15); ret = csr_read(CSR_PMPADDR15);
break; break;
default: default:
break; break;
@@ -87,64 +87,64 @@ void csr_write_num(int csr_num, unsigned long val)
{ {
switch (csr_num) { switch (csr_num) {
case CSR_PMPCFG0: case CSR_PMPCFG0:
csr_write_n(CSR_PMPCFG0, val); csr_write(CSR_PMPCFG0, val);
break; break;
case CSR_PMPCFG1: case CSR_PMPCFG1:
csr_write_n(CSR_PMPCFG1, val); csr_write(CSR_PMPCFG1, val);
break; break;
case CSR_PMPCFG2: case CSR_PMPCFG2:
csr_write_n(CSR_PMPCFG2, val); csr_write(CSR_PMPCFG2, val);
break; break;
case CSR_PMPCFG3: case CSR_PMPCFG3:
csr_write_n(CSR_PMPCFG3, val); csr_write(CSR_PMPCFG3, val);
break; break;
case CSR_PMPADDR0: case CSR_PMPADDR0:
csr_write_n(CSR_PMPADDR0, val); csr_write(CSR_PMPADDR0, val);
break; break;
case CSR_PMPADDR1: case CSR_PMPADDR1:
csr_write_n(CSR_PMPADDR1, val); csr_write(CSR_PMPADDR1, val);
break; break;
case CSR_PMPADDR2: case CSR_PMPADDR2:
csr_write_n(CSR_PMPADDR2, val); csr_write(CSR_PMPADDR2, val);
break; break;
case CSR_PMPADDR3: case CSR_PMPADDR3:
csr_write_n(CSR_PMPADDR3, val); csr_write(CSR_PMPADDR3, val);
break; break;
case CSR_PMPADDR4: case CSR_PMPADDR4:
csr_write_n(CSR_PMPADDR4, val); csr_write(CSR_PMPADDR4, val);
break; break;
case CSR_PMPADDR5: case CSR_PMPADDR5:
csr_write_n(CSR_PMPADDR5, val); csr_write(CSR_PMPADDR5, val);
break; break;
case CSR_PMPADDR6: case CSR_PMPADDR6:
csr_write_n(CSR_PMPADDR6, val); csr_write(CSR_PMPADDR6, val);
break; break;
case CSR_PMPADDR7: case CSR_PMPADDR7:
csr_write_n(CSR_PMPADDR7, val); csr_write(CSR_PMPADDR7, val);
break; break;
case CSR_PMPADDR8: case CSR_PMPADDR8:
csr_write_n(CSR_PMPADDR8, val); csr_write(CSR_PMPADDR8, val);
break; break;
case CSR_PMPADDR9: case CSR_PMPADDR9:
csr_write_n(CSR_PMPADDR9, val); csr_write(CSR_PMPADDR9, val);
break; break;
case CSR_PMPADDR10: case CSR_PMPADDR10:
csr_write_n(CSR_PMPADDR10, val); csr_write(CSR_PMPADDR10, val);
break; break;
case CSR_PMPADDR11: case CSR_PMPADDR11:
csr_write_n(CSR_PMPADDR11, val); csr_write(CSR_PMPADDR11, val);
break; break;
case CSR_PMPADDR12: case CSR_PMPADDR12:
csr_write_n(CSR_PMPADDR12, val); csr_write(CSR_PMPADDR12, val);
break; break;
case CSR_PMPADDR13: case CSR_PMPADDR13:
csr_write_n(CSR_PMPADDR13, val); csr_write(CSR_PMPADDR13, val);
break; break;
case CSR_PMPADDR14: case CSR_PMPADDR14:
csr_write_n(CSR_PMPADDR14, val); csr_write(CSR_PMPADDR14, val);
break; break;
case CSR_PMPADDR15: case CSR_PMPADDR15:
csr_write_n(CSR_PMPADDR15, val); csr_write(CSR_PMPADDR15, val);
break; break;
default: default:
break; break;