From 05ba5c19712250b27cc78e8316b93690fd948a03 Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Fri, 27 Jan 2012 19:50:06 +0100 Subject: imx233: update arbiter to get more debug information, update debug screen accordingly Change-Id: Ia229e5303692712295f1dbd37a76f865a3eef4ea --- firmware/target/arm/imx233/debug-imx233.c | 6 +++--- firmware/target/arm/imx233/kernel-imx233.c | 5 +++++ firmware/target/arm/imx233/kernel-imx233.h | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/firmware/target/arm/imx233/debug-imx233.c b/firmware/target/arm/imx233/debug-imx233.c index 7db7ee97d7..a4c50bbaf7 100644 --- a/firmware/target/arm/imx233/debug-imx233.c +++ b/firmware/target/arm/imx233/debug-imx233.c @@ -378,14 +378,14 @@ bool dbg_hw_info_dcp(void) info.gather_writes, info.otp_key_ready, info.ch0_merged); lcd_putsf(0, 4, "ctx switching: %d caching: %d", info.context_switching, info.context_caching); - lcd_putsf(0, 5, "ch irq ien en rdy pri sem cmdptr"); + lcd_putsf(0, 5, "ch irq ien en rdy pri sem cmdptr a"); int nr = HW_DCP_NUM_CHANNELS; for(int i = 0; i < nr; i++) { - lcd_putsf(0, 6 + i, "%d %d %d %d %d %d %d 0x%08lx", + lcd_putsf(0, 6 + i, "%d %d %d %d %d %d %d 0x%08lx %d", i, info.channel[i].irq, info.channel[i].irq_en, info.channel[i].enable, info.channel[i].ready, info.channel[i].high_priority, - info.channel[i].sema, info.channel[i].cmdptr); + info.channel[i].sema, info.channel[i].cmdptr, info.channel[i].acquired); } lcd_putsf(0, 6 + nr, "csc %d %d %d %d", info.csc.irq, info.csc.irq_en, info.csc.enable, info.csc.priority); diff --git a/firmware/target/arm/imx233/kernel-imx233.c b/firmware/target/arm/imx233/kernel-imx233.c index b59d3ed63f..752db68149 100644 --- a/firmware/target/arm/imx233/kernel-imx233.c +++ b/firmware/target/arm/imx233/kernel-imx233.c @@ -71,6 +71,11 @@ int arbiter_acquire(struct channel_arbiter_t *a, int timeout) return chan; } +bool arbiter_acquired(struct channel_arbiter_t *a, int channel) +{ + return !(a->free_bm & (1 << channel)); +} + void arbiter_release(struct channel_arbiter_t *a, int channel) { mutex_lock(&a->mutex); diff --git a/firmware/target/arm/imx233/kernel-imx233.h b/firmware/target/arm/imx233/kernel-imx233.h index 3c62c1597c..960f3f2431 100644 --- a/firmware/target/arm/imx233/kernel-imx233.h +++ b/firmware/target/arm/imx233/kernel-imx233.h @@ -41,5 +41,6 @@ void arbiter_reserve(struct channel_arbiter_t *a, unsigned channel); /* return channel on success and OBJ_WAIT_TIMEOUT on failure */ int arbiter_acquire(struct channel_arbiter_t *a, int timeout); void arbiter_release(struct channel_arbiter_t *a, int channel); +bool arbiter_acquired(struct channel_arbiter_t *a, int channel); #endif /* __KERNEL_IMX233__ */ \ No newline at end of file -- cgit v1.2.3