MIPS: Netlogic: Fix nlm_read_c2_status() definition
The sel argument os nlm_read_c2_status() was not used and the macro returned the sel 0 in all cases. Fix this by defining two macros: nlm_read_c2_status0() and nlm_read_c2_status1() to return the two status registers. Add functions to write to the status registers as well. Signed-off-by: Jayachandran C <jchandra@broadcom.com> Cc: linux-mips@linux-mips.org Cc: ddaney.cavm@gmail.com Patchwork: https://patchwork.linux-mips.org/patch/5414/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Родитель
83bee792d7
Коммит
1c146cd46f
|
@ -175,6 +175,10 @@
|
|||
#define nlm_write_c2_cc14(s, v) __write_32bit_c2_register($30, s, v)
|
||||
#define nlm_write_c2_cc15(s, v) __write_32bit_c2_register($31, s, v)
|
||||
|
||||
#define nlm_read_c2_status0() __read_32bit_c2_register($2, 0)
|
||||
#define nlm_write_c2_status0(v) __write_32bit_c2_register($2, 0, v)
|
||||
#define nlm_read_c2_status1() __read_32bit_c2_register($2, 1)
|
||||
#define nlm_write_c2_status1(v) __write_32bit_c2_register($2, 1, v)
|
||||
#define nlm_read_c2_status(sel) __read_32bit_c2_register($2, 0)
|
||||
#define nlm_read_c2_config() __read_32bit_c2_register($3, 0)
|
||||
#define nlm_write_c2_config(v) __write_32bit_c2_register($3, 0, v)
|
||||
|
@ -296,7 +300,7 @@ static inline int nlm_fmn_send(unsigned int size, unsigned int code,
|
|||
*/
|
||||
for (i = 0; i < 8; i++) {
|
||||
nlm_msgsnd(dest);
|
||||
status = nlm_read_c2_status(0);
|
||||
status = nlm_read_c2_status0();
|
||||
if ((status & 0x2) == 1)
|
||||
pr_info("Send pending fail!\n");
|
||||
if ((status & 0x4) == 0)
|
||||
|
@ -316,7 +320,7 @@ static inline int nlm_fmn_receive(int bucket, int *size, int *code, int *stid,
|
|||
|
||||
/* wait for load pending to clear */
|
||||
do {
|
||||
status = nlm_read_c2_status(1);
|
||||
status = nlm_read_c2_status0();
|
||||
} while ((status & 0x08) != 0);
|
||||
|
||||
/* receive error bits */
|
||||
|
|
|
@ -80,7 +80,7 @@ static irqreturn_t fmn_message_handler(int irq, void *data)
|
|||
while (1) {
|
||||
/* 8 bkts per core, [24:31] each bit represents one bucket
|
||||
* Bit is Zero if bucket is not empty */
|
||||
bkt_status = (nlm_read_c2_status() >> 24) & 0xff;
|
||||
bkt_status = (nlm_read_c2_status0() >> 24) & 0xff;
|
||||
if (bkt_status == 0xff)
|
||||
break;
|
||||
for (bucket = 0; bucket < 8; bucket++) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче