summaryrefslogtreecommitdiff
path: root/cesar/hal/phy/src/bridgedma.c
diff options
context:
space:
mode:
authorNélio Laranjeiro2011-05-17 10:07:55 +0200
committerNélio Laranjeiro2011-05-20 10:20:27 +0200
commit55a81bc32c8b2b5dd9fd76149af88ba13876857d (patch)
tree8afe74fd3b4d20fa3788dacbd0e50c087fa994b8 /cesar/hal/phy/src/bridgedma.c
parentcc0c06735c20a0ae6676bf1df5097fd0a188606a (diff)
cesar/hal/phy: change status function of brg DMA, closes #2537
Diffstat (limited to 'cesar/hal/phy/src/bridgedma.c')
-rw-r--r--cesar/hal/phy/src/bridgedma.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/cesar/hal/phy/src/bridgedma.c b/cesar/hal/phy/src/bridgedma.c
index 95de4fc6c3..694d19d8c3 100644
--- a/cesar/hal/phy/src/bridgedma.c
+++ b/cesar/hal/phy/src/bridgedma.c
@@ -41,9 +41,18 @@ static phy_bridgedma_t phy_bridgedma_global;
static inline bool
_phy_bridgedma_status (void)
{
- bool run1 = PHY_BRGDMA_RUNNING_BIT;
- bool run2 = PHY_BRGDMA_RUNNING_BIT;
- return run1 || run2;
+ phy_bridgedma_t *ctx = &phy_bridgedma_global;
+ /* At least a job had been added. */
+ if (ctx->bridge.job_head)
+ {
+ return (PHY_BDGDMA_CURRENT_JOBD_PTR != (u32) ctx->bridge.job_tail
+ || PHY_BDGDMA_JOBD_NEXT_PTR != (u32) ctx->bridge.job_tail
+ || PHY_BRGDMA_RUNNING_BIT
+ || !PHY_BRGDMA_LAST_BIT
+ || (PHY_BDGDMA_CONTROL_CONFIG & 0x1));
+
+ }
+ return PHY_BRGDMA_RUNNING_BIT;
}
/** eCos ISR called by eCos each time the bridgedma ends a job with the it