summaryrefslogtreecommitdiffstats
path: root/bsps/shared/grlib/can
diff options
context:
space:
mode:
authorJiri Gaisler <jiri@gaisler.se>2019-01-18 18:00:47 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-01-22 12:50:08 +0100
commit9b2b389e8d6c9a871a3d5de882fc48b13bc9f1ac (patch)
tree813132b05c576d8327ae012439feb7207289f8c6 /bsps/shared/grlib/can
parentgrlib: use rtems_interrupt_handler_install() (diff)
downloadrtems-9b2b389e8d6c9a871a3d5de882fc48b13bc9f1ac.tar.bz2
grlib: use cpu-independent routines for uncached access
Update #3678.
Diffstat (limited to 'bsps/shared/grlib/can')
-rw-r--r--bsps/shared/grlib/can/grcan.c27
1 files changed, 3 insertions, 24 deletions
diff --git a/bsps/shared/grlib/can/grcan.c b/bsps/shared/grlib/can/grcan.c
index 55154d823a..d69d99d85a 100644
--- a/bsps/shared/grlib/can/grcan.c
+++ b/bsps/shared/grlib/can/grcan.c
@@ -165,40 +165,19 @@ static void grcan_hw_sync(
static void grcan_interrupt(void *arg);
#ifdef GRCAN_REG_BYPASS_CACHE
-#define READ_REG(address) _grcan_read_nocache((unsigned int)(address))
+#define READ_REG(address) grlib_read_uncached32((unsigned int)(address))
#else
#define READ_REG(address) (*(volatile unsigned int *)(address))
#endif
#ifdef GRCAN_DMA_BYPASS_CACHE
-#define READ_DMA_WORD(address) _grcan_read_nocache((unsigned int)(address))
-#define READ_DMA_BYTE(address) _grcan_read_nocache_byte((unsigned int)(address))
-static unsigned char __inline__ _grcan_read_nocache_byte(unsigned int address)
-{
- unsigned char tmp;
- __asm__ (" lduba [%1]1, %0 "
- : "=r"(tmp)
- : "r"(address)
- );
- return tmp;
-}
+#define READ_DMA_WORD(address) grlib_read_uncached32((unsigned int)(address))
+#define READ_DMA_BYTE(address) grlib_read_uncached8((unsigned int)(address))
#else
#define READ_DMA_WORD(address) (*(volatile unsigned int *)(address))
#define READ_DMA_BYTE(address) (*(volatile unsigned char *)(address))
#endif
-#if defined(GRCAN_REG_BYPASS_CACHE) || defined(GRCAN_DMA_BYPASS_CACHE)
-static unsigned int __inline__ _grcan_read_nocache(unsigned int address)
-{
- unsigned int tmp;
- __asm__ (" lda [%1]1, %0 "
- : "=r"(tmp)
- : "r"(address)
- );
- return tmp;
-}
-#endif
-
#define NELEM(a) ((int) (sizeof (a) / sizeof (a[0])))
static int grcan_count = 0;