The user is now responsible to stop and close the DMA channels
before closing the device. To prevent complicated situations and
blocking the caller of grspw_close and grspw_dma_close a return
code was added to indicate to the user that the DMA may not have
been stopped or that blocked tasks are still active within the
driver for the specified device.
Improved the link error handling options. Its now possible to
disable the link on individual link errors/warnings instead of
always on all or none.
Changed name of LINKOPTS_IRQ to LINKOPTS_EIRQ to match Linux
and VxWorks SpW driver.
NOTE that this will change the association of /dev/occanN
with OCCAN[N] device to the same order as in hardware. This means
that if you have been useing /dev/occan0 before you have to use
/dev/occan1 on a dual OCCAN device system (this affects GR712RC).
The EN bit (enable separate node address for this channel) is preserved when
grspw_dma_start is called. This preserves any previous address configuration.
There was a mixup between the transmit descriptor Link error (LE) bit and
Interrupt enable (IE) bit. TXPKT_FLAG_LINKERR now correctly indicates the link
error condition.
The fix does not affect the driver since the bit definitions
were never used by the GR5133B drivers. However it could affect
and application using the definitions.
This function may be used to do a two-step interrupt processing. The
first step is done in interrupt context which calls this function. The
second step is then done in the context of the interrupt server.
It is necessary to enable the DWT using a special initialization
sequence before the CYCCNT can be enabled. See for example the
RESET_CYCLE_COUNTER in libbsp/arm/atsam/utils/utility.h.
Note that this problem only occurs if no debugger is connected. A
debugger most likely already enables the necessary module.
Enable/Disable vector routines now check for a valid vector. Without
these guards, the Enable/Disable vector routines will not work with the
interrupt server.