| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Following changes:
* possible for user to create work-tasks and assign custom message queues.
* possible for user to override default ISR message to implement custom
handling of DMA error, DMA RX/TX and link error from ISR.
* work-task now checks message to determine which work to perform rather than
looking at registers only, this makes it possible for user to implement
custom handling.
* exported work-queue message definitions and separated them so that a user
can assign custom DMA RX/TX handling of a specific DMA channel.
* added a work-task event callback to let user add custom handling or
monitoring of DMA Stop, DMA error, Link Error or work-task exits etc.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
- Fixed grspw_dma_tx_send() so that it does not fail when an empty user packet
is provided.
- Added empty checks on some of the list handling inline functions for
GRSPW_PKT. Their use by the driver may be correct already, but the user might
not have been aware of the assumptions that certain lists had to be non-empty.
|
|
|
|
|
| |
Without this patch time code interrupts was never cleared
in the STATUS register.
|
|
|
|
|
|
|
| |
By introducing a spearate RX and TX DMA channel semaphore RX
operations and TX operations does not block each other. Stopping
a DMA channel needs now to take both RX and TX semaphores to
block out both RX and TX tasks.
|
| |
|
|
|
|
|
|
|
| |
The user has already the power to control which DMA buffer
will generate interrupt, but no clean way to enable RX/TX
interrupts on DMA channel. Without this patch the user had
to init DMA config rx/tx_irq_en_cnt to a very large value.
|
|
|
|
|
|
|
|
|
|
| |
* Add support for reading the GRSPW TX/RX descriptor counters
directly.
* Add semaphore lock to counters to avoid couters being out
of sync
* This makes it possible for the user in polling mode to check
the amount of work before entering RX/TX descriptor table
processing.
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Added functionality for manual handling of link status events,
configurable via grspw_link_ctrl.
Added statistics counter for disconnect error.
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Update #2751.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|