summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-09-21 15:47:53 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-09-21 15:47:53 +0000
commitc2ac7e9df54a5295d696e286dc4187a99f0fa3f4 (patch)
treea8c9c93cc37d854b3270c0a37428aa4e97eac3fb /c
parent2007-09-21 Joel Sherrill <joel.sherrill@OARcorp.com> (diff)
downloadrtems-c2ac7e9df54a5295d696e286dc4187a99f0fa3f4.tar.bz2
2007-09-21 Daniel Hellstrom <daniel@gaisler.com>
* shared/can/occan.c: Fix warning on Diab compiler.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/sparc/ChangeLog4
-rw-r--r--c/src/lib/libbsp/sparc/shared/can/occan.c12
2 files changed, 10 insertions, 6 deletions
diff --git a/c/src/lib/libbsp/sparc/ChangeLog b/c/src/lib/libbsp/sparc/ChangeLog
index 506ca69333..569854d8c8 100644
--- a/c/src/lib/libbsp/sparc/ChangeLog
+++ b/c/src/lib/libbsp/sparc/ChangeLog
@@ -1,3 +1,7 @@
+2007-09-21 Daniel Hellstrom <daniel@gaisler.com>
+
+ * shared/can/occan.c: Fix warning on Diab compiler.
+
2007-09-19 Daniel Hellstrom <daniel@gaisler.com>
* shared/can/occan.c: Fix Reenable command and fix typo.
diff --git a/c/src/lib/libbsp/sparc/shared/can/occan.c b/c/src/lib/libbsp/sparc/shared/can/occan.c
index b5b6e51885..f3318165a8 100644
--- a/c/src/lib/libbsp/sparc/shared/can/occan.c
+++ b/c/src/lib/libbsp/sparc/shared/can/occan.c
@@ -1002,7 +1002,7 @@ static rtems_device_driver occan_initialize(rtems_device_major_number major, rte
#ifdef OCCAN_BYTE_REGS
/* regs is byte regs */
- can->regs = (void *)ambadev.start[0] + OCCAN_NCORE_OFS*subi;
+ can->regs = (void *)(ambadev.start[0] + OCCAN_NCORE_OFS*subi);
#else
/* regs is word regs, accessed 0x100 from base address */
can->regs = (void *)(ambadev.start[0] + OCCAN_NCORE_OFS*subi+ OCCAN_WORD_REG_OFS);
@@ -1181,7 +1181,7 @@ static rtems_device_driver occan_read(rtems_device_major_number major, rtems_dev
rtems_interrupt_disable(oldLevel);
/* A bus off interrupt may have occured after checking can->started */
- if ( can->status & OCCAN_STATUS_ERR_BUSOFF ){
+ if ( can->status & (OCCAN_STATUS_ERR_BUSOFF|OCCAN_STATUS_RESET) ){
rtems_interrupt_enable(oldLevel);
DBG("OCCAN: read is cancelled due to a BUS OFF error\n\r");
rw_args->bytes_moved = rw_args->count-left;
@@ -1210,7 +1210,7 @@ static rtems_device_driver occan_read(rtems_device_major_number major, rtems_dev
rtems_semaphore_obtain(can->rxsem,RTEMS_WAIT,RTEMS_NO_TIMEOUT);
/* did we get woken up by a BUS OFF error? */
- if ( can->status & OCCAN_STATUS_ERR_BUSOFF ){
+ if ( can->status & (OCCAN_STATUS_ERR_BUSOFF|OCCAN_STATUS_RESET) ){
DBG("OCCAN: Blocking read got woken up by BUS OFF error\n\r");
/* At this point it should not matter how many messages we handled */
rw_args->bytes_moved = rw_args->count-left;
@@ -1275,7 +1275,7 @@ static rtems_device_driver occan_write(rtems_device_major_number major, rtems_de
rtems_interrupt_disable(oldLevel);
/* A bus off interrupt may have occured after checking can->started */
- if ( can->status & OCCAN_STATUS_ERR_BUSOFF ){
+ if ( can->status & (OCCAN_STATUS_ERR_BUSOFF|OCCAN_STATUS_RESET) ){
rtems_interrupt_enable(oldLevel);
rw_args->bytes_moved = 0;
return RTEMS_IO_ERROR; /* EIO */
@@ -1330,8 +1330,8 @@ static rtems_device_driver occan_write(rtems_device_major_number major, rtems_de
rtems_semaphore_obtain(can->txsem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
/* did we get woken up by a BUS OFF error? */
- if ( can->status & OCCAN_STATUS_ERR_BUSOFF ){
- DBG("OCCAN: Blocking write got woken up by BUS OFF error\n\r");
+ if ( can->status & (OCCAN_STATUS_ERR_BUSOFF|OCCAN_STATUS_RESET) ){
+ DBG("OCCAN: Blocking write got woken up by BUS OFF error or RESET event\n\r");
/* At this point it should not matter how many messages we handled */
rw_args->bytes_moved = rw_args->count-left;
return RTEMS_IO_ERROR; /* EIO */