From c2ac7e9df54a5295d696e286dc4187a99f0fa3f4 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 21 Sep 2007 15:47:53 +0000 Subject: 2007-09-21 Daniel Hellstrom * shared/can/occan.c: Fix warning on Diab compiler. --- c/src/lib/libbsp/sparc/ChangeLog | 4 ++++ c/src/lib/libbsp/sparc/shared/can/occan.c | 12 ++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'c') 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 + + * shared/can/occan.c: Fix warning on Diab compiler. + 2007-09-19 Daniel Hellstrom * 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 */ -- cgit v1.2.3